diff options
Diffstat (limited to 'app/dispatch/views.py')
| -rw-r--r-- | app/dispatch/views.py | 82 |
1 files changed, 78 insertions, 4 deletions
diff --git a/app/dispatch/views.py b/app/dispatch/views.py index 600a746..8101ac0 100644 --- a/app/dispatch/views.py +++ b/app/dispatch/views.py @@ -9,12 +9,33 @@ 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 +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 @@ -34,12 +55,65 @@ class CompanyDetail(DetailView): return context class CompanyUpdate(UpdateView): - template_name = "dispatch/companies/edit.html" + 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/companies/delete.html" + template_name = "dispatch/loads/delete.html" model = Company - success_url = reverse_lazy('company_list')
\ No newline at end of file + 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')
\ No newline at end of file |
