use of org.olat.modules.lecture.LectureBlockRollCall in project openolat by klemens.
the class LectureBlockRollCallDAOTest method createAndPersistRollCall.
@Test
public void createAndPersistRollCall() {
LectureBlock lectureBlock = createMinimalLectureBlock(2);
Identity id = JunitTestHelper.createAndPersistIdentityAsRndUser("lecturer-1");
dbInstance.commitAndCloseSession();
LectureBlockRollCall rollCall = lectureBlockRollCallDao.createAndPersistRollCall(lectureBlock, id, null, null, null, null);
dbInstance.commitAndCloseSession();
Assert.assertNotNull(rollCall);
Assert.assertNotNull(rollCall.getKey());
Assert.assertNotNull(rollCall.getCreationDate());
Assert.assertNotNull(rollCall.getLastModified());
Assert.assertEquals(lectureBlock, rollCall.getLectureBlock());
Assert.assertEquals(id, rollCall.getIdentity());
}
use of org.olat.modules.lecture.LectureBlockRollCall in project openolat by klemens.
the class LectureBlockRollCallDAOTest method adaptLectures_removeAbsences.
@Test
public void adaptLectures_removeAbsences() {
LectureBlock lectureBlock = createMinimalLectureBlock(4);
Identity id = JunitTestHelper.createAndPersistIdentityAsRndUser("lecturer-1");
dbInstance.commitAndCloseSession();
List<Integer> absences = Arrays.asList(0, 1, 2, 3);
LectureBlockRollCall rollCall = lectureBlockRollCallDao.createAndPersistRollCall(lectureBlock, id, null, null, null, absences);
dbInstance.commitAndCloseSession();
LectureBlockRollCall reloadRollCall = lectureBlockRollCallDao.loadByKey(rollCall.getKey());
Assert.assertNotNull(reloadRollCall);
Assert.assertEquals(4, reloadRollCall.getLecturesAbsentNumber());
// adapt the number of lectures
LectureBlockRollCall adaptedCall = lectureBlockRollCallDao.adaptLecture(lectureBlock, reloadRollCall, 2, id);
dbInstance.commitAndCloseSession();
// check absence
Assert.assertEquals(2, adaptedCall.getLecturesAbsentNumber());
List<Integer> absenceList = adaptedCall.getLecturesAbsentList();
Assert.assertNotNull(absenceList);
Assert.assertEquals(2, absenceList.size());
Assert.assertEquals(0, absenceList.get(0).intValue());
Assert.assertEquals(1, absenceList.get(1).intValue());
// check attendee
Assert.assertEquals(0, reloadRollCall.getLecturesAttendedNumber());
List<Integer> attendeeList = reloadRollCall.getLecturesAttendedList();
Assert.assertNotNull(attendeeList);
Assert.assertEquals(0, attendeeList.size());
}
use of org.olat.modules.lecture.LectureBlockRollCall in project openolat by klemens.
the class LecturesBlockRollCallTest method getRollCallByKey.
@Test
public void getRollCallByKey() throws IOException, URISyntaxException {
// a closed lecture block
LectureBlock lectureBlock = createMinimalLectureBlock(3);
Identity id = JunitTestHelper.createAndPersistIdentityAsRndUser("lecturer-1");
dbInstance.commit();
List<Integer> absences = Arrays.asList(1, 2);
LectureBlockRollCall rollCall = lectureBlockRollCallDao.createAndPersistRollCall(lectureBlock, id, null, null, null, absences);
dbInstance.commitAndCloseSession();
// GET REST call
RestConnection conn = new RestConnection();
Assert.assertTrue(conn.login("administrator", "openolat"));
URI uri = UriBuilder.fromUri(getContextURI()).path("repo").path("lectures").path("rollcalls").path(rollCall.getKey().toString()).build();
HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(method);
Assert.assertEquals(200, response.getStatusLine().getStatusCode());
LectureBlockRollCallVO rollCallVo = conn.parse(response, LectureBlockRollCallVO.class);
Assert.assertNotNull(rollCallVo);
Assert.assertEquals(rollCall.getKey(), rollCallVo.getKey());
}
use of org.olat.modules.lecture.LectureBlockRollCall in project openolat by klemens.
the class LecturesBlockRollCallTest method getRollCalls_searchParams_True.
@Test
public void getRollCalls_searchParams_True() throws IOException, URISyntaxException {
// an open lecture block
LectureBlock openLectureBlock = createMinimalLectureBlock(3);
Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("lecturer-1");
Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("lecturer-2");
dbInstance.commitAndCloseSession();
// a closed lecture block
LectureBlock closedLectureBlock = createMinimalLectureBlock(3);
dbInstance.commitAndCloseSession();
closedLectureBlock.setStatus(LectureBlockStatus.done);
closedLectureBlock.setRollCallStatus(LectureRollCallStatus.closed);
lectureBlockDao.update(closedLectureBlock);
List<Integer> absences = Arrays.asList(1, 2);
LectureBlockRollCall rollCall1 = lectureBlockRollCallDao.createAndPersistRollCall(closedLectureBlock, id1, null, null, null, Collections.emptyList());
LectureBlockRollCall rollCall2 = lectureBlockRollCallDao.createAndPersistRollCall(closedLectureBlock, id2, null, null, null, absences);
LectureBlockRollCall rollCall3 = lectureBlockRollCallDao.createAndPersistRollCall(openLectureBlock, id1, null, null, null, absences);
LectureBlockRollCall rollCall4 = lectureBlockRollCallDao.createAndPersistRollCall(openLectureBlock, id2, null, null, null, Collections.emptyList());
dbInstance.commit();
rollCall2.setAbsenceSupervisorNotificationDate(new Date());
rollCall2 = lectureBlockRollCallDao.update(rollCall2);
dbInstance.commitAndCloseSession();
// REST call
RestConnection conn = new RestConnection();
Assert.assertTrue(conn.login("administrator", "openolat"));
URI uri = UriBuilder.fromUri(getContextURI()).path("repo").path("lectures").path("rollcalls").queryParam("hasAbsences", "true").queryParam("closed", "true").queryParam("hasSupervisorNotificationDate", "true").build();
HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(method);
Assert.assertEquals(200, response.getStatusLine().getStatusCode());
List<LectureBlockRollCallVO> voList = parseLectureBlockRollCallArray(response.getEntity().getContent());
Assert.assertNotNull(voList);
// check the return values
List<Long> rollCallVoKeys = voList.stream().map(vo -> vo.getKey()).collect(Collectors.toList());
Assert.assertFalse(rollCallVoKeys.contains(rollCall1.getKey()));
Assert.assertTrue(rollCallVoKeys.contains(rollCall2.getKey()));
Assert.assertFalse(rollCallVoKeys.contains(rollCall3.getKey()));
Assert.assertFalse(rollCallVoKeys.contains(rollCall4.getKey()));
// check that roll call 2 has a date
boolean found = false;
for (LectureBlockRollCallVO vo : voList) {
if (vo.getKey().equals(rollCall2.getKey()) && vo.getAbsenceSupervisorNotificationDate() != null) {
found = true;
}
}
Assert.assertTrue(found);
}
use of org.olat.modules.lecture.LectureBlockRollCall in project openolat by klemens.
the class LectureBlockExport method addContent.
private void addContent(OpenXMLWorksheet exportSheet) {
List<Identity> participants = lectureService.getParticipants(lectureBlock);
List<LectureBlockRollCall> rollCalls = lectureService.getRollCalls(lectureBlock);
Map<Identity, LectureBlockRollCall> participantToRollCallMap = rollCalls.stream().collect(Collectors.toMap(r -> r.getIdentity(), r -> r));
for (Identity participant : participants) {
Row row = exportSheet.newRow();
int pos = 0;
if (isAdministrativeUser) {
row.addCell(pos++, participant.getName());
}
for (UserPropertyHandler userPropertyHandler : userPropertyHandlers) {
if (userPropertyHandler == null)
continue;
String val = userPropertyHandler.getUserProperty(participant.getUser(), translator.getLocale());
row.addCell(pos++, val);
}
LectureBlockRollCall rollCall = participantToRollCallMap.get(participant);
if (rollCall != null) {
List<Integer> absentList = rollCall.getLecturesAbsentList();
for (int i = 0; i < lectureBlock.getPlannedLecturesNumber(); i++) {
String val = absentList.contains(i) ? "x" : null;
row.addCell(pos++, val);
}
if (authorizedAbsenceEnabled && rollCall.getAbsenceAuthorized() != null && rollCall.getAbsenceAuthorized().booleanValue()) {
row.addCell(pos++, "x");
row.addCell(pos++, rollCall.getAbsenceReason());
}
}
}
}
Aggregations