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):
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):