Skip to content
Snippets Groups Projects
Commit 7487bc6e authored by srosse's avatar srosse
Browse files

OO-2816: check the course node and delete the publisher on course element deletion

parent 6a646fe0
No related branches found
No related tags found
No related merge requests found
...@@ -22,9 +22,12 @@ package org.olat.course.nodes; ...@@ -22,9 +22,12 @@ package org.olat.course.nodes;
import java.io.File; import java.io.File;
import java.util.Locale; import java.util.Locale;
import org.olat.core.commons.services.notifications.NotificationsManager;
import org.olat.core.commons.services.notifications.SubscriptionContext;
import org.olat.core.gui.UserRequest; import org.olat.core.gui.UserRequest;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.id.Identity; import org.olat.core.id.Identity;
import org.olat.course.CourseModule;
import org.olat.course.ICourse; import org.olat.course.ICourse;
import org.olat.course.condition.Condition; import org.olat.course.condition.Condition;
import org.olat.course.condition.interpreter.ConditionInterpreter; import org.olat.course.condition.interpreter.ConditionInterpreter;
...@@ -86,7 +89,15 @@ public abstract class AbstractFeedCourseNode extends GenericCourseNode { ...@@ -86,7 +89,15 @@ public abstract class AbstractFeedCourseNode extends GenericCourseNode {
preConditionPoster.setExpertMode(false); preConditionPoster.setExpertMode(false);
} }
} }
@Override
public void cleanupOnDelete(ICourse course) {
super.cleanupOnDelete(course);
SubscriptionContext subsContext = CourseModule.createSubscriptionContext(course.getCourseEnvironment(), this);
NotificationsManager.getInstance().delete(subsContext);
}
@Override @Override
protected void postImportCopyConditions(CourseEnvironmentMapper envMapper) { protected void postImportCopyConditions(CourseEnvironmentMapper envMapper) {
super.postImportCopyConditions(envMapper); super.postImportCopyConditions(envMapper);
......
...@@ -40,6 +40,9 @@ import org.olat.core.logging.Tracing; ...@@ -40,6 +40,9 @@ import org.olat.core.logging.Tracing;
import org.olat.core.util.StringHelper; import org.olat.core.util.StringHelper;
import org.olat.core.util.Util; import org.olat.core.util.Util;
import org.olat.core.util.resource.OresHelper; import org.olat.core.util.resource.OresHelper;
import org.olat.course.CourseFactory;
import org.olat.course.ICourse;
import org.olat.course.nodes.CourseNode;
import org.olat.modules.webFeed.models.Feed; import org.olat.modules.webFeed.models.Feed;
import org.olat.modules.webFeed.models.Item; import org.olat.modules.webFeed.models.Item;
import org.olat.modules.webFeed.ui.FeedMainController; import org.olat.modules.webFeed.ui.FeedMainController;
...@@ -85,6 +88,12 @@ public abstract class FeedNotificationsHandler implements NotificationsHandler { ...@@ -85,6 +88,12 @@ public abstract class FeedNotificationsHandler implements NotificationsHandler {
} }
String displayName = re.getDisplayname(); String displayName = re.getDisplayname();
if("CourseModule".equals(p.getResName())) { if("CourseModule".equals(p.getResName())) {
ICourse course = CourseFactory.loadCourse(re);
CourseNode node = course.getRunStructure().getNode(p.getSubidentifier());
if(node == null) {
notificationsManager.deactivate(p);
return notificationsManager.getNoSubscriptionInfo();
}
title = translator.translate(NOTIFICATIONS_HEADER_COURSE, new String[]{displayName}); title = translator.translate(NOTIFICATIONS_HEADER_COURSE, new String[]{displayName});
} else { } else {
title = getHeader(translator, displayName); title = getHeader(translator, displayName);
......
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