// Intro page, static
index = createVelocityContainer("assessment_index");
Identity focusOnIdentity = null;
ICourse course = CourseFactory.loadCourse(ores);
boolean hasAssessableNodes = course.hasAssessableNodes();
if (hasAssessableNodes) {
BusinessControl bc = getWindowControl().getBusinessControl();
ContextEntry ceIdentity = bc.popLauncherContextEntry();
if (ceIdentity != null) {
OLATResourceable oresIdentity = ceIdentity.getOLATResourceable();
if (OresHelper.isOfType(oresIdentity, Identity.class)) {
Long identityKey = oresIdentity.getResourceableId();
focusOnIdentity = ManagerFactory.getManager().loadIdentityByKey(identityKey);
}
}
index.contextPut("hasAssessableNodes", Boolean.TRUE);
// --- assessment notification subscription ---
AssessmentNotificationsHandler anh = AssessmentNotificationsHandler.getInstance();
SubscriptionContext subsContext = anh.getAssessmentSubscriptionContext(ureq.getIdentity(), course);
if (subsContext != null) {
PublisherData pData = anh.getAssessmentPublisherData(course, wControl.getBusinessControl().getAsString());
csc = new ContextualSubscriptionController(ureq, getWindowControl(), subsContext, pData);
listenTo(csc); // cleanup on dispose
index.put("assessmentSubscription", csc.getInitialComponent());
}
// Wrapper container: adds header
wrapper = createVelocityContainer("wrapper");
// Init the group and the user chooser view velocity container
groupChoose = createVelocityContainer("groupchoose");
allUsersButton = LinkFactory.createButtonSmall("cmd.all.users", groupChoose, this);
groupChoose.contextPut("isFiltering", Boolean.TRUE);
backLinkGC = LinkFactory.createLinkBack(groupChoose, this);
userChoose = createVelocityContainer("userchoose");
showAllCourseNodesButton = LinkFactory.createButtonSmall("cmd.showAllCourseNodes", userChoose, this);
filterCourseNodesButton = LinkFactory.createButtonSmall("cmd.filterCourseNodes", userChoose, this);
userChoose.contextPut("isFiltering", Boolean.TRUE);
backLinkUC = LinkFactory.createLinkBack(userChoose, this);
nodeChoose = createVelocityContainer("nodechoose");
// Initialize all groups that the user is allowed to coach
coachedGroups = getAllowedGroupsFromGroupmanagement(ureq.getIdentity());
// preload the assessment cache to speed up everything as background thread
// the thread will terminate when finished
assessmentCachPreloaderThread = new AssessmentCachePreloadThread("assessmentCachPreloader-" + course.getResourceableId());
assessmentCachPreloaderThread.setDaemon(true);
assessmentCachPreloaderThread.start();
} else {
index.contextPut("hasAssessableNodes", Boolean.FALSE);
}
// Navigation menu
menuTree = new MenuTree("menuTree");
TreeModel tm = buildTreeModel(hasAssessableNodes);
menuTree.setTreeModel(tm);
menuTree.setSelectedNodeId(tm.getRootNode().getIdent());
menuTree.addListener(this);
// Tool and action box
toolC = ToolFactory.createToolController(getWindowControl());
listenTo(toolC);
toolC.addHeader(translate("tool.name"));
toolC.addLink("cmd.close", translate("command.closeassessment"), null, "b_toolbox_close");
// Start on index page
main.setContent(index);
LayoutMain3ColsController columLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), menuTree, toolC.getInitialComponent(), main, "course" + course.getResourceableId());
listenTo(columLayoutCtr); // cleanup on dispose
putInitialPanel(columLayoutCtr.getInitialComponent());
if(focusOnIdentity != null) {
//fill the user list for the
this.mode = MODE_USERFOCUS;
this.identitiesList = getAllIdentitisFromGroupmanagement();
doSimpleUserChoose(ureq, this.identitiesList);
GenericTreeModel menuTreeModel = (GenericTreeModel)menuTree.getTreeModel();
TreeNode userNode = menuTreeModel.findNodeByUserObject(CMD_USERFOCUS);
if(userNode != null) {
menuTree.setSelectedNode(userNode);
}
// select user
this.assessedIdentityWrapper = AssessmentHelper.wrapIdentity(focusOnIdentity, this.localUserCourseEnvironmentCache, course, null);
UserCourseEnvironment chooseUserCourseEnv = assessedIdentityWrapper.getUserCourseEnvironment();
identityAssessmentController = new IdentityAssessmentEditController(getWindowControl(),ureq, chooseUserCourseEnv, course, true);
listenTo(identityAssessmentController);
setContent(identityAssessmentController.getInitialComponent());
}
// Register for assessment changed events
course.getCourseEnvironment().getAssessmentManager().registerForAssessmentChangeEvents(this, ureq.getIdentity());
}