aboutsummaryrefslogtreecommitdiff
path: root/lib/modules/CoursewareModule.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/modules/CoursewareModule.class.php')
-rw-r--r--lib/modules/CoursewareModule.class.php19
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/modules/CoursewareModule.class.php b/lib/modules/CoursewareModule.class.php
index 7b96c55..2a9161a 100644
--- a/lib/modules/CoursewareModule.class.php
+++ b/lib/modules/CoursewareModule.class.php
@@ -12,11 +12,22 @@ class CoursewareModule extends CorePlugin implements SystemPlugin, StudipModule,
{
parent::__construct();
- NotificationCenter::on('UserDidDelete', function ($event, $user) {
- Instance::deleteForRange($user);
- });
NotificationCenter::on('CourseDidDelete', function ($event, $course) {
- Instance::deleteForRange($course);
+ $last_element_configs = \ConfigValue::findBySQL('field = ? AND value LIKE ?', [
+ 'COURSEWARE_LAST_ELEMENT',
+ '%' . $course->id . '%',
+ ]);
+ foreach ($last_element_configs as $config) {
+ $arr = json_decode($config->value, true);
+ $arr = array_filter(
+ $arr,
+ function ($key) use ($course) {
+ return $key !== $course->id;
+ },
+ ARRAY_FILTER_USE_KEY
+ );
+ \UserConfig::get($config->range_id)->store('COURSEWARE_LAST_ELEMENT', $arr);
+ }
});
}