From f4372328616c66f7c226e5d9dbc731f8339c79cc Mon Sep 17 00:00:00 2001 From: fjrodriguez Date: Thu, 5 Jan 2023 16:09:22 -0600 Subject: [PATCH] year added to index view --- Admin/settings.py | 6 +- Admin/urls.py | 20 ++++++- Clientes/models.py | 6 +- Clientes/urls.py | 3 + Clientes/views.py | 29 ++++++---- Templates/404.html | 1 + Templates/Clientes/index.html | 88 +++++++++++++++++++---------- Templates/partials/search_form.html | 10 ---- 8 files changed, 106 insertions(+), 57 deletions(-) create mode 100644 Templates/404.html diff --git a/Admin/settings.py b/Admin/settings.py index 9d2b192..2ecba9a 100644 --- a/Admin/settings.py +++ b/Admin/settings.py @@ -34,7 +34,7 @@ INSTALLED_APPS = [ 'allauth.account', 'allauth.socialaccount', 'widget_tweaks', - + 'Clientes', ] REST_FRAMEWORK = { @@ -102,7 +102,7 @@ ACCOUNT_LOGOUT_ON_PASSWORD_CHANGE = True EMAIL_TIMEOUT = 10 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_SUBJECT_PREFIX = 'AS Timbres' -if DEBUG: +if DEBUG : EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 @@ -121,6 +121,8 @@ else: # Database # https://docs.djangoproject.com/en/4.1/ref/settings/#databases + + if DEBUG: DATABASES = { 'default': { diff --git a/Admin/urls.py b/Admin/urls.py index 3da3cf4..66bda04 100644 --- a/Admin/urls.py +++ b/Admin/urls.py @@ -9,21 +9,36 @@ from django.http import HttpResponse from django.test import SimpleTestCase, override_settings from rest_framework.authtoken.views import obtain_auth_token + + def response_error_handler(request, exception=None): context={} + return render(request, '403.html',context,status=403) +def response_error_handler_404(request,exception=None): + + return render(request,'404.html',status=404) + def permission_denied_view(request): + raise PermissionDenied + + urlpatterns = [ path('admin/', admin.site.urls), path('accounts/', include('allauth.urls')), path('DRF_Token/', obtain_auth_token, name='DRF_Token'), path('', include('Clientes.urls')), path('403/', permission_denied_view), + + + + ] handler403 = response_error_handler +handler404 = response_error_handler_404 if settings.DEBUG: #DEV only urlpatterns += static(settings.STATIC_URL, document_root= settings.STATIC_ROOT) @@ -32,8 +47,9 @@ if settings.DEBUG: #DEV only # ROOT_URLCONF must specify the module that contains handler403 = ... @override_settings(ROOT_URLCONF=__name__) class CustomErrorHandlerTests(SimpleTestCase): - def test_handler_renders_template_response(self): response = self.client.get('/403/') + # Make assertions on the response here. For example: - self.assertContains(response, 'Error handler content', status_code=403) \ No newline at end of file + self.assertContains(response, 'Error handler content', status_code=403) + diff --git a/Clientes/models.py b/Clientes/models.py index e06079f..2355e91 100644 --- a/Clientes/models.py +++ b/Clientes/models.py @@ -40,11 +40,13 @@ class Clientes(models.Model): fecha_baja = models.DateField(blank=True,null=True) email = models.EmailField(max_length=254, blank=True) conteo_mes = models.IntegerField(blank=True,null=True,default=0) - def timbres_X_MES(self, mes=None): + def timbres_X_MES(self, mes=None, year=None): today = datetime.date.today() - year = today.year + if year is None: + year = today.year if mes==None: mes = today.month + dat = datetime.datetime(int(year),int(mes),1) if dat.month in (1,3,5,7,8,10,12):#31 findate = dat + datetime.timedelta(days=30) diff --git a/Clientes/urls.py b/Clientes/urls.py index 80c20f8..552324e 100644 --- a/Clientes/urls.py +++ b/Clientes/urls.py @@ -9,6 +9,7 @@ from .views import ( send_timbres_Email, Retrive_Cliente_Email, PACS_Retrive_RFCS, + #API DRF saldo_funct2, @@ -31,4 +32,6 @@ urlpatterns = [ path('check_host/',check_host.as_view(),name='check_host'), path('emails_cliente/',Retrive_Cliente_Email, name='Retrive_Cliente_Email'), path('pacs/list/',PACS_Retrive_RFCS,name='PACS_Retrive_RFCS'), + + ] \ No newline at end of file diff --git a/Clientes/views.py b/Clientes/views.py index e5f07fa..d3abcc4 100644 --- a/Clientes/views.py +++ b/Clientes/views.py @@ -84,7 +84,7 @@ def send_timbres_Email(request): if req=='POST': email = form.cleaned_data["email"] if 'email' in form.cleaned_data.keys() else '' emails = [Cli.email] if req=='GET' else [ Cli.email, email ] - + if len(emails) ==0 : messages.add_message(request, messages.ERROR, f'La lista de correos esta vacia, favor de agregar un correo.') return redirect('index') @@ -132,9 +132,9 @@ def send_timbres_Email(request): contenido = "attachment; filename = {0}".format(nombre_archivo) response["Content-Disposition"] = contenido wb.save(response) - + files = BytesIO(response.content) - + try: mail = EmailMessage(subject,message,settings.EMAIL_HOST_USER,emails) mail.attach(filename='Timbres.xls',content=files.getbuffer(),mimetype='application/vnd.ms-excel') @@ -164,7 +164,11 @@ def index(request): clientes_list = Clientes.objects.all() mes = request.GET.get('mes', None) today = datetime.date.today() - if mes is None or mes =='None': + + year = request.GET.get('year',None) + if year is None or year =='None': + year= today.year + if mes is None or mes =='None': mes = today.month page = request.GET.get('page', 1) search = request.GET.get('search',None) @@ -174,6 +178,7 @@ def index(request): filters.pop('datepicker','') filters.pop('datepickerFin','') filters.pop('mes','') + filters.pop('year','') print('filters------',filters) if rfcc and search: clientes_list = Clientes.objects.filter(Q(RFC__icontains=search)) @@ -184,7 +189,7 @@ def index(request): while met: try: c = next(met) - c.timbres_X_MES(mes=mes) + c.timbres_X_MES(mes=mes,year=year) except StopIteration: break @@ -193,6 +198,7 @@ def index(request): context = { 'lista':clientes_list, 'mes':mes, + 'year':year, 'filters':filters, 'emailForm':EmailForm(), } @@ -231,8 +237,6 @@ def timbres_cliente(request, RFC): if PAC is not None and PAC !='00': lista = lista.filter(rfcp=PAC) - - filters = {key:value[0] for (key,value) in dict(request.GET).items() if value !=[""]} filters.pop('page', '') @@ -257,11 +261,10 @@ def timbres_cliente(request, RFC): # end = datetime.datetime(fin[2],fin[0],fin[1]) end = datetime.datetime(fin[0],fin[1],fin[2]) - end += datetime.timedelta(days=1) - + end += datetime.timedelta(days=1) #print('start',start, 'end',end) lista = lista.filter(created_at__range=[start, end]) - + if mes is None or mes =='None' or mes=='': mes='00' #Todos @@ -358,9 +361,10 @@ def Retrive_Cliente_Email(request): #@is_staff_access() def PACS_Retrive_RFCS(request): timbres = {} + status = 200 if request.method == 'GET': RFC= request.GET.get('RFC','') - status = 200 + if RFC !='': timbres =list(Timbres.objects.values('rfcp').filter(rfcc__in=[RFC])) else: @@ -369,6 +373,8 @@ def PACS_Retrive_RFCS(request): status=403 return JsonResponse({'PACS':timbres},status=status) + + #-----------------------------------API VIEWS #-------------------------------------------- from rest_framework import status @@ -449,7 +455,6 @@ class ErroresTimbresListView(LoginRequiredMixin,ListView): model = ErroresTimbres paginate_by = 100 template_name = 'Clientes/Errores_Timbres_list.html' - class ClientesUpdateView(UserPassesTestMixin,LoginRequiredMixin,UpdateView): model= Clientes diff --git a/Templates/404.html b/Templates/404.html new file mode 100644 index 0000000..f4fae37 --- /dev/null +++ b/Templates/404.html @@ -0,0 +1 @@ +no hay diff --git a/Templates/Clientes/index.html b/Templates/Clientes/index.html index 54dea59..85306fa 100644 --- a/Templates/Clientes/index.html +++ b/Templates/Clientes/index.html @@ -18,11 +18,13 @@ Timbres disponibles Comercio Digital: {{saldo}} Nombre -
- Totales Mes - +
+ Total x mes +
- + -
\ No newline at end of file