use of org.olat.modules.lecture.LectureBlock in project OpenOLAT by OpenOLAT.
the class AbstractLectureBlockAuditLogExport method getLectureBlockTitle.
private String getLectureBlockTitle(Long lectureBlockKey) {
if (lectureBlockKey == null)
return null;
String title = lectureBlockTitles.get(lectureBlockKey);
if (title == null) {
LectureBlock block = lectureService.getLectureBlock(new LectureBlockRefForLog(lectureBlockKey));
if (block == null) {
title = lectureBlockKey.toString();
} else {
title = block.getTitle();
}
lectureBlockTitles.put(lectureBlockKey, title);
}
return title;
}
use of org.olat.modules.lecture.LectureBlock in project OpenOLAT by OpenOLAT.
the class TeacherOverviewController method getRows.
@Override
protected List<LectureBlockRow> getRows(LecturesBlockSearchParameters searchParams) {
Identity filterByTeacher = ((Boolean) allTeachersSwitch.getUserObject()).booleanValue() ? null : getIdentity();
List<LectureBlockWithTeachers> blocksWithTeachers = lectureService.getLectureBlocksWithTeachers(entry, filterByTeacher, searchParams);
// only show the start button if
List<LectureBlockRow> rows = new ArrayList<>(blocksWithTeachers.size());
if (ConfigurationHelper.isRollCallEnabled(entryConfig, lectureModule)) {
for (LectureBlockWithTeachers blockWithTeachers : blocksWithTeachers) {
LectureBlock block = blockWithTeachers.getLectureBlock();
StringBuilder teachers = new StringBuilder(32);
List<Identity> teacherList = blockWithTeachers.getTeachers();
String separator = translate("user.fullname.separator");
for (Identity teacher : blockWithTeachers.getTeachers()) {
if (teachers.length() > 0)
teachers.append(" ").append(separator).append(" ");
teachers.append(userManager.getUserDisplayName(teacher));
}
rows.add(new LectureBlockRow(block, entry.getDisplayname(), entry.getExternalRef(), teachers.toString(), teacherList.contains(getIdentity())));
}
}
return rows;
}
use of org.olat.modules.lecture.LectureBlock in project OpenOLAT by OpenOLAT.
the class LectureBlockRollCallDAO method getParticipantLectureBlockAndRollCalls.
public List<LectureBlockAndRollCall> getParticipantLectureBlockAndRollCalls(RepositoryEntryRef entry, IdentityRef identity, String teacherSeaparator) {
StringBuilder sb = new StringBuilder();
sb.append("select block, call, re.displayname").append(" from lectureblock block").append(" inner join block.entry re").append(" inner join block.groups blockToGroup").append(" inner join blockToGroup.group bGroup").append(" inner join bGroup.members membership").append(" inner join lectureparticipantsummary as summary on (summary.identity.key=membership.identity.key and summary.entry.key=block.entry.key)").append(" left join lectureblockrollcall as call on (call.identity.key=membership.identity.key and call.lectureBlock.key=block.key)").append(" where membership.identity.key=:identityKey and membership.role='").append(GroupRoles.participant.name()).append("'").append(" and block.entry.key=:repoEntryKey and block.endDate>=summary.firstAdmissionDate");
List<Object[]> rawObjects = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), Object[].class).setParameter("identityKey", identity.getKey()).setParameter("repoEntryKey", entry.getKey()).getResultList();
Map<Long, LectureBlockAndRollCall> blockToRollCallMap = new HashMap<>();
for (Object[] objects : rawObjects) {
int pos = 0;
LectureBlock block = (LectureBlock) objects[pos++];
LectureBlockRollCall rollCall = (LectureBlockRollCall) objects[pos++];
String displayname = (String) objects[pos++];
blockToRollCallMap.put(block.getKey(), new LectureBlockAndRollCall(displayname, block, rollCall));
}
appendCoaches(entry, blockToRollCallMap, teacherSeaparator);
return new ArrayList<>(blockToRollCallMap.values());
}
use of org.olat.modules.lecture.LectureBlock in project OpenOLAT by OpenOLAT.
the class LecturesBlocksRootTest method createLectureBlock.
private LectureBlock createLectureBlock(RepositoryEntry entry) {
LectureBlock lectureBlock = lectureService.createLectureBlock(entry);
lectureBlock.setStartDate(new Date());
lectureBlock.setEndDate(new Date());
lectureBlock.setTitle("Hello lecturers");
lectureBlock.setPlannedLecturesNumber(4);
return lectureService.save(lectureBlock, null);
}
use of org.olat.modules.lecture.LectureBlock in project OpenOLAT by OpenOLAT.
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);
}
Aggregations