From b86708598f7b1cde5c5b664548e294d7bc3c8f1e Mon Sep 17 00:00:00 2001 From: heinzel Date: Wed, 12 Jul 2023 10:06:01 +0200 Subject: [PATCH] dav_registration: change filter button logic from select buttons to OR --- dav_events/choices.py | 4 + .../dav_registration/event_list.html | 85 +++++++++++-------- dav_registration/views.py | 19 ++--- 3 files changed, 59 insertions(+), 49 deletions(-) diff --git a/dav_events/choices.py b/dav_events/choices.py index 6388955..32b23de 100644 --- a/dav_events/choices.py +++ b/dav_events/choices.py @@ -31,6 +31,10 @@ class ChoiceSet(object): else: return False + @property + def codes(self): + return self._codes + def get_label(self, code): return self._labels[code] diff --git a/dav_registration/templates/dav_registration/event_list.html b/dav_registration/templates/dav_registration/event_list.html index 216e170..6b11534 100644 --- a/dav_registration/templates/dav_registration/event_list.html +++ b/dav_registration/templates/dav_registration/event_list.html @@ -18,16 +18,13 @@ - - + {% for event in event_list %} - - + {% endfor %}
diff --git a/dav_registration/views.py b/dav_registration/views.py index f2b39d0..0f3d1ac 100644 --- a/dav_registration/views.py +++ b/dav_registration/views.py @@ -51,21 +51,16 @@ class EventListView(generic.ListView): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - if hasattr(self, 'init_sport_filter'): - context['init_sport_filter'] = self.init_sport_filter - if hasattr(self, 'init_level_filter'): - context['init_level_filter'] = self.init_level_filter + if hasattr(self, 'init_filter'): + context['init_filter'] = self.init_filter return context def get(self, request, *args, **kwargs): - if 'sport' in request.GET: - sport = request.GET['sport'] - if (sport, 'Bogus') in SPORT_CHOICES: - self.init_sport_filter = sport - if 'level' in request.GET: - level = request.GET['level'] - if (level, 'Bogus') in LEVEL_CHOICES: - self.init_level_filter = level + if 'filter' in request.GET: + choices = SPORT_CHOICES.codes + LEVEL_CHOICES.codes + filter_input = request.GET['filter'].split(',') + filter_cleaned = list(set(filter_input) & set(choices)) + self.init_filter = filter_cleaned return super().get(request, *args, **kwargs) -- 2.52.0