From 2f475d3790d48534134f7ac4123b41ddf61b3b4d Mon Sep 17 00:00:00 2001 From: Nicolas Joyard <joyard.nicolas@gmail.com> Date: Fri, 10 Jun 2016 21:09:55 +0200 Subject: [PATCH] Disable active filter for countries and chambers --- core/views.py | 17 +++++++++++++++-- memopol/views/group_list.py | 18 +++++++++++++----- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/core/views.py b/core/views.py index 508d14a5..6b72f0bf 100644 --- a/core/views.py +++ b/core/views.py @@ -15,6 +15,14 @@ class ActiveLegislatureMixin(object): self.set_active_only() return super(ActiveLegislatureMixin, self).get(*args, **kwargs) + def override_active_only(self): + """ + Redefine this method to override active legislature selection + - return None to enable user choice + - return True or False to disable user choice and set active state + """ + return None + def set_active_only(self): if 'active_only' in self.request.GET: self.request.session['active_only'] = \ @@ -23,11 +31,16 @@ class ActiveLegislatureMixin(object): self.request.session['active_only'] = self.default_active_only def get_active_only(self): - return self.request.session['active_only'] + overriden = self.override_active_only() + if overriden is None: + return self.request.session['active_only'] + else: + return overriden def get_context_data(self, **kwargs): c = super(ActiveLegislatureMixin, self).get_context_data(**kwargs) - c['active_only'] = self.get_active_only() + if self.override_active_only() is None: + c['active_only'] = self.get_active_only() return c diff --git a/memopol/views/group_list.py b/memopol/views/group_list.py index 638e73fe..0bd57f47 100644 --- a/memopol/views/group_list.py +++ b/memopol/views/group_list.py @@ -12,14 +12,22 @@ from representatives.models import Group class GroupList(PaginationMixin, ActiveLegislatureMixin, generic.ListView): + def override_active_only(self): + kind = self.kwargs.get('kind') + + if kind == 'chamber' or kind == 'country': + return False + else: + return None + def get_queryset(self): qs = Group.objects.all() - if self.get_active_only(): - qs = qs.filter( - models.Q(mandates__end_date__gte=datetime.date.today()) | - models.Q(mandates__end_date__isnull=True) - ) + if self.get_active_only(): + qs = qs.filter( + models.Q(mandates__end_date__gte=datetime.date.today()) | + models.Q(mandates__end_date__isnull=True) + ) kind = self.kwargs.get('kind', None) if kind: -- GitLab