]> git.0d.be Git - django-panik-nonstop.git/commitdiff
stats: add support for empty querysets
authorFrédéric Péters <fpeters@0d.be>
Sun, 12 Jul 2020 16:05:42 +0000 (18:05 +0200)
committerFrédéric Péters <fpeters@0d.be>
Sun, 12 Jul 2020 16:05:42 +0000 (18:05 +0200)
nonstop/views.py

index 8a8404fd6675e4b67df143e7a3f6b4e5de748bd1..9857f4e3e3ad6315a56976e2254d13dc6e6f4d1b 100644 (file)
@@ -107,7 +107,12 @@ class ZoneStats(object):
         self.qs = self.qs.distinct()
 
     def total_duration(self, **kwargs):
-        total = self.qs.filter(**kwargs).aggregate(Sum('duration'))['duration__sum'].total_seconds()
+        try:
+            total = self.qs.filter(**kwargs).aggregate(Sum('duration'))['duration__sum'].total_seconds()
+        except AttributeError:
+            # 'NoneType' object has no attribute 'total_seconds', if there's no
+            # track in queryset
+            return '-'
         if total > 3600 * 2:
             duration = _('%d hours') % (total / 3600)
         else:
@@ -166,6 +171,8 @@ class ZoneStats(object):
         # obligation de diffuser annuellement au moins 4,5% d'œuvres musicales
         # émanant de la Communauté française
         considered_tracks = self.count()
+        if considered_tracks == 0:
+            return True
         return (100. * self.cfwb() / considered_tracks) > 4.5
 
     def new_files(self):