aboutsummaryrefslogtreecommitdiff
path: root/app/dispatch
diff options
context:
space:
mode:
authorMitch Riedstra <mitch@riedstra.us>2017-10-28 15:55:26 -0400
committerMitch Riedstra <mitch@riedstra.us>2017-10-28 15:55:26 -0400
commitcf26245f4efe9ac133f5c874058ed3116fb0ac55 (patch)
treef2021361cbe28d97282ebf789e9c3877072b2827 /app/dispatch
parent7a2218af7fd94015d11dcb4de167b63d0b29f6bd (diff)
downloaddispatch-tracker-cf26245f4efe9ac133f5c874058ed3116fb0ac55.tar.gz
dispatch-tracker-cf26245f4efe9ac133f5c874058ed3116fb0ac55.tar.xz
Clean up code style in views
Diffstat (limited to 'app/dispatch')
-rw-r--r--app/dispatch/views.py119
1 files changed, 77 insertions, 42 deletions
diff --git a/app/dispatch/views.py b/app/dispatch/views.py
index 9eb1de4..63cc1aa 100644
--- a/app/dispatch/views.py
+++ b/app/dispatch/views.py
@@ -7,18 +7,22 @@ from django.core.urlresolvers import reverse
# from django.conf import settings
# Create your views here.
from django.core.exceptions import ObjectDoesNotExist
-from django.views.generic import TemplateView,ListView
+# TemplateView was unused
+from django.views.generic import ListView
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.core.urlresolvers import reverse_lazy
-from dispatch.models import Customer, Load, Paperwork, Invoice, UserInvoiceNumber, Settings, Identity
+from dispatch.models import Customer, Load, Paperwork, \
+ Invoice, UserInvoiceNumber, Identity
from dispatch.forms import AddPaperworkForm
from django.contrib.auth.models import User
from django.contrib.auth.mixins import UserPassesTestMixin
# from django.http import HttpResponseRedirect
from .misc import get_week_dates, split_loads_by_day
import datetime
-import re, os
+import re
+import os
+
def home(request):
return redirect(reverse('load_list'))
@@ -27,21 +31,25 @@ def home(request):
class LoadDateSort(DetailView):
def get_context_data(self, **kwargs):
context = super(DetailView, self).get_context_data(**kwargs)
- week_dates = get_week_dates(self.request.GET.get('date',None))
+ 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('customer')
+ loads = self.get_object().load_set.filter(
+ date__range=(week_dates['start_date'],
+ week_dates['end_date'])
+ ).prefetch_related('customer')
context['loads_nosplit'] = loads.order_by('date')
- context['loads'] = split_loads_by_day(loads,week_dates['start_date'],
- week_dates['end_date'])
-
+ 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):
def get_queryset(self):
base_qs = super(FilteredListView, self).get_queryset()
@@ -49,6 +57,7 @@ class FilteredListView(ListView):
return base_qs.filter(user=self.request.user)
return base_qs
+
class FilteredUpdateView(UpdateView):
def get_queryset(self):
base_qs = super(FilteredUpdateView, self).get_queryset()
@@ -56,6 +65,7 @@ class FilteredUpdateView(UpdateView):
return base_qs.filter(user=self.request.user)
return base_qs
+
class FilteredDeleteView(DeleteView):
def get_queryset(self):
base_qs = super(FilteredDeleteView, self).get_queryset()
@@ -73,6 +83,7 @@ class DriverList(UserPassesTestMixin, ListView):
def test_func(self):
return self.request.user.is_superuser
+
class DriverDetail(UserPassesTestMixin, DetailView):
template_name = "dispatch/drivers/detail.html"
model = User
@@ -88,7 +99,7 @@ class DriverDetail(UserPassesTestMixin, DetailView):
try:
context['ident'] = Identity.objects.get(user=self.get_object().pk)
- except:
+ except Exception:
context['ident'] = None
try:
@@ -115,28 +126,28 @@ class DriverSummary(UserPassesTestMixin, LoadDateSort):
# Shit gets fucky with super() really fast, but this seems to work
context = super(DriverSummary, self).get_context_data(**kwargs)
- stats = {};
- stats['count'], stats['average'], stats['sum'] = (0,0,0)
+ stats = {}
+ stats['count'], stats['average'], stats['sum'] = (0, 0, 0)
stats['incomplete_loads'] = 0
loads_by_date = context['loads']
for d in loads_by_date:
# Iterate over the array for the given date
for l in loads_by_date[d]:
- stats['count'] += 1
- stats['sum'] += l.amount
+ stats['count'] += 1
+ stats['sum'] += l.amount
if l.amount == 0:
stats['incomplete_loads'] += 1
if stats['sum'] is not 0 and stats['count'] is not 0:
stats['average'] = stats['sum']/stats['count']
-
# Add our stats to the context so we can use it in the template
context['stats'] = stats
return context
+
class DriverUpdate(UserPassesTestMixin, UpdateView):
template_name = "dispatch/drivers/edit.html"
model = User
@@ -144,12 +155,11 @@ class DriverUpdate(UserPassesTestMixin, UpdateView):
# fields = ['username', 'first_name','last_name','email','groups']
fields = []
- default_fields = ['username', 'first_name','last_name','email']
- superuser_fields = ['username', 'first_name','last_name','email',
- 'is_active', 'is_superuser' ]
-
+ default_fields = ['username', 'first_name', 'last_name', 'email']
+ superuser_fields = ['username', 'first_name', 'last_name', 'email',
+ 'is_active', 'is_superuser']
- def get(self,request, *args, **kwargs):
+ def get(self, request, *args, **kwargs):
if request.user.is_superuser:
self.fields = self.superuser_fields
else:
@@ -160,7 +170,6 @@ class DriverUpdate(UserPassesTestMixin, UpdateView):
# Shit gets fucky with super() really fast, but this seems to work
context = super(DriverUpdate, self).get_context_data(**kwargs)
-
return context
def test_func(self):
@@ -170,28 +179,32 @@ class DriverUpdate(UserPassesTestMixin, UpdateView):
# Customer CRUD
+
class CustomerList(ListView):
template_name = "dispatch/companies/list.html"
model = Customer
+
class CustomerCreate(UserPassesTestMixin, CreateView):
template_name = "dispatch/companies/create.html"
model = Customer
success_url = reverse_lazy('customer_list')
- fields = ['name', 'address', 'phone_number','email_address']
+ fields = ['name', 'address', 'phone_number', 'email_address']
def test_func(self):
return self.request.user.is_superuser
+
class CustomerDetail(LoadDateSort):
template_name = "dispatch/companies/detail.html"
model = Customer
+
class CustomerUpdate(UserPassesTestMixin, UpdateView):
template_name = "dispatch/companies/edit.html"
model = Customer
success_url = reverse_lazy('customer_list')
- fields = ['name', 'address', 'phone_number','email_address']
+ fields = ['name', 'address', 'phone_number', 'email_address']
def test_func(self):
return self.request.user.is_superuser
@@ -206,33 +219,39 @@ class CustomerDelete(UserPassesTestMixin, DeleteView):
return self.request.user.is_superuser
# Load CRUD
+
class LoadList(FilteredListView):
template_name = "dispatch/loads/list.html"
model = Load
-
def get_queryset(self):
base_qs = super(LoadList, self).get_queryset()
- wd = get_week_dates(self.request.GET.get('date',None))
+ 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)
- wd = get_week_dates(self.request.GET.get('date',None))
+ 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'])
+ context['loads'] = split_loads_by_day(
+ self.object_list,
+ wd['start_date'],
+ wd['end_date'])
return context
+
class LoadCreate(CreateView):
template_name = "dispatch/loads/create.html"
model = Load
fields = []
- defualt_fields = ['date', 'customer', 'description', 'delivered_to', 'amount']
- superuser_fields = ['user', 'date', 'customer', 'description', 'delivered_to', 'amount']
+ defualt_fields = ['date', 'customer', 'description', 'delivered_to',
+ 'amount']
+ superuser_fields = ['user', 'date', 'customer', 'description',
+ 'delivered_to', 'amount']
- def get(self,request):
+ def get(self, request):
if request.user.is_superuser:
self.fields = self.superuser_fields
else:
@@ -245,6 +264,7 @@ class LoadCreate(CreateView):
load.user = self.request.user
return super(LoadCreate, self).form_valid(form)
+
class LoadDetail(DetailView):
template_name = "dispatch/loads/detail.html"
model = Load
@@ -252,19 +272,23 @@ class LoadDetail(DetailView):
def get_context_data(self, **kwargs):
context = super(LoadDetail, self).get_context_data(**kwargs)
- context['paperwork_list'] = Paperwork.objects.filter(load=context['object'])
+ context['paperwork_list'] = Paperwork.objects.filter(
+ load=context['object'])
return context
+
class LoadUpdate(FilteredUpdateView):
template_name = "dispatch/loads/edit.html"
model = Load
fields = []
- default_fields = ['date', 'customer', 'description', 'delivered_to', 'amount']
- superuser_fields = ['user', 'date', 'customer', 'description', 'delivered_to', 'amount']
+ default_fields = ['date', 'customer', 'description',
+ 'delivered_to', 'amount']
+ superuser_fields = ['user', 'date', 'customer', 'description',
+ 'delivered_to', 'amount']
- def get(self,request,pk):
+ def get(self, request, pk):
if request.user.is_superuser:
self.fields = self.superuser_fields
else:
@@ -277,6 +301,7 @@ class LoadUpdate(FilteredUpdateView):
load.user = self.request.user
return super(LoadUpdate, self).form_valid(form)
+
class LoadDelete(UserPassesTestMixin, FilteredDeleteView):
template_name = "dispatch/loads/delete.html"
model = Load
@@ -289,20 +314,21 @@ class LoadDelete(UserPassesTestMixin, FilteredDeleteView):
# Paperwork Uploads
def PaperworkUpload(request, load_id):
- l = Load.objects.get(pk=load_id)
+ load = Load.objects.get(pk=load_id)
if request.method == 'POST':
form = AddPaperworkForm(request.POST, request.FILES)
if form.is_valid():
pw = form.save(commit=False)
- pw.load = l
+ pw.load = load
pw.save()
return redirect(reverse('load_detail', kwargs={'pk': load_id}))
else:
form = AddPaperworkForm()
- ctx = { 'form': form, 'load': l }
+ ctx = {'form': form, 'load': load}
return render(request, 'dispatch/paperwork/add.html', ctx)
+
def PaperworkDelete(request, load_id, pk):
# TODO: Someday we should return the errors deleting the file, if any
try:
@@ -313,6 +339,7 @@ def PaperworkDelete(request, load_id, pk):
return redirect(reverse('load_detail', kwargs={'pk': load_id}))
+
# Specifically for downloading with the filename set to the description of the
# load
def PaperworkDownload(request, load_id, pk):
@@ -332,17 +359,19 @@ def PaperworkDownload(request, load_id, pk):
desc = load.description.replace('"', '')
- response = HttpResponse(fh.read(), content_type='application/force-download')
- response['Content-Disposition'] = 'attachment; filename="{}"'.format(smart_str(desc + ext))
+ response = HttpResponse(
+ fh.read(),
+ content_type='application/force-download')
+
+ response['Content-Disposition'] = \
+ 'attachment; filename="{}"'.format(smart_str(desc + ext))
response['X-Sendfile'] = smart_str(paperwork.document.path)
return response
except Exception as e:
print(e)
-
# User Invoice Numbers
-
class UserInvoiceNumberUpdate(UserPassesTestMixin, UpdateView):
template_name = "dispatch/userinvoicenumber/edit.html"
model = UserInvoiceNumber
@@ -351,7 +380,7 @@ class UserInvoiceNumberUpdate(UserPassesTestMixin, UpdateView):
default_fields = ['number']
superuser_fields = ['number', 'user']
- def get(self,request, *args, **kwargs):
+ def get(self, request, *args, **kwargs):
if request.user.is_superuser:
# self.fields.insert(1,'user')
self.fields = self.superuser_fields
@@ -371,6 +400,7 @@ class IdentityDetail(DetailView):
template_name = "dispatch/identity/detail.html"
model = Identity
+
def SetDefaultIdentity(request, user_id, pk):
if request.user.is_superuser:
print("WORKS")
@@ -378,6 +408,7 @@ def SetDefaultIdentity(request, user_id, pk):
ident.set_default()
return redirect(reverse('driver_details', kwargs={'pk': user_id}))
+
class IdentityCreate(UserPassesTestMixin, CreateView):
template_name = "dispatch/identity/edit.html"
model = Identity
@@ -397,6 +428,7 @@ class IdentityCreate(UserPassesTestMixin, CreateView):
return self.request.user.is_superuser or \
self.get_object().user.pk is self.request.user.pk
+
class IdentityUpdate(UserPassesTestMixin, UpdateView):
template_name = "dispatch/identity/edit.html"
model = Identity
@@ -422,10 +454,12 @@ class InvoiceList(FilteredListView):
template_name = "dispatch/invoice/list.html"
model = Invoice
+
class InvoiceDetail(DetailView):
template_name = "dispatch/invoice/detail.html"
model = Invoice
+
def InvoiceGenerateForDates(request, pk):
driver = User.objects.get(pk=pk)
@@ -445,6 +479,7 @@ def InvoiceGenerateForDates(request, pk):
return redirect(reverse('invoice_list'))
+
class InvoiceDelete(UserPassesTestMixin, DeleteView):
template_name = "dispatch/invoice/list.html"
model = Invoice