@@ -488,7 +488,8 @@ def with_counts(self, *fields):
488
488
)
489
489
490
490
return self .annotate (** annotations )
491
-
491
+ def active (self ):
492
+ return self .filter (is_archived = False , is_marked_for_deletion = False )
492
493
493
494
class UUIDTaggedItem (GenericUUIDTaggedItemBase , TaggedItemBase ):
494
495
class Meta :
@@ -532,10 +533,10 @@ class Project(UUIDPKModel, ExtraDataFieldMixin, UpdateMixin, models.Model):
532
533
)
533
534
notes = models .TextField (blank = True )
534
535
settings = models .JSONField (default = dict , blank = True )
536
+ is_marked_for_deletion = models .BooleanField (default = False )
535
537
labels = TaggableManager (through = UUIDTaggedItem )
536
538
537
539
objects = ProjectQuerySet .as_manager ()
538
- is_marked_for_deletion = models .BooleanField (default = False )
539
540
540
541
class Meta :
541
542
ordering = ["-created_date" ]
@@ -636,15 +637,13 @@ def delete(self, *args, **kwargs):
636
637
return super ().delete (* args , ** kwargs )
637
638
638
639
def mark_for_deletion (self ):
639
- self .is_marked_for_deletion = True
640
- self .save ()
640
+ self .update (is_marked_for_deletion = True )
641
641
642
642
def delete_in_background (self ):
643
643
# Mark the project for deletion and enqueue background deletion task
644
644
self .mark_for_deletion ()
645
- q = Queue ("default" , connection = redis .Redis ())
646
- job = q .enqueue (tasks .background_delete_task , self )
647
-
645
+ django_rq .enqueue (tasks .background_delete_task , self )
646
+
648
647
def reset (self , keep_input = True ):
649
648
"""
650
649
Reset the project by deleting all related database objects and all work
0 commit comments