From 5ebc9acafb5bdaf01ab1af9370a60537106a9e69 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Fri, 8 Dec 2017 09:58:30 +0100 Subject: [PATCH] OO-3193: render the date of the certificate in the excel download of the list of assessed identities --- .../IdentityListCourseNodeController.java | 2 +- ...eAndEfficiencyStatementListController.java | 2 +- .../ui/DownloadCertificateCellRenderer.java | 41 +++++++++---------- .../modules/coach/ui/CourseController.java | 2 +- .../modules/coach/ui/GroupController.java | 2 +- .../coach/ui/StudentCoursesController.java | 2 +- 6 files changed, 24 insertions(+), 27 deletions(-) diff --git a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java index d5c96424fef..961ff36e528 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java @@ -261,7 +261,7 @@ public class IdentityListCourseNodeController extends FormBasicController implem columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, IdentityCourseElementCols.lastCoachModified, select)); if(course.getCourseConfig().isCertificateEnabled()) { - columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(IdentityCourseElementCols.certificate, new DownloadCertificateCellRenderer())); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(IdentityCourseElementCols.certificate, new DownloadCertificateCellRenderer(getLocale()))); if(course.getCourseConfig().isRecertificationEnabled()) { columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(IdentityCourseElementCols.recertification, new DateFlexiCellRenderer(getLocale()))); } diff --git a/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListController.java b/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListController.java index d3770934a1a..c3212552e9a 100644 --- a/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListController.java +++ b/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListController.java @@ -191,7 +191,7 @@ public class CertificateAndEfficiencyStatementListController extends FormBasicCo tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("table.header.show", translate("table.header.show"), CMD_SHOW)); tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.lastModified)); - tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.certificate, new DownloadCertificateCellRenderer(assessedIdentity))); + tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.certificate, new DownloadCertificateCellRenderer(assessedIdentity, getLocale()))); tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.recertification, new DateFlexiCellRenderer(getLocale()))); tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("table.header.launchcourse", translate("table.header.launchcourse"), CMD_LAUNCH_COURSE)); diff --git a/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java b/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java index 928bf73395a..ac7ccb7efd6 100644 --- a/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java +++ b/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java @@ -27,7 +27,6 @@ import org.olat.basesecurity.model.IdentityRefImpl; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiCellRenderer; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableComponent; -import org.olat.core.gui.components.table.CustomCellRenderer; import org.olat.core.gui.render.Renderer; import org.olat.core.gui.render.StringOutput; import org.olat.core.gui.render.URLBuilder; @@ -48,38 +47,31 @@ import org.olat.user.UserManager; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * */ -public class DownloadCertificateCellRenderer implements CustomCellRenderer, FlexiCellRenderer { +public class DownloadCertificateCellRenderer implements FlexiCellRenderer { + private final Locale locale; private Identity assessedIdentity; - public DownloadCertificateCellRenderer() { - // + public DownloadCertificateCellRenderer(Locale locale) { + this.locale = locale; } - public DownloadCertificateCellRenderer(Identity assessedIdentity) { + public DownloadCertificateCellRenderer(Identity assessedIdentity, Locale locale) { + this(locale); this.assessedIdentity = assessedIdentity; } - @Override - public void render(StringOutput sb, Renderer renderer, Object val, Locale locale, int alignment, String action) { - if(val instanceof CertificateLight) { - CertificateLight certificate = (CertificateLight)val; - if(assessedIdentity == null) { - IdentityRef idRef = new IdentityRefImpl(certificate.getIdentityKey()); - render(sb, certificate, idRef, locale); - } else { - render(sb, certificate, assessedIdentity, locale); - } - } else if(val instanceof CertificateLightPack) { - CertificateLightPack pack = (CertificateLightPack)val; - render(sb, pack.getCertificate(), pack.getIdentity(), locale); - } - } - @Override public void render(Renderer renderer, StringOutput target, Object cellValue, int row, FlexiTableComponent source, URLBuilder ubu, Translator translator) { - if(cellValue instanceof CertificateLight) { + if(renderer == null) { + if(cellValue instanceof CertificateLight) { + renderExcel(target, (CertificateLight)cellValue); + } else if(cellValue instanceof CertificateLightPack) { + CertificateLightPack pack = (CertificateLightPack)cellValue; + renderExcel(target, pack.getCertificate()); + } + } else if(cellValue instanceof CertificateLight) { CertificateLight certificate = (CertificateLight)cellValue; if(assessedIdentity == null) { IdentityRef idRef = new IdentityRefImpl(certificate.getIdentityKey()); @@ -93,6 +85,11 @@ public class DownloadCertificateCellRenderer implements CustomCellRenderer, Flex } } + private void renderExcel(StringOutput sb, CertificateLight certificate) { + String date = Formatter.getInstance(locale).formatDate(certificate.getCreationDate()); + sb.append(date); + } + private void render(StringOutput sb, CertificateLight certificate, IdentityRef identity, Locale locale) { String name = Formatter.getInstance(locale).formatDate(certificate.getCreationDate()); if(CertificateStatus.pending.equals(certificate.getStatus())) { diff --git a/src/main/java/org/olat/modules/coach/ui/CourseController.java b/src/main/java/org/olat/modules/coach/ui/CourseController.java index 9b7f5c42294..400e7b821a2 100644 --- a/src/main/java/org/olat/modules/coach/ui/CourseController.java +++ b/src/main/java/org/olat/modules/coach/ui/CourseController.java @@ -195,7 +195,7 @@ public class CourseController extends FormBasicController implements Activateabl columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.score, new ScoreCellRenderer())); CourseConfig courseConfig = CourseFactory.loadCourse(course).getCourseConfig(); if(courseConfig.isCertificateEnabled()) { - columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.certificate, new DownloadCertificateCellRenderer())); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.certificate, new DownloadCertificateCellRenderer(getLocale()))); if(courseConfig.isRecertificationEnabled()) { columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.recertification, new DateFlexiCellRenderer(getLocale()))); } diff --git a/src/main/java/org/olat/modules/coach/ui/GroupController.java b/src/main/java/org/olat/modules/coach/ui/GroupController.java index 34627732203..b9de74d4b34 100644 --- a/src/main/java/org/olat/modules/coach/ui/GroupController.java +++ b/src/main/java/org/olat/modules/coach/ui/GroupController.java @@ -190,7 +190,7 @@ public class GroupController extends FormBasicController implements Activateable columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.repoName)); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.passed, new PassedCellRenderer())); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.score, new ScoreCellRenderer())); - columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.certificate, new DownloadCertificateCellRenderer())); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.certificate, new DownloadCertificateCellRenderer(getLocale()))); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.recertification, new DateFlexiCellRenderer(getLocale()))); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Columns.lastModification)); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.lastUserModified)); diff --git a/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java b/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java index 43e57f4eec4..e9503014c47 100644 --- a/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java +++ b/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java @@ -205,7 +205,7 @@ public class StudentCoursesController extends FormBasicController implements Act columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.repoName, "select")); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.passed, new PassedCellRenderer())); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.score, new ScoreCellRenderer())); - columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.certificate, new DownloadCertificateCellRenderer())); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.certificate, new DownloadCertificateCellRenderer(getLocale()))); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.recertification, new DateFlexiCellRenderer(getLocale()))); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Columns.progress, new ProgressRenderer(true, getTranslator()))); if(lectureModule.isEnabled()) { -- GitLab