diff --git a/Clientes/views.py b/Clientes/views.py index d69ed1b..306604f 100644 --- a/Clientes/views.py +++ b/Clientes/views.py @@ -2,6 +2,7 @@ import os import re import datetime import functools +import urllib.parse from asgiref.sync import sync_to_async from django.conf import settings @@ -26,6 +27,7 @@ from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated from rest_framework import status + from Sistemas.permissions import ItsAdminToken #EXCEL @@ -392,30 +394,32 @@ class check_RFC(APIView): try: if rfc is None or len(rfc)==0: return Response({'Error': 'RFC parameter cannot be empty', 'isError': True}) - cliente, created = Clientes.objects.get_or_create(RFC=rfc) serializer = ClienteSerializer(cliente) if created: cliente.Activo=True cliente.save() - if not serializer.is_valid: return Response({'Error':f'{serializer.errors}','isError':True},status=200) return Response(serializer.data) - except Exception as E: + except Exception as E: return Response({'Error':f'check_RFC:{E} RFC:{rfc}','isError':True}) class add_timbre2(APIView): permission_classes = (IsAuthenticated,ItsAdminToken,) def get(self,request): uuid= request.GET.get('uuid', None) - rfcc= request.GET.get('rfcc', None) + rfcc_encoded = request.GET.get('rfcc', None) fecha=request.GET.get('fecha', None) folio=request.GET.get('folio', None) serie=request.GET.get('serie', None) tipo=request.GET.get('tipo', None) - rfcp=request.GET.get('rfcp', None) + rfcp_encoded=request.GET.get('rfcp', None) modo=request.GET.get('modo', None) + + rfcc = urllib.parse.unquote(rfcc_encoded) + rfcp = urllib.parse.unquote(rfcp_encoded) + obj={'uuid':uuid,'rfcc':rfcc,'fecha':fecha,'folio':folio, 'serie':serie,'tipo':tipo,'rfcp':rfcp,'modo':modo } @@ -429,7 +433,7 @@ class add_timbre2(APIView): rfcc=rfcc, folio=folio, modo=modo - ) + ) return Response({'Error':f'{e}'}) class saldo_funct2(APIView): diff --git a/Sistemas/views.py b/Sistemas/views.py index 621252c..b3e69a6 100644 --- a/Sistemas/views.py +++ b/Sistemas/views.py @@ -177,16 +177,18 @@ class SistemasXCliente_DetailView(UserPassesTestMixin,LoginRequiredMixin, Detail model = sistemas_por_cliente template_name= 'Sistemas/Xclientes/detail.html' def test_func(self): + """Verifica que el usuario sea parte del grupo de admin_soft""" res = self.request.user.groups.filter(name= 'admin_soft') if not res: messages.error(self.request, f'Lo sentimos. La página que buscas no está disponible, no cuentas con los permisos.') return res def get_context_data(self, **kwargs): + """Filtra los Dispositivos por sistema del cliente""" context = super().get_context_data(**kwargs) - sistemas_por_cliente = self.object - sistema = sistemas_por_cliente.id_sistema - cliente = sistemas_por_cliente.cliente - print(sistema.id, cliente.id) + sistemas_por_cliente_ = self.object #type: ignore + sistema = sistemas_por_cliente_.id_sistema + cliente = sistemas_por_cliente_.cliente + context['devices'] = Device.objects.filter(sistema=sistema, client=cliente.id) return context