Skip to content

Commit bb312f7

Browse files
feat: Address review comments
- Remove comments - Use django rq - Use update instead of save Signed-off-by: Jayanth Kumar <[email protected]>
1 parent dc7b4b4 commit bb312f7

File tree

5 files changed

+11
-16
lines changed

5 files changed

+11
-16
lines changed

scanpipe/filters.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -349,9 +349,7 @@ def __init__(self, data=None, *args, **kwargs):
349349

350350
# Default filtering by "Active" projects.
351351
if not data or data.get("is_archived", "") == "":
352-
self.queryset = self.queryset.filter(
353-
is_archived=False, is_marked_for_deletion=False
354-
)
352+
self.queryset = self.queryset.active()
355353

356354
active_count = Project.objects.filter(
357355
is_archived=False, is_marked_for_deletion=False

scanpipe/models.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,9 @@ def with_counts(self, *fields):
489489

490490
return self.annotate(**annotations)
491491

492+
def active(self):
493+
return self.filter(is_archived=False, is_marked_for_deletion=False)
494+
492495

493496
class UUIDTaggedItem(GenericUUIDTaggedItemBase, TaggedItemBase):
494497
class Meta:
@@ -532,10 +535,10 @@ class Project(UUIDPKModel, ExtraDataFieldMixin, UpdateMixin, models.Model):
532535
)
533536
notes = models.TextField(blank=True)
534537
settings = models.JSONField(default=dict, blank=True)
538+
is_marked_for_deletion = models.BooleanField(default=False)
535539
labels = TaggableManager(through=UUIDTaggedItem)
536540

537541
objects = ProjectQuerySet.as_manager()
538-
is_marked_for_deletion = models.BooleanField(default=False)
539542

540543
class Meta:
541544
ordering = ["-created_date"]
@@ -636,14 +639,12 @@ def delete(self, *args, **kwargs):
636639
return super().delete(*args, **kwargs)
637640

638641
def mark_for_deletion(self):
639-
self.is_marked_for_deletion = True
640-
self.save()
642+
self.update(is_marked_for_deletion=True)
641643

642644
def delete_in_background(self):
643645
# Mark the project for deletion and enqueue background deletion task
644646
self.mark_for_deletion()
645-
q = Queue("default", connection=redis.Redis())
646-
job = q.enqueue(tasks.background_delete_task, self)
647+
django_rq.enqueue(tasks.background_delete_task, self)
647648

648649
def reset(self, keep_input=True):
649650
"""

scanpipe/tasks.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,9 @@ def background_delete_task(project):
8686
if not project.is_marked_for_deletion:
8787
return
8888

89-
# Perform the deletion process
9089
try:
9190
project.delete()
9291
except Exception as e:
93-
# Handle errors and update project errors or display a banner
94-
project.is_marked_for_deletion = False
95-
project.save()
92+
info(f"Deletion failed: {str(e)}", project.pk)
93+
project.update(is_marked_for_deletion=True)
9694
project.add_error(description=f"Deletion failed: {str(e)}")

scanpipe/tests/test_views.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,9 @@ def test_scanpipe_views_project_actions_view(self):
183183
}
184184
response = self.client.post(url, data=data, follow=True)
185185
self.assertRedirects(response, reverse("project_list"))
186-
expected = '<div class="message-body">1 project is being deleted in the background.</div>'
186+
expected = '<div class="message-body">1 projects have been delete.</div>'
187187
self.assertContains(response, expected, html=True)
188-
expected = f"1 project is being deleted in the background."
188+
expected = f"1 projects have been delete."
189189
self.assertContains(response, expected, html=True)
190190

191191
def test_scanpipe_views_project_details_is_archived(self):

scanpipe/views.py

-2
Original file line numberDiff line numberDiff line change
@@ -1089,8 +1089,6 @@ def perform_action(self, action, project_uuid, action_kwargs=None):
10891089
raise Http404
10901090

10911091
def get_success_message(self, action, count):
1092-
if action == "delete":
1093-
return f"{count} project{'s' if count != 1 else ''} {'is' if count == 1 else 'are'} being deleted in the background."
10941092
return f"{count} projects have been {action}."
10951093

10961094

0 commit comments

Comments
 (0)