Skip to content

Commit 3921c02

Browse files
committed
Optimize marker cache invalidation on model deletes
1 parent 32fdbbf commit 3921c02

File tree

4 files changed

+31
-4
lines changed

4 files changed

+31
-4
lines changed

domains/iam/models/workspace.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212

1313

1414
class WorkspaceQueryset(models.QuerySet):
15+
def delete(self, *args, **kwargs):
16+
from domains.sta.cache import invalidate_public_thing_markers_cache
17+
18+
invalidate_public_thing_markers_cache()
19+
return super().delete(*args, **kwargs)
20+
1521
def get_queryset(self):
1622
return self.select_related("transfer_confirmation", "delete_confirmation")
1723

@@ -118,6 +124,9 @@ def get_principal_permissions(
118124
return []
119125

120126
def delete(self, *args, **kwargs):
127+
from domains.sta.cache import invalidate_public_thing_markers_cache
128+
129+
invalidate_public_thing_markers_cache()
121130
self.delete_contents(filter_arg=self, filter_suffix="")
122131
super().delete(*args, **kwargs)
123132

domains/sta/models/location.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@
1414

1515

1616
class LocationQuerySet(models.QuerySet):
17+
def delete(self, *args, **kwargs):
18+
from domains.sta.cache import invalidate_public_thing_markers_cache
19+
20+
invalidate_public_thing_markers_cache()
21+
return super().delete(*args, **kwargs)
22+
1723
def visible(self, principal: Optional[Union["User", "APIKey"]]):
1824
if hasattr(principal, "account_type"):
1925
if principal.account_type == "admin":
@@ -77,3 +83,9 @@ class Location(models.Model, PermissionChecker):
7783

7884
def __str__(self):
7985
return f"{self.name} - {self.id}"
86+
87+
def delete(self, *args, **kwargs):
88+
from domains.sta.cache import invalidate_public_thing_markers_cache
89+
90+
invalidate_public_thing_markers_cache()
91+
return super().delete(*args, **kwargs)

domains/sta/models/thing.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@
1616

1717

1818
class ThingQuerySet(models.QuerySet):
19+
def delete(self, *args, **kwargs):
20+
from domains.sta.cache import invalidate_public_thing_markers_cache
21+
22+
invalidate_public_thing_markers_cache()
23+
return super().delete(*args, **kwargs)
24+
1925
def visible(self, principal: Optional[Union["User", "APIKey"]]):
2026
if hasattr(principal, "account_type"):
2127
if principal.account_type == "admin":
@@ -111,6 +117,9 @@ def get_principal_permissions(
111117
return permissions
112118

113119
def delete(self, *args, **kwargs):
120+
from domains.sta.cache import invalidate_public_thing_markers_cache
121+
122+
invalidate_public_thing_markers_cache()
114123
self.delete_contents(filter_arg=self, filter_suffix="")
115124
super().delete(*args, **kwargs)
116125

domains/sta/signals.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
1-
from django.db.models.signals import post_delete, post_save
1+
from django.db.models.signals import post_save
22
from django.dispatch import receiver
33
from domains.iam.models import Workspace
44
from domains.sta.cache import invalidate_public_thing_markers_cache
55
from domains.sta.models import Location, Thing
66

77

88
@receiver(post_save, sender=Thing)
9-
@receiver(post_delete, sender=Thing)
109
@receiver(post_save, sender=Location)
11-
@receiver(post_delete, sender=Location)
1210
@receiver(post_save, sender=Workspace)
13-
@receiver(post_delete, sender=Workspace)
1411
def invalidate_public_thing_markers(*args, **kwargs) -> None:
1512
invalidate_public_thing_markers_cache()

0 commit comments

Comments
 (0)