From 3f51dd76c83bdcaa4780c3e4e181c0b9a94956b5 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Mon, 16 Apr 2018 09:45:46 +0200
Subject: [PATCH] OO-3425: in the publish process, delete the offer and not the
 offer access as in the access configuration panel

---
 .../editor/CourseAccessAndProperties.java      | 11 ++++++-----
 .../org/olat/course/editor/PublishProcess.java |  6 +++---
 .../course/editor/PublishStep01AccessForm.java | 18 +++++++++---------
 3 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/src/main/java/org/olat/course/editor/CourseAccessAndProperties.java b/src/main/java/org/olat/course/editor/CourseAccessAndProperties.java
index 39f4d5c76bb..e824947d118 100644
--- a/src/main/java/org/olat/course/editor/CourseAccessAndProperties.java
+++ b/src/main/java/org/olat/course/editor/CourseAccessAndProperties.java
@@ -23,6 +23,7 @@ import java.util.List;
 
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryAllowToLeaveOptions;
+import org.olat.resource.accesscontrol.Offer;
 import org.olat.resource.accesscontrol.OfferAccess;
 /**
  * 
@@ -40,7 +41,7 @@ public class CourseAccessAndProperties {
 	private Boolean confirmationEmail;
 	
 	private List<OfferAccess> offerAccess;
-	private List<OfferAccess> deletedOfferAccess;
+	private List<Offer> deletedOffer;
 	
 	public CourseAccessAndProperties(RepositoryEntry re) {
 		this.repoEntry = re;
@@ -65,12 +66,12 @@ public class CourseAccessAndProperties {
 		this.offerAccess = offerAccess;
 	}
 
-	public List<OfferAccess> getDeletedOfferAccess() {
-		return deletedOfferAccess;
+	public List<Offer> getDeletedOffer() {
+		return deletedOffer;
 	}
 
-	public void setDeletedOfferAccess(List<OfferAccess> deletedOfferAccess) {
-		this.deletedOfferAccess = deletedOfferAccess;
+	public void setDeletedOffer(List<Offer> deletedOffer) {
+		this.deletedOffer = deletedOffer;
 	}
 
 	public RepositoryEntry getRepositoryEntry() {
diff --git a/src/main/java/org/olat/course/editor/PublishProcess.java b/src/main/java/org/olat/course/editor/PublishProcess.java
index 6446b40e37c..9e2457ed5d1 100644
--- a/src/main/java/org/olat/course/editor/PublishProcess.java
+++ b/src/main/java/org/olat/course/editor/PublishProcess.java
@@ -732,9 +732,9 @@ public class PublishProcess {
 			acService.saveOfferAccess(newLink);
 		}
 		// 2: remove offerings not available anymore
-		List<OfferAccess> deletedOfferAccess = accessAndProps.getDeletedOfferAccess();
-		for (OfferAccess deletedLink : deletedOfferAccess) {
-			acService.deletedLinkToMethod(deletedLink);
+		List<Offer> deletedOffers = accessAndProps.getDeletedOffer();
+		for (Offer deletedOffer : deletedOffers) {
+			acService.deleteOffer(deletedOffer);
 		}
 		
 		MultiUserEvent modifiedEvent = new EntryChangedEvent(repositoryEntry, author, Change.modifiedAtPublish, "publish");
diff --git a/src/main/java/org/olat/course/editor/PublishStep01AccessForm.java b/src/main/java/org/olat/course/editor/PublishStep01AccessForm.java
index 71014ca9b89..43e9d1c14e4 100644
--- a/src/main/java/org/olat/course/editor/PublishStep01AccessForm.java
+++ b/src/main/java/org/olat/course/editor/PublishStep01AccessForm.java
@@ -110,7 +110,7 @@ public class PublishStep01AccessForm extends StepFormBasicController {
 	private MultipleSelectionElement confirmationEmailEl;
 	private List<FormLink> addMethods = new ArrayList<>();
 	private List<OfferAccess> offerAccess = new ArrayList<>();
-	private List<OfferAccess> deletedOfferAccess = new ArrayList<>();
+	private List<Offer> deletedOffer = new ArrayList<>();
 	private final String displayName;
 	
 	private CloseableModalController cmc;
@@ -119,7 +119,7 @@ public class PublishStep01AccessForm extends StepFormBasicController {
 	
 	private final List<AccessInfo> confControllers = new ArrayList<>();
 	
-	private int button_id;
+	private int buttonId;
 	private final boolean emptyConfigGrantsFullAccess;
 	private boolean allowPaymentMethod;
 	private final boolean editable;
@@ -147,7 +147,7 @@ public class PublishStep01AccessForm extends StepFormBasicController {
 		displayName = entry.getDisplayname();
 		resource = entry.getOlatResource();
 		emptyConfigGrantsFullAccess = true;
-		button_id = 0;
+		buttonId = 0;
 		editable = !RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.bookings);
 		
 		formatter = Formatter.getInstance(getLocale());		
@@ -173,7 +173,7 @@ public class PublishStep01AccessForm extends StepFormBasicController {
 				canCopy.isSelected(0), canReference.isSelected(0), canDownload.isSelected(0));
 		
 		accessProperties.setOfferAccess(offerAccess);
-		accessProperties.setDeletedOfferAccess(deletedOfferAccess);
+		accessProperties.setDeletedOffer(deletedOffer);
 		if(confirmationEmailEl.isVisible()) {
 			accessProperties.setConfirmationEmail(confirmationEmailEl.isAtLeastSelected(1));
 		} else {
@@ -349,7 +349,7 @@ public class PublishStep01AccessForm extends StepFormBasicController {
 		for(Offer offer:offers) {
 			List<OfferAccess> offerAccessList = acService.getOfferAccess(offer, true);
 			for(OfferAccess access:offerAccessList) {
-				button_id++;
+				buttonId++;
 				addConfiguration(access);
 			}
 		}
@@ -358,7 +358,7 @@ public class PublishStep01AccessForm extends StepFormBasicController {
 	protected void addConfiguration(OfferAccess link) {
 		AccessMethodHandler methodHandler = acModule.getAccessMethodHandler(link.getMethod().getType());
 		AccessInfo infos = new AccessInfo(methodHandler.getMethodName(getLocale()), methodHandler.isPaymentMethod(), null, link);
-		infos.setButtonId(button_id);
+		infos.setButtonId(buttonId);
 		confControllers.add(infos);
 		
 		if(editable) {
@@ -546,8 +546,8 @@ public class PublishStep01AccessForm extends StepFormBasicController {
 				AccessInfo infos = (AccessInfo)source.getUserObject();
 				OfferAccess deleteOffer = infos.getLink();
 				offerAccess.remove(deleteOffer);
-				if (deleteOffer.getKey() != null) {
-					deletedOfferAccess.add(deleteOffer);			
+				if (deleteOffer.getKey() != null && deleteOffer.getOffer() != null && deleteOffer.getOffer().getKey() != null) {
+					deletedOffer.add(deleteOffer.getOffer());			
 				}
 				confControllers.remove(infos);
 				updateConfirmationEmail();
@@ -564,7 +564,7 @@ public class PublishStep01AccessForm extends StepFormBasicController {
 		if(newMethodCtrl == source) {
 			if(event.equals(Event.DONE_EVENT)) {
 				OfferAccess newLink = newMethodCtrl.commitChanges();
-				button_id++;
+				buttonId++;
 				if (!offerAccess.contains(newLink)) {
 					offerAccess.add(newLink);
 				}				
-- 
GitLab