diff options
Diffstat (limited to '')
-rw-r--r-- | ctrack/users/views.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ctrack/users/views.py b/ctrack/users/views.py index de3f4d1..693318b 100644 --- a/ctrack/users/views.py +++ b/ctrack/users/views.py @@ -1,3 +1,4 @@ +import datetime import itertools from django.contrib import messages @@ -7,6 +8,7 @@ from django.urls import reverse from django.utils.translation import ugettext_lazy as _ from django.views.generic import DetailView, RedirectView, UpdateView +from ctrack.organisations.models import Organisation from ctrack.register.models import SingleDateTimeEvent, CAFSingleDateEvent, CAFTwinDateEvent User = get_user_model() @@ -23,15 +25,23 @@ class UserDetailView(DetailView): # we have to pass 'username' as the argument when testing UserDetailView because of this. slug_url_kwarg = "username" + def _comp_dates(self, event): + if isinstance(event.date, datetime.datetime): + return event.date.date() + else: + return event.date + def get_context_data(self, **kwargs): context = super().get_context_data() user = self.request.user + lead_oes = Organisation.objects.filter(lead_inspector=user).order_by("name") _single_date_events = SingleDateTimeEvent.objects.filter(user=user).all() _caf_single_date_events = CAFSingleDateEvent.objects.all() _caf_twin_date_events = CAFTwinDateEvent.objects.all() _combined = list(itertools.chain(_caf_twin_date_events, _caf_single_date_events, _single_date_events)) - all_events = sorted(_combined, key=lambda x: x.date, reverse=True) + all_events = sorted(_combined, key=self._comp_dates, reverse=True) context["all_events"] = all_events + context["lead_oes"] = lead_oes return context |