use of fi.otavanopisto.pyramus.koski.koodisto.PerusopetuksenSuoritusTapa in project pyramus by otavanopisto.
the class KoskiSettings method readSettings.
private void readSettings(JSONObject settings) {
JSONObject koskiSettings = settings.getJSONObject("koski");
JSONObject courseTypeMapping = koskiSettings.getJSONObject("courseTypeMapping");
for (Object courseTypeMappingKey : courseTypeMapping.keySet()) {
Long courseSubTypeId = Long.parseLong(courseTypeMappingKey.toString());
this.courseTypeMapping.put(courseSubTypeId, courseTypeMapping.getString(courseSubTypeId.toString()));
}
JSONObject courseTypeMapping2019 = koskiSettings.getJSONObject("courseTypeMapping2019");
for (Object courseTypeMappingKey : courseTypeMapping2019.keySet()) {
Long courseSubTypeId = Long.parseLong(courseTypeMappingKey.toString());
this.courseTypeMapping2019.put(courseSubTypeId, courseTypeMapping2019.getString(courseSubTypeId.toString()));
}
JSONObject subjectToLanguageMapping = koskiSettings.getJSONObject("subjectToLanguageMapping");
for (Object key : subjectToLanguageMapping.keySet()) {
String keyStr = (String) key;
this.subjectToLanguageMapping.put(keyStr, subjectToLanguageMapping.getString(keyStr));
}
JSONObject studyProgrammeMappings = koskiSettings.getJSONObject("studyProgrammes");
for (Object studyProgrammeKey : studyProgrammeMappings.keySet()) {
Long studyProgrammeId = Long.parseLong(studyProgrammeKey.toString());
JSONObject studyProgramme = studyProgrammeMappings.getJSONObject(studyProgrammeId.toString());
if (studyProgramme.getBoolean("enabled")) {
enabledStudyProgrammes.add(studyProgrammeId);
}
if (studyProgramme.getBoolean("freeLodging")) {
freeLodgingStudyProgrammes.add(studyProgrammeId);
}
if (studyProgramme.has("yksityisopiskelija") && studyProgramme.getBoolean("yksityisopiskelija")) {
yksityisopiskelijaStudyProgrammes.add(studyProgrammeId);
}
if (EnumUtils.isValidEnum(KoskiStudyProgrammeHandler.class, studyProgramme.getString("handler"))) {
KoskiStudyProgrammeHandler handlerType = KoskiStudyProgrammeHandler.valueOf(studyProgramme.getString("handler"));
handlerTypes.put(studyProgrammeId, handlerType);
} else {
logger.warning(String.format("Unknown handler %s", studyProgramme.getString("handler")));
}
if (studyProgramme.has("opintojenRahoitus")) {
String opintojenRahoitusStr = studyProgramme.getString("opintojenRahoitus");
if (StringUtils.isNotBlank(opintojenRahoitusStr)) {
OpintojenRahoitus or = OpintojenRahoitus.reverseLookup(opintojenRahoitusStr);
if (or != null) {
opintojenRahoitus.put(studyProgrammeId, or);
}
}
}
if (studyProgramme.has("perusopetuksenSuoritusTapa")) {
String pstString = studyProgramme.getString("perusopetuksenSuoritusTapa");
if (EnumUtils.isValidEnum(PerusopetuksenSuoritusTapa.class, pstString)) {
PerusopetuksenSuoritusTapa pst = EnumUtils.getEnum(PerusopetuksenSuoritusTapa.class, pstString);
if (pst != null) {
perusopetuksenSuoritusTapa.put(studyProgrammeId, pst);
}
}
}
if (studyProgramme.has("toimipisteOID")) {
String toimipisteOID = studyProgramme.getString("toimipisteOID");
if (StringUtils.isNotBlank(toimipisteOID)) {
toimipisteOIDt.put(studyProgrammeId, toimipisteOID);
}
}
JSONObject diaariJSON = studyProgramme.getJSONObject("diaari");
if (diaariJSON != null) {
for (Object curriculumIdKey : diaariJSON.keySet()) {
Long curriculumId = Long.parseLong(curriculumIdKey.toString());
diaarinumerot.put(String.format("%d.%d", studyProgrammeId, curriculumId), diaariJSON.getString(curriculumIdKey.toString()));
}
}
String pakollisetOppiaineet = studyProgramme.getString("pakollisetOppiaineet");
if (StringUtils.isNotBlank(pakollisetOppiaineet)) {
Set<KoskiOppiaineetYleissivistava> set = new HashSet<>();
for (String s : StringUtils.split(pakollisetOppiaineet, ',')) {
KoskiOppiaineetYleissivistava oppiaine = KoskiOppiaineetYleissivistava.valueOf(s);
if (oppiaine != null) {
set.add(oppiaine);
} else {
logger.log(Level.WARNING, String.format("No equivalent enum found for value %s of studyprogramme %d.", s, studyProgrammeId));
}
}
this.pakollisetOppiaineet.put(studyProgrammeId, set);
}
}
}
use of fi.otavanopisto.pyramus.koski.koodisto.PerusopetuksenSuoritusTapa 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);
}
}
Aggregations