Skip to content

Commit 4c07dc5

Browse files
committed
add querysets and managers to the deltaurl model
1 parent c94f1d1 commit 4c07dc5

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

sde_collections/models/delta_url.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,35 @@
44
from django.db import models
55

66
from .collection_choice_fields import Divisions, DocumentTypes
7+
from .delta_patterns import DeltaExcludePattern
8+
9+
10+
class DeltaUrlQuerySet(models.QuerySet):
11+
def with_exclusion_status(self):
12+
return self.annotate(
13+
excluded=models.Exists(
14+
DeltaExcludePattern.delta_urls.through.objects.filter(deltaurl=models.OuterRef("pk"))
15+
)
16+
)
17+
18+
19+
class CuratedUrlQuerySet(models.QuerySet):
20+
def with_exclusion_status(self):
21+
return self.annotate(
22+
excluded=models.Exists(
23+
DeltaExcludePattern.curated_urls.through.objects.filter(curatedurl=models.OuterRef("pk"))
24+
)
25+
)
26+
27+
28+
class DeltaUrlManager(models.Manager):
29+
def get_queryset(self):
30+
return DeltaUrlQuerySet(self.model, using=self._db).with_exclusion_status()
31+
32+
33+
class CuratedUrlManager(models.Manager):
34+
def get_queryset(self):
35+
return CuratedUrlQuerySet(self.model, using=self._db).with_exclusion_status()
736

837

938
class BaseUrl(models.Model):
@@ -71,10 +100,11 @@ class DumpUrl(BaseUrl):
71100
class DeltaUrl(BaseUrl):
72101
"""Urls that are being curated. Only deltas are stored in this model."""
73102

103+
objects = DeltaUrlManager()
74104
delete = models.BooleanField(default=False)
75105

76106

77107
class CuratedUrl(BaseUrl):
78108
"""Urls that are curated and ready for production"""
79109

80-
pass
110+
objects = CuratedUrlManager()

0 commit comments

Comments
 (0)