This commit is contained in:
Markos Gogoulos
2026-05-02 15:52:32 +03:00
parent 17141abacd
commit f44b58580c
2 changed files with 10 additions and 7 deletions
+1
View File
@@ -238,6 +238,7 @@ class MediaPublishForm(forms.ModelForm):
) )
elif not shared: elif not shared:
self.instance.permissions.all().delete() self.instance.permissions.all().delete()
self.instance.embed_courses.all().delete()
rbac_cats = self.instance.category.filter(is_rbac_category=True) rbac_cats = self.instance.category.filter(is_rbac_category=True)
self.instance.category.remove(*rbac_cats) self.instance.category.remove(*rbac_cats)
+8 -6
View File
@@ -514,6 +514,7 @@ class MediaBulkUserActions(APIView):
if remove_sharing: if remove_sharing:
MediaPermission.objects.filter(media__in=media).delete() MediaPermission.objects.filter(media__in=media).delete()
EmbedMediaCourse.objects.filter(media__in=media).delete()
for m in media: for m in media:
rbac_cats = m.category.filter(is_rbac_category=True) rbac_cats = m.category.filter(is_rbac_category=True)
if rbac_cats.exists(): if rbac_cats.exists():
@@ -705,6 +706,7 @@ class MediaBulkUserActions(APIView):
removed_count += 1 removed_count += 1
if tag: if tag:
m.tags.remove(tag) m.tags.remove(tag)
EmbedMediaCourse.objects.filter(media=m, category=category).delete()
return Response({"detail": f"Removed {removed_count} media items from {categories.count()} categories"}) return Response({"detail": f"Removed {removed_count} media items from {categories.count()} categories"})
@@ -778,23 +780,23 @@ class MediaBulkUserActions(APIView):
all_course_media = Media.objects.filter(category=category) all_course_media = Media.objects.filter(category=category)
if has_media: if has_media:
if remove_permissions:
MediaPermission.objects.filter(media__in=selected_media, user__in=group_users).exclude(user=F('media__user')).delete()
selected_embedded = embed_qs.filter(media__in=selected_media) selected_embedded = embed_qs.filter(media__in=selected_media)
selected_embedded_media_ids = list(selected_embedded.values_list('media_id', flat=True)) selected_embedded_media_ids = list(selected_embedded.values_list('media_id', flat=True))
selected_embedded.delete() if remove_permissions:
MediaPermission.objects.filter(media__in=selected_media, user__in=group_users).exclude(user=F('media__user')).delete()
MediaPermission.objects.filter(media_id__in=selected_embedded_media_ids).exclude(user=F('media__user')).delete() MediaPermission.objects.filter(media_id__in=selected_embedded_media_ids).exclude(user=F('media__user')).delete()
selected_embedded.delete()
if remove_comments: if remove_comments:
Comment.objects.filter(media__in=selected_media).delete() Comment.objects.filter(media__in=selected_media).delete()
if apply_to_all: if apply_to_all:
other_course_media = all_course_media.exclude(friendly_token__in=media_ids) other_course_media = all_course_media.exclude(friendly_token__in=media_ids)
if remove_permissions:
MediaPermission.objects.filter(media__in=other_course_media, user__in=group_users).exclude(user=F('media__user')).delete()
other_embedded = embed_qs.exclude(media__in=selected_media) other_embedded = embed_qs.exclude(media__in=selected_media)
other_embedded_media_ids = list(other_embedded.values_list('media_id', flat=True)) other_embedded_media_ids = list(other_embedded.values_list('media_id', flat=True))
other_embedded.delete() if remove_permissions:
MediaPermission.objects.filter(media__in=other_course_media, user__in=group_users).exclude(user=F('media__user')).delete()
MediaPermission.objects.filter(media_id__in=other_embedded_media_ids).exclude(user=F('media__user')).delete() MediaPermission.objects.filter(media_id__in=other_embedded_media_ids).exclude(user=F('media__user')).delete()
other_embedded.delete()
if remove_comments: if remove_comments:
Comment.objects.filter(media__in=other_course_media).delete() Comment.objects.filter(media__in=other_course_media).delete()
for m in other_course_media: for m in other_course_media: