Advertisement
EulisAires

models

Mar 20th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.87 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3.  
  4. from django.contrib.auth.mixins import LoginRequiredMixin
  5. from django.core.paginator import Paginator
  6. from django.http import HttpResponseRedirect, HttpResponse
  7. from django.shortcuts import get_object_or_404, render
  8. from django.urls import reverse_lazy
  9. from django.views.generic import (CreateView, DetailView, FormView, ListView,
  10.                                   TemplateView)
  11.  
  12. from .forms import inspectionRegisterForm
  13.  
  14. from core.models import *
  15. from users.models import User
  16. from users.mixins import UserHasAccessToViewMixin, UserHasAccessToVistoriaMixin
  17. from .models import *
  18.  
  19.  
  20. import time
  21. from datetime import datetime
  22. import json
  23. from django.core import serializers
  24. import unicodedata
  25.  
  26. def get_models(request):
  27.     if request.GET.get("model") == "vistorias":
  28.         return HttpResponse(unicodedata.normalize('NFKD', serializers.serialize("json", Vistoria.objects.all())).encode('ASCII', 'ignore').decode('utf-8'))
  29.     if request.GET.get("model") == "vendedores":
  30.         return HttpResponse(unicodedata.normalize('NFKD', serializers.serialize("json", User.objects.all())).encode('ASCII', 'ignore').decode('utf-8'))
  31.     if request.GET.get("model") == "cidades":
  32.         return HttpResponse(unicodedata.normalize('NFKD', serializers.serialize("json", Cidade.objects.all())).encode('ASCII', 'ignore').decode('utf-8'))
  33.  
  34.  
  35.  
  36. class inspectionDetailView(LoginRequiredMixin, UserHasAccessToVistoriaMixin, DetailView):
  37.     model = Vistoria
  38.     template_name = 'inspectionDetail.html'
  39.    
  40.    
  41. class RelatorioView(LoginRequiredMixin, UserHasAccessToViewMixin, ListView):
  42.     template_name = 'relatorio.html'
  43.     model = Vistoria
  44.     context_object_name = 'vistoria'
  45.     queryset = Vistoria.objects.all()
  46.     paginate_by = 7
  47.  
  48.     group_list = Grupos_de_Concessionaria.objects.all()
  49.     setor_list = Setor.objects.all()
  50.     concessionaria_list = Concessionaria.objects.all()
  51.     pagamento_list = Modos_de_Pagamento.objects.all()
  52.  
  53.     def get_context_data(self, **kwargs):
  54.         context = super(RelatorioView, self).get_context_data(**kwargs)
  55.         context.update({
  56.             'group_list': self.group_list,
  57.             'setor_list': self.setor_list,
  58.             'concessionaria_list':self.concessionaria_list,
  59.             'pagamento_list':self.pagamento_list
  60.         })
  61.         return context
  62.     def get_queryset(self):
  63.         context_queryset = super(RelatorioView, self).get_queryset()
  64.        
  65.         if self.request.GET.get('check-date') =='on':
  66.             if (self.request.GET.get('initial-date')!='' and self.request.GET.get('end-date')!=''):
  67.                 print('entre')
  68.                 context_queryset = context_queryset.filter(Data_de_Registro__range=[self.request.GET.get('initial-date'), self.request.GET.get('final-date')])
  69.             elif (self.request.GET.get('initial-date')!= ''):
  70.                 print('inicio')
  71.                 context_queryset = context_queryset.filter(Data_de_Registro__gte = self.request.GET.get('initial-date'))
  72.             elif (self.request.GET.get('end-date')!=''):
  73.                 print('fim')
  74.                 context_queryset = context_queryset.filter(Data_de_Registro__lte = self.request.GET.get('end-date'))
  75.         if self.request.GET.get('check-date-register') =='on': #Pesquisa pela data que o model foi criado
  76.             if (self.request.GET.get('initial-date-register')!='' and self.request.GET.get('end-date-register')!=''):
  77.                 print('entre')
  78.                 context_queryset = context_queryset.filter(dataSys__range=[self.request.GET.get('initial-date'), self.request.GET.get('final-date')])
  79.             elif (self.request.GET.get('initial-date-register')!= ''):
  80.                 print('inicio')
  81.                 context_queryset = context_queryset.filter(dataSys__gte = self.request.GET.get('initial-date'))
  82.             elif (self.request.GET.get('end-date-register')!=''):
  83.                 print('fim')
  84.                 context_queryset = context_queryset.filter(dataSys__lte = self.request.GET.get('end-date'))
  85.        
  86.         if (self.request.GET.get('check-group')=='on'):
  87.             context_queryset = context_queryset.filter(Grupo_da_concessionaria__pk =self.request.GET.get('group'))
  88.         if (self.request.GET.get('check-concessionaria')=='on'):
  89.             context_queryset = context_queryset.filter(Concessionaria__pk =self.request.GET.get('concessionaria'))
  90.         if (self.request.GET.get('check-setor')=='on'):
  91.             context_queryset = context_queryset.filter(Setor__pk =self.request.GET.get('setor'))
  92.         if (self.request.GET.get('check-pagamento')=='on'):
  93.             context_queryset = context_queryset.filter(Modos_de_pagamento__pk =self.request.GET.get('pagamento'))
  94.         return context_queryset
  95.  
  96. class inspectionRegisterView(LoginRequiredMixin, UserHasAccessToViewMixin, CreateView):
  97.     model = Vistoria
  98.     template_name = 'inspectionRegister.html'
  99.     form_class = inspectionRegisterForm
  100.     success_url = reverse_lazy('list')
  101.  
  102.     def form_valid(self, form):
  103.         inspection_date = time.strptime(self.request.POST.get('Data_de_Registro'), "%Y-%m-%d")
  104.         inspection_hour = int(self.request.POST.get('Hora_de_Registro').split(':')[0])
  105.         inspection_minute = int(self.request.POST.get('Hora_de_Registro').split(':')[1])
  106.         now_date = time.strptime(datetime.now().strftime('%Y-%m-%d'), "%Y-%m-%d")
  107.         now_hour = int(datetime.now().strftime('%H'))
  108.         now_minute = int(datetime.now().strftime('%M'))
  109.         if(now_date<inspection_date):
  110.             form.add_error("Data_de_Registro", "A Data da vistoria não pode ser maior que a Data de hoje.")
  111.             return super(inspectionRegisterView, self).form_invalid(form)
  112.         elif(now_date == inspection_date):
  113.             if(now_hour < inspection_hour):
  114.                 form.add_error("Hora_de_Registro", "A Hora da vistoria não pode ser maior que a Hora atual.")
  115.                 return super(inspectionRegisterView, self).form_invalid(form)
  116.             elif(now_hour == inspection_hour):
  117.                 if(now_minute < inspection_minute):
  118.                     form.add_error("Hora_de_Registro", "A Hora da vistoria não pode ser maior que a Hora atual.")
  119.                     return super(inspectionRegisterView, self).form_invalid(form)
  120.         return super(inspectionRegisterView, self).form_valid(form)
  121.    
  122.     def form_invalid(self,form):
  123.         return super(inspectionRegisterView, self).form_invalid(form)
  124.  
  125.  
  126. class downloadDBView(LoginRequiredMixin, UserHasAccessToViewMixin, TemplateView):
  127.     template_name = 'db.html'
  128.  
  129.    
  130. class inspectionListView(LoginRequiredMixin, ListView):
  131.     model = Vistoria
  132.     context_object_name = 'vistorias'
  133.     template_name = 'inspectionList.html'
  134.     paginate_by = 6
  135.  
  136.     # https://docs.djangoproject.com/pt-br/2.1/topics/db/queries/
  137.     def get_queryset(self):
  138.         context_queryset = super(inspectionListView, self).get_queryset()
  139.         select = self.request.GET.get('select')
  140.         search = self.request.GET.get('search')
  141.  
  142.         if select == 'Placa':
  143.             context_queryset = Vistoria.objects.filter(Placa__iexact=search)
  144.         elif select == 'Chassi':
  145.             context_queryset = Vistoria.objects.filter(Chassi__iexact=search)
  146.         elif select == 'CPF_do_cliente':
  147.             context_queryset = Vistoria.objects.filter(CPF_do_cliente__iexact=search)
  148.         elif select == 'pk':
  149.             context_queryset = Vistoria.objects.filter(pk=search)
  150.        
  151.         return context_queryset
  152.  
  153.     def get_context_data(self, **kwargs):
  154.         context = super().get_context_data(**kwargs)
  155.         # Checa se o usuario logado pertece ao grupo 'Vendedor'
  156.         if User.objects.filter(id=self.request.user.id, groups__name='Vendedor').exists():
  157.             context['vistorias'] = Vistoria.objects.filter(Concessionaria=self.request.user.concessionaria)
  158.         return context
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement