from django.shortcuts import render, redirect from django.http import HttpResponse from django.template import loader from django.core.urlresolvers import reverse import django.contrib.auth as auth from django.conf import settings # Create your views here. from django.views.generic import TemplateView,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 Company, Load def home(request): return render(request,"dispatch/index.html") class FilteredListView(ListView): def get_queryset(self): base_qs = super(FilteredListView, self).get_queryset() if not self.request.user.is_superuser: 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() if not self.request.user.is_superuser: 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() if not self.request.user.is_superuser: return base_qs.filter(user=self.request.user) return base_qs class CompanyList(ListView): template_name = "dispatch/companies/list.html" model = Company class CompanyCreate(CreateView): template_name = "dispatch/companies/create.html" model = Company success_url = reverse_lazy('company_list') fields = ['name', 'address', 'phone_number','email_address'] class CompanyDetail(DetailView): template_name = "dispatch/companies/detail.html" model = Company def get_context_data(self, **kwargs): context = super(CompanyDetail, self).get_context_data(**kwargs) return context class CompanyUpdate(UpdateView): template_name = "dispatch/loads/edit.html" model = Company success_url = reverse_lazy('company_list') fields = ['name', 'address', 'phone_number','email_address'] class CompanyDelete(DeleteView): template_name = "dispatch/loads/delete.html" model = Company success_url = reverse_lazy('company_list') # Load CRUD class LoadList(FilteredListView): template_name = "dispatch/loads/list.html" model = Load class LoadCreate(CreateView): template_name = "dispatch/loads/create.html" model = Load success_url = reverse_lazy('load_list') fields = ['date', 'company','description','amount'] def get(self,request): if request.user.is_superuser: self.fields.insert(1,'user') return super(LoadCreate, self).get(request) def form_valid(self, form): if not self.request.user.is_superuser: load = form.save(commit=False) load.user = self.request.user return super(LoadCreate, self).form_valid(form) class LoadDetail(DetailView): template_name = "dispatch/loads/detail.html" model = Load def get_context_data(self, **kwargs): context = super(LoadDetail, self).get_context_data(**kwargs) return context class LoadUpdate(FilteredUpdateView): template_name = "dispatch/loads/edit.html" model = Load success_url = reverse_lazy('load_list') fields = ['date', 'company','description','amount'] def get(self,request,pk): if request.user.is_superuser: self.fields.insert(1,'user') return super(LoadUpdate, self).get(request) def form_valid(self, form): if not self.request.user.is_superuser: load = form.save(commit=False) load.user = self.request.user return super(LoadUpdate, self).form_valid(form) class LoadDelete(FilteredDeleteView): template_name = "dispatch/loads/delete.html" model = Load success_url = reverse_lazy('load_list')