Skip to content
Snippets Groups Projects
Commit 307a375d authored by srosse's avatar srosse
Browse files

OO-4067: tab curriculum in user overview of user management

parent 2ce9dbb4
No related branches found
No related tags found
No related merge requests found
...@@ -64,6 +64,8 @@ import org.olat.core.util.vfs.QuotaManager; ...@@ -64,6 +64,8 @@ import org.olat.core.util.vfs.QuotaManager;
import org.olat.course.certificate.ui.CertificateAndEfficiencyStatementListController; import org.olat.course.certificate.ui.CertificateAndEfficiencyStatementListController;
import org.olat.ldap.LDAPLoginManager; import org.olat.ldap.LDAPLoginManager;
import org.olat.ldap.LDAPLoginModule; import org.olat.ldap.LDAPLoginModule;
import org.olat.modules.curriculum.CurriculumModule;
import org.olat.modules.curriculum.ui.CurriculumListController;
import org.olat.modules.lecture.LectureModule; import org.olat.modules.lecture.LectureModule;
import org.olat.modules.lecture.ui.ParticipantLecturesOverviewController; import org.olat.modules.lecture.ui.ParticipantLecturesOverviewController;
import org.olat.modules.taxonomy.TaxonomyModule; import org.olat.modules.taxonomy.TaxonomyModule;
...@@ -100,7 +102,7 @@ public class UserAdminController extends BasicController implements Activateable ...@@ -100,7 +102,7 @@ public class UserAdminController extends BasicController implements Activateable
private static final String NLS_FOUND_PROPERTY = "found.property"; private static final String NLS_FOUND_PROPERTY = "found.property";
private static final String NLS_EDIT_UPROFILE = "edit.uprofile"; private static final String NLS_EDIT_UPROFILE = "edit.uprofile";
private static final String NLS_EDIT_UPREFS = "edit.uprefs"; private static final String NLS_EDIT_UPREFS = "edit.uprefs";
private static final String NLS_EDIT_UPCRED = "edit.upwd"; private static final String NLS_EDIT_UPCRED = "edit.upwd";
private static final String NLS_EDIT_UAUTH = "edit.uauth"; private static final String NLS_EDIT_UAUTH = "edit.uauth";
private static final String NLS_EDIT_UPROP = "edit.uprop"; private static final String NLS_EDIT_UPROP = "edit.uprop";
private static final String NLS_EDIT_UROLES = "edit.uroles"; private static final String NLS_EDIT_UROLES = "edit.uroles";
...@@ -112,7 +114,8 @@ public class UserAdminController extends BasicController implements Activateable ...@@ -112,7 +114,8 @@ public class UserAdminController extends BasicController implements Activateable
private static final String NLS_VIEW_EFF_STATEMENTS = "view.effStatements"; private static final String NLS_VIEW_EFF_STATEMENTS = "view.effStatements";
private static final String NLS_VIEW_SUBSCRIPTIONS = "view.subscriptions"; private static final String NLS_VIEW_SUBSCRIPTIONS = "view.subscriptions";
private static final String NLS_VIEW_LECTURES = "view.lectures"; private static final String NLS_VIEW_LECTURES = "view.lectures";
private static final String NLS_VIEW_COMPETENCES = "view.competences"; private static final String NLS_VIEW_COMPETENCES = "view.competences";
private static final String NLS_VIEW_CURRICULUM = "view.curriculum";
private VelocityContainer myContent; private VelocityContainer myContent;
private final TooledStackedPanel stackPanel; private final TooledStackedPanel stackPanel;
...@@ -126,6 +129,7 @@ public class UserAdminController extends BasicController implements Activateable ...@@ -126,6 +129,7 @@ public class UserAdminController extends BasicController implements Activateable
// controllers used in tabbed pane // controllers used in tabbed pane
private TabbedPane userTabP; private TabbedPane userTabP;
private Controller prefsCtr, propertiesCtr, pwdCtr, quotaCtr, rolesCtr, userShortDescrCtr; private Controller prefsCtr, propertiesCtr, pwdCtr, quotaCtr, rolesCtr, userShortDescrCtr;
private CurriculumListController curriculumCtr;
private UserRelationsController relationsCtrl; private UserRelationsController relationsCtrl;
private DisplayPortraitController portraitCtr; private DisplayPortraitController portraitCtr;
private UserAuthenticationsEditorController authenticationsCtr; private UserAuthenticationsEditorController authenticationsCtr;
...@@ -156,6 +160,8 @@ public class UserAdminController extends BasicController implements Activateable ...@@ -156,6 +160,8 @@ public class UserAdminController extends BasicController implements Activateable
@Autowired @Autowired
private TaxonomyModule taxonomyModule; private TaxonomyModule taxonomyModule;
@Autowired @Autowired
private CurriculumModule curriculumModule;
@Autowired
private QuotaManager quotaManager; private QuotaManager quotaManager;
@Autowired @Autowired
private OrganisationService organisationService; private OrganisationService organisationService;
...@@ -491,6 +497,18 @@ public class UserAdminController extends BasicController implements Activateable ...@@ -491,6 +497,18 @@ public class UserAdminController extends BasicController implements Activateable
return competencePanel; return competencePanel;
}); });
} }
if(curriculumModule.isEnabled() && (isUserManagerOf || isRolesManagerOf || isAdminOf || isPrincipalOf)) {
userTabP.addTab(translate(NLS_VIEW_CURRICULUM), uureq -> {
curriculumCtr = new CurriculumListController(uureq, getWindowControl(), identity);
listenTo(curriculumCtr);
BreadcrumbedStackedPanel competencePanel = new BreadcrumbedStackedPanel("curriculums", getTranslator(), curriculumCtr);
competencePanel.pushController(translate(NLS_VIEW_CURRICULUM), curriculumCtr);
curriculumCtr.setBreadcrumbPanel(competencePanel);
competencePanel.setInvisibleCrumb(1);
return competencePanel;
});
}
// now push to velocity // now push to velocity
myContent.put("userTabP", userTabP); myContent.put("userTabP", userTabP);
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#if($r.isTrue($showTitle)) #if($r.isTrue($showTitle))
<h4>$r.translate("content.usermgmt.userfound")</h4> <h4>$r.translate("content.usermgmt.userfound")</h4>
#end #end
<div class="o_user_infos"> <div class="o_user_infos row">
<div class="o_user_portrait">$r.render("portrait")</div> <div class="o_user_portrait">$r.render("portrait")</div>
<div class="o_user_infos_inner"> <div class="o_user_infos_inner">
$r.render("userShortDescription") $r.render("userShortDescription")
......
...@@ -207,6 +207,7 @@ usermanagers=Benutzerverwalter ...@@ -207,6 +207,7 @@ usermanagers=Benutzerverwalter
view.access=Buchungen view.access=Buchungen
view.competences=Kompetenzen view.competences=Kompetenzen
view.courses=Lernressourcen view.courses=Lernressourcen
view.curriculum=Curriculum
view.effStatements=Statements view.effStatements=Statements
view.groups=Gruppen view.groups=Gruppen
view.lectures=Lektionen view.lectures=Lektionen
......
...@@ -205,6 +205,7 @@ usermanagers=User manager ...@@ -205,6 +205,7 @@ usermanagers=User manager
view.access=Bookings view.access=Bookings
view.competences=Competences view.competences=Competences
view.courses=Learning resources view.courses=Learning resources
view.curriculum=Curriculum
view.effStatements=Statements view.effStatements=Statements
view.groups=Groups view.groups=Groups
view.lectures=Lectures view.lectures=Lectures
......
...@@ -45,6 +45,14 @@ public class CurriculumSecurityCallbackFactory { ...@@ -45,6 +45,14 @@ public class CurriculumSecurityCallbackFactory {
return new DefaultCurriculumSecurityCallback(false, Collections.emptyList()); return new DefaultCurriculumSecurityCallback(false, Collections.emptyList());
} }
/**
* @return A security callback without any administration permissions
* but view calendars and lectures.
*/
public static final CurriculumSecurityCallback userLookCallback() {
return new UserLookCurriculumSecurityCallback();
}
public static final CurriculumSecurityCallback createCallback(Roles roles) { public static final CurriculumSecurityCallback createCallback(Roles roles) {
boolean admin = roles.isCurriculumManager() || roles.isAdministrator(); boolean admin = roles.isCurriculumManager() || roles.isAdministrator();
return new DefaultCurriculumSecurityCallback(admin, Collections.emptyList()); return new DefaultCurriculumSecurityCallback(admin, Collections.emptyList());
...@@ -54,6 +62,23 @@ public class CurriculumSecurityCallbackFactory { ...@@ -54,6 +62,23 @@ public class CurriculumSecurityCallbackFactory {
return new DefaultCurriculumSecurityCallback(canManage, ownedRefs); return new DefaultCurriculumSecurityCallback(canManage, ownedRefs);
} }
private static class UserLookCurriculumSecurityCallback extends DefaultCurriculumSecurityCallback {
public UserLookCurriculumSecurityCallback() {
super(false, Collections.emptyList());
}
@Override
public boolean canViewAllCalendars() {
return true;
}
@Override
public boolean canViewAllLectures() {
return true;
}
}
private static class DefaultCurriculumSecurityCallback implements CurriculumSecurityCallback { private static class DefaultCurriculumSecurityCallback implements CurriculumSecurityCallback {
private final boolean admin; private final boolean admin;
......
...@@ -58,6 +58,7 @@ import org.olat.core.gui.components.velocity.VelocityContainer; ...@@ -58,6 +58,7 @@ import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event; import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.id.Identity;
import org.olat.core.id.OLATResourceable; import org.olat.core.id.OLATResourceable;
import org.olat.core.id.Roles; import org.olat.core.id.Roles;
import org.olat.core.id.context.BusinessControlFactory; import org.olat.core.id.context.BusinessControlFactory;
...@@ -70,7 +71,7 @@ import org.olat.modules.curriculum.CurriculumElement; ...@@ -70,7 +71,7 @@ import org.olat.modules.curriculum.CurriculumElement;
import org.olat.modules.curriculum.CurriculumElementMembership; import org.olat.modules.curriculum.CurriculumElementMembership;
import org.olat.modules.curriculum.CurriculumElementWithView; import org.olat.modules.curriculum.CurriculumElementWithView;
import org.olat.modules.curriculum.CurriculumRef; import org.olat.modules.curriculum.CurriculumRef;
import org.olat.modules.curriculum.CurriculumSecurityCallbackFactory; import org.olat.modules.curriculum.CurriculumSecurityCallback;
import org.olat.modules.curriculum.CurriculumService; import org.olat.modules.curriculum.CurriculumService;
import org.olat.modules.curriculum.model.CurriculumElementRefImpl; import org.olat.modules.curriculum.model.CurriculumElementRefImpl;
import org.olat.modules.curriculum.model.CurriculumElementRepositoryEntryViews; import org.olat.modules.curriculum.model.CurriculumElementRepositoryEntryViews;
...@@ -117,6 +118,8 @@ public class CurriculumElementListController extends FormBasicController impleme ...@@ -117,6 +118,8 @@ public class CurriculumElementListController extends FormBasicController impleme
private final boolean guestOnly; private final boolean guestOnly;
private final CurriculumRef curriculum; private final CurriculumRef curriculum;
private final MapperKey mapperThumbnailKey; private final MapperKey mapperThumbnailKey;
private final Identity assessedIdentity;
private final CurriculumSecurityCallback secCallback;
private RepositoryEntryDetailsController detailsCtrl; private RepositoryEntryDetailsController detailsCtrl;
private CurriculumElementCalendarController calendarsCtrl; private CurriculumElementCalendarController calendarsCtrl;
...@@ -136,10 +139,13 @@ public class CurriculumElementListController extends FormBasicController impleme ...@@ -136,10 +139,13 @@ public class CurriculumElementListController extends FormBasicController impleme
@Autowired @Autowired
private RepositoryManager repositoryManager; private RepositoryManager repositoryManager;
public CurriculumElementListController(UserRequest ureq, WindowControl wControl, BreadcrumbPanel stackPanel, CurriculumRef curriculum) { public CurriculumElementListController(UserRequest ureq, WindowControl wControl, BreadcrumbPanel stackPanel,
Identity assessedIdentity, CurriculumRef curriculum, CurriculumSecurityCallback secCallback) {
super(ureq, wControl, "curriculum_element_list", Util.createPackageTranslator(RepositoryService.class, ureq.getLocale())); super(ureq, wControl, "curriculum_element_list", Util.createPackageTranslator(RepositoryService.class, ureq.getLocale()));
this.curriculum = curriculum; this.curriculum = curriculum;
this.stackPanel = stackPanel; this.stackPanel = stackPanel;
this.secCallback = secCallback;
this.assessedIdentity = assessedIdentity;
guestOnly = ureq.getUserSession().getRoles().isGuestOnly(); guestOnly = ureq.getUserSession().getRoles().isGuestOnly();
mapperThumbnailKey = mapperService.register(null, "repositoryentryImage", new RepositoryEntryImageMapper()); mapperThumbnailKey = mapperService.register(null, "repositoryentryImage", new RepositoryEntryImageMapper());
...@@ -161,7 +167,9 @@ public class CurriculumElementListController extends FormBasicController impleme ...@@ -161,7 +167,9 @@ public class CurriculumElementListController extends FormBasicController impleme
elementIdentifierCol.setCellRenderer(new CurriculumElementCompositeRenderer("select", new TextFlexiCellRenderer())); elementIdentifierCol.setCellRenderer(new CurriculumElementCompositeRenderer("select", new TextFlexiCellRenderer()));
columnsModel.addFlexiColumnModel(elementIdentifierCol); columnsModel.addFlexiColumnModel(elementIdentifierCol);
columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, ElementViewCols.select)); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, ElementViewCols.select));
columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(ElementViewCols.mark)); if(assessedIdentity.equals(getIdentity())) {
columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(ElementViewCols.mark));
}
columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(ElementViewCols.details)); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(ElementViewCols.details));
columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(ElementViewCols.calendars)); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(ElementViewCols.calendars));
columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(ElementViewCols.start)); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(ElementViewCols.start));
...@@ -169,7 +177,11 @@ public class CurriculumElementListController extends FormBasicController impleme ...@@ -169,7 +177,11 @@ public class CurriculumElementListController extends FormBasicController impleme
tableModel = new CurriculumElementWithViewsDataModel(columnsModel); tableModel = new CurriculumElementWithViewsDataModel(columnsModel);
tableEl = uifactory.addTableElement(getWindowControl(), "table", tableModel, 50, false, getTranslator(), formLayout); tableEl = uifactory.addTableElement(getWindowControl(), "table", tableModel, 50, false, getTranslator(), formLayout);
tableEl.setAvailableRendererTypes(FlexiTableRendererType.custom, FlexiTableRendererType.classic); tableEl.setAvailableRendererTypes(FlexiTableRendererType.custom, FlexiTableRendererType.classic);
tableEl.setRendererType(FlexiTableRendererType.custom); if(assessedIdentity.equals(getIdentity())) {
tableEl.setRendererType(FlexiTableRendererType.custom);
} else {
tableEl.setRendererType(FlexiTableRendererType.classic);
}
tableEl.setElementCssClass("o_curriculumtable"); tableEl.setElementCssClass("o_curriculumtable");
tableEl.setCustomizeColumns(true); tableEl.setCustomizeColumns(true);
tableEl.setEmtpyTableMessageKey("table.curriculum.empty"); tableEl.setEmtpyTableMessageKey("table.curriculum.empty");
...@@ -181,7 +193,8 @@ public class CurriculumElementListController extends FormBasicController impleme ...@@ -181,7 +193,8 @@ public class CurriculumElementListController extends FormBasicController impleme
row.setDomReplacementWrapperRequired(false); // sets its own DOM id in velocity container row.setDomReplacementWrapperRequired(false); // sets its own DOM id in velocity container
tableEl.setRowRenderer(row, this); tableEl.setRowRenderer(row, this);
tableEl.setAndLoadPersistedPreferences(ureq, "my-curriculum-elements-v3-" + curriculum.getKey()); tableEl.setAndLoadPersistedPreferences(ureq, "my-curriculum-elements-v3-"
+ (assessedIdentity.equals(getIdentity()) ? "" : "look-") + curriculum.getKey());
} }
private List<FlexiTableFilter> getFilters() { private List<FlexiTableFilter> getFilters() {
...@@ -243,7 +256,7 @@ public class CurriculumElementListController extends FormBasicController impleme ...@@ -243,7 +256,7 @@ public class CurriculumElementListController extends FormBasicController impleme
private void loadModel(UserRequest ureq) { private void loadModel(UserRequest ureq) {
Roles roles = ureq.getUserSession().getRoles(); Roles roles = ureq.getUserSession().getRoles();
List<CurriculumRef> curriculumList = Collections.singletonList(curriculum); List<CurriculumRef> curriculumList = Collections.singletonList(curriculum);
List<CurriculumElementRepositoryEntryViews> elementsWithViews = curriculumService.getCurriculumElements(getIdentity(), roles, curriculumList); List<CurriculumElementRepositoryEntryViews> elementsWithViews = curriculumService.getCurriculumElements(assessedIdentity, roles, curriculumList);
Set<Long> repoKeys = new HashSet<>(elementsWithViews.size() * 3); Set<Long> repoKeys = new HashSet<>(elementsWithViews.size() * 3);
List<OLATResource> resourcesWithAC = new ArrayList<>(elementsWithViews.size() * 3); List<OLATResource> resourcesWithAC = new ArrayList<>(elementsWithViews.size() * 3);
...@@ -256,7 +269,7 @@ public class CurriculumElementListController extends FormBasicController impleme ...@@ -256,7 +269,7 @@ public class CurriculumElementListController extends FormBasicController impleme
} }
} }
List<OLATResourceAccess> resourcesWithOffer = acService.filterResourceWithAC(resourcesWithAC); List<OLATResourceAccess> resourcesWithOffer = acService.filterResourceWithAC(resourcesWithAC);
repositoryService.filterMembership(getIdentity(), repoKeys); repositoryService.filterMembership(assessedIdentity, repoKeys);
List<CurriculumElementWithViewsRow> rows = new ArrayList<>(elementsWithViews.size() * 3); List<CurriculumElementWithViewsRow> rows = new ArrayList<>(elementsWithViews.size() * 3);
for(CurriculumElementRepositoryEntryViews elementWithViews:elementsWithViews) { for(CurriculumElementRepositoryEntryViews elementWithViews:elementsWithViews) {
...@@ -559,9 +572,9 @@ public class CurriculumElementListController extends FormBasicController impleme ...@@ -559,9 +572,9 @@ public class CurriculumElementListController extends FormBasicController impleme
} }
} }
List<RepositoryEntry> entries = repositoryService.loadByKeys(entryKeys); List<RepositoryEntry> entries = repositoryService.loadByKeys(entryKeys);
calendarsCtrl = new CurriculumElementCalendarController(ureq, bwControl, element, entries, calendarsCtrl = new CurriculumElementCalendarController(ureq, bwControl, element, entries, secCallback);
CurriculumSecurityCallbackFactory.createDefaultCallback());
listenTo(calendarsCtrl); listenTo(calendarsCtrl);
stackPanel.pushController(translate("calendars"), calendarsCtrl); stackPanel.pushController(translate("calendars"), calendarsCtrl);
} }
......
...@@ -38,12 +38,15 @@ import org.olat.core.gui.components.stack.BreadcrumbedStackedPanel; ...@@ -38,12 +38,15 @@ import org.olat.core.gui.components.stack.BreadcrumbedStackedPanel;
import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.generic.dtabs.Activateable2; import org.olat.core.gui.control.generic.dtabs.Activateable2;
import org.olat.core.id.Identity;
import org.olat.core.id.OLATResourceable; import org.olat.core.id.OLATResourceable;
import org.olat.core.id.context.ContextEntry; import org.olat.core.id.context.ContextEntry;
import org.olat.core.id.context.StateEntry; import org.olat.core.id.context.StateEntry;
import org.olat.core.util.resource.OresHelper; import org.olat.core.util.resource.OresHelper;
import org.olat.modules.curriculum.Curriculum; import org.olat.modules.curriculum.Curriculum;
import org.olat.modules.curriculum.CurriculumRef; import org.olat.modules.curriculum.CurriculumRef;
import org.olat.modules.curriculum.CurriculumSecurityCallback;
import org.olat.modules.curriculum.CurriculumSecurityCallbackFactory;
import org.olat.modules.curriculum.CurriculumService; import org.olat.modules.curriculum.CurriculumService;
import org.olat.modules.curriculum.ui.CurriculumManagerDataModel.CurriculumCols; import org.olat.modules.curriculum.ui.CurriculumManagerDataModel.CurriculumCols;
import org.olat.modules.curriculum.ui.component.CurriculumActiveCellRenderer; import org.olat.modules.curriculum.ui.component.CurriculumActiveCellRenderer;
...@@ -62,16 +65,44 @@ public class CurriculumListController extends FormBasicController implements Act ...@@ -62,16 +65,44 @@ public class CurriculumListController extends FormBasicController implements Act
private FlexiTableElement tableEl; private FlexiTableElement tableEl;
private CurriculumManagerDataModel tableModel; private CurriculumManagerDataModel tableModel;
private final BreadcrumbedStackedPanel stackPanel; private BreadcrumbedStackedPanel stackPanel;
private CurriculumSecurityCallback secCallback;
private CurriculumElementListController elementListCtrl; private CurriculumElementListController elementListCtrl;
private Identity assessedIdentity;
@Autowired @Autowired
private CurriculumService curriculumService; private CurriculumService curriculumService;
/**
* This opens the list of the curriculum of the loged in user with standard permissions.
*
* @param ureq The user request
* @param wControl The window control
* @param stackPanel The bread crumb panel
*/
public CurriculumListController(UserRequest ureq, WindowControl wControl, BreadcrumbedStackedPanel stackPanel) { public CurriculumListController(UserRequest ureq, WindowControl wControl, BreadcrumbedStackedPanel stackPanel) {
super(ureq, wControl, "curriculum_list"); super(ureq, wControl, "curriculum_list");
this.stackPanel = stackPanel; this.stackPanel = stackPanel;
assessedIdentity = getIdentity();
secCallback = CurriculumSecurityCallbackFactory.createDefaultCallback();
initForm(ureq);
loadModel();
}
/**
* This opens the list of curriculums of the specified user.
*
* @param ureq The user request
* @param wControl The window control
* @param assessedIdentity The identity to look at the curriculums
*/
public CurriculumListController(UserRequest ureq, WindowControl wControl, Identity assessedIdentity) {
super(ureq, wControl, "curriculum_list");
this.assessedIdentity = assessedIdentity;
secCallback = CurriculumSecurityCallbackFactory.userLookCallback();
initForm(ureq); initForm(ureq);
loadModel(); loadModel();
...@@ -80,6 +111,10 @@ public class CurriculumListController extends FormBasicController implements Act ...@@ -80,6 +111,10 @@ public class CurriculumListController extends FormBasicController implements Act
public String getName() { public String getName() {
return "curriculum"; return "curriculum";
} }
public void setBreadcrumbPanel(BreadcrumbedStackedPanel stackPanel) {
this.stackPanel = stackPanel;
}
@Override @Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
...@@ -88,17 +123,15 @@ public class CurriculumListController extends FormBasicController implements Act ...@@ -88,17 +123,15 @@ public class CurriculumListController extends FormBasicController implements Act
columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CurriculumCols.active, new CurriculumActiveCellRenderer(getTranslator()))); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CurriculumCols.active, new CurriculumActiveCellRenderer(getTranslator())));
columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CurriculumCols.displayName, "select")); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CurriculumCols.displayName, "select"));
columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CurriculumCols.identifier, "select")); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CurriculumCols.identifier, "select"));
DefaultFlexiColumnModel toolsCol = new DefaultFlexiColumnModel(CurriculumCols.tools);
toolsCol.setExportable(false);
toolsCol.setAlwaysVisible(true);
columnsModel.addFlexiColumnModel(toolsCol);
tableModel = new CurriculumManagerDataModel(columnsModel, getLocale()); tableModel = new CurriculumManagerDataModel(columnsModel, getLocale());
tableEl = uifactory.addTableElement(getWindowControl(), "table", tableModel, 20, false, getTranslator(), formLayout); tableEl = uifactory.addTableElement(getWindowControl(), "table", tableModel, 20, false, getTranslator(), formLayout);
tableEl.setCustomizeColumns(true); tableEl.setCustomizeColumns(true);
tableEl.setEmtpyTableMessageKey("table.curriculum.empty"); tableEl.setEmtpyTableMessageKey("table.curriculum.empty");
tableEl.setFilters("activity", getFilters(), false); tableEl.setFilters("activity", getFilters(), false);
tableEl.setSelectedFilterKey("active"); if(assessedIdentity.equals(getIdentity())) {
tableEl.setSelectedFilterKey("active");
}
tableEl.setAndLoadPersistedPreferences(ureq, "cur-curriculum-list-v2"); tableEl.setAndLoadPersistedPreferences(ureq, "cur-curriculum-list-v2");
} }
...@@ -112,8 +145,8 @@ public class CurriculumListController extends FormBasicController implements Act ...@@ -112,8 +145,8 @@ public class CurriculumListController extends FormBasicController implements Act
} }
private void loadModel() { private void loadModel() {
List<Curriculum> curriculums = curriculumService.getMyCurriculums(getIdentity()); List<Curriculum> curriculums = curriculumService.getMyCurriculums(assessedIdentity);
List<CurriculumRef> activeRefs = curriculumService.getMyActiveCurriculumRefs(getIdentity()); List<CurriculumRef> activeRefs = curriculumService.getMyActiveCurriculumRefs(assessedIdentity);
List<Long> activeKeys = activeRefs.stream().map(CurriculumRef::getKey).collect(Collectors.toList()); List<Long> activeKeys = activeRefs.stream().map(CurriculumRef::getKey).collect(Collectors.toList());
List<CurriculumRow> rows = curriculums.stream() List<CurriculumRow> rows = curriculums.stream()
.map(c -> new CurriculumRow(c, activeKeys.contains(c.getKey()))) .map(c -> new CurriculumRow(c, activeKeys.contains(c.getKey())))
...@@ -176,7 +209,8 @@ public class CurriculumListController extends FormBasicController implements Act ...@@ -176,7 +209,8 @@ public class CurriculumListController extends FormBasicController implements Act
OLATResourceable ores = OresHelper.createOLATResourceableInstance("Curriculum", row.getKey()); OLATResourceable ores = OresHelper.createOLATResourceableInstance("Curriculum", row.getKey());
WindowControl swControl = addToHistory(ureq, ores, null); WindowControl swControl = addToHistory(ureq, ores, null);
elementListCtrl = new CurriculumElementListController(ureq, swControl, stackPanel, row); elementListCtrl = new CurriculumElementListController(ureq, swControl, stackPanel,
assessedIdentity, row, secCallback);
listenTo(elementListCtrl); listenTo(elementListCtrl);
stackPanel.pushController(row.getDisplayName(), elementListCtrl); stackPanel.pushController(row.getDisplayName(), elementListCtrl);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment