]> git.0d.be Git - django-panik-nonstop.git/commitdiff
add option to limit tracks for proposed cleanup to tracks without metadata
authorFrédéric Péters <fpeters@0d.be>
Sun, 30 Aug 2020 08:13:31 +0000 (10:13 +0200)
committerFrédéric Péters <fpeters@0d.be>
Sun, 30 Aug 2020 08:13:31 +0000 (10:13 +0200)
nonstop/forms.py
nonstop/views.py

index 4c0d30d193a6e8b1289970d41a71d97a6e1ce5bc..df69f11e334bb0b952689a4761df6bfe14c1592e 100644 (file)
@@ -51,6 +51,9 @@ class TrackSearchForm(forms.Form):
 
 class CleanupForm(forms.Form):
     zone = forms.ChoiceField(label=_('Nonstop Zone'), choices=get_optional_nonstop_zones)
+    no_metadata = forms.BooleanField(
+            label=_('Limit to tracks without metadata'),
+            required=False)
 
 
 class ZoneSettingsForm(forms.Form):
index 3a733c1320ad1a3d951257eb1a83652965550754..dfbb4d65814921149b6f4c012aa6f98df7c93292 100644 (file)
@@ -449,15 +449,22 @@ class CleanupView(TemplateView):
 
     def get_context_data(self, **kwargs):
         ctx = super(CleanupView, self).get_context_data(**kwargs)
-        ctx['form'] = CleanupForm()
+        ctx['form'] = CleanupForm(
+                initial={
+                    'zone': int(self.request.GET.get('zone')) if self.request.GET.get('zone') else None,
+                    'no_metadata': bool(self.request.GET.get('no_metadata') == 'on'),
+                }
+        )
 
         zone = self.request.GET.get('zone')
         if zone:
             from emissions.models import Nonstop
             ctx['zone'] = Nonstop.objects.get(id=zone)
-            ctx['count'] = Track.objects.filter(nonstop_zones=zone).count()
-            ctx['tracks'] = Track.objects.filter(nonstop_zones=zone).order_by(
-                            'added_to_nonstop_timestamp').select_related()[:30]
+            qs = Track.objects.filter(nonstop_zones=zone)
+            if self.request.GET.get('no_metadata') == 'on':
+                qs = qs.filter(Q(language='') | Q(language__isnull=True))
+            ctx['count'] = qs.count()
+            ctx['tracks'] = qs.order_by('added_to_nonstop_timestamp').select_related()[:30]
         return ctx
 
     def post(self, request, *args, **kwargs):