use of fi.otavanopisto.pyramus.koski.model.KurssinArviointi in project pyramus by otavanopisto.
the class KoskiInternetixLukioStudentHandler method getSubjectMeanGrade.
private ArviointiasteikkoYleissivistava getSubjectMeanGrade(Student student, Subject subject, LukionOppiaineenSuoritus oppiaineenSuoritus) {
// Jos aineesta on annettu korotettu arvosana, käytetään automaattisesti sitä
ArviointiasteikkoYleissivistava korotettuArvosana = getSubjectGrade(student, subject);
if (korotettuArvosana != null) {
return korotettuArvosana;
} else {
List<ArviointiasteikkoYleissivistava> kurssiarvosanat = new ArrayList<>();
for (LukionKurssinSuoritus kurssinSuoritus : oppiaineenSuoritus.getOsasuoritukset()) {
List<KurssinArviointi> arvioinnit = kurssinSuoritus.getArviointi();
Set<ArviointiasteikkoYleissivistava> arvosanat = arvioinnit.stream().map(arviointi -> arviointi.getArvosana().getValue()).collect(Collectors.toSet());
kurssiarvosanat.add(ArviointiasteikkoYleissivistava.bestGrade(arvosanat));
}
return ArviointiasteikkoYleissivistava.meanGrade(kurssiarvosanat);
}
}
use of fi.otavanopisto.pyramus.koski.model.KurssinArviointi in project pyramus by otavanopisto.
the class KoskiLukioStudentHandler method getSubjectMeanGrade.
private ArviointiasteikkoYleissivistava getSubjectMeanGrade(Student student, Subject subject, LukionOppiaineenSuoritus oppiaineenSuoritus) {
// Jos aineesta on annettu korotettu arvosana, käytetään automaattisesti sitä
ArviointiasteikkoYleissivistava korotettuArvosana = getSubjectGrade(student, subject);
if (korotettuArvosana != null) {
return korotettuArvosana;
} else {
List<ArviointiasteikkoYleissivistava> kurssiarvosanat = new ArrayList<>();
for (LukionKurssinSuoritus kurssinSuoritus : oppiaineenSuoritus.getOsasuoritukset()) {
List<KurssinArviointi> arvioinnit = kurssinSuoritus.getArviointi();
Set<ArviointiasteikkoYleissivistava> arvosanat = arvioinnit.stream().map(arviointi -> arviointi.getArvosana().getValue()).collect(Collectors.toSet());
kurssiarvosanat.add(ArviointiasteikkoYleissivistava.bestGrade(arvosanat));
}
return ArviointiasteikkoYleissivistava.meanGrade(kurssiarvosanat);
}
}
use of fi.otavanopisto.pyramus.koski.model.KurssinArviointi in project pyramus by otavanopisto.
the class KoskiAPAStudentHandler method assessmentsToModel.
private void assessmentsToModel(OpiskelijanOPS ops, Student student, EducationType studentEducationType, StudentSubjectSelections studentSubjects, APASuoritus oppimaaranSuoritus, boolean calculateMeanGrades) {
Collection<CreditStub> credits = listCredits(student, true, true, ops, credit -> matchingCurriculumFilter(student, credit));
Map<String, OppiaineenSuoritusWithSubject<APAOppiaineenSuoritus>> map = new HashMap<>();
Set<OppiaineenSuoritusWithSubject<APAOppiaineenSuoritus>> accomplished = new HashSet<>();
for (CreditStub credit : credits) {
OppiaineenSuoritusWithSubject<APAOppiaineenSuoritus> oppiaineenSuoritusWSubject = getSubject(student, studentEducationType, studentSubjects, credit.getSubject(), map);
collectAccomplishedMarks(credit.getSubject(), oppiaineenSuoritusWSubject, studentSubjects, accomplished);
if (settings.isReportedCredit(credit) && oppiaineenSuoritusWSubject != null) {
APAKurssinSuoritus kurssiSuoritus = createKurssiSuoritus(ops, credit);
if (kurssiSuoritus != null) {
oppiaineenSuoritusWSubject.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 (OppiaineenSuoritusWithSubject<APAOppiaineenSuoritus> oppiaineenSuoritusWSubject : map.values()) {
APAOppiaineenSuoritus oppiaineenSuoritus = oppiaineenSuoritusWSubject.getOppiaineenSuoritus();
if (CollectionUtils.isEmpty(oppiaineenSuoritus.getOsasuoritukset())) {
// Skip empty subjects
continue;
}
// Valmiille oppiaineelle on rustattava kokonaisarviointi
if (calculateMeanGrades) {
ArviointiasteikkoYleissivistava aineKeskiarvo = accomplished.contains(oppiaineenSuoritusWSubject) ? ArviointiasteikkoYleissivistava.GRADE_S : getSubjectMeanGrade(student, oppiaineenSuoritusWSubject.getSubject(), oppiaineenSuoritus);
if (ArviointiasteikkoYleissivistava.isNumeric(aineKeskiarvo)) {
KurssinArviointi arviointi = new KurssinArviointiNumeerinen(aineKeskiarvo, student.getStudyEndDate());
oppiaineenSuoritus.addArviointi(arviointi);
} else if (ArviointiasteikkoYleissivistava.isLiteral(aineKeskiarvo)) {
KurssinArviointi arviointi = new KurssinArviointiSanallinen(aineKeskiarvo, student.getStudyEndDate(), kuvaus("Suoritettu/Hylätty"));
oppiaineenSuoritus.addArviointi(arviointi);
}
}
oppimaaranSuoritus.addOsasuoritus(oppiaineenSuoritus);
}
}
use of fi.otavanopisto.pyramus.koski.model.KurssinArviointi in project pyramus by otavanopisto.
the class KoskiAikuistenPerusopetuksenStudentHandler method assessmentsToModel.
private Set<AikuistenPerusopetuksenOppiaineenSuoritus> assessmentsToModel(OpiskelijanOPS ops, Student student, EducationType studentEducationType, StudentSubjectSelections studentSubjects, boolean calculateMeanGrades) {
Collection<CreditStub> credits = listCredits(student, true, true, ops, credit -> matchingCurriculumFilter(student, credit));
Set<AikuistenPerusopetuksenOppiaineenSuoritus> results = new HashSet<>();
Map<String, OppiaineenSuoritusWithSubject<AikuistenPerusopetuksenOppiaineenSuoritus>> map = new HashMap<>();
Set<OppiaineenSuoritusWithSubject<AikuistenPerusopetuksenOppiaineenSuoritus>> accomplished = new HashSet<>();
for (CreditStub credit : credits) {
OppiaineenSuoritusWithSubject<AikuistenPerusopetuksenOppiaineenSuoritus> oppiaineenSuoritusWSubject = getSubject(student, studentEducationType, studentSubjects, credit.getSubject(), map);
collectAccomplishedMarks(credit.getSubject(), oppiaineenSuoritusWSubject, studentSubjects, accomplished);
if (settings.isReportedCredit(credit) && oppiaineenSuoritusWSubject != null) {
AikuistenPerusopetuksenKurssinSuoritus kurssiSuoritus = createKurssiSuoritus(ops, credit);
if (kurssiSuoritus != null) {
oppiaineenSuoritusWSubject.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 (OppiaineenSuoritusWithSubject<AikuistenPerusopetuksenOppiaineenSuoritus> oppiaineenSuoritusWSubject : map.values()) {
AikuistenPerusopetuksenOppiaineenSuoritus oppiaineenSuoritus = oppiaineenSuoritusWSubject.getOppiaineenSuoritus();
if (CollectionUtils.isEmpty(oppiaineenSuoritus.getOsasuoritukset())) {
// Skip empty subjects
continue;
}
// Valmiille oppiaineelle on rustattava kokonaisarviointi
if (calculateMeanGrades) {
ArviointiasteikkoYleissivistava aineKeskiarvo = accomplished.contains(oppiaineenSuoritusWSubject) ? ArviointiasteikkoYleissivistava.GRADE_S : getSubjectMeanGrade(student, oppiaineenSuoritusWSubject.getSubject(), oppiaineenSuoritus);
if (ArviointiasteikkoYleissivistava.isNumeric(aineKeskiarvo)) {
KurssinArviointi arviointi = new KurssinArviointiNumeerinen(aineKeskiarvo, student.getStudyEndDate());
oppiaineenSuoritus.addArviointi(arviointi);
} else if (ArviointiasteikkoYleissivistava.isLiteral(aineKeskiarvo)) {
KurssinArviointi arviointi = new KurssinArviointiSanallinen(aineKeskiarvo, student.getStudyEndDate(), kuvaus("Suoritettu/Hylätty"));
oppiaineenSuoritus.addArviointi(arviointi);
}
}
results.add(oppiaineenSuoritus);
}
return results;
}
use of fi.otavanopisto.pyramus.koski.model.KurssinArviointi in project pyramus by otavanopisto.
the class KoskiLukio2019StudentTestsIT method testBasicInformation.
@Test
public void testBasicInformation() {
Person person = tools().createPerson();
Student student = tools().createStudent(person.getId(), 1l);
Course course = tools().createCourse(getClass().getSimpleName(), ORGANIZATIONID, 4l, 1);
CourseStudent courseStudent = tools().createCourseStudent(course.getId(), student.getId());
CourseAssessment courseAssessment = tools().createCourseAssessment(course.getId(), student.getId(), courseStudent.getId(), 7l);
try {
Response response = given().headers(getAuthHeaders()).get("/persons/persons/{ID}/oppija", person.getId());
response.then().statusCode(200);
Oppija oppija = response.getBody().as(Oppija.class);
assertNotNull(oppija);
assertEquals(1, oppija.getOpiskeluoikeudet().size());
assertTrue(oppija.getHenkilo() instanceof HenkiloTiedotJaOID);
HenkiloTiedotJaOID henkilo = (HenkiloTiedotJaOID) oppija.getHenkilo();
assertEquals(student.getFirstName(), henkilo.getEtunimet());
assertEquals(student.getLastName(), henkilo.getSukunimi());
Opiskeluoikeus opiskeluoikeus = oppija.getOpiskeluoikeudet().get(0);
assertTrue(opiskeluoikeus instanceof LukionOpiskeluoikeus);
assertEquals(OpiskeluoikeudenTyyppi.lukiokoulutus, opiskeluoikeus.getTyyppi().getValue());
assertEquals(toLocalDate(student.getStudyStartDate()), toLocalDate(opiskeluoikeus.getAlkamispaiva()));
assertEquals(toLocalDate(student.getStudyEndDate()), toLocalDate(opiskeluoikeus.getPaattymispaiva()));
LukionOpiskeluoikeus lukionOpiskeluoikeus = (LukionOpiskeluoikeus) opiskeluoikeus;
assertEquals(1, lukionOpiskeluoikeus.getSuoritukset().size());
LukionSuoritus lukionSuoritus = lukionOpiskeluoikeus.getSuoritukset().iterator().next();
assertEquals(SuorituksenTyyppi.lukionoppimaara, lukionSuoritus.getTyyppi().getValue());
assertTrue(lukionSuoritus instanceof LukionOppimaaranSuoritus);
LukionOppimaaranSuoritus lukionOppimaaranSuoritus = (LukionOppimaaranSuoritus) lukionSuoritus;
OrganisaationToimipisteOID toimipiste = (OrganisaationToimipisteOID) lukionSuoritus.getToimipiste();
assertEquals("1.1.000.000.00.00000000000", toimipiste.getOid());
assertEquals("70/011/2015", lukionOppimaaranSuoritus.getKoulutusmoduuli().getPerusteenDiaarinumero());
/**
* Subject
*/
assertEquals(1, lukionOppimaaranSuoritus.getOsasuoritukset().size());
LukionOsasuoritus subject = lukionOppimaaranSuoritus.getOsasuoritukset().iterator().next();
assertTrue(subject instanceof LukionOppiaineenSuoritus);
LukionOppiaineenSuoritus lukionOppiaineenSuoritus = (LukionOppiaineenSuoritus) subject;
assertEquals(1, lukionOppiaineenSuoritus.getOsasuoritukset().size());
LukionKurssinSuoritus lukionKurssinSuoritus = lukionOppiaineenSuoritus.getOsasuoritukset().get(0);
/**
* Grade
*/
assertEquals(1, lukionKurssinSuoritus.getArviointi().size());
KurssinArviointi kurssinArviointi = lukionKurssinSuoritus.getArviointi().get(0);
assertEquals(ArviointiasteikkoYleissivistava.GRADE_8, kurssinArviointi.getArvosana().getValue());
} finally {
tools().deleteCourseAssessment(course.getId(), student.getId(), courseAssessment);
tools().deleteCourseStudent(courseStudent);
tools().deleteCourse(course);
tools().deleteStudent(student);
tools().deletePerson(person);
}
}
Aggregations