Skip to content
Snippets Groups Projects
Commit 39a5ce02 authored by User expired's avatar User expired
Browse files

OPENOLAT-543: Show message when course is locked but can't be deleted until...

OPENOLAT-543: Show message when course is locked but can't be deleted until the safety interval is over.
parent 03599701
No related branches found
No related tags found
No related merge requests found
...@@ -227,6 +227,7 @@ details.delete.acknowledge=Best\u00E4tigung ...@@ -227,6 +227,7 @@ details.delete.acknowledge=Best\u00E4tigung
details.delete.acknowledge.error=Bitte best\u00E4tigen. details.delete.acknowledge.error=Bitte best\u00E4tigen.
details.delete.acknowledge.msg=Alle Dateien werden definitiv gel\u00F6scht und k\u00F6nnen nicht mehr wiederhergestellt werden. details.delete.acknowledge.msg=Alle Dateien werden definitiv gel\u00F6scht und k\u00F6nnen nicht mehr wiederhergestellt werden.
details.delete.alt={0} l\u00F6schen details.delete.alt={0} l\u00F6schen
details.delete.locked.until.desc=Diese Lernressource kann nicht vor dem {0} gel\u00F6scht werden.
details.delete.soft.acknowledge.msg=Die Lernressource wird als gel\u00F6scht markiert. details.delete.soft.acknowledge.msg=Die Lernressource wird als gel\u00F6scht markiert.
details.delete.soft.desc=Mit dieser Funktion wird die Lernressource als gel\u00F6scht markiert. details.delete.soft.desc=Mit dieser Funktion wird die Lernressource als gel\u00F6scht markiert.
details.delete.soft.desc.1=Die Benutzerdaten werden aus dem Kurs entfernt. details.delete.soft.desc.1=Die Benutzerdaten werden aus dem Kurs entfernt.
......
...@@ -232,6 +232,7 @@ details.delete.notOrphan=still referenced ...@@ -232,6 +232,7 @@ details.delete.notOrphan=still referenced
details.delete.notOwner=not owner details.delete.notOwner=not owner
details.delete.references=Do you wish to delete the referenced learning resources too? details.delete.references=Do you wish to delete the referenced learning resources too?
details.delete.safety.interval=14 details.delete.safety.interval=14
details.delete.locked.until.desc=This learning resource can't be deleted until {0}.
details.delete.soft.acknowledge.msg=The learning resource will be marked as deleted. details.delete.soft.acknowledge.msg=The learning resource will be marked as deleted.
details.delete.soft.auto.desc=<strong>The course will be automatically deleted at {0}.</strong> details.delete.soft.auto.desc=<strong>The course will be automatically deleted at {0}.</strong>
details.delete.soft.desc=Using this method the learning resource will be marked as deleted. details.delete.soft.desc=Using this method the learning resource will be marked as deleted.
......
...@@ -123,16 +123,34 @@ public class RepositoryEntryLifeCycleChangeController extends BasicController{ ...@@ -123,16 +123,34 @@ public class RepositoryEntryLifeCycleChangeController extends BasicController{
} }
boolean deleteManaged = RepositoryEntryManagedFlag.isManaged(re, RepositoryEntryManagedFlag.delete); boolean deleteManaged = RepositoryEntryManagedFlag.isManaged(re, RepositoryEntryManagedFlag.delete);
boolean showDeleteButton = false;
Date now = new Date();
Calendar cal = Calendar.getInstance(); if (!deleteManaged) {
cal.setTime(now); if ( CourseModule.getCourseTypeName().equals(re.getOlatResource().getResourceableTypeName()) ) {
cal.add(Calendar.DATE, -Integer.parseInt(translate("details.delete.safety.interval"))); if ( re.getStatusCode() == RepositoryEntryStatus.REPOSITORY_STATUS_CLOSED ) {
if (!deleteManaged && Date now = new Date();
( (!CourseModule.getCourseTypeName().equals(re.getOlatResource().getResourceableTypeName())) Calendar cal = Calendar.getInstance();
|| re.getLastModified().before(cal.getTime())) cal.setTime(now);
) { Integer safetyInterval = Integer.parseInt(translate("details.delete.safety.interval"));
cal.add(Calendar.DATE, -safetyInterval);
if ( re.getLastModified().before(cal.getTime()) ) {
showDeleteButton = true;
} else {
// The course is already closed but the safety interval is not over yet.
Calendar lockedUntil = Calendar.getInstance();
lockedUntil.setTime(re.getLastModified());
lockedUntil.add(Calendar.DATE, safetyInterval);
lifeCycleVC.contextPut("deleteLockedUntil", Formatter.getInstance(getLocale()).formatDateAndTimeLong(lockedUntil.getTime()));
}
}
} else {
showDeleteButton = true;
}
}
if (showDeleteButton) {
deleteLink = LinkFactory.createButton("delete", lifeCycleVC, this); deleteLink = LinkFactory.createButton("delete", lifeCycleVC, this);
String type = translate(handler.getSupportedType()); String type = translate(handler.getSupportedType());
deleteLink.setCustomDisplayText(translate("details.delete.alt", new String[]{ type })); deleteLink.setCustomDisplayText(translate("details.delete.alt", new String[]{ type }));
......
...@@ -53,5 +53,12 @@ ...@@ -53,5 +53,12 @@
</div> </div>
</div> </div>
#end #end
#if($r.isNotNull($deleteLockedUntil))
<h4>$r.translate("details.delete")</h4>
<div class="o_error">
<p>$r.translate("details.delete.locked.until.desc", $deleteLockedUntil)</p>
</div>
#end
</fieldset> </fieldset>
\ No newline at end of file
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