From 915e5dccb2721c204e0b36ea7dd0ad7ea1f7f59c Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Tue, 9 Feb 2021 17:51:54 +0100 Subject: [PATCH] OO-5272: show the primary key in the table --- ...encyStatementCurriculumListController.java | 53 ++++--------------- ...dEfficiencyStatementWrapperController.java | 8 ++- .../CurriculumElementWithViewsDataModel.java | 6 ++- .../CurriculumTreeWithViewsRow.java | 16 ++++++ 4 files changed, 32 insertions(+), 51 deletions(-) diff --git a/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CertificateAndEfficiencyStatementCurriculumListController.java b/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CertificateAndEfficiencyStatementCurriculumListController.java index 47dd35c9794..e80ad860461 100644 --- a/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CertificateAndEfficiencyStatementCurriculumListController.java +++ b/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CertificateAndEfficiencyStatementCurriculumListController.java @@ -193,7 +193,7 @@ public class CertificateAndEfficiencyStatementCurriculumListController extends F @Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { - + // } @Override @@ -211,9 +211,6 @@ public class CertificateAndEfficiencyStatementCurriculumListController extends F elementIdentifierCol.setCellRenderer(new CurriculumElementCompositeRenderer("select", new TextFlexiCellRenderer())); columnsModel.addFlexiColumnModel(elementIdentifierCol); - // Name column - // columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, ElementViewCols.select)); - if (roleSecurityCallback.canViewCourseProgressAndStatus()) { columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(ElementViewCols.passed)); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(ElementViewCols.completion)); @@ -476,14 +473,6 @@ public class CertificateAndEfficiencyStatementCurriculumListController extends F params.setMembershipMandatory(true); List<RepositoryEntryMyView> courses = repositoryService.searchMyView(params, 0, 0); -// // Filter for entries which have a efficiency statement -// Set<Long> alreadyAdded = new HashSet<>(); -// for (CurriculumTreeWithViewsRow row : allRows) { -// for (RepositoryEntryMyView entry : row.getEntries()) { -// alreadyAdded.add(entry.getOlatResource().getKey()); -// } -// } - courses.removeIf(course -> alreadyAdded.contains(course.getOlatResource().getKey())); // Filter for entries which are without curriculum @@ -653,13 +642,14 @@ public class CertificateAndEfficiencyStatementCurriculumListController extends F } private void forgeCurriculumCompletions(List<CurriculumTreeWithViewsRow> rows) { - Map<Long, Double> completions = loadCurriculumElementCompletions(rows); - - for (CurriculumTreeWithViewsRow row : rows) { - if (row.getCompletionItem() == null) { // does not show completion of the child entry - forgeCompletion(row, completions.get(row.getKey())); - } - } + Map<Long, Double> completions = loadCurriculumElementCompletions(rows); + if(!completions.isEmpty()) { + for (CurriculumTreeWithViewsRow row : rows) { + if (row.getCompletionItem() == null && row.getCurriculumElementKey() != null) { // does not show completion of the child entry + forgeCompletion(row, completions.get(row.getCurriculumElementKey())); + } + } + } } private void forgeCompletion(CurriculumTreeWithViewsRow row, Double completion) { @@ -873,29 +863,4 @@ public class CertificateAndEfficiencyStatementCurriculumListController extends F return true; } } - - private List<CurriculumTreeWithViewsRow> sortCurriculumRows(List<CurriculumTreeWithViewsRow> rows) { - List<CurriculumTreeWithViewsRow> sortedRows = rows.stream().filter(row -> row. getLevel() == 0).collect(Collectors.toList()); - - for (CurriculumTreeWithViewsRow parent : sortedRows) { - if (parent.hasChildren()) { - sortedRows.addAll(sortedRows.indexOf(parent) + 1, sortCurriculumRows(rows, parent)); - } - } - - return sortedRows; - } - - private List<CurriculumTreeWithViewsRow> sortCurriculumRows(List<CurriculumTreeWithViewsRow> rows, CurriculumTreeWithViewsRow parent) { - List<CurriculumTreeWithViewsRow> filteredRows = rows.stream().filter(row -> row.getParent() != null && row.getParent().equals(parent)).collect(Collectors.toList()); - List<CurriculumTreeWithViewsRow> sortedRows = new ArrayList<>(filteredRows); - - for (CurriculumTreeWithViewsRow child : filteredRows) { - if (child.hasChildren()) { - sortedRows.addAll(filteredRows.indexOf(child) + 1, sortCurriculumRows(rows, parent)); - } - } - - return filteredRows; - } } diff --git a/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CertificateAndEfficiencyStatementWrapperController.java b/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CertificateAndEfficiencyStatementWrapperController.java index 44cffc8ccaf..6098ae2330d 100644 --- a/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CertificateAndEfficiencyStatementWrapperController.java +++ b/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CertificateAndEfficiencyStatementWrapperController.java @@ -51,10 +51,8 @@ public class CertificateAndEfficiencyStatementWrapperController extends BasicCon private final TooledStackedPanel stackPanel; private final Identity mentee; - private final StudentStatEntry statEntry; private final CurriculumSecurityCallback curriculumSecurityCallback; private final RoleSecurityCallback roleSecurityCallback; - private final List<CurriculumRef> curriculumRefs; private CertificateAndEfficiencyStatementCurriculumListController certificateCurriculumListController; private CertificateAndEfficiencyStatementListController certificateListController; @@ -69,15 +67,15 @@ public class CertificateAndEfficiencyStatementWrapperController extends BasicCon @Autowired CurriculumModule curriculumModule; - public CertificateAndEfficiencyStatementWrapperController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, Identity mentee, CurriculumSecurityCallback curriculumSecurityCallback, RoleSecurityCallback roleSecurityCallback, List<CurriculumRef> curriculumRefs, StudentStatEntry statEntry) { + public CertificateAndEfficiencyStatementWrapperController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, Identity mentee, + CurriculumSecurityCallback curriculumSecurityCallback, RoleSecurityCallback roleSecurityCallback, + List<CurriculumRef> curriculumRefs, StudentStatEntry statEntry) { super(ureq, wControl); this.stackPanel = stackPanel; this.mentee = mentee; this.curriculumSecurityCallback = curriculumSecurityCallback; this.roleSecurityCallback = roleSecurityCallback; - this.curriculumRefs = curriculumRefs; - this.statEntry = statEntry; content = createVelocityContainer("certificate_list_wrapper"); showCurriculum = curriculumModule.isEnabled() && roleSecurityCallback.canViewCoursesAndCurriculum(); diff --git a/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CurriculumElementWithViewsDataModel.java b/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CurriculumElementWithViewsDataModel.java index 139c90cab92..05c33650c53 100644 --- a/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CurriculumElementWithViewsDataModel.java +++ b/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CurriculumElementWithViewsDataModel.java @@ -45,6 +45,8 @@ import org.olat.modules.lecture.model.LectureBlockStatistics; */ public class CurriculumElementWithViewsDataModel extends DefaultFlexiTreeTableDataModel<CurriculumTreeWithViewsRow> implements FlexiBusinessPathModel { + private static final ElementViewCols[] COLS = ElementViewCols.values(); + private ConcurrentMap<IdentityResourceKey, CertificateLight> certificateMap; private ConcurrentMap<IdentityRepositoryEntryKey, LectureBlockStatistics> lecturesStatisticsMap; @@ -106,8 +108,8 @@ public class CurriculumElementWithViewsDataModel extends DefaultFlexiTreeTableDa @Override public Object getValueAt(int row, int col) { CurriculumTreeWithViewsRow curriculum = getObject(row); - switch(ElementViewCols.values()[col]) { - case key: return curriculum.getKey(); + switch(COLS[col]) { + case key: return curriculum.getId(); case displayName: return curriculum.getDisplayName(); case hasStatement: diff --git a/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CurriculumTreeWithViewsRow.java b/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CurriculumTreeWithViewsRow.java index 6392755d530..92480a3e012 100644 --- a/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CurriculumTreeWithViewsRow.java +++ b/src/main/java/org/olat/modules/coach/ui/curriculum/certificate/CurriculumTreeWithViewsRow.java @@ -279,6 +279,22 @@ public class CurriculumTreeWithViewsRow implements CurriculumTreeWithView, Flexi } } + public Long getId() { + if ((repositoryEntry == null || singleEntry) && element != null) { + return element.getKey(); + } + if (isCurriculum()) { + return curriculum.getKey(); + } + if (repositoryEntry != null) { + return repositoryEntry.getKey(); + } + if (element != null) { + return element.getKey(); + } + return null; + } + public String getCurriculumElementExternalId() { return element == null ? null : element.getExternalId(); } -- GitLab