[#assign totalAppEnrolments = totalApprovements!0 + totalStandaloneApprovements!0 ]
[#assign totalAppEcts = numbers.onePlace(totalApprovedECTS!0 + totalStandaloneApprovedECTS!0) ]

[#if totalAppEnrolments > 1 ]
    [#assign na_seguinte_unidade_curricular = nas_seguintes_unidades_curriculares ]
    [#assign a_seguinte_unidade_curricular = as_seguintes_unidades_curriculares ]
    [#assign a_unidade_curricular = as_unidades_curriculares ]
    [#assign discriminada = discriminadas ]
    [#assign integra = integram ]
    [#assign Unidade_Curricular = Unidades_Curriculares ]
[#else]
    [#assign na_seguinte_unidade_curricular = na_seguinte_unidade_curricular ]
    [#assign a_seguinte_unidade_curricular = a_seguinte_unidade_curricular ]
    [#assign a_unidade_curricular = a_unidade_curricular ]
    [#assign discriminada = discriminada ]
    [#assign integra = integra ]
    [#assign Unidade_Curricular = Unidade_Curricular ]
[/#if]

[#assign totalStandaloneApprovements = totalStandaloneApprovements!0]

[#-- Isoladas em mobilidade não fazem sentido.
[#if totalStandaloneApprovements > 1]
    [#assign na_seguinte_unidade_curricular = "nas seguintes unidades curriculares isoladas" ]
    [#assign a_seguinte_unidade_curricular = "as seguintes unidades curriculares isoladas" ]
    [#assign a_unidade_curricular = "as unidades curriculares isoladas" ]
    [#assign Unidade_Curricular = "Unidades Curriculares Isoladas"]
[#elseif totalStandaloneApprovements == 1]
    [#assign na_seguinte_unidade_curricular = "na seguinte unidade curricular isolada" ]
    [#assign a_seguinte_unidade_curricular = "a seguinte unidade curricular isolada" ]
    [#assign a_unidade_curricular = "a unidade curricular isolada" ]
    [#assign Unidade_Curricular = "Unidade Curricular Isolada"]
[/#if]
--]

[#assign approvedEntriesList = [] ]
[#if standaloneCurriculumEntries??]
    [#assign approvedEntriesList = approvedEntriesList + standaloneCurriculumEntries ]
[/#if]
[#if approvedCurriculumEntries??]
    [#assign approvedEntriesList = approvedEntriesList + approvedCurriculumEntries ]
[/#if]

[#assign mobilityProgramName = ""]
[#if serviceRequest.hasProperty("mobilityProgram")]
    [#assign mobilityProgramName = serviceRequest.findProperty("mobilityProgram").string!"(mobilityProgram missing!)"]
[#else]
    [#if mobilityProgram??]
        [#assign mobilityProgramName = lang.i18n(mobilityProgram) ]
    [/#if]
[/#if]

[#assign programStartDate = ""]
[#if serviceRequest.hasProperty("programStartDate")]
    [#if serviceRequest.findProperty("programStartDate").dateTime??]
        [#assign programStartDate = dates.date(serviceRequest.findProperty("programStartDate").dateTime)]
    [/#if]
[#else]
    [#if mobilityBeginDate??]
        [#assign programStartDate = dates.date(mobilityBeginDate)]
    [/#if]
[/#if]

[#assign programEndDate = ""]
[#if serviceRequest.hasProperty("programEndDate")]
    [#if serviceRequest.findProperty("programEndDate").dateTime??]
        [#assign programEndDate = dates.date(serviceRequest.findProperty("programEndDate").dateTime)]
    [/#if]
[#else]
    [#if mobilityEndDate??]
        [#assign programEndDate = dates.date(mobilityEndDate)]
    [/#if]
[/#if]


[#assign mobilitySentence = "${frequentou} ${a_seguinte_unidade_curricular} ${ao_abrigo_do_programa} ${mobilityProgramName}"]

[#assign mobilityIncomingSentence = "${O} ${aluno} ${frequentou} ${institutionPrepositionO} ${institutionName} ${durante_o_período_compreendido_entre} ${programStartDate} ${e} ${programEndDate}."]

[#assign mobilityDegreeName = ""]

[#-- Pass this to the new template 
[#assign mobilityIncomingSentence = ""]

[#assign mobilitySentence = "realizou ${a_unidade_curricular} abaixo ${discriminada} que ${integra} o curso de "]

[#assign mobilityDegreeName = degreeName]
--]

[#assign aceLst = [] ]
[#list approvedEntriesList as approvement]
    [#assign tmpName = "${lang.i18n(approvement.name)}"]
    
    [#-- Use true when the student is not from this institution --]
    [#if curricular.getCourseLowerCycle(approvement.getICurriculumEntry(), true)??]
        [#assign tmpHigherCycle = curricular.getCourseLowerCycle(approvement.getICurriculumEntry(), true)]
    [#else]
        [#assign tmpHigherCycle = "-"]
    [/#if]

    [#assign tmpCycle = "-"]
    [#if tmpHigherCycle != "-"]
        [#if tmpHigherCycle.weight == 1]
            [#assign tmpCycle = Licenciatura]
        [#elseif tmpHigherCycle.weight == 2]
            [#assign tmpCycle = Mestrado]
        [#elseif tmpHigherCycle.weight == 3]
            [#assign tmpCycle = Doutoramento]
        [/#if]
    [/#if]

    [#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.executionSemester??]
        [#assign tmpExecutionSemesterString = "${approvement.executionSemester.semester}"]
        [#if tmpExecutionSemesterString?contains("1")]
            [#assign tmpExecutionSemester = "S1"]
        [#else]
            [#assign tmpExecutionSemester = "S2"]
        [/#if]
        [#if approvement.isAnnual()]
            [#assign tmpExecutionSemester = "A"]
        [/#if]
    [/#if]
    
    [#if approvement.executionYearName??]
        [#assign tmpExecutionYear = "${approvement.executionYearName}"]
    [#else]
        [#assign tmpExecutionYear = ""]
    [/#if]
    
    [#if approvement.remarkNumbers??]   
        [#assign tmpRemark = "${approvement.remarkNumbers}"]
    [#else]
        [#assign tmpRemark = ""]
    [/#if]
    [#assign tmpMap = { "a" : "${tmpName}", "b" : "${tmpCycle}", "c" : "${tmpGrade}", "d" : "${tmpEcts}", "e" : "${tmpEctsGrade}", "f" : "${tmpExecutionYear} ${tmpExecutionSemester}", "semester" : "${tmpExecutionSemester}", "year" : "${tmpExecutionYear}", "remark" : "${tmpRemark}" } ]
    [#assign aceLst = aceLst + [tmpMap] ]
[/#list]
qubList("aceLst")

[#assign aceLst = order.sort(aceLst, "f b a")]
