File tree Expand file tree Collapse file tree
app/grandchallenge/archives Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11from django .db .models .signals import m2m_changed , post_save , pre_delete
2- from django .db .transaction import on_commit
32from django .dispatch import receiver
43from guardian .shortcuts import assign_perm
54
@@ -70,11 +69,15 @@ def update_permissions_on_archive_item_changed(
7069
7170@receiver (pre_delete , sender = ArchiveItem )
7271@receiver (post_save , sender = ArchiveItem )
73- def update_view_image_permissions (* _ , instance : ArchiveItem , ** __ ):
74- images = [civ .image for civ in instance .values .filter (image__isnull = False )]
75-
76- def update_permissions ():
77- for image in images :
78- image .update_viewer_groups_permissions ()
72+ def update_permissions_on_archive_item_change (
73+ * _ , instance : ArchiveItem , signal , ** __
74+ ):
75+ images = Image .objects .filter (
76+ componentinterfacevalue__archive_items = instance
77+ ).distinct ()
78+ exclude_archive_items = [instance ] if signal is pre_delete else None
7979
80- on_commit (update_permissions )
80+ for image in images :
81+ image .update_viewer_groups_permissions (
82+ exclude_archive_items = exclude_archive_items
83+ )
You can’t perform that action at this time.
0 commit comments