1414from django .utils .html import format_html
1515from django .utils .safestring import SafeText
1616
17- from codex .librarian .queue_mp import (
18- LIBRARIAN_QUEUE ,
19- BroadcastNotifierTask ,
20- CreateComicCoversLibrariesTask ,
21- DelayedTasks ,
22- PollLibrariesTask ,
23- PurgeComicCoversLibrariesTask ,
24- WatchdogSyncTask ,
25- )
17+ from codex .librarian .covers .tasks import CoverRemoveForLibrariesTask
18+ from codex .librarian .queue_mp import LIBRARIAN_QUEUE , DelayedTasks
19+ from codex .librarian .watchdog .tasks import WatchdogPollLibrariesTask , WatchdogSyncTask
2620from codex .models import AdminFlag , FailedImport , Folder , Library
21+ from codex .notifier .tasks import LIBRARY_CHANGED_TASK
2722from codex .settings .logging import get_logger
2823
2924
@@ -95,7 +90,7 @@ def _check_list_display_item(self, obj, item, label):
9590 ("Watchdog" , {"fields" : ("events" , "poll" , "poll_every" , "last_poll" )}),
9691 ("Auth" , {"fields" : ("groups" ,)}),
9792 )
98- actions = ("poll" , "force_poll" , "regen_comic_covers " )
93+ actions = ("poll" , "force_poll" , "remove_comic_covers " )
9994 empty_value_display = "Never"
10095 list_display = (
10196 "path" ,
@@ -124,7 +119,7 @@ def get_queryset(self, request):
124119 def queue_poll (queryset , force ):
125120 """Queue a poll task for the library."""
126121 pks = queryset .values_list ("pk" , flat = True )
127- task = PollLibrariesTask (pks , force )
122+ task = WatchdogPollLibrariesTask (pks , force )
128123 LIBRARIAN_QUEUE .put (task )
129124
130125 def poll (self , request , queryset ):
@@ -139,17 +134,19 @@ def force_poll(self, request, queryset):
139134
140135 force_poll .short_description = "Update all comics in selected libraries"
141136
142- def regen_comic_covers (self , _ , queryset ):
137+ def remove_comic_covers (self , _ , queryset ):
143138 """Regenerate all covers."""
144139 pks = queryset .values_list ("pk" , flat = True )
145- LIBRARIAN_QUEUE .put (CreateComicCoversLibrariesTask (pks ))
140+ LIBRARIAN_QUEUE .put (CoverRemoveForLibrariesTask (pks ))
146141
147- regen_comic_covers .short_description = "Recreate comic covers in selected libraries"
142+ remove_comic_covers .short_description = (
143+ "Remove comic covers from selected libraries"
144+ )
148145
149146 def _on_change (self , _ , created = False ):
150147 """Events for when the library has changed."""
151148 cache .clear ()
152- tasks = (BroadcastNotifierTask ( "LIBRARY_CHANGED" ) , WatchdogSyncTask ())
149+ tasks = (LIBRARY_CHANGED_TASK , WatchdogSyncTask ())
153150 task = DelayedTasks (2 , tasks )
154151 LIBRARIAN_QUEUE .put (task )
155152
@@ -169,7 +166,7 @@ def save_model(self, request, obj: Library, form, change):
169166 def delete_model (self , request , obj ):
170167 """Stop watching on delete."""
171168 pks = frozenset ([obj .pk ])
172- task = PurgeComicCoversLibrariesTask (pks )
169+ task = CoverRemoveForLibrariesTask (pks )
173170 LIBRARIAN_QUEUE .put (task )
174171 super ().delete_model (request , obj )
175172 cache .clear ()
@@ -178,9 +175,11 @@ def delete_model(self, request, obj):
178175 def delete_queryset (self , request , queryset ):
179176 """Bulk delete."""
180177 pks = frozenset (queryset .values_list ("pk" , flat = True ))
181- task = PurgeComicCoversLibrariesTask (pks )
178+ task = CoverRemoveForLibrariesTask (pks )
182179 LIBRARIAN_QUEUE .put (task )
183- super ().delete_queryset (request , queryset )
180+ for library in queryset :
181+ # so deletes will cascade
182+ library .delete ()
184183 cache .clear ()
185184 self ._on_change (None )
186185
@@ -198,7 +197,6 @@ def get_deleted_objects(self, objs, request):
198197 perms_needed = set ()
199198 protected = []
200199 return to_delete , model_count , perms_needed , protected
201- # return super().get_deleted_objects(objs, request)
202200
203201
204202@register (AdminFlag )
@@ -230,8 +228,7 @@ def _on_change(self):
230228 # Heavy handed refresh everything, but simple.
231229 # Folder View could only change the group view and let the ui decide
232230 # Registration only needs to change the enable flag
233- task = BroadcastNotifierTask ("LIBRARY_CHANGED" )
234- LIBRARIAN_QUEUE .put (task )
231+ LIBRARIAN_QUEUE .put (LIBRARY_CHANGED_TASK )
235232
236233
237234@register (FailedImport )
@@ -267,7 +264,7 @@ def get_queryset(self, request):
267264 def poll (self , request , queryset ):
268265 """Poll for new comics."""
269266 pks = queryset .values_list ("library__pk" , flat = True )
270- task = PollLibrariesTask (frozenset (pks ), False )
267+ task = WatchdogPollLibrariesTask (frozenset (pks ), False )
271268 LIBRARIAN_QUEUE .put (task )
272269
273270 poll .short_description = "Poll selected failed imports' libraries for changes"
0 commit comments