diff --git a/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java b/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java index d302b09cf4e2eeb305f1d4995549a7554479982e..b2ea7a4f9b83eb42a56236d9672847b40db11f92 100644 --- a/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java +++ b/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java @@ -982,6 +982,7 @@ public class ICalFileCalendarManager implements CalendarManager, InitializingBea Kalendar loadedCal = getCalendarFromCache(cal.getType(),cal.getCalendarID()); for(KalendarEvent kalendarEvent:kalendarEvents) { loadedCal.addEvent(kalendarEvent); + kalendarEvent.resetImmutableDates(); } boolean successfullyPersist = persistCalendar(loadedCal); return new Boolean(successfullyPersist); @@ -1204,9 +1205,8 @@ public class ICalFileCalendarManager implements CalendarManager, InitializingBea } reloadedCal.removeEvent(kalendarEvent); // remove old event - // clone the event to initialize the immutable date used to control moving events - KalendarEvent clonedEvent = getKalendarEvent(getVEvent(kalendarEvent)); - reloadedCal.addEvent(clonedEvent); // add changed event + kalendarEvent.resetImmutableDates(); + reloadedCal.addEvent(kalendarEvent); // add changed event boolean successfullyPersist = persistCalendar(reloadedCal); // inform all controller about calendar change for reload diff --git a/src/main/java/org/olat/commons/calendar/model/KalendarEvent.java b/src/main/java/org/olat/commons/calendar/model/KalendarEvent.java index 3c565c6939fe5c36d4408ac25f68173429df4822..5862e952620554ce961b89c043a870d1094900bf 100644 --- a/src/main/java/org/olat/commons/calendar/model/KalendarEvent.java +++ b/src/main/java/org/olat/commons/calendar/model/KalendarEvent.java @@ -389,6 +389,14 @@ public class KalendarEvent implements Cloneable, Comparable<KalendarEvent> { setRecurrenceExc(excRule); } + /** + * Set the immutable dates equals to the begin and end dates. + */ + public void resetImmutableDates() { + immutableBegin = begin; + immutableEnd = end; + } + @Override public KalendarEvent clone() { Object c = null; @@ -399,7 +407,8 @@ public class KalendarEvent implements Cloneable, Comparable<KalendarEvent> { } return (KalendarEvent)c; } - + + @Override public int compareTo(KalendarEvent event1) { if(event1 == null) { return -1; diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java index 0d52ac8954f9a1998026e4afe02b7e62597c16f4..5829dd9002661a2ee0b4718776c2774189ab4cf8 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java @@ -721,7 +721,7 @@ public class GTACoachController extends GTAAbstractController implements Assessm File documentsDir = gtaManager.getSubmitDirectory(courseEnv, gtaNode, assessedGroup); submittedDocuments = documentsDir.listFiles(new SystemFilenameFilter(true, false)); } else { - File documentsDir = gtaManager.getSubmitDirectory(courseEnv, gtaNode, getIdentity()); + File documentsDir = gtaManager.getSubmitDirectory(courseEnv, gtaNode, assessedIdentity); submittedDocuments = documentsDir.listFiles(new SystemFilenameFilter(true, false)); } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantRevisionAndCorrectionsController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantRevisionAndCorrectionsController.java index 1ba44f5b0f3d7cbb4d2bc7dd97d17d1bf19e2717..66f9681d3480cacf5157dfffaeaa4772e11aefe8 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantRevisionAndCorrectionsController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantRevisionAndCorrectionsController.java @@ -177,6 +177,9 @@ public class GTAParticipantRevisionAndCorrectionsController extends BasicControl Date deadline = task == null ? null : task.getRevisionsDueDate(); int maxDocs = gtaNode.getModuleConfiguration().getIntegerSafe(GTACourseNode.GTASK_MAX_REVISED_DOCS, -1); + if(maxDocs == -1) { + maxDocs = gtaNode.getModuleConfiguration().getIntegerSafe(GTACourseNode.GTASK_MAX_SUBMITTED_DOCS, -1); + } uploadRevisionsCtrl = new SubmitDocumentsController(ureq, getWindowControl(), task, documentsDir, documentsContainer, maxDocs, gtaNode, courseEnv, assessedUserCourseEnv.isCourseReadOnly(), deadline, "document"); listenTo(uploadRevisionsCtrl); diff --git a/src/main/java/org/olat/dispatcher/RESTDispatcher.java b/src/main/java/org/olat/dispatcher/RESTDispatcher.java index 4ccd21046b04304f028fb97d3b91c523bc4292f8..6bd333e6b47322f137b79c95e0b87a4ee4f5b941 100644 --- a/src/main/java/org/olat/dispatcher/RESTDispatcher.java +++ b/src/main/java/org/olat/dispatcher/RESTDispatcher.java @@ -91,9 +91,10 @@ public class RESTDispatcher implements Dispatcher { // String uriPrefix = DispatcherModule.getLegacyUriPrefix(request); final String origUri = request.getRequestURI(); - String restPart = origUri.substring(uriPrefix.length()); + String encodedRestPart = origUri.substring(uriPrefix.length()); + String restPart = encodedRestPart; try { - restPart = URLDecoder.decode(restPart, "UTF8"); + restPart = URLDecoder.decode(encodedRestPart, "UTF8"); } catch (UnsupportedEncodingException e) { log.error("Unsupported encoding", e); } @@ -212,7 +213,7 @@ public class RESTDispatcher implements Dispatcher { DispatcherModule.redirectTo(response, url); } else { //redirect to the authenticated dispatcher which support REST url - String url = WebappHelper.getServletContextPath() + DispatcherModule.PATH_AUTHENTICATED + restPart; + String url = WebappHelper.getServletContextPath() + DispatcherModule.PATH_AUTHENTICATED + encodedRestPart; DispatcherModule.redirectTo(response, url); } } else {