Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
- from django.contrib.auth.mixins import LoginRequiredMixin
- from django.core.paginator import Paginator
- from django.http import HttpResponseRedirect, HttpResponse
- from django.shortcuts import get_object_or_404, render
- from django.urls import reverse_lazy
- from django.views.generic import (CreateView, DetailView, FormView, ListView,
- TemplateView)
- from .forms import inspectionRegisterForm
- from core.models import *
- from users.models import User
- from users.mixins import UserHasAccessToViewMixin, UserHasAccessToVistoriaMixin
- from .models import *
- import time
- from datetime import datetime
- import json
- from django.core import serializers
- import unicodedata
- def get_models(request):
- if request.GET.get("model") == "vistorias":
- return HttpResponse(unicodedata.normalize('NFKD', serializers.serialize("json", Vistoria.objects.all())).encode('ASCII', 'ignore').decode('utf-8'))
- if request.GET.get("model") == "vendedores":
- return HttpResponse(unicodedata.normalize('NFKD', serializers.serialize("json", User.objects.all())).encode('ASCII', 'ignore').decode('utf-8'))
- if request.GET.get("model") == "cidades":
- return HttpResponse(unicodedata.normalize('NFKD', serializers.serialize("json", Cidade.objects.all())).encode('ASCII', 'ignore').decode('utf-8'))
- class inspectionDetailView(LoginRequiredMixin, UserHasAccessToVistoriaMixin, DetailView):
- model = Vistoria
- template_name = 'inspectionDetail.html'
- class RelatorioView(LoginRequiredMixin, UserHasAccessToViewMixin, ListView):
- template_name = 'relatorio.html'
- model = Vistoria
- context_object_name = 'vistoria'
- queryset = Vistoria.objects.all()
- paginate_by = 7
- group_list = Grupos_de_Concessionaria.objects.all()
- setor_list = Setor.objects.all()
- concessionaria_list = Concessionaria.objects.all()
- pagamento_list = Modos_de_Pagamento.objects.all()
- def get_context_data(self, **kwargs):
- context = super(RelatorioView, self).get_context_data(**kwargs)
- context.update({
- 'group_list': self.group_list,
- 'setor_list': self.setor_list,
- 'concessionaria_list':self.concessionaria_list,
- 'pagamento_list':self.pagamento_list
- })
- return context
- def get_queryset(self):
- context_queryset = super(RelatorioView, self).get_queryset()
- if self.request.GET.get('check-date') =='on':
- if (self.request.GET.get('initial-date')!='' and self.request.GET.get('end-date')!=''):
- print('entre')
- context_queryset = context_queryset.filter(Data_de_Registro__range=[self.request.GET.get('initial-date'), self.request.GET.get('final-date')])
- elif (self.request.GET.get('initial-date')!= ''):
- print('inicio')
- context_queryset = context_queryset.filter(Data_de_Registro__gte = self.request.GET.get('initial-date'))
- elif (self.request.GET.get('end-date')!=''):
- print('fim')
- context_queryset = context_queryset.filter(Data_de_Registro__lte = self.request.GET.get('end-date'))
- if self.request.GET.get('check-date-register') =='on': #Pesquisa pela data que o model foi criado
- if (self.request.GET.get('initial-date-register')!='' and self.request.GET.get('end-date-register')!=''):
- print('entre')
- context_queryset = context_queryset.filter(dataSys__range=[self.request.GET.get('initial-date'), self.request.GET.get('final-date')])
- elif (self.request.GET.get('initial-date-register')!= ''):
- print('inicio')
- context_queryset = context_queryset.filter(dataSys__gte = self.request.GET.get('initial-date'))
- elif (self.request.GET.get('end-date-register')!=''):
- print('fim')
- context_queryset = context_queryset.filter(dataSys__lte = self.request.GET.get('end-date'))
- if (self.request.GET.get('check-group')=='on'):
- context_queryset = context_queryset.filter(Grupo_da_concessionaria__pk =self.request.GET.get('group'))
- if (self.request.GET.get('check-concessionaria')=='on'):
- context_queryset = context_queryset.filter(Concessionaria__pk =self.request.GET.get('concessionaria'))
- if (self.request.GET.get('check-setor')=='on'):
- context_queryset = context_queryset.filter(Setor__pk =self.request.GET.get('setor'))
- if (self.request.GET.get('check-pagamento')=='on'):
- context_queryset = context_queryset.filter(Modos_de_pagamento__pk =self.request.GET.get('pagamento'))
- return context_queryset
- class inspectionRegisterView(LoginRequiredMixin, UserHasAccessToViewMixin, CreateView):
- model = Vistoria
- template_name = 'inspectionRegister.html'
- form_class = inspectionRegisterForm
- success_url = reverse_lazy('list')
- def form_valid(self, form):
- inspection_date = time.strptime(self.request.POST.get('Data_de_Registro'), "%Y-%m-%d")
- inspection_hour = int(self.request.POST.get('Hora_de_Registro').split(':')[0])
- inspection_minute = int(self.request.POST.get('Hora_de_Registro').split(':')[1])
- now_date = time.strptime(datetime.now().strftime('%Y-%m-%d'), "%Y-%m-%d")
- now_hour = int(datetime.now().strftime('%H'))
- now_minute = int(datetime.now().strftime('%M'))
- if(now_date<inspection_date):
- form.add_error("Data_de_Registro", "A Data da vistoria não pode ser maior que a Data de hoje.")
- return super(inspectionRegisterView, self).form_invalid(form)
- elif(now_date == inspection_date):
- if(now_hour < inspection_hour):
- form.add_error("Hora_de_Registro", "A Hora da vistoria não pode ser maior que a Hora atual.")
- return super(inspectionRegisterView, self).form_invalid(form)
- elif(now_hour == inspection_hour):
- if(now_minute < inspection_minute):
- form.add_error("Hora_de_Registro", "A Hora da vistoria não pode ser maior que a Hora atual.")
- return super(inspectionRegisterView, self).form_invalid(form)
- return super(inspectionRegisterView, self).form_valid(form)
- def form_invalid(self,form):
- return super(inspectionRegisterView, self).form_invalid(form)
- class downloadDBView(LoginRequiredMixin, UserHasAccessToViewMixin, TemplateView):
- template_name = 'db.html'
- class inspectionListView(LoginRequiredMixin, ListView):
- model = Vistoria
- context_object_name = 'vistorias'
- template_name = 'inspectionList.html'
- paginate_by = 6
- # https://docs.djangoproject.com/pt-br/2.1/topics/db/queries/
- def get_queryset(self):
- context_queryset = super(inspectionListView, self).get_queryset()
- select = self.request.GET.get('select')
- search = self.request.GET.get('search')
- if select == 'Placa':
- context_queryset = Vistoria.objects.filter(Placa__iexact=search)
- elif select == 'Chassi':
- context_queryset = Vistoria.objects.filter(Chassi__iexact=search)
- elif select == 'CPF_do_cliente':
- context_queryset = Vistoria.objects.filter(CPF_do_cliente__iexact=search)
- elif select == 'pk':
- context_queryset = Vistoria.objects.filter(pk=search)
- return context_queryset
- def get_context_data(self, **kwargs):
- context = super().get_context_data(**kwargs)
- # Checa se o usuario logado pertece ao grupo 'Vendedor'
- if User.objects.filter(id=self.request.user.id, groups__name='Vendedor').exists():
- context['vistorias'] = Vistoria.objects.filter(Concessionaria=self.request.user.concessionaria)
- return context
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement