Browse Source

active allocation manager

Élie Bouttier 7 years ago
parent
commit
58f0411359
1 changed files with 16 additions and 0 deletions
  1. 16 0
      services/models.py

+ 16 - 0
services/models.py

@@ -49,6 +49,19 @@ class IPResourceManager(models.Manager):
         return qs
 
 
+class ActiveAllocationManager(models.Manager):
+    def get_queryset(self):
+        qs = super().get_queryset()
+        qs = qs.annotate(
+                    active=models.Case(
+                        models.When(get_active_filter(), then=True),
+                        default=False,
+                        output_field=models.BooleanField()
+                    )
+        )
+        return qs
+
+
 class IPResource(models.Model):
     CATEGORIES = (
         (0, 'IP Public'),
@@ -160,6 +173,9 @@ class Allocation(models.Model):
     end = models.DateTimeField(null=True, blank=True, verbose_name='Fin de la période d’allocation')
     notes = models.TextField(blank=True, default='')
 
+    objects = models.Manager()
+    actives = ActiveAllocationManager()
+
     @property
     def active(self):
         now = timezone.now()