diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/dispatch/templates/dispatch/drivers/detail.html | 10 | ||||
| -rw-r--r-- | app/dispatch/templates/dispatch/loads/list.html | 16 | ||||
| -rw-r--r-- | app/dispatch/views.py | 52 |
3 files changed, 40 insertions, 38 deletions
diff --git a/app/dispatch/templates/dispatch/drivers/detail.html b/app/dispatch/templates/dispatch/drivers/detail.html index bc674b9..80779c4 100644 --- a/app/dispatch/templates/dispatch/drivers/detail.html +++ b/app/dispatch/templates/dispatch/drivers/detail.html @@ -6,16 +6,16 @@ <div class="row"> <div class="col s12"> <h1>Driver Summary for {{ object.first_name }} {{ object.last_name }}</h1> - <h2>Loads for {{start_date|date:"l, F, d"}} to {{end_date|date:"l, F, d"}}</h2> + <h2>Loads for {{week_dates.start_date|date:"l, F, d"}} to {{week_dates.end_date|date:"l, F, d"}}</h2> </div> </div> <div class="row"> <div class="col s6 left-align"> - <a href="{% url 'driver_detail' object.id %}?date={{previous_week|date:"m/d/Y"}}" class="btn blue"><i class="material-icons left">arrow_back</i> Prev</a> + <a href="{% url 'driver_detail' object.id %}?date={{week_dates.previous_week|date:"m/d/Y"}}" class="btn blue"><i class="material-icons left">arrow_back</i> Prev</a> </div> <div class="col s6 right-align"> - <a href="{% url 'driver_detail' object.id %}?date={{next_week|date:"m/d/Y"}}" class="btn blue"><i class="material-icons right">arrow_forward</i> Next</a> + <a href="{% url 'driver_detail' object.id %}?date={{week_dates.next_week|date:"m/d/Y"}}" class="btn blue"><i class="material-icons right">arrow_forward</i> Next</a> </div> </div> @@ -54,10 +54,10 @@ <div class="row"> <div class="col s6 left-align"> - <a href="{% url 'driver_detail' object.id %}?date={{previous_week}}" class="btn blue"><i class="material-icons left">arrow_back</i> Prev</a> + <a href="{% url 'driver_detail' object.id %}?date={{week_dates.previous_week|date:"m/d/Y"}}" class="btn blue"><i class="material-icons left">arrow_back</i> Prev</a> </div> <div class="col s6 right-align"> - <a href="{% url 'driver_detail' object.id %}?date={{next_week}}" class="btn blue"><i class="material-icons right">arrow_forward</i> Next</a> + <a href="{% url 'driver_detail' object.id %}?date={{week_dates.next_week|date:"m/d/Y"}}" class="btn blue"><i class="material-icons right">arrow_forward</i> Next</a> </div> </div> diff --git a/app/dispatch/templates/dispatch/loads/list.html b/app/dispatch/templates/dispatch/loads/list.html index 6141e75..b6f7008 100644 --- a/app/dispatch/templates/dispatch/loads/list.html +++ b/app/dispatch/templates/dispatch/loads/list.html @@ -6,19 +6,19 @@ {% block content %} <div class="row"> - <div class="col s12 m6"> - <h1>Loads for {{start_date}} - {{end_date}}</h1> + <div class="col s12 m9"> + <h1>Loads for {{week_dates.start_date|date:"l, F, d"}} to {{week_dates.end_date|date:"l, F, d"}}</h1> </div> - <div class="col s12 m6 right-align"> + <div class="col s12 m3 right-align"> <a href="{% url 'load_new' %}" class="btn green">Add Load</a> </div> </div> <div class="row"> <div class="col s6 left-align"> - <a href="{% url 'load_list' %}?date={{previous_week}}" class="btn blue"><i class="material-icons left">arrow_back</i> Prev</a> + <a href="{% url 'load_list' %}?date={{week_dates.previous_week|date:"m/d/Y"}}" class="btn blue"><i class="material-icons left">arrow_back</i> Prev</a> </div> <div class="col s6 right-align"> - <a href="{% url 'load_list' %}?date={{next_week}}" class="btn blue"><i class="material-icons right">arrow_forward</i> Next</a> + <a href="{% url 'load_list' %}?date={{week_dates.next_week|date:"m/d/Y"}}" class="btn blue"><i class="material-icons right">arrow_forward</i> Next</a> </div> </div> {% load dynamic_key %} @@ -26,7 +26,7 @@ <div class="row"> <div class="col s12 card"> <div class="card-content"> - <span class="card-title">{{date}}</span> + <span class="card-title">{{date|date:"l F d"}}</span> <table class="striped bordered"> <thead> <tr> @@ -59,10 +59,10 @@ {% endfor %} <div class="row"> <div class="col s6 left-align"> - <a href="{% url 'load_list' %}?date={{previous_week}}" class="btn blue"><i class="material-icons left">arrow_back</i> Prev</a> + <a href="{% url 'load_list' %}?date={{week_dates.previous_week|date:"m/d/Y"}}" class="btn blue"><i class="material-icons left">arrow_back</i> Prev</a> </div> <div class="col s6 right-align"> - <a href="{% url 'load_list' %}?date={{next_week}}" class="btn blue"><i class="material-icons right">arrow_forward</i> Next</a> + <a href="{% url 'load_list' %}?date={{week_dates.next_week|date:"m/d/Y"}}" class="btn blue"><i class="material-icons right">arrow_forward</i> Next</a> </div> </div> {% endblock %} 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): |
