Browse Source

utilisation d’active manager par défaut

Élie Bouttier 7 years ago
parent
commit
148a59769c
3 changed files with 10 additions and 16 deletions
  1. 5 5
      services/admin.py
  2. 4 10
      services/models.py
  3. 1 1
      services/utils.py

+ 5 - 5
services/admin.py

@@ -42,7 +42,7 @@ class AntennaPrefixFilter(admin.SimpleListFilter):
     parameter_name = 'prefix'
 
     def lookups(self, request, model_admin):
-        resources = AntennaAllocation.actives.filter(active=True).values_list('resource__pk', flat=True)
+        resources = AntennaAllocation.objects.filter(active=True).values_list('resource__pk', flat=True)
         prefixes = IPPrefix.objects.filter(ipresource__in=resources).values_list('pk', 'prefix').distinct()
         return prefixes
 
@@ -52,7 +52,7 @@ class AntennaPrefixFilter(admin.SimpleListFilter):
         except TypeError:
             pass
         else:
-            allocations = AntennaAllocation.actives.filter(active=True, resource__prefixes__pk=prefix).values_list('pk', flat=True)
+            allocations = AntennaAllocation.objects.filter(active=True, resource__prefixes__pk=prefix).values_list('pk', flat=True)
             queryset = queryset.filter(allocation__in=allocations)
         return queryset
 
@@ -234,15 +234,15 @@ class ServiceTypeAdmin(admin.ModelAdmin):
 
 
 class AntennaAdmin(geo_admin.OSMGeoAdmin):
-    list_display = ('__str__', 'ip_display')
+    list_display = ('id', 'label', 'ip_display')
     inlines = (AntennaAllocationInline,)
     list_filter = (
         AntennaPrefixFilter,
     )
 
     def ip_display(self, obj):
-        allocations = obj.allocations(manager='actives').filter(active=True)
-        return ', '.join(allocations.values_list('resource__ip', flat=True))
+        allocations = obj.allocations.filter(active=True)
+        return ', '.join(allocations.values_list('resource__ip', flat=True)) or '-'
     ip_display.short_description = 'IP'
 
     def get_actions(self, request):

+ 4 - 10
services/models.py

@@ -32,10 +32,10 @@ class IPResourceManager(models.Manager):
         # On rajoute une super annotation « in_use » pour savoir si l’IP est dispo ou non :-)
         qs = qs.annotate(
                     in_use_by_service=models.Exists(
-                        ServiceAllocation.actives.filter(resource=models.OuterRef('pk'), active=True)
+                        ServiceAllocation.objects.filter(resource=models.OuterRef('pk'), active=True)
                     ),
                     in_use_by_antenna=models.Exists(
-                        ServiceAllocation.actives.filter(resource=models.OuterRef('pk'), active=True)
+                        ServiceAllocation.objects.filter(resource=models.OuterRef('pk'), active=True)
                     )
         )
         qs = qs.annotate(
@@ -131,7 +131,7 @@ class Service(models.Model):
             raise ValidationError("Un service du même type existe déjà avec ce label.")
 
     def __str__(self):
-        s = str(self.service_type)
+        s = '#%d %s' % (self.pk, self.service_type)
         if self.label:
             s += ' ' + self.label
         return s
@@ -172,13 +172,7 @@ 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()
-        return self.start <= now and (self.end is None or self.end >= now)
+    objects = ActiveAllocationManager()
 
     def clean(self):
         super().clean()

+ 1 - 1
services/utils.py

@@ -19,7 +19,7 @@ def mail_managers(subject, message, fail_silently=False, connection=None,
 
 
 def notify_allocation(request, new_alloc, old_alloc=None):
-    fields = ['resource', 'service', 'route', 'start', 'end', 'active', 'notes']
+    fields = ['resource', 'service', 'route', 'start', 'end', 'notes']
 
     benevole = '%s <%s>' % (request.user.username, request.user.email)
     message = 'Bénévole : ' + benevole