[#assign approvedEntriesList = [] ]
[#if concludedCurriculumEntries??]
    [#if concludedCurriculumEntries?size > 0]
        [#assign approvedEntriesList = concludedCurriculumEntries ]        
    [/#if]
[/#if]

[#assign approvedExtraEntriesList = [] ]
[#if extraCurriculumEntries??]
    [#if extraCurriculumEntries?size > 0]
        [#assign approvedExtraEntriesList = extraCurriculumEntries ]
    [/#if]
[/#if]

[#-- Remarks --]
[#assign showCreditacao = false]
[#assign showAprovado = false]

[#list approvedEntriesList as entry]
    [#if entry.grade??]
        [#assign aceGrade = entry.grade]
    [#else]
        [#assign aceGrade = ""]
    [/#if]
    [#if aceGrade?contains("AP")]
        [#assign showAprovado = true]
    [/#if]
    [#if aceGrade?contains("C")]
        [#assign showCreditacao = true]
    [/#if]    
[/#list]

[#--
[#if showAprovado]
    [#assign conclusionRemarks = conclusionRemarks + ["\nAP - Aprovado"]]
[/#if]
[#if showCreditacao]
    [#assign conclusionRemarks = conclusionRemarks + ["\nC - Creditação"]]
[/#if]
--]

[#assign hasRemarks = false ]
[#if conclusionRemarks??]
    [#if conclusionRemarks?size > 0]
        [#assign hasRemarks = true ]
    [/#if]
[/#if]

[#macro printRemarks]
    [#assign addNewLine = false]
    [#if hasRemarks]
        [#list conclusionRemarks as remark]
            [#if remark?is_hash]
                [#if addNewLine]
                    [#assign text = "\n" + lang.i18n(remark.description)]
                    ${text}
                [#else]
                    ${lang.i18n(remark.description)}
                    [#assign addNewLine = true]
                [/#if]
            [#else]
                ${remark}
            [/#if]
        [/#list]
    [/#if]
[/#macro]

[#assign finalExtraRemarks = []]

[#if approvementExtraRemarks??]
    [#assign finalExtraRemarks = approvementExtraRemarks ]
[/#if]

[#macro printExtraRemarks]
    [#assign addNewLine = false]
    [#list finalExtraRemarks as remark]
        [#if remark?is_hash]
            [#if addNewLine]
                [#assign text = "\n" + lang.i18n(remark.description)]
                ${text}
            [#else]
                ${lang.i18n(remark.description)}
                [#assign addNewLine = true]
            [/#if]
        [#else]
            ${remark}
        [/#if]
    [/#list]
[/#macro]

[#assign hasExtraApprovements = false]
[#if totalExtraApprovements??]
    [#if totalExtraApprovements > 0]
        [#assign hasExtraApprovements = true]
    [/#if]
[/#if]

[#assign totalAppEnrolments = totalConclusions!0 ]
[#assign totalAppEcts = numbers.onePlace(totalConcludedECTS!0) ]

[#if totalAppEnrolments > 1 ]
    [#if serviceRequest.detailed]
        [#assign na_seguinte_unidade_curricular = nas_seguintes_unidades_curriculares ]
    [#else]
        [#assign na_seguinte_unidade_curricular = nas_unidades_curriculares ]
    [/#if]
    [#assign a_unidade_curricular = as_unidades_curriculares ]
    [#assign discriminada = discriminadas ]
    [#assign Unidade_Curricular = Unidades_Curriculares ]
[#else]
    [#if serviceRequest.detailed]
        [#assign na_seguinte_unidade_curricular = na_seguinte_unidade_curricular ]
    [#else]
        [#assign na_seguinte_unidade_curricular = na_unidade_curricular ]
    [/#if]
    [#assign a_unidade_curricular = a_unidade_curricular ]
    [#assign discriminada = discriminada ]
    [#assign Unidade_Curricular = Unidade_Curricular ]
[/#if]

[#assign totalExtraApprovements = totalExtraApprovements!0]
[#assign totalExtraEcts = totalExtraApprovedECTS!0]

[#if totalExtraApprovements > 1]
    [#assign Unidade_Extracurricular = Unidades_Extracurriculares]
[#else]
    [#assign Unidade_Extracurricular = Unidade_Extracurricular]
[/#if]

[#assign aceLst = [] ]
[#list approvedEntriesList as approvement]
    [#assign tmpName = "${lang.i18n(approvement.name)}"]
    [#if approvement.grade??]
        [#assign tmpGrade = "${approvement.grade}"]
    [#else]
        [#assign tmpGrade = ""]
    [/#if]
    [#if approvement.ectsCredits??]
        [#assign tmpEcts = "${numbers.onePlace(approvement.ectsCredits)}"]
        [#if tmpEcts == "0.0"]
            [#assign tmpEcts = "-"]
        [/#if]
    [#else]
        [#assign tmpEcts = ""]
    [/#if]
    [#if approvement.ectsGrade??]
        [#assign tmpEctsGrade = "${approvement.ectsGrade}"]
    [#else]
        [#assign tmpEctsGrade = ""]
    [/#if]
    [#if approvement.executionYearName??]
        [#assign tmpExecutionYear = "${approvement.executionYearName}"]
    [#else]
        [#assign tmpExecutionYear = ""]
    [/#if]
    [#if approvement.remarkNumbers??]   
        [#assign tmpRemark = "${approvement.remarkNumbers}"]
    [#else]
        [#assign tmpRemark = ""]
    [/#if]
    [#if approvement.curricularYear??]   
        [#assign tmpCurricularYear = "${approvement.curricularYear}"]
    [#else]
        [#assign tmpCurricularYear = ""]
    [/#if]
    [#assign tmpMap = { "a" : "${tmpName}", "c" : "${tmpGrade}", "d" : "${tmpEcts}", "e" : "${tmpEctsGrade}", "b" : "${tmpExecutionYear}", "f" : "${tmpRemark}", "g" : "${tmpCurricularYear}" } ]
    [#assign aceLst = aceLst + [tmpMap] ]
[/#list]
qubList("aceLst")

[#assign sortByCurricularYear = false ]
[#if serviceRequest.hasProperty("sortByCurricularYear")]
    [#assign sortByCurricularYear = serviceRequest.findProperty("sortByCurricularYear").getValue()]
[/#if]

[#if sortByCurricularYear]
    [#assign aceLst = order.sort(aceLst, "g b a")]
[#else]
    [#assign aceLst = order.sort(aceLst, "b a")]
[/#if]

[#assign exLst = [] ]
[#list approvedExtraEntriesList as approvement]
    [#assign tmpName = "${lang.i18n(approvement.name)}"]
    [#if approvement.grade??]
        [#assign tmpGrade = "${approvement.grade}"]
    [#else]
        [#assign tmpGrade = ""]
    [/#if]
    [#if approvement.ectsCredits??]
        [#assign tmpEcts = "${numbers.onePlace(approvement.ectsCredits)}"]
        [#if tmpEcts == "0.0"]
            [#assign tmpEcts = "-"]
        [/#if]
    [#else]
        [#assign tmpEcts = ""]
    [/#if]
    [#if approvement.ectsGrade??]
        [#assign tmpEctsGrade = "${approvement.ectsGrade}"]
    [#else]
        [#assign tmpEctsGrade = ""]
    [/#if]
    [#if approvement.executionYearName??]
        [#assign tmpExecutionYear = "${approvement.executionYearName}"]
    [#else]
        [#assign tmpExecutionYear = ""]
    [/#if]
    [#if approvement.remarkNumbers??]   
        [#assign tmpRemark = "${approvement.remarkNumbers}"]
    [#else]
        [#assign tmpRemark = ""]
    [/#if]
    [#if approvement.curricularYear??]   
        [#assign tmpCurricularYear = "${approvement.curricularYear}"]
    [#else]
        [#assign tmpCurricularYear = ""]
    [/#if]
    [#assign tmpMap = { "a" : "${tmpName}", "c" : "${tmpGrade}", "d" : "${tmpEcts}", "e" : "${tmpEctsGrade}", "b" : "${tmpExecutionYear}", "f" : "${tmpRemark}", "g" : "${tmpCurricularYear}" } ]
    [#assign exLst = exLst + [tmpMap] ]
[/#list]
qubList("exLst")

[#if sortByCurricularYear]
    [#assign exLst = order.sort(exLst, "g b a")]
[#else]
    [#assign exLst = order.sort(exLst, "b a")]
[/#if]
