forked from TDTP/admin_transporte_backend
se agrega mas campos a log de usuarios
parent
3ff0eb4898
commit
8644561155
|
@ -1,6 +1,6 @@
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from .. import models, serializers
|
from api import models, serializers
|
||||||
from django.db import models as dj_models
|
from django.db.models import Max
|
||||||
|
|
||||||
class AplicacionViewSet(viewsets.ModelViewSet):
|
class AplicacionViewSet(viewsets.ModelViewSet):
|
||||||
queryset = models.Aplicacion.objects.all()
|
queryset = models.Aplicacion.objects.all()
|
||||||
|
@ -10,7 +10,7 @@ class AplicacionViewSet(viewsets.ModelViewSet):
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
# se indica que si no se indico el id, entonces sea el maximo + 1
|
# se indica que si no se indico el id, entonces sea el maximo + 1
|
||||||
if not request.data.get('id_aplicacion', None):
|
if not request.data.get('id_aplicacion', None):
|
||||||
max_id = models.Aplicacion.objects.aggregate(dj_models.Max('id_aplicacion'))['id_aplicacion__max']
|
max_id = models.Aplicacion.objects.aggregate(Max('id_aplicacion'))['id_aplicacion__max']
|
||||||
new_id = max_id + 1 if max_id is not None else 1
|
new_id = max_id + 1 if max_id is not None else 1
|
||||||
request.data['id_aplicacion'] = new_id
|
request.data['id_aplicacion'] = new_id
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from .. import models, serializers
|
from .. import models, serializers
|
||||||
from django.db import models as dj_models
|
from django.db.models import Max
|
||||||
|
|
||||||
class ComunaViewSet(viewsets.ModelViewSet):
|
class ComunaViewSet(viewsets.ModelViewSet):
|
||||||
queryset = models.Comuna.objects.all()
|
queryset = models.Comuna.objects.all()
|
||||||
|
@ -10,7 +10,7 @@ class ComunaViewSet(viewsets.ModelViewSet):
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
# se indica que si no se indico el id, entonces sea el maximo + 1
|
# se indica que si no se indico el id, entonces sea el maximo + 1
|
||||||
if not request.data.get('id_comuna', None):
|
if not request.data.get('id_comuna', None):
|
||||||
max_id = models.Comuna.objects.aggregate(dj_models.Max('id_comuna'))['id_comuna__max']
|
max_id = models.Comuna.objects.aggregate(Max('id_comuna'))['id_comuna__max']
|
||||||
new_id = max_id + 1 if max_id is not None else 1
|
new_id = max_id + 1 if max_id is not None else 1
|
||||||
request.data['id_comuna'] = new_id
|
request.data['id_comuna'] = new_id
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
|
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from rest_framework.response import Response
|
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from django_filters.rest_framework import DjangoFilterBackend
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
from django.core.files.storage import FileSystemStorage
|
from django.core.files.storage import FileSystemStorage
|
||||||
from django.core.files import File
|
|
||||||
from django.http import FileResponse, HttpResponse
|
from django.http import FileResponse, HttpResponse
|
||||||
from rest_framework import status
|
|
||||||
from api import models , serializers
|
from api import models , serializers
|
||||||
from decouple import config
|
from decouple import config
|
||||||
import os
|
import os
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from .. import models, serializers
|
from api import models, serializers
|
||||||
|
|
||||||
class LetreroLUR_ViewSet(viewsets.ModelViewSet):
|
class LetreroLUR_ViewSet(viewsets.ModelViewSet):
|
||||||
queryset = models.LetreroLUR.objects.all()
|
queryset = models.LetreroLUR.objects.all()
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
|
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
# from rest_framework.response import Response
|
# from rest_framework.response import Response
|
||||||
from rest_framework.decorators import action, api_view
|
from rest_framework.decorators import action
|
||||||
from rest_framework.filters import OrderingFilter
|
from rest_framework.filters import OrderingFilter
|
||||||
from django_filters.rest_framework import DjangoFilterBackend
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
from django.db import connection
|
from django.db import connection
|
||||||
from api import models, serializers
|
from api import models, serializers
|
||||||
from django.http import JsonResponse, HttpResponse
|
from django.http import JsonResponse
|
||||||
from django.forms.models import model_to_dict
|
|
||||||
from os import getenv
|
from os import getenv
|
||||||
import redis
|
import redis
|
||||||
import json
|
import json
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
|
|
||||||
from django.http import JsonResponse
|
from django.http import JsonResponse
|
||||||
from rest_framework.decorators import action, api_view, schema
|
from rest_framework.decorators import action, api_view
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from django.db.models import F, Subquery, Value
|
|
||||||
from django.db.models.functions import Coalesce
|
|
||||||
|
|
||||||
from ..models import Paradero, ParaderoImagen
|
from api.models import Paradero
|
||||||
from ..models import Linea, GtfsShape, GtfsTrips
|
from api.models import GtfsShape, GtfsTrips
|
||||||
from logging import error
|
from logging import error
|
||||||
|
|
||||||
google_api_key = 'AIzaSyDnFO9w_SsodjBuY5tOK8-kQJns_l5klQ4'
|
google_api_key = 'AIzaSyDnFO9w_SsodjBuY5tOK8-kQJns_l5klQ4'
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
|
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.decorators import action
|
|
||||||
from django_filters.rest_framework import DjangoFilterBackend
|
|
||||||
from rest_framework.filters import OrderingFilter
|
from rest_framework.filters import OrderingFilter
|
||||||
from rest_framework import status
|
from rest_framework.status import HTTP_400_BAD_REQUEST
|
||||||
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
|
from django.db.models import Max
|
||||||
|
from django.db import transaction
|
||||||
from api import models, serializers
|
from api import models, serializers
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
@ -26,14 +27,53 @@ class OperadorViewSet(viewsets.ModelViewSet):
|
||||||
|
|
||||||
|
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
# Comprueba si 'id_operador' está presente en la petición y no está vacío
|
# Comprueba si 'id_operador' está presente en la petición y no está vacío
|
||||||
id_operador = request.data.get('id_operador')
|
id_operador = request.data.get('id_operador')
|
||||||
if not id_operador:
|
if not id_operador:
|
||||||
# Si 'id_operador' no está presente o está vacío, retorna un error 400
|
# Si 'id_operador' no está presente o está vacío, retorna un error 400
|
||||||
return Response(
|
return Response(
|
||||||
{"error": "No se puede crear el operador: 'id_operador' no proporcionado."},
|
"No se puede crear el operador: 'id_operador' no proporcionado.",
|
||||||
status=status.HTTP_400_BAD_REQUEST
|
status=HTTP_400_BAD_REQUEST
|
||||||
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
with transaction.atomic():
|
||||||
|
operador = models.Operador(
|
||||||
|
id_operador = id_operador,
|
||||||
|
nombre_operador = request.data.get('nombre_operador'),
|
||||||
|
vigente = request.data.get('vigente'),
|
||||||
)
|
)
|
||||||
|
operador.save()
|
||||||
# Si 'id_operador' está presente, procede con la creación normal
|
|
||||||
return super().create(request, *args, **kwargs)
|
# se crea el rol para el operador
|
||||||
|
max_id = models.Rol.objects.aggregate(Max('id_rol'))['id_rol__max']
|
||||||
|
|
||||||
|
rol = models.Rol(
|
||||||
|
id_rol = max_id + 1,
|
||||||
|
nombre_rol = f'Rol {operador.nombre_operador}'
|
||||||
|
)
|
||||||
|
rol.save()
|
||||||
|
|
||||||
|
rol_operador = models.RolOperador(
|
||||||
|
id_rol = rol,
|
||||||
|
id_operador = operador
|
||||||
|
)
|
||||||
|
rol_operador.save()
|
||||||
|
|
||||||
|
return Response({
|
||||||
|
'id_operador': operador.id_operador,
|
||||||
|
'nombre_operador': operador.nombre_operador,
|
||||||
|
'vigente': operador.vigente,
|
||||||
|
})
|
||||||
|
except Exception as ex:
|
||||||
|
transaction.rollback()
|
||||||
|
return Response(str(ex), status=HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
|
def destroy(self, request, pk=None):
|
||||||
|
try:
|
||||||
|
with transaction.atomic():
|
||||||
|
models.RolOperador.objects.filter(id_operador=pk).delete()
|
||||||
|
return super().destroy(request, pk)
|
||||||
|
except Exception as ex:
|
||||||
|
return Response(str(ex), status=HTTP_400_BAD_REQUEST)
|
||||||
|
|
|
@ -12,7 +12,6 @@ class ParaderoViewSet(viewsets.ModelViewSet):
|
||||||
|
|
||||||
@action(detail=False, methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
def count(self, request, pk=None):
|
def count(self, request, pk=None):
|
||||||
|
|
||||||
queryset = Paradero.objects.all()
|
queryset = Paradero.objects.all()
|
||||||
|
|
||||||
if 'vigente' in request.GET and request.GET['vigente'] == '1':
|
if 'vigente' in request.GET and request.GET['vigente'] == '1':
|
||||||
|
|
|
@ -1,11 +1,8 @@
|
||||||
|
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from rest_framework.response import Response
|
|
||||||
from rest_framework.decorators import action
|
|
||||||
from django_filters.rest_framework import DjangoFilterBackend
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
from rest_framework import status
|
from django.db.models import Max
|
||||||
from .. import models , serializers
|
from api import models , serializers
|
||||||
from django.db import models as dj_models
|
|
||||||
|
|
||||||
class RedTransporteViewSet(viewsets.ModelViewSet):
|
class RedTransporteViewSet(viewsets.ModelViewSet):
|
||||||
queryset = models.RedTransporte.objects.all()
|
queryset = models.RedTransporte.objects.all()
|
||||||
|
@ -17,7 +14,7 @@ class RedTransporteViewSet(viewsets.ModelViewSet):
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
# se indica que si no se indico el id, entonces sea el maximo + 1
|
# se indica que si no se indico el id, entonces sea el maximo + 1
|
||||||
if not request.data.get('id_red', None):
|
if not request.data.get('id_red', None):
|
||||||
max_id = models.RedTransporte.objects.aggregate(dj_models.Max('id_red'))['id_red__max']
|
max_id = models.RedTransporte.objects.aggregate(Max('id_red'))['id_red__max']
|
||||||
new_id = max_id + 1 if max_id is not None else 1
|
new_id = max_id + 1 if max_id is not None else 1
|
||||||
request.data['id_red'] = new_id
|
request.data['id_red'] = new_id
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from .. import models, serializers
|
from api import models, serializers
|
||||||
|
|
||||||
class RegionViewSet(viewsets.ModelViewSet):
|
class RegionViewSet(viewsets.ModelViewSet):
|
||||||
queryset = models.Region.objects.all()
|
queryset = models.Region.objects.all()
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from .. import models, serializers
|
from rest_framework.response import Response
|
||||||
from django.db import models as dj_models
|
from api import models, serializers
|
||||||
|
from django.db.models import Max
|
||||||
|
|
||||||
class RolViewSet(viewsets.ModelViewSet):
|
class RolViewSet(viewsets.ModelViewSet):
|
||||||
queryset = models.Rol.objects.all()
|
queryset = models.Rol.objects.all()
|
||||||
|
@ -9,8 +10,14 @@ class RolViewSet(viewsets.ModelViewSet):
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
# se indica que si no se indico el id, entonces sea el maximo + 1
|
# se indica que si no se indico el id, entonces sea el maximo + 1
|
||||||
if not request.data.get('id_rol', None):
|
if not request.data.get('id_rol', None):
|
||||||
max_id = models.Rol.objects.aggregate(dj_models.Max('id_rol'))['id_rol__max']
|
max_id = models.Rol.objects.aggregate(Max('id_rol'))['id_rol__max']
|
||||||
new_id = max_id + 1 if max_id is not None else 1
|
new_id = max_id + 1 if max_id is not None else 1
|
||||||
request.data['id_rol'] = new_id
|
request.data['id_rol'] = new_id
|
||||||
|
|
||||||
return super().create(request, *args, **kwargs)
|
return super().create(request, *args, **kwargs)
|
||||||
|
|
||||||
|
def destroy(self, request, pk=None):
|
||||||
|
try:
|
||||||
|
return super().destroy(request, pk)
|
||||||
|
except Exception as ex:
|
||||||
|
return Response(str(ex), status=400)
|
|
@ -1,5 +1,5 @@
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from .. import models, serializers
|
from api import models, serializers
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
class RolAplicacionViewSet(viewsets.ModelViewSet):
|
class RolAplicacionViewSet(viewsets.ModelViewSet):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from .. import models, serializers
|
from api import models, serializers
|
||||||
|
|
||||||
class TipoTratamientoPersonaViewSet(viewsets.ModelViewSet):
|
class TipoTratamientoPersonaViewSet(viewsets.ModelViewSet):
|
||||||
queryset = models.TipoTratamientoPersona.objects.all()
|
queryset = models.TipoTratamientoPersona.objects.all()
|
||||||
|
|
|
@ -24,7 +24,7 @@ class UsuarioViewSet(viewsets.ModelViewSet):
|
||||||
def create(self, request):
|
def create(self, request):
|
||||||
try:
|
try:
|
||||||
login = self.request.jwt_info['login']
|
login = self.request.jwt_info['login']
|
||||||
usuario_session = models.Usuario.objects.filter(login=login)
|
usuario_session = models.Usuario.objects.filter(login=login).first()
|
||||||
|
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
input = json.loads(request.body)
|
input = json.loads(request.body)
|
||||||
|
@ -36,7 +36,7 @@ class UsuarioViewSet(viewsets.ModelViewSet):
|
||||||
if id_tipo_tratamiento:
|
if id_tipo_tratamiento:
|
||||||
tipo_tratamiento = models.TipoTratamientoPersona.objects.filter(id_tipo_tratamiento = id_tipo_tratamiento).first()
|
tipo_tratamiento = models.TipoTratamientoPersona.objects.filter(id_tipo_tratamiento = id_tipo_tratamiento).first()
|
||||||
|
|
||||||
if not persona:
|
if persona == None:
|
||||||
persona = models.Persona(
|
persona = models.Persona(
|
||||||
rut = input['rut'],
|
rut = input['rut'],
|
||||||
dv = input['dv'],
|
dv = input['dv'],
|
||||||
|
@ -55,6 +55,9 @@ class UsuarioViewSet(viewsets.ModelViewSet):
|
||||||
persona.id_tipo_tratamiento = tipo_tratamiento
|
persona.id_tipo_tratamiento = tipo_tratamiento
|
||||||
persona.save()
|
persona.save()
|
||||||
|
|
||||||
|
if persona == None:
|
||||||
|
raise ValueError('Persona no creada')
|
||||||
|
|
||||||
rol = models.Rol.objects.filter(id_rol=input.get('id_rol',None)).first()
|
rol = models.Rol.objects.filter(id_rol=input.get('id_rol',None)).first()
|
||||||
if rol == None:
|
if rol == None:
|
||||||
raise ValueError('Rol no encontrado')
|
raise ValueError('Rol no encontrado')
|
||||||
|
@ -67,32 +70,37 @@ class UsuarioViewSet(viewsets.ModelViewSet):
|
||||||
)
|
)
|
||||||
usuario.save()
|
usuario.save()
|
||||||
|
|
||||||
save_log_usuario(accion_tabla='create', rut_tabla=persona.rut, rut_usuario_ejecutor=usuario_session.rut.rut)
|
|
||||||
|
|
||||||
if input['clave']:
|
if input['clave']:
|
||||||
logging.error('Modificar clave de usuario')
|
logging.error('Modificar clave de usuario')
|
||||||
usuario.clave = make_password(input['clave'])
|
usuario.clave = make_password(input['clave'])
|
||||||
usuario.save()
|
usuario.save()
|
||||||
|
|
||||||
return Response({
|
save_log_usuario(
|
||||||
'rut': persona.rut,
|
accion_tabla='create',
|
||||||
'dv': persona.dv,
|
rut_tabla=persona.rut,
|
||||||
'nombres': persona.nombres,
|
login_tabla=usuario.login,
|
||||||
'apellido_a': persona.apellido_a,
|
rut_ejecutor=usuario_session.rut.rut,
|
||||||
'apellido_b': persona.apellido_b,
|
login_ejecutor=usuario_session.login
|
||||||
'email': persona.email,
|
)
|
||||||
'login': usuario.login,
|
|
||||||
'vigente': usuario.vigente,
|
return Response({
|
||||||
})
|
'rut': persona.rut,
|
||||||
|
'dv': persona.dv,
|
||||||
|
'nombres': persona.nombres,
|
||||||
|
'apellido_a': persona.apellido_a,
|
||||||
|
'apellido_b': persona.apellido_b,
|
||||||
|
'email': persona.email,
|
||||||
|
'login': usuario.login,
|
||||||
|
'vigente': usuario.vigente,
|
||||||
|
})
|
||||||
|
|
||||||
except ValueError as e:
|
except ValueError as ex:
|
||||||
transaction.rollback()
|
transaction.rollback()
|
||||||
return HttpResponse(str(e), status = 400)
|
return HttpResponse(str(ex), status = 400)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as ex:
|
||||||
transaction.rollback()
|
transaction.rollback()
|
||||||
print(e)
|
return HttpResponse(str(ex), status = 500)
|
||||||
return HttpResponse(str(e), status = 500)
|
|
||||||
|
|
||||||
|
|
||||||
def partial_update(self, request, *args, **kwargs):
|
def partial_update(self, request, *args, **kwargs):
|
||||||
|
@ -119,7 +127,13 @@ class UsuarioViewSet(viewsets.ModelViewSet):
|
||||||
usuario.clave = make_password(input['clave'])
|
usuario.clave = make_password(input['clave'])
|
||||||
usuario.save()
|
usuario.save()
|
||||||
|
|
||||||
save_log_usuario(accion_tabla='update', rut_tabla=persona.rut, rut_usuario_ejecutor=usuario_session.rut.rut)
|
save_log_usuario(
|
||||||
|
accion_tabla='update',
|
||||||
|
rut_tabla=persona.rut,
|
||||||
|
login_tabla=usuario.login,
|
||||||
|
rut_ejecutor=usuario_session.rut.rut,
|
||||||
|
login_ejecutor=usuario_session.login
|
||||||
|
)
|
||||||
|
|
||||||
return Response({
|
return Response({
|
||||||
'rut': persona.rut,
|
'rut': persona.rut,
|
||||||
|
@ -142,6 +156,26 @@ class UsuarioViewSet(viewsets.ModelViewSet):
|
||||||
return HttpResponse(str(e), status = 500)
|
return HttpResponse(str(e), status = 500)
|
||||||
|
|
||||||
|
|
||||||
|
def destroy(self, request, pk=None):
|
||||||
|
try:
|
||||||
|
login = self.request.jwt_info['login']
|
||||||
|
usuario_session = models.Usuario.objects.filter(login=login).first()
|
||||||
|
usuario = models.Usuario.objects.filter(login=pk).first()
|
||||||
|
data = super().destroy(request, usuario.rut.rut)
|
||||||
|
|
||||||
|
save_log_usuario(
|
||||||
|
accion_tabla='delete',
|
||||||
|
rut_tabla=usuario.rut.rut,
|
||||||
|
login_tabla=usuario.login,
|
||||||
|
rut_ejecutor=usuario_session.rut.rut,
|
||||||
|
login_ejecutor=usuario_session.login
|
||||||
|
)
|
||||||
|
|
||||||
|
return data
|
||||||
|
except Exception as ex:
|
||||||
|
return Response(str(ex), status=400)
|
||||||
|
|
||||||
|
|
||||||
@action(detail=False, methods=['post'])
|
@action(detail=False, methods=['post'])
|
||||||
def permisos(self, request):
|
def permisos(self, request):
|
||||||
input = {}
|
input = {}
|
||||||
|
|
|
@ -12,6 +12,8 @@ class LogConsultaDispositivo(Document):
|
||||||
|
|
||||||
class LogTablaUsuario(Document):
|
class LogTablaUsuario(Document):
|
||||||
accion_tabla = StringField(required=True)
|
accion_tabla = StringField(required=True)
|
||||||
rut_usuario_tabla = StringField(required=True)
|
rut_tabla = StringField(required=True)
|
||||||
rut_usuario_ejecutor = StringField(required=True)
|
login_tabla = StringField(required=True)
|
||||||
|
rut_ejecutor = StringField(required=True)
|
||||||
|
login_ejecutor = StringField(required=True)
|
||||||
fecha_hora = DateTimeField(required=True)
|
fecha_hora = DateTimeField(required=True)
|
|
@ -28,16 +28,18 @@ def save_log_dispositivo(id_dispositivo, accion_url):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def save_log_usuario(accion_tabla, rut_tabla, rut_usuario_ejecutor):
|
def save_log_usuario(accion_tabla, rut_tabla, login_tabla, rut_ejecutor, login_ejecutor):
|
||||||
try:
|
try:
|
||||||
print(rut_tabla, flush=True)
|
print(rut_tabla, flush=True)
|
||||||
print(rut_usuario_ejecutor, flush=True)
|
print(rut_ejecutor, flush=True)
|
||||||
|
|
||||||
# connect(db=dbname, host=dbhost, port=dbport, username=dbuser, password=dbpass, authentication_source='admin')
|
# connect(db=dbname, host=dbhost, port=dbport, username=dbuser, password=dbpass, authentication_source='admin')
|
||||||
nuevo_registro = LogTablaUsuario(
|
nuevo_registro = LogTablaUsuario(
|
||||||
accion_tabla = accion_tabla,
|
accion_tabla = accion_tabla,
|
||||||
rut_usuario_tabla = str(rut_tabla),
|
rut_tabla = str(rut_tabla),
|
||||||
rut_usuario_ejecutor = str(rut_usuario_ejecutor),
|
login_tabla = str(login_tabla),
|
||||||
|
rut_ejecutor = str(rut_ejecutor),
|
||||||
|
login_ejecutor = str(login_ejecutor),
|
||||||
fecha_hora = datetime.datetime.now()
|
fecha_hora = datetime.datetime.now()
|
||||||
)
|
)
|
||||||
nuevo_registro.save()
|
nuevo_registro.save()
|
||||||
|
|
Loading…
Reference in New Issue