def ejecutaraccionList(self, request,accion=None,*args, **kwargs): accion=accion.lower() miaccion=factorias.FactoriaAccion.getAcciones(self.getAplic(),self.getModelName(),'Q').get(accion,None) if miaccion: query=dict() query["ORDER"]=filtersPagination._getOrder(request.query_params,"o_") query["FILTER"]=filtersPagination._getsearchParam(request.query_params,self.get_serializer(partial=True)) miaccionobj=miaccion(query=query) resul=miaccionobj.ejecutarExterna(request.data) return Response(resul) else: #TODO:Tratamiento de acciones individuales como multiples miaccion=factorias.FactoriaAccion.getAcciones(self.getAplic(),self.getModelName(),'I').get(accion,None) bRESUL=not ('a_NORESUL' in request.query_params) if miaccion: queryset = self.filter_queryset(self.get_queryset()) resul2=list() for obj in queryset: miaccionobj=miaccion(pk=obj.pk) resul=miaccionobj.ejecutarExterna(request.data) if bRESUL: resul2.append(resul) return Response(resul2) else: log.error("Accion Query no registrada %s",accion) raise exceptions.APIException(_("Accion no existente %s")%accion)
def ejecutaraccionAux(self, request, accion=None,*args, **kwargs): accion=accion.lower() miaccion=factorias.FactoriaAccion.getAcciones(self.getAplic(),self.getModelName(),'O').get(accion,None) if miaccion: if 'a_BULK' in request.query_params: bRESUL=not ('a_NORESUL' in request.query_params) serializador=miaccion.serializerClassIN(many=True,data=request.data) serializador.is_valid(raise_exception=True) milista=serializador.validated_data resul2=list() for elem in milista: miaccionobj=miaccion() resul=miaccionobj.ejecutarExterna(elem) if bRESUL: resul2.append(resul) return Response(resul2) else: miaccionobj=miaccion() resul=miaccionobj.ejecutarExterna(request.data) return Response(resul) else: log.error("Accion Otra no registrada %s",accion) raise exceptions.APIException(_("Accion no existente %s")%accion) pass
def toJSON(obj,optimizar=True): try: if optimizar: return json.dumps(obj,cls=miEncoder,indent=(4 if settings.DEBUG else 0)) else: return json.dumps(obj) except Exception as e: log.error("Error al pasar a JSON") raise
def toJSON(obj, optimizar=True): try: if optimizar: return json.dumps(obj, cls=miEncoder, indent=(4 if settings.DEBUG else 0)) else: return json.dumps(obj) except Exception: log.error("Error al pasar a JSON") raise
def ejecutaraccionInd(self, request, accion=None,pk=None,*args, **kwargs): #Obtener accion accion=accion.lower() miaccion=factorias.FactoriaAccion.getAcciones(self.getAplic(),self.getModelName(),'I').get(accion,None) if miaccion: #Control de acciones BULK if (pk=='_BULK') or ('a_BULK' in request.query_params): #Cambiamos serializador de entrada por este bconDatosIN=not(miaccion.serializerClassIN is None) #opcion NORESUL bRESUL=not ('a_NORESUL' in request.query_params) #if bconDatosIN: # class miserBULK(serializers.serializers.Serializer): # PK =serializers.serializers.CharField # DATAIN=miaccion.serializerClassIN(partial=True,required=True) # clsSerializerIN=miserBULK #else: # class miserBULK2(serializers.serializers.Serializer): # PK =serializers.serializers.CharField # clsSerializerIN=miserBULK2 #serializador=clsSerializerIN(many=True,partial=True,data=request.data) #serializador.is_valid(raise_exception=True) #milista=serializador.validated_data milista=request.data resul2=list() for elem in milista: miaccionobj=miaccion(pk=elem['PK']) if bconDatosIN: resul=miaccionobj.ejecutarExterna(elem['DATAIN']) else: resul=miaccionobj.ejecutarExterna({}) if bRESUL: resul2.append(resul) return Response(resul2) #ACCIONES NORMALES else: miaccionobj=miaccion(pk=pk) resul=miaccionobj.ejecutarExterna(request.data) return Response(resul) else: log.error("Accion individual no registrada %s",accion) raise exceptions.APIException(_("Accion no existente %s")%accion)