from datetime import datetime, time from urllib.parse import urlparse from django.utils import timezone class DateRangeMixin: def get_start_date(self): if self.request.GET.get("startDate") != None: found_time = timezone.datetime.strptime( self.request.GET.get("startDate"), "%Y-%m-%d" ) return timezone.make_aware(datetime.combine(found_time, time.min)) else: return timezone.now() - timezone.timedelta(days=30) def get_end_date(self): if self.request.GET.get("endDate") != None: found_time = timezone.datetime.strptime( self.request.GET.get("endDate"), "%Y-%m-%d" ) return timezone.make_aware(datetime.combine(found_time, time.max)) else: return timezone.now() def get_context_data(self, **kwargs): data = super().get_context_data(**kwargs) data["start_date"] = self.get_start_date() data["end_date"] = self.get_end_date() return data