diff --git a/src/agenda_culturel/models.py b/src/agenda_culturel/models.py index b2790e6..af87bed 100644 --- a/src/agenda_culturel/models.py +++ b/src/agenda_culturel/models.py @@ -182,6 +182,13 @@ class Place(models.Model): def match(self, event): return event.location in self.aliases + def get_all_cities(): + try: + tags = list([p["city"] for p in Place.objects.values("city").distinct().order_by("city")]) + except: + tags = [] + return tags + class Event(models.Model): diff --git a/src/agenda_culturel/views.py b/src/agenda_culturel/views.py index d268888..4adfda0 100644 --- a/src/agenda_culturel/views.py +++ b/src/agenda_culturel/views.py @@ -96,7 +96,7 @@ class EventFilter(django_filters.FilterSet): city = django_filters.MultipleChoiceFilter(label="Filtrer par ville", field_name='exact_location__city', - choices=[(p["city"], p["city"]) for p in Place.objects.values("city").distinct().order_by("city")], + choices=[(c, c) for c in Place.get_all_cities()], widget=forms.CheckboxSelectMultiple) status = django_filters.MultipleChoiceFilter(label="Filtrer par status",