use of org.olat.modules.portfolio.Page in project openolat by klemens.
the class AbstractPageListController method doOpenRow.
protected void doOpenRow(UserRequest ureq, PortfolioElementRow row, boolean newElement) {
if (row.isPage()) {
Page reloadedPage = portfolioService.getPageByKey(row.getKey());
doOpenPage(ureq, reloadedPage, newElement);
} else if (row.isPendingAssignment()) {
if (secCallback.canNewAssignment()) {
doEditAssignment(ureq, row);
} else {
// TODO portfolio
}
}
}
use of org.olat.modules.portfolio.Page in project openolat by klemens.
the class AccessRightsEditController method initForm.
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
if (member != null && formLayout instanceof FormLayoutContainer) {
FormLayoutContainer layoutCont = (FormLayoutContainer) formLayout;
Controller portraitCtr = new DisplayPortraitController(ureq, getWindowControl(), member, true, true);
layoutCont.getFormItemComponent().put("portrait", portraitCtr.getInitialComponent());
listenTo(portraitCtr);
Controller userShortDescrCtr = new UserShortDescription(ureq, getWindowControl(), member);
layoutCont.getFormItemComponent().put("userShortDescription", userShortDescrCtr.getInitialComponent());
listenTo(userShortDescrCtr);
}
selectAll = uifactory.addFormLink("form.checkall", "form.checkall", null, formLayout, Link.LINK);
selectAll.setIconLeftCSS("o_icon o_icon-sm o_icon_check_on");
deselectAll = uifactory.addFormLink("form.uncheckall", "form.uncheckall", null, formLayout, Link.LINK);
deselectAll.setIconLeftCSS("o_icon o_icon-sm o_icon_check_off");
// binder
MultipleSelectionElement coachEl = uifactory.addCheckboxesHorizontal("access-" + (counter++), null, formLayout, theKeys, theValues);
coachEl.addActionListener(FormEvent.ONCHANGE);
coachEl.setVisible(grading);
MultipleSelectionElement reviewerEl = uifactory.addCheckboxesHorizontal("access-" + (counter++), null, formLayout, theKeys, theValues);
reviewerEl.addActionListener(FormEvent.ONCHANGE);
binderRow = new BinderAccessRightsRow(coachEl, reviewerEl, binder);
coachEl.setUserObject(binderRow);
reviewerEl.setUserObject(binderRow);
// sections
List<Section> sections = portfolioService.getSections(binder);
Map<Long, SectionAccessRightsRow> sectionMap = new HashMap<>();
for (Section section : sections) {
MultipleSelectionElement sectionCoachEl = uifactory.addCheckboxesHorizontal("access-" + (counter++), null, formLayout, theKeys, theValues);
sectionCoachEl.addActionListener(FormEvent.ONCHANGE);
sectionCoachEl.setVisible(grading);
MultipleSelectionElement sectionReviewerEl = uifactory.addCheckboxesHorizontal("access-" + (counter++), null, formLayout, theKeys, theValues);
sectionReviewerEl.addActionListener(FormEvent.ONCHANGE);
SectionAccessRightsRow sectionRow = new SectionAccessRightsRow(sectionCoachEl, sectionReviewerEl, section, binderRow);
binderRow.getSections().add(sectionRow);
sectionMap.put(section.getKey(), sectionRow);
sectionCoachEl.setUserObject(sectionRow);
sectionReviewerEl.setUserObject(sectionRow);
}
// pages
List<Page> pages = portfolioService.getPages(binder, null);
for (Page page : pages) {
Section section = page.getSection();
SectionAccessRightsRow sectionRow = sectionMap.get(section.getKey());
MultipleSelectionElement pageCoachEl = uifactory.addCheckboxesHorizontal("access-" + (counter++), null, formLayout, theKeys, theValues);
pageCoachEl.addActionListener(FormEvent.ONCHANGE);
pageCoachEl.setVisible(grading);
MultipleSelectionElement pageReviewerEl = uifactory.addCheckboxesHorizontal("access-" + (counter++), null, formLayout, theKeys, theValues);
pageReviewerEl.addActionListener(FormEvent.ONCHANGE);
PortfolioElementAccessRightsRow pageRow = new PortfolioElementAccessRightsRow(pageCoachEl, pageReviewerEl, page, sectionRow);
sectionRow.getPages().add(pageRow);
pageCoachEl.setUserObject(pageRow);
pageReviewerEl.setUserObject(pageRow);
}
if (formLayout instanceof FormLayoutContainer) {
FormLayoutContainer layoutCont = (FormLayoutContainer) formLayout;
layoutCont.contextPut("binderRow", binderRow);
layoutCont.contextPut("grading", new Boolean(grading));
}
if (hasButtons) {
FormLayoutContainer buttonsCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
formLayout.add(buttonsCont);
buttonsCont.setRootForm(mainForm);
formLayout.add("buttons", buttonsCont);
uifactory.addFormCancelButton("cancel", buttonsCont, ureq, getWindowControl());
removeLink = uifactory.addFormLink("remove", buttonsCont, Link.BUTTON);
if (canEdit) {
uifactory.addFormSubmitButton("save", buttonsCont);
}
}
}
use of org.olat.modules.portfolio.Page in project openolat by klemens.
the class BinderAssessmentController method loadModel.
private void loadModel() {
List<AssessmentSection> aSections = portfolioService.getAssessmentSections(binder, null);
Map<Section, AssessmentSection> aSectionsMap = new HashMap<>();
for (AssessmentSection aSection : aSections) {
aSectionsMap.put(aSection.getSection(), aSection);
}
// binder done only is an owner is present
// and all owners have done the binder
boolean binderDone = false;
List<Identity> assessedIdentities = portfolioService.getMembers(binder, PortfolioRoles.owner.name());
int countDone = 0;
for (Identity assessedIdentity : assessedIdentities) {
AssessmentEntryStatus status = portfolioService.getAssessmentStatus(assessedIdentity, binder);
if (status == AssessmentEntryStatus.done) {
countDone++;
}
}
binderDone = (countDone > 0 && countDone == assessedIdentities.size());
boolean allClosed = true;
List<Section> sections = portfolioService.getSections(binder);
List<AssessmentSectionWrapper> rows = new ArrayList<>();
Map<Section, AssessmentSectionWrapper> sectionToRows = new HashMap<>();
for (Section section : sections) {
AssessmentSection assessmentSection = aSectionsMap.get(section);
AssessmentSectionWrapper row = new AssessmentSectionWrapper(section, assessmentSection);
sectionToRows.put(section, row);
if (secCallback.canViewAssess(section) || secCallback.canAssess(section)) {
rows.add(row);
}
allClosed &= section.getSectionStatus() == SectionStatus.closed;
}
List<Page> pages = portfolioService.getPages(binder, null);
for (Page page : pages) {
AssessmentSectionWrapper row = sectionToRows.get(page.getSection());
if (row != null) {
row.setNumOfPages(row.getNumOfPages() + 1);
}
}
boolean allowedToAssess = false;
boolean allowedToAssessBinder = secCallback.canAssess(binder);
for (AssessmentSectionWrapper row : rows) {
boolean canAssess = secCallback.canAssess(row.getSection());
if (canAssess && !binderDone) {
forgeAssessmentSection(row);
allowedToAssess = true;
}
}
reopenLink.setVisible(allowedToAssessBinder && binderDone);
saveAndDoneLink.setVisible(allowedToAssessBinder && !binderDone && allClosed);
saveButton.setVisible(allowedToAssess);
cancelButton.setVisible(allowedToAssess);
model.setObjects(rows);
tableEl.reset();
tableEl.reloadData();
}
use of org.olat.modules.portfolio.Page in project openolat by klemens.
the class BinderOnePageController method loadMetadataAndComponents.
private void loadMetadataAndComponents(UserRequest ureq, BinderRef binderRef) {
Binder binder = portfolioService.getBinderByKey(binderRef.getKey());
// load metadata
List<Identity> owners = portfolioService.getMembers(binder, PortfolioRoles.owner.name());
StringBuilder ownerSb = new StringBuilder();
for (Identity owner : owners) {
if (ownerSb.length() > 0)
ownerSb.append(", ");
ownerSb.append(userManager.getUserDisplayName(owner));
}
mainVC.contextPut("owners", ownerSb.toString());
mainVC.contextPut("binderTitle", binder.getTitle());
mainVC.contextPut("binderKey", binder.getKey());
// load pages
List<Section> sections = portfolioService.getSections(binder);
List<Page> pages = portfolioService.getPages(binder, null);
for (Section section : sections) {
loadSection(section);
for (Page page : pages) {
if (section.equals(page.getSection())) {
loadPage(ureq, page);
}
}
}
}
use of org.olat.modules.portfolio.Page in project openolat by klemens.
the class PortfolioNotificationsHandler method getCommentNotifications.
public List<SubscriptionListItem> getCommentNotifications(Binder binder, BinderSecurityCallback secCallback, Date compareDate, String rootBusinessPath, Translator translator) {
StringBuilder sb = new StringBuilder();
sb.append("select").append(" comment.id as commentId,").append(" comment.creationDate as commentDate,").append(" author.key as authorKey,").append(" author.name as authorName,").append(" authorUser.firstName as authorFirstName,").append(" authorUser.lastName as authorLastName, ").append(" page").append(" from usercomment as comment").append(" inner join comment.creator as author").append(" inner join author.user as authorUser").append(" inner join pfpage as page on (comment.resId=page.key and comment.resName='Page')").append(" inner join fetch pfsection as section on (section.key = page.section.key)").append(" inner join fetch pfbinder as binder on (binder.key=section.binder.key)").append(" where binder.key=:binderKey and comment.creationDate>=:compareDate");
List<Object[]> objects = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), Object[].class).setParameter("binderKey", binder.getKey()).setParameter("compareDate", compareDate).getResultList();
List<SubscriptionListItem> items = new ArrayList<>(objects.size());
for (Object[] object : objects) {
Long commentId = (Long) object[0];
Date commentDate = (Date) object[1];
NotificationIdentityNames author = getIdentityNames(object, 2);
Page page = (Page) object[6];
Long pageKey = page.getKey();
String pageTitle = page.getTitle();
if (secCallback.canViewElement(page)) {
String bPath = rootBusinessPath + "[Page:" + pageKey + "][Comment:" + commentId + "]";
String linkUrl = BusinessControlFactory.getInstance().getURLFromBusinessPathString(bPath);
String[] title = new String[] { pageTitle, userManager.getUserDisplayName(author) };
SubscriptionListItem item = new SubscriptionListItem(translator.translate("notifications.new.comment", title), linkUrl, bPath, commentDate, "o_icon_comments");
item.setUserObject(pageKey);
items.add(item);
}
}
return items;
}
Aggregations