Search in sources :

Example 1 with OppiaineenSuoritusWithCurriculum

use of fi.otavanopisto.pyramus.koski.OppiaineenSuoritusWithCurriculum in project pyramus by otavanopisto.

the class KoskiInternetixLukioStudentHandler method assessmentsToModel.

private void assessmentsToModel(LukionOpiskeluoikeus opiskeluoikeus, Student student, StudentSubjectSelections studentSubjects, boolean calculateMeanGrades, boolean sisällytäVahvistus, String toimipisteOID, boolean defaultStudyProgramme) {
    List<OpiskelijanOPS> opsList = new ArrayList<>();
    opsList.add(OpiskelijanOPS.ops2016);
    opsList.add(OpiskelijanOPS.ops2005);
    KoskiStudyProgrammeHandlerParams handlerParams = getHandlerParams(HANDLER_TYPE);
    // If this is default study programme of the student, we exclude the incompatible education type (ie list all other edutypes)
    // Otherwise, only list credits from one education type
    Predicate<Credit> predicate = defaultStudyProgramme ? credit -> !matchingEducationTypeFilter(credit, handlerParams.getExcludedEducationTypes()) : credit -> matchingEducationTypeFilter(credit, handlerParams.getEducationTypes());
    Map<OpiskelijanOPS, List<CreditStub>> opsCredits = listCredits(student, true, true, opsList, OpiskelijanOPS.ops2016, predicate);
    Map<String, OppiaineenSuoritusWithCurriculum<LukionOppiaineenSuoritus>> map = new HashMap<>();
    Set<OppiaineenSuoritusWithCurriculum<LukionOppiaineenSuoritus>> accomplished = new HashSet<>();
    for (OpiskelijanOPS ops : opsCredits.keySet()) {
        List<CreditStub> credits = opsCredits.get(ops);
        for (CreditStub credit : credits) {
            OppiaineenSuoritusWithCurriculum<LukionOppiaineenSuoritus> oppiaineenSuoritus = getSubject(ops, student, handlerParams.getEducationTypes(), credit.getSubject(), studentSubjects, map);
            collectAccomplishedMarks(credit.getSubject(), oppiaineenSuoritus, studentSubjects, accomplished);
            if (settings.isReportedCredit(credit) && oppiaineenSuoritus != null) {
                LukionKurssinSuoritus kurssiSuoritus = createKurssiSuoritus(student, ops, credit);
                if (kurssiSuoritus != null) {
                    oppiaineenSuoritus.getOppiaineenSuoritus().addOsasuoritus(kurssiSuoritus);
                } else {
                    logger.warning(String.format("Course %s not reported for student %d due to unresolvable credit.", credit.getCourseCode(), student.getId()));
                    koskiPersonLogDAO.create(student.getPerson(), student, KoskiPersonState.UNREPORTED_CREDIT, new Date(), credit.getCourseCode());
                }
            }
        }
    }
    for (OppiaineenSuoritusWithCurriculum<LukionOppiaineenSuoritus> lukionOppiaineenSuoritus : map.values()) {
        if (CollectionUtils.isEmpty(lukionOppiaineenSuoritus.getOppiaineenSuoritus().getOsasuoritukset())) {
            // Skip empty subjects
            continue;
        }
        StudentSubjectGrade studentSubjectGrade = findStudentSubjectGrade(student, lukionOppiaineenSuoritus.getSubject());
        boolean hasStudentSubjectGrade = studentSubjectGrade != null;
        // Valmiille oppiaineelle on rustattava kokonaisarviointi
        if (calculateMeanGrades || hasStudentSubjectGrade) {
            ArviointiasteikkoYleissivistava aineKeskiarvo = accomplished.contains(lukionOppiaineenSuoritus) ? ArviointiasteikkoYleissivistava.GRADE_S : getSubjectMeanGrade(student, lukionOppiaineenSuoritus.getSubject(), lukionOppiaineenSuoritus.getOppiaineenSuoritus());
            if (aineKeskiarvo != null) {
                Date arviointiPvm = (studentSubjectGrade != null && studentSubjectGrade.getGradeDate() != null) ? studentSubjectGrade.getGradeDate() : student.getStudyEndDate();
                LukionOppiaineenArviointi arviointi = new LukionOppiaineenArviointi(aineKeskiarvo, arviointiPvm);
                lukionOppiaineenSuoritus.getOppiaineenSuoritus().addArviointi(arviointi);
            } else {
                logger.warning(String.format("Unresolved mean grade for person %d.", student.getPerson().getId()));
            }
        }
        LukionOppiaineenSuoritus oppiaineenSuoritus = lukionOppiaineenSuoritus.getOppiaineenSuoritus();
        LukionOppiaineenOppimaaranSuoritus oppiaineenOppimaaranSuoritus = LukionOppiaineenOppimaaranSuoritus.from(oppiaineenSuoritus, Kieli.FI, new OrganisaationToimipisteOID(toimipisteOID));
        oppiaineenOppimaaranSuoritus.getKoulutusmoduuli().setPerusteenDiaarinumero(getDiaarinumero(HANDLER_TYPE, lukionOppiaineenSuoritus.getOps()));
        oppiaineenOppimaaranSuoritus.setTodistuksellaNakyvatLisatiedot(getTodistuksellaNakyvatLisatiedot(student));
        if (hasStudentSubjectGrade) {
            oppiaineenOppimaaranSuoritus.setVahvistus(getVahvistus(student, studentSubjectGrade.getGradeApprover(), studentSubjectGrade.getGradeDate(), toimipisteOID));
        } else if (sisällytäVahvistus) {
            oppiaineenOppimaaranSuoritus.setVahvistus(getVahvistus(student, toimipisteOID));
        }
        opiskeluoikeus.addSuoritus(oppiaineenOppimaaranSuoritus);
    }
}
Also used : LukionOppiaineenOppimaaranSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenOppimaaranSuoritus) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) CreditStub(fi.otavanopisto.pyramus.koski.CreditStub) LukionOppiaineenSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritus) LukionOppiaineenArviointi(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenArviointi) CreditStubCredit(fi.otavanopisto.pyramus.koski.CreditStubCredit) Credit(fi.otavanopisto.pyramus.domainmodel.grading.Credit) TransferCredit(fi.otavanopisto.pyramus.domainmodel.grading.TransferCredit) LukionKurssinSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionKurssinSuoritus) List(java.util.List) ArrayList(java.util.ArrayList) KoskiStudyProgrammeHandlerParams(fi.otavanopisto.pyramus.koski.settings.KoskiStudyProgrammeHandlerParams) HashSet(java.util.HashSet) OppiaineenSuoritusWithCurriculum(fi.otavanopisto.pyramus.koski.OppiaineenSuoritusWithCurriculum) ArviointiasteikkoYleissivistava(fi.otavanopisto.pyramus.koski.koodisto.ArviointiasteikkoYleissivistava) Date(java.util.Date) StudentSubjectGrade(fi.otavanopisto.pyramus.domainmodel.students.StudentSubjectGrade) OpiskelijanOPS(fi.otavanopisto.pyramus.koski.OpiskelijanOPS) OrganisaationToimipisteOID(fi.otavanopisto.pyramus.koski.model.OrganisaationToimipisteOID)

Example 2 with OppiaineenSuoritusWithCurriculum

use of fi.otavanopisto.pyramus.koski.OppiaineenSuoritusWithCurriculum in project pyramus by otavanopisto.

the class KoskiInternetixLukioStudentHandler method map.

private OppiaineenSuoritusWithCurriculum<LukionOppiaineenSuoritus> map(Map<String, OppiaineenSuoritusWithCurriculum<LukionOppiaineenSuoritus>> map, String mapKey, OpiskelijanOPS creditOPS, LukionOppiaineenTunniste tunniste, Subject subject) {
    OppiaineenSuoritusWithCurriculum<LukionOppiaineenSuoritus> oswc = new OppiaineenSuoritusWithCurriculum<LukionOppiaineenSuoritus>(subject, creditOPS, new LukionOppiaineenSuoritus(tunniste));
    map.put(mapKey, oswc);
    return oswc;
}
Also used : LukionOppiaineenSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritus) OppiaineenSuoritusWithCurriculum(fi.otavanopisto.pyramus.koski.OppiaineenSuoritusWithCurriculum)

Example 3 with OppiaineenSuoritusWithCurriculum

use of fi.otavanopisto.pyramus.koski.OppiaineenSuoritusWithCurriculum in project pyramus by otavanopisto.

the class KoskiInternetixPkStudentHandler method map.

private OppiaineenSuoritusWithCurriculum<AikuistenPerusopetuksenOppiaineenSuoritus> map(Map<String, OppiaineenSuoritusWithCurriculum<AikuistenPerusopetuksenOppiaineenSuoritus>> map, String mapKey, OpiskelijanOPS creditOPS, AikuistenPerusopetuksenOppiaineenTunniste tunniste, Subject subject) {
    OppiaineenSuoritusWithCurriculum<AikuistenPerusopetuksenOppiaineenSuoritus> oswc = new OppiaineenSuoritusWithCurriculum<>(subject, creditOPS, new AikuistenPerusopetuksenOppiaineenSuoritus(tunniste));
    map.put(mapKey, oswc);
    return oswc;
}
Also used : OppiaineenSuoritusWithCurriculum(fi.otavanopisto.pyramus.koski.OppiaineenSuoritusWithCurriculum) AikuistenPerusopetuksenOppiaineenSuoritus(fi.otavanopisto.pyramus.koski.model.aikuistenperusopetus.AikuistenPerusopetuksenOppiaineenSuoritus)

Example 4 with OppiaineenSuoritusWithCurriculum

use of fi.otavanopisto.pyramus.koski.OppiaineenSuoritusWithCurriculum in project pyramus by otavanopisto.

the class KoskiInternetixPkStudentHandler method assessmentsToModel.

private void assessmentsToModel(AikuistenPerusopetuksenOpiskeluoikeus opiskeluoikeus, Student student, StudentSubjectSelections studentSubjects, boolean calculateMeanGrades, boolean sisällytäVahvistus, String toimipisteOID, boolean defaultStudyProgramme) {
    List<OpiskelijanOPS> opsList = new ArrayList<>();
    opsList.add(OpiskelijanOPS.ops2018);
    opsList.add(OpiskelijanOPS.ops2016);
    opsList.add(OpiskelijanOPS.ops2005);
    KoskiStudyProgrammeHandlerParams handlerParams = getHandlerParams(HANDLER_TYPE);
    // If this is default study programme of the student, we exclude the incompatible education type (ie list all other edutypes)
    // Otherwise, only list credits from one education type
    Predicate<Credit> predicate = defaultStudyProgramme ? credit -> !matchingEducationTypeFilter(credit, handlerParams.getExcludedEducationTypes()) : credit -> matchingEducationTypeFilter(credit, handlerParams.getEducationTypes());
    Map<OpiskelijanOPS, List<CreditStub>> opsCredits = listCredits(student, true, true, opsList, OpiskelijanOPS.ops2018, predicate);
    Map<String, OppiaineenSuoritusWithCurriculum<AikuistenPerusopetuksenOppiaineenSuoritus>> map = new HashMap<>();
    Set<OppiaineenSuoritusWithCurriculum<AikuistenPerusopetuksenOppiaineenSuoritus>> accomplished = new HashSet<>();
    for (OpiskelijanOPS ops : opsCredits.keySet()) {
        List<CreditStub> credits = opsCredits.get(ops);
        for (CreditStub credit : credits) {
            OppiaineenSuoritusWithCurriculum<AikuistenPerusopetuksenOppiaineenSuoritus> oppiaineenSuoritus = getSubject(ops, student, handlerParams.getEducationTypes(), studentSubjects, credit.getSubject(), map);
            collectAccomplishedMarks(credit.getSubject(), oppiaineenSuoritus, studentSubjects, accomplished);
            if (settings.isReportedCredit(credit) && oppiaineenSuoritus != null) {
                AikuistenPerusopetuksenKurssinSuoritus kurssiSuoritus = createKurssiSuoritus(ops, credit);
                if (kurssiSuoritus != null) {
                    oppiaineenSuoritus.getOppiaineenSuoritus().addOsasuoritus(kurssiSuoritus);
                } else {
                    logger.warning(String.format("Course %s not reported for student %d due to unresolvable credit.", credit.getCourseCode(), student.getId()));
                    koskiPersonLogDAO.create(student.getPerson(), student, KoskiPersonState.UNREPORTED_CREDIT, new Date(), credit.getCourseCode());
                }
            }
        }
    }
    PerusopetuksenSuoritusTapa perusopetuksenSuoritusTapa = suoritusTapa(student);
    for (OppiaineenSuoritusWithCurriculum<AikuistenPerusopetuksenOppiaineenSuoritus> oppiaineenSuoritus : map.values()) {
        if (CollectionUtils.isEmpty(oppiaineenSuoritus.getOppiaineenSuoritus().getOsasuoritukset())) {
            // Skip empty subjects
            continue;
        }
        StudentSubjectGrade studentSubjectGrade = findStudentSubjectGrade(student, oppiaineenSuoritus.getSubject());
        boolean hasStudentSubjectGrade = studentSubjectGrade != null;
        // Valmiille oppiaineelle on rustattava kokonaisarviointi
        if (calculateMeanGrades || hasStudentSubjectGrade) {
            ArviointiasteikkoYleissivistava aineKeskiarvo = accomplished.contains(oppiaineenSuoritus) ? ArviointiasteikkoYleissivistava.GRADE_S : getSubjectMeanGrade(student, oppiaineenSuoritus.getSubject(), oppiaineenSuoritus.getOppiaineenSuoritus());
            Date arviointiPvm = (studentSubjectGrade != null && studentSubjectGrade.getGradeDate() != null) ? studentSubjectGrade.getGradeDate() : student.getStudyEndDate();
            if (ArviointiasteikkoYleissivistava.isNumeric(aineKeskiarvo)) {
                KurssinArviointi arviointi = new KurssinArviointiNumeerinen(aineKeskiarvo, arviointiPvm);
                oppiaineenSuoritus.getOppiaineenSuoritus().addArviointi(arviointi);
            } else if (ArviointiasteikkoYleissivistava.isLiteral(aineKeskiarvo)) {
                KurssinArviointi arviointi = new KurssinArviointiSanallinen(aineKeskiarvo, arviointiPvm, kuvaus("Suoritettu/Hylätty"));
                oppiaineenSuoritus.getOppiaineenSuoritus().addArviointi(arviointi);
            }
        }
        PerusopetuksenOppiaineenOppimaaranSuoritus oppiaineenOppimaaranSuoritus = PerusopetuksenOppiaineenOppimaaranSuoritus.from(oppiaineenSuoritus.getOppiaineenSuoritus(), perusopetuksenSuoritusTapa, Kieli.FI, new OrganisaationToimipisteOID(toimipisteOID));
        oppiaineenOppimaaranSuoritus.getKoulutusmoduuli().setPerusteenDiaarinumero(getDiaarinumero(HANDLER_TYPE, oppiaineenSuoritus.getOps()));
        oppiaineenOppimaaranSuoritus.setTodistuksellaNakyvatLisatiedot(getTodistuksellaNakyvatLisatiedot(student));
        if (hasStudentSubjectGrade) {
            oppiaineenOppimaaranSuoritus.setVahvistus(getVahvistus(student, studentSubjectGrade.getGradeApprover(), studentSubjectGrade.getGradeDate(), toimipisteOID));
        } else if (sisällytäVahvistus) {
            oppiaineenOppimaaranSuoritus.setVahvistus(getVahvistus(student, toimipisteOID));
        }
        opiskeluoikeus.addSuoritus(oppiaineenOppimaaranSuoritus);
    }
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) CreditStub(fi.otavanopisto.pyramus.koski.CreditStub) Credit(fi.otavanopisto.pyramus.domainmodel.grading.Credit) List(java.util.List) ArrayList(java.util.ArrayList) KoskiStudyProgrammeHandlerParams(fi.otavanopisto.pyramus.koski.settings.KoskiStudyProgrammeHandlerParams) HashSet(java.util.HashSet) PerusopetuksenOppiaineenOppimaaranSuoritus(fi.otavanopisto.pyramus.koski.model.aikuistenperusopetus.PerusopetuksenOppiaineenOppimaaranSuoritus) AikuistenPerusopetuksenKurssinSuoritus(fi.otavanopisto.pyramus.koski.model.aikuistenperusopetus.AikuistenPerusopetuksenKurssinSuoritus) OppiaineenSuoritusWithCurriculum(fi.otavanopisto.pyramus.koski.OppiaineenSuoritusWithCurriculum) ArviointiasteikkoYleissivistava(fi.otavanopisto.pyramus.koski.koodisto.ArviointiasteikkoYleissivistava) Date(java.util.Date) KurssinArviointiSanallinen(fi.otavanopisto.pyramus.koski.model.KurssinArviointiSanallinen) PerusopetuksenSuoritusTapa(fi.otavanopisto.pyramus.koski.koodisto.PerusopetuksenSuoritusTapa) StudentSubjectGrade(fi.otavanopisto.pyramus.domainmodel.students.StudentSubjectGrade) KurssinArviointi(fi.otavanopisto.pyramus.koski.model.KurssinArviointi) OpiskelijanOPS(fi.otavanopisto.pyramus.koski.OpiskelijanOPS) OrganisaationToimipisteOID(fi.otavanopisto.pyramus.koski.model.OrganisaationToimipisteOID) AikuistenPerusopetuksenOppiaineenSuoritus(fi.otavanopisto.pyramus.koski.model.aikuistenperusopetus.AikuistenPerusopetuksenOppiaineenSuoritus) KurssinArviointiNumeerinen(fi.otavanopisto.pyramus.koski.model.KurssinArviointiNumeerinen)

Aggregations

OppiaineenSuoritusWithCurriculum (fi.otavanopisto.pyramus.koski.OppiaineenSuoritusWithCurriculum)4 Credit (fi.otavanopisto.pyramus.domainmodel.grading.Credit)2 StudentSubjectGrade (fi.otavanopisto.pyramus.domainmodel.students.StudentSubjectGrade)2 CreditStub (fi.otavanopisto.pyramus.koski.CreditStub)2 OpiskelijanOPS (fi.otavanopisto.pyramus.koski.OpiskelijanOPS)2 ArviointiasteikkoYleissivistava (fi.otavanopisto.pyramus.koski.koodisto.ArviointiasteikkoYleissivistava)2 OrganisaationToimipisteOID (fi.otavanopisto.pyramus.koski.model.OrganisaationToimipisteOID)2 AikuistenPerusopetuksenOppiaineenSuoritus (fi.otavanopisto.pyramus.koski.model.aikuistenperusopetus.AikuistenPerusopetuksenOppiaineenSuoritus)2 LukionOppiaineenSuoritus (fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritus)2 KoskiStudyProgrammeHandlerParams (fi.otavanopisto.pyramus.koski.settings.KoskiStudyProgrammeHandlerParams)2 ArrayList (java.util.ArrayList)2 Date (java.util.Date)2 HashMap (java.util.HashMap)2 HashSet (java.util.HashSet)2 List (java.util.List)2 TransferCredit (fi.otavanopisto.pyramus.domainmodel.grading.TransferCredit)1 CreditStubCredit (fi.otavanopisto.pyramus.koski.CreditStubCredit)1 PerusopetuksenSuoritusTapa (fi.otavanopisto.pyramus.koski.koodisto.PerusopetuksenSuoritusTapa)1 KurssinArviointi (fi.otavanopisto.pyramus.koski.model.KurssinArviointi)1 KurssinArviointiNumeerinen (fi.otavanopisto.pyramus.koski.model.KurssinArviointiNumeerinen)1