use of org.olat.course.assessment.model.SearchAssessedIdentityParams in project openolat by klemens.
the class AssessedIdentityListProvider method getResult.
@Override
public void getResult(String searchValue, ListReceiver receiver) {
SearchAssessedIdentityParams params = new SearchAssessedIdentityParams(courseEntry, subIdent, referenceEntry, assessmentCallback);
params.setSearchString(searchValue);
int maxEntries = MAX_ENTRIES;
List<IdentityShort> res = assessmentToolManager.getShortAssessedIdentities(coach, params, maxEntries);
boolean hasMore = false;
for (Iterator<IdentityShort> it_res = res.iterator(); (hasMore = it_res.hasNext()) && maxEntries > 0; ) {
maxEntries--;
IdentityShort ident = it_res.next();
String key = ident.getKey().toString();
String displayKey = ident.getName();
String displayText = userManager.getUserDisplayName(ident);
receiver.addEntry(key, displayKey, displayText, CSSHelper.CSS_CLASS_USER);
}
if (hasMore) {
receiver.addEntry(".....", ".....");
}
}
use of org.olat.course.assessment.model.SearchAssessedIdentityParams in project openolat by klemens.
the class AssessmentToolManagerTest method assessmentTool_coach.
@Test
public void assessmentTool_coach() {
// course
Identity author = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-author-1");
ICourse course = CoursesWebService.createEmptyCourse(author, "course-assessment-tool", "course long name", null);
// members as participant and coach
Identity assessedIdentity1 = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-1");
Identity assessedIdentity2 = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-2");
Identity assessedIdentity3 = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-3");
Identity assessedIdentity4 = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-4");
Identity coach = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-coach-1");
RepositoryEntry entry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
BusinessGroup group1 = businessGroupDao.createAndPersist(null, "assessment-tool-bg-1", "assessment-tool-bg-1-desc", -1, -1, false, false, false, false, false);
businessGroupRelationDao.addRelationToResource(group1, entry);
BusinessGroup group2 = businessGroupDao.createAndPersist(null, "assessment-tool-bg-2", "assessment-tool-bg-2-desc", -1, -1, false, false, false, false, false);
businessGroupRelationDao.addRelationToResource(group2, entry);
businessGroupRelationDao.addRole(assessedIdentity1, group1, GroupRoles.participant.name());
businessGroupRelationDao.addRole(assessedIdentity2, group1, GroupRoles.participant.name());
businessGroupRelationDao.addRole(assessedIdentity3, group2, GroupRoles.participant.name());
businessGroupRelationDao.addRole(coach, group1, GroupRoles.coach.name());
dbInstance.commitAndCloseSession();
// some datas
assessmentEntryDao.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null);
assessmentEntryDao.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 5.0f, Boolean.TRUE, null, null);
assessmentEntryDao.createAssessmentEntry(assessedIdentity3, null, entry, subIdent, refEntry, 8.0f, Boolean.TRUE, null, null);
assessmentEntryDao.createAssessmentEntry(assessedIdentity4, null, entry, subIdent, refEntry, 9.0f, Boolean.TRUE, null, null);
assessmentEntryDao.createAssessmentEntry(null, UUID.randomUUID().toString(), entry, subIdent, refEntry);
dbInstance.commitAndCloseSession();
// coach of group 1 with id 1 and id2
List<BusinessGroup> coachedGroups = Collections.singletonList(group1);
AssessmentToolSecurityCallback assessmentCallback = new AssessmentToolSecurityCallback(false, false, false, true, coachedGroups);
SearchAssessedIdentityParams params = new SearchAssessedIdentityParams(entry, subIdent, refEntry, assessmentCallback);
// statistics
AssessmentStatistics statistics = assessmentToolManager.getStatistics(coach, params);
Assert.assertEquals(4.0d, statistics.getAverageScore().doubleValue(), 0.0001);
Assert.assertEquals(1, statistics.getCountFailed());
Assert.assertEquals(1, statistics.getCountPassed());
// check assessed identities list
List<Identity> assessedIdentities = assessmentToolManager.getAssessedIdentities(coach, params);
Assert.assertNotNull(assessedIdentities);
Assert.assertEquals(2, assessedIdentities.size());
// number of assessed identities
int numOfAssessedIdentities = assessmentToolManager.getNumberOfAssessedIdentities(coach, params);
Assert.assertEquals(2, numOfAssessedIdentities);
// check only the queries
AssessmentMembersStatistics participantStatistics = assessmentToolManager.getNumberOfParticipants(coach, params);
Assert.assertNotNull(participantStatistics);
int numOfInitialLanches = assessmentToolManager.getNumberOfInitialLaunches(coach, params);
// not launched, only simulated
Assert.assertEquals(0, numOfInitialLanches);
List<IdentityShort> assessedShortIdentities = assessmentToolManager.getShortAssessedIdentities(coach, params, 120);
Assert.assertNotNull(assessedShortIdentities);
Assert.assertEquals(2, assessedShortIdentities.size());
List<AssessmentEntry> assessmentEntries = assessmentToolManager.getAssessmentEntries(coach, params, AssessmentEntryStatus.notStarted);
Assert.assertNotNull(assessmentEntries);
Assert.assertEquals(0, assessmentEntries.size());
// separate check with more options in the search parameters
// add by group key
params.setBusinessGroupKeys(Collections.singletonList(group1.getKey()));
// assessed groups
List<AssessedBusinessGroup> assessedGroups = assessmentToolManager.getBusinessGroupStatistics(coach, params);
Assert.assertNotNull(assessedGroups);
Assert.assertEquals(1, assessedGroups.size());
// check assessed identities list
List<Identity> assessedIdentitiesAlt = assessmentToolManager.getAssessedIdentities(coach, params);
Assert.assertNotNull(assessedIdentitiesAlt);
Assert.assertEquals(2, assessedIdentitiesAlt.size());
// number of assessed identities
int numOfAssessedIdentitiesAlt = assessmentToolManager.getNumberOfAssessedIdentities(coach, params);
Assert.assertEquals(2, numOfAssessedIdentitiesAlt);
List<IdentityShort> assessedShortIdentitiesAlt = assessmentToolManager.getShortAssessedIdentities(coach, params, 120);
Assert.assertNotNull(assessedShortIdentitiesAlt);
Assert.assertEquals(2, assessedShortIdentitiesAlt.size());
List<AssessmentEntry> assessmentEntriesAlt = assessmentToolManager.getAssessmentEntries(coach, params, AssessmentEntryStatus.notStarted);
Assert.assertNotNull(assessmentEntriesAlt);
Assert.assertEquals(0, assessmentEntriesAlt.size());
}
use of org.olat.course.assessment.model.SearchAssessedIdentityParams in project openolat by klemens.
the class IdentityListCourseNodeController method getSearchParameters.
protected SearchAssessedIdentityParams getSearchParameters() {
SearchAssessedIdentityParams params = new SearchAssessedIdentityParams(courseEntry, courseNode.getIdent(), referenceEntry, assessmentCallback);
List<FlexiTableFilter> filters = tableEl.getSelectedFilters();
List<FlexiTableFilter> extendedFilters = tableEl.getSelectedExtendedFilters();
List<AssessmentEntryStatus> assessmentStatus = null;
if (filters != null && filters.size() > 0) {
assessmentStatus = new ArrayList<>(filters.size());
for (FlexiTableFilter filter : filters) {
if ("passed".equals(filter.getFilter())) {
params.setPassed(true);
} else if ("failed".equals(filter.getFilter())) {
params.setFailed(true);
} else if (AssessmentEntryStatus.isValueOf(filter.getFilter())) {
assessmentStatus.add(AssessmentEntryStatus.valueOf(filter.getFilter()));
}
}
}
params.setAssessmentStatus(assessmentStatus);
List<Long> businessGroupKeys = null;
if (group != null) {
businessGroupKeys = Collections.singletonList(group.getKey());
} else if (extendedFilters != null && extendedFilters.size() > 0) {
businessGroupKeys = new ArrayList<>(extendedFilters.size());
for (FlexiTableFilter extendedFilter : extendedFilters) {
if (StringHelper.isLong(extendedFilter.getFilter())) {
businessGroupKeys.add(Long.parseLong(extendedFilter.getFilter()));
}
}
}
params.setBusinessGroupKeys(businessGroupKeys);
params.setSearchString(tableEl.getQuickSearchString());
return params;
}
use of org.olat.course.assessment.model.SearchAssessedIdentityParams in project openolat by klemens.
the class IdentityListCourseNodeController method loadModel.
protected void loadModel(@SuppressWarnings("unused") UserRequest ureq) {
SearchAssessedIdentityParams params = getSearchParameters();
List<Identity> assessedIdentities = assessmentToolManager.getAssessedIdentities(getIdentity(), params);
List<AssessmentEntry> assessmentEntries = assessmentToolManager.getAssessmentEntries(getIdentity(), params, null);
Map<Long, AssessmentEntry> entryMap = new HashMap<>();
assessmentEntries.stream().filter(entry -> entry.getIdentity() != null).forEach((entry) -> entryMap.put(entry.getIdentity().getKey(), entry));
List<AssessedIdentityElementRow> rows = new ArrayList<>(assessedIdentities.size());
for (Identity assessedIdentity : assessedIdentities) {
AssessmentEntry entry = entryMap.get(assessedIdentity.getKey());
CompletionItem currentCompletion = new CompletionItem("current-completion-" + (++counter), getLocale());
if (entry != null) {
currentCompletion.setCompletion(entry.getCurrentRunCompletion());
AssessmentRunStatus status = entry.getCurrentRunStatus();
currentCompletion.setEnded(status != null && AssessmentRunStatus.done.equals(status));
}
FormLink toolsLink = uifactory.addFormLink("tools_" + (++counter), "tools", "", null, null, Link.NONTRANSLATED);
toolsLink.setIconLeftCSS("o_icon o_icon_actions o_icon-lg");
AssessedIdentityElementRow row = new AssessedIdentityElementRow(assessedIdentity, entry, currentCompletion, toolsLink, userPropertyHandlers, getLocale());
toolsLink.setUserObject(row);
rows.add(row);
}
usersTableModel.setObjects(rows);
List<FlexiTableFilter> filters = tableEl.getSelectedFilters();
if (filters != null && filters.size() > 0 && filters.get(0) != null) {
usersTableModel.filter(Collections.singletonList(filters.get(0)));
}
tableEl.reset();
tableEl.reloadData();
}
use of org.olat.course.assessment.model.SearchAssessedIdentityParams in project OpenOLAT by OpenOLAT.
the class AssessmentToolManagerTest method assessmentTool_coach.
@Test
public void assessmentTool_coach() {
// course
Identity author = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-author-1");
ICourse course = CoursesWebService.createEmptyCourse(author, "course-assessment-tool", "course long name", null);
// members as participant and coach
Identity assessedIdentity1 = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-1");
Identity assessedIdentity2 = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-2");
Identity assessedIdentity3 = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-3");
Identity assessedIdentity4 = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-4");
Identity coach = JunitTestHelper.createAndPersistIdentityAsRndUser("ast-coach-1");
RepositoryEntry entry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
BusinessGroup group1 = businessGroupDao.createAndPersist(null, "assessment-tool-bg-1", "assessment-tool-bg-1-desc", -1, -1, false, false, false, false, false);
businessGroupRelationDao.addRelationToResource(group1, entry);
BusinessGroup group2 = businessGroupDao.createAndPersist(null, "assessment-tool-bg-2", "assessment-tool-bg-2-desc", -1, -1, false, false, false, false, false);
businessGroupRelationDao.addRelationToResource(group2, entry);
businessGroupRelationDao.addRole(assessedIdentity1, group1, GroupRoles.participant.name());
businessGroupRelationDao.addRole(assessedIdentity2, group1, GroupRoles.participant.name());
businessGroupRelationDao.addRole(assessedIdentity3, group2, GroupRoles.participant.name());
businessGroupRelationDao.addRole(coach, group1, GroupRoles.coach.name());
dbInstance.commitAndCloseSession();
// some datas
assessmentEntryDao.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null);
assessmentEntryDao.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 5.0f, Boolean.TRUE, null, null);
assessmentEntryDao.createAssessmentEntry(assessedIdentity3, null, entry, subIdent, refEntry, 8.0f, Boolean.TRUE, null, null);
assessmentEntryDao.createAssessmentEntry(assessedIdentity4, null, entry, subIdent, refEntry, 9.0f, Boolean.TRUE, null, null);
assessmentEntryDao.createAssessmentEntry(null, UUID.randomUUID().toString(), entry, subIdent, refEntry);
dbInstance.commitAndCloseSession();
// coach of group 1 with id 1 and id2
List<BusinessGroup> coachedGroups = Collections.singletonList(group1);
AssessmentToolSecurityCallback assessmentCallback = new AssessmentToolSecurityCallback(false, false, false, true, coachedGroups);
SearchAssessedIdentityParams params = new SearchAssessedIdentityParams(entry, subIdent, refEntry, assessmentCallback);
// statistics
AssessmentStatistics statistics = assessmentToolManager.getStatistics(coach, params);
Assert.assertEquals(4.0d, statistics.getAverageScore().doubleValue(), 0.0001);
Assert.assertEquals(1, statistics.getCountFailed());
Assert.assertEquals(1, statistics.getCountPassed());
// check assessed identities list
List<Identity> assessedIdentities = assessmentToolManager.getAssessedIdentities(coach, params);
Assert.assertNotNull(assessedIdentities);
Assert.assertEquals(2, assessedIdentities.size());
// number of assessed identities
int numOfAssessedIdentities = assessmentToolManager.getNumberOfAssessedIdentities(coach, params);
Assert.assertEquals(2, numOfAssessedIdentities);
// check only the queries
AssessmentMembersStatistics participantStatistics = assessmentToolManager.getNumberOfParticipants(coach, params);
Assert.assertNotNull(participantStatistics);
int numOfInitialLanches = assessmentToolManager.getNumberOfInitialLaunches(coach, params);
// not launched, only simulated
Assert.assertEquals(0, numOfInitialLanches);
List<IdentityShort> assessedShortIdentities = assessmentToolManager.getShortAssessedIdentities(coach, params, 120);
Assert.assertNotNull(assessedShortIdentities);
Assert.assertEquals(2, assessedShortIdentities.size());
List<AssessmentEntry> assessmentEntries = assessmentToolManager.getAssessmentEntries(coach, params, AssessmentEntryStatus.notStarted);
Assert.assertNotNull(assessmentEntries);
Assert.assertEquals(0, assessmentEntries.size());
// separate check with more options in the search parameters
// add by group key
params.setBusinessGroupKeys(Collections.singletonList(group1.getKey()));
// assessed groups
List<AssessedBusinessGroup> assessedGroups = assessmentToolManager.getBusinessGroupStatistics(coach, params);
Assert.assertNotNull(assessedGroups);
Assert.assertEquals(1, assessedGroups.size());
// check assessed identities list
List<Identity> assessedIdentitiesAlt = assessmentToolManager.getAssessedIdentities(coach, params);
Assert.assertNotNull(assessedIdentitiesAlt);
Assert.assertEquals(2, assessedIdentitiesAlt.size());
// number of assessed identities
int numOfAssessedIdentitiesAlt = assessmentToolManager.getNumberOfAssessedIdentities(coach, params);
Assert.assertEquals(2, numOfAssessedIdentitiesAlt);
List<IdentityShort> assessedShortIdentitiesAlt = assessmentToolManager.getShortAssessedIdentities(coach, params, 120);
Assert.assertNotNull(assessedShortIdentitiesAlt);
Assert.assertEquals(2, assessedShortIdentitiesAlt.size());
List<AssessmentEntry> assessmentEntriesAlt = assessmentToolManager.getAssessmentEntries(coach, params, AssessmentEntryStatus.notStarted);
Assert.assertNotNull(assessmentEntriesAlt);
Assert.assertEquals(0, assessmentEntriesAlt.size());
}
Aggregations