From 82d65316bae6cd62b8a4e73b714123233972a2aa Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Tue, 17 Jul 2018 15:27:00 +0200 Subject: [PATCH] OO-3286: adapt archive data methods to curriculums --- .../org/olat/course/archiver/ArchiveResource.java | 9 ++------- .../ui/tool/IdentityListCourseNodeController.java | 14 +++++++++----- .../ui/QTI12StatisticsToolController.java | 4 ++-- .../qti21/ui/QTI21RuntimeStatisticsController.java | 4 ++-- .../statistics/QTI21StatisticsToolController.java | 4 ++-- .../modules/assessment/AssessmentToolOptions.java | 10 ++++++++-- 6 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/olat/course/archiver/ArchiveResource.java b/src/main/java/org/olat/course/archiver/ArchiveResource.java index caefdf01d19..593a05f457b 100644 --- a/src/main/java/org/olat/course/archiver/ArchiveResource.java +++ b/src/main/java/org/olat/course/archiver/ArchiveResource.java @@ -26,7 +26,6 @@ import java.util.zip.ZipOutputStream; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.io.IOUtils; import org.olat.core.gui.media.MediaResource; import org.olat.core.id.OLATResourceable; import org.olat.core.logging.OLog; @@ -104,17 +103,13 @@ public class ArchiveResource implements MediaResource { String urlEncodedLabel = StringHelper.urlEncodeUTF8(label); hres.setHeader("Content-Disposition","attachment; filename*=UTF-8''" + urlEncodedLabel); hres.setHeader("Content-Description", urlEncodedLabel); - - ZipOutputStream zout = null; - try { - zout = new ZipOutputStream(hres.getOutputStream()); + + try(ZipOutputStream zout = new ZipOutputStream(hres.getOutputStream())) { zout.setLevel(9); ICourse course = CourseFactory.loadCourse(courseOres); courseNode.archiveNodeData(locale, course, options, zout, encoding); } catch (Exception e) { log.error("", e); - } finally { - IOUtils.closeQuietly(zout); } } 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 956e2da54a4..c992c772ac1 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 @@ -526,17 +526,21 @@ public class IdentityListCourseNodeController extends FormBasicController private void fillAlternativeToAssessableIdentityList(AssessmentToolOptions options, SearchAssessedIdentityParams params) { List<Group> baseGroups = new ArrayList<>(); - if((assessmentCallback.canAssessRepositoryEntryMembers() - && (assessmentCallback.getCoachedGroups() == null || assessmentCallback.getCoachedGroups().isEmpty())) - || assessmentCallback.canAssessNonMembers()) { + if(assessmentCallback.canAssessRepositoryEntryMembers() || assessmentCallback.canAssessNonMembers()) { baseGroups.add(repositoryService.getDefaultGroup(courseEntry)); } - if(assessmentCallback.getCoachedGroups() != null && assessmentCallback.getCoachedGroups().size() > 0) { + if(assessmentCallback.canAssessBusinessGoupMembers() && assessmentCallback.getCoachedGroups() != null && !assessmentCallback.getCoachedGroups().isEmpty()) { for(BusinessGroup coachedGroup:assessmentCallback.getCoachedGroups()) { baseGroups.add(coachedGroup.getBaseGroup()); } } - options.setGroups(baseGroups); + if(assessmentCallback.canAssessCurriculumMembers()) { + List<CurriculumElement> coachedCurriculumElements = coachCourseEnv.getCoachedCurriculumElements(); + for(CurriculumElement coachedCurriculumElement:coachedCurriculumElements) { + baseGroups.add(coachedCurriculumElement.getGroup()); + } + } + options.setAlternativeGroupsOfIdentities(baseGroups); options.setNonMembers(params.isNonMembers()); } diff --git a/src/main/java/org/olat/ims/qti/statistics/ui/QTI12StatisticsToolController.java b/src/main/java/org/olat/ims/qti/statistics/ui/QTI12StatisticsToolController.java index 891cc9674ef..3cad1f5cbf6 100644 --- a/src/main/java/org/olat/ims/qti/statistics/ui/QTI12StatisticsToolController.java +++ b/src/main/java/org/olat/ims/qti/statistics/ui/QTI12StatisticsToolController.java @@ -80,9 +80,9 @@ public class QTI12StatisticsToolController extends BasicController implements Ac if(asOptions.getGroup() != null) { List<Group> bGroups = Collections.singletonList(asOptions.getGroup().getBaseGroup()); searchParams.setLimitToGroups(bGroups); - } else if(asOptions.getGroups() != null) { + } else if(asOptions.getAlternativeGroupsOfIdentities() != null) { searchParams.setMayViewAllUsersAssessments(asOptions.isNonMembers()); - searchParams.setLimitToGroups(asOptions.getGroups()); + searchParams.setLimitToGroups(asOptions.getAlternativeGroupsOfIdentities()); } RepositoryEntry testEntry = courseNode.getReferencedRepositoryEntry(); diff --git a/src/main/java/org/olat/ims/qti21/ui/QTI21RuntimeStatisticsController.java b/src/main/java/org/olat/ims/qti21/ui/QTI21RuntimeStatisticsController.java index 5bd3236f7ff..1cf7334a817 100644 --- a/src/main/java/org/olat/ims/qti21/ui/QTI21RuntimeStatisticsController.java +++ b/src/main/java/org/olat/ims/qti21/ui/QTI21RuntimeStatisticsController.java @@ -85,8 +85,8 @@ public class QTI21RuntimeStatisticsController extends BasicController implements if(asOptions.getGroup() != null) { List<Group> bGroups = Collections.singletonList(asOptions.getGroup().getBaseGroup()); searchParams.setLimitToGroups(bGroups); - } else if(asOptions.getGroups() != null) { - searchParams.setLimitToGroups(asOptions.getGroups()); + } else if(asOptions.getAlternativeGroupsOfIdentities() != null) { + searchParams.setLimitToGroups(asOptions.getAlternativeGroupsOfIdentities()); } QTI21DeliveryOptions deliveryOptions = qtiService.getDeliveryOptions(testEntry); diff --git a/src/main/java/org/olat/ims/qti21/ui/statistics/QTI21StatisticsToolController.java b/src/main/java/org/olat/ims/qti21/ui/statistics/QTI21StatisticsToolController.java index 6dc5d05da72..7cee2feac18 100644 --- a/src/main/java/org/olat/ims/qti21/ui/statistics/QTI21StatisticsToolController.java +++ b/src/main/java/org/olat/ims/qti21/ui/statistics/QTI21StatisticsToolController.java @@ -109,8 +109,8 @@ public class QTI21StatisticsToolController extends BasicController implements Ac if(asOptions.getGroup() != null) {// filter by business group List<Group> bGroups = Collections.singletonList(asOptions.getGroup().getBaseGroup()); searchParams.setLimitToGroups(bGroups); - } else if(asOptions.getGroups() != null) { - searchParams.setLimitToGroups(asOptions.getGroups()); + } else if(asOptions.getAlternativeGroupsOfIdentities() != null) { + searchParams.setLimitToGroups(asOptions.getAlternativeGroupsOfIdentities()); } else { searchParams.setViewNonMembers(asOptions.isNonMembers()); } diff --git a/src/main/java/org/olat/modules/assessment/AssessmentToolOptions.java b/src/main/java/org/olat/modules/assessment/AssessmentToolOptions.java index 9b11a2ef87b..c9b9c67e12e 100644 --- a/src/main/java/org/olat/modules/assessment/AssessmentToolOptions.java +++ b/src/main/java/org/olat/modules/assessment/AssessmentToolOptions.java @@ -76,11 +76,17 @@ public class AssessmentToolOptions { this.identities = identities; } - public List<Group> getGroups() { + /** + * This is a list of groups which eventually (if set) can + * used instead of the list of identities. + * + * @return A list of base groups. + */ + public List<Group> getAlternativeGroupsOfIdentities() { return groups; } - public void setGroups(List<Group> groups) { + public void setAlternativeGroupsOfIdentities(List<Group> groups) { this.groups = groups; } -- GitLab