diff --git a/program/admin.py b/program/admin.py index 0e265009fdbfb793edc81569dd144372aab40765..6d70d0fa4842c02cca4c35ddb1f54fefb73e5d83 100644 --- a/program/admin.py +++ b/program/admin.py @@ -25,8 +25,9 @@ from django.utils.translation import gettext_lazy as _ from .models import Language, Type, MusicFocus, Category, Topic, FundingCategory, Host -class ActivityFilter(admin.SimpleListFilter): +class ActiveHostsFilter(admin.SimpleListFilter): title = _("Activity") + parameter_name = 'has_shows_and_schedules' def lookups(self, request, model_admin): return ( @@ -35,35 +36,10 @@ class ActivityFilter(admin.SimpleListFilter): ) def queryset(self, request, queryset): - if self.parameter_name == 'has_timeslots': # active/inactive Schedules - if self.value() == 'yes': - return queryset.filter(until__gt=timezone.now()).distinct() - if self.value() == 'no': - return queryset.filter(until__lt=timezone.now()).distinct() - - if self.parameter_name == 'has_schedules_timeslots': # active/inactive Shows - if self.value() == 'yes': - return queryset.filter(schedules__until__gt=timezone.now()).distinct() - if self.value() == 'no': - return queryset.filter(schedules__until__lt=timezone.now()).distinct() - - if self.parameter_name == 'has_shows_schedules_timeslots': # active/inactive Hosts - if self.value() == 'yes': - return queryset.filter(shows__schedules__until__gt=timezone.now()).distinct() - if self.value() == 'no': - return queryset.filter(shows__schedules__until__lt=timezone.now()).distinct() - - -class ActiveSchedulesFilter(ActivityFilter): - parameter_name = 'has_timeslots' - - -class ActiveShowsFilter(ActivityFilter): - parameter_name = 'has_schedules_timeslots' - - -class ActiveHostsFilter(ActivityFilter): - parameter_name = 'has_shows_schedules_timeslots' + if self.value() == 'yes': + return queryset.filter(shows__schedules__until__gt=timezone.now()).distinct() + if self.value() == 'no': + return queryset.filter(shows__schedules__until__lt=timezone.now()).distinct() class TypeAdmin(admin.ModelAdmin):