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