From cf26245f4efe9ac133f5c874058ed3116fb0ac55 Mon Sep 17 00:00:00 2001 From: Mitch Riedstra Date: Sat, 28 Oct 2017 15:55:26 -0400 Subject: Clean up code style in views --- app/dispatch/views.py | 119 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 77 insertions(+), 42 deletions(-) (limited to 'app') 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 -- cgit v1.2.3