aboutsummaryrefslogtreecommitdiff
path: root/app/dispatch/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/dispatch/views.py')
-rw-r--r--app/dispatch/views.py52
1 files changed, 27 insertions, 25 deletions
diff --git a/app/dispatch/views.py b/app/dispatch/views.py
index 9dd60af..6ce552b 100644
--- a/app/dispatch/views.py
+++ b/app/dispatch/views.py
@@ -21,40 +21,44 @@ def home(request):
return redirect(reverse('load_list'))
def get_week_dates(date=None):
+ week_dates = {}
if date == None:
date = formats.date_format(datetime.now(), "SHORT_DATE_FORMAT")
dt = datetime.strptime(date, '%m/%d/%Y')
weekday = dt.weekday()
if weekday == 6:
- start_date = dt
+ week_dates['start_date'] = dt
else:
weekday = weekday + 1
- start_date = dt - timedelta(days=weekday)
- end_date = start_date + timedelta(days=6)
- next_week = end_date + timedelta(days=1)
- previous_week = start_date - timedelta(days=1)
- return start_date, end_date, next_week, previous_week
+ week_dates['start_date'] = dt - timedelta(days=weekday)
+ week_dates['end_date'] = week_dates['start_date'] + timedelta(days=6)
+ week_dates['next_week'] = week_dates['end_date'] + timedelta(days=1)
+ week_dates['previous_week'] = week_dates['start_date'] - timedelta(days=1)
+ return week_dates
def split_loads_by_day(loads,start_date,end_date):
split_loads = {}
+
for date in rrule.rrule(rrule.DAILY,dtstart=start_date, until=end_date):
str_date = formats.date_format(date, "SHORT_DATE_FORMAT")
- if str_date not in split_loads:
- split_loads[str_date] = loads.filter(date=date)
+ if date not in split_loads:
+ split_loads[date] = loads.filter(date=date)
+
return split_loads
class LoadDateSort(DetailView):
def get_context_data(self, **kwargs):
context = super(DetailView, self).get_context_data(**kwargs)
- start_date, end_date, next_week, previous_week = get_week_dates(self.request.GET.get('date',None))
- loads = self.get_object().load_set.filter(date__range=(start_date, end_date)).prefetch_related('company')
- context['loads'] = split_loads_by_day(loads,start_date,end_date)
-
- # Holy fucking shit this wasn't really necessary
- context['start_date'] = start_date
- context['end_date'] = end_date
- context['next_week'] = next_week
- context['previous_week'] = previous_week
+ week_dates = get_week_dates(self.request.GET.get('date',None))
+
+ loads = self.get_object().load_set.filter(date__range=(week_dates['start_date'],
+ week_dates['end_date'])).prefetch_related('company')
+
+ context['loads'] = split_loads_by_day(loads,week_dates['start_date'],
+ week_dates['end_date'])
+
+ context['week_dates'] = week_dates
+
return context
class FilteredListView(ListView):
@@ -142,17 +146,15 @@ class LoadList(FilteredListView):
def get_queryset(self):
base_qs = super(LoadList, self).get_queryset()
- start_date, end_date, next_week, previous_week = get_week_dates(self.request.GET.get('date',None))
- return base_qs.filter(date__range=(start_date, end_date))
+ wd = get_week_dates(self.request.GET.get('date',None))
+ return base_qs.filter(date__range=(wd['start_date'], wd['end_date']))
def get_context_data(self, **kwargs):
context = super(LoadList, self).get_context_data(**kwargs)
- start_date, end_date, next_week, previous_week = get_week_dates(self.request.GET.get('date',None))
- context['start_date'] = formats.date_format(start_date, "SHORT_DATE_FORMAT")
- context['end_date'] = formats.date_format(end_date, "SHORT_DATE_FORMAT")
- context['next_week'] = formats.date_format(next_week, "SHORT_DATE_FORMAT")
- context['previous_week'] = formats.date_format(previous_week, "SHORT_DATE_FORMAT")
- context['loads'] = split_loads_by_day(self.object_list,start_date,end_date)
+ wd = get_week_dates(self.request.GET.get('date',None))
+ context['week_dates'] = wd
+
+ context['loads'] = split_loads_by_day(self.object_list,wd['start_date'],wd['end_date'])
return context
class LoadCreate(CreateView):