se agrega api de comunas y regiones, al id_comuna se considera max +1

develop/Rodrigo/Backend
Francisco Sandoval 2023-07-12 21:55:58 -04:00
parent 95e3209d7a
commit d3b64b5f02
8 changed files with 121 additions and 85 deletions

View File

@ -39,6 +39,16 @@ class PersonaSerializer(serializers.ModelSerializer):
model = models.Persona model = models.Persona
fields = '__all__' fields = '__all__'
class ComunaSerializer(serializers.ModelSerializer):
class Meta:
model = models.Comuna
fields = '__all__'
class RegionSerializer(serializers.ModelSerializer):
class Meta:
model = models.Region
fields = '__all__'
class UsuarioSerializer(serializers.ModelSerializer): class UsuarioSerializer(serializers.ModelSerializer):
# muestro informacion de persona en un objeto aparte # muestro informacion de persona en un objeto aparte
persona = serializers.SerializerMethodField() persona = serializers.SerializerMethodField()

View File

@ -1,7 +1,7 @@
from django.urls import path, include from django.urls import path, include
from rest_framework import routers from rest_framework import routers
# from api import views # from api import views
from api.views import usuario, auth, aplicacion, tipo, persona from api.views import usuario, auth, aplicacion, tipo, persona, comuna, region
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r'aplicaciones', aplicacion.AplicacionViewSet) router.register(r'aplicaciones', aplicacion.AplicacionViewSet)
@ -12,6 +12,8 @@ router.register(r'tipos/transporte', tipo.TipoTransporteViewSet)
router.register(r'tipos/dispositivo', tipo.TipoDispositivoViewSet) router.register(r'tipos/dispositivo', tipo.TipoDispositivoViewSet)
router.register(r'tipos/paradero', tipo.TipoParaderoViewSet) router.register(r'tipos/paradero', tipo.TipoParaderoViewSet)
router.register(r'tipos/vehiculo', tipo.TipoVehiculoViewSet) router.register(r'tipos/vehiculo', tipo.TipoVehiculoViewSet)
router.register(r'comunas', comuna.ComunaViewSet)
router.register(r'regiones', region.RegionViewSet)
urlpatterns = [ urlpatterns = [
path('', include(router.urls)), path('', include(router.urls)),

View File

@ -38,14 +38,12 @@ def jwt_login(request):
if usuario['clave'] != password: if usuario['clave'] != password:
return HttpResponse('Acceso no valido', status = 400) return HttpResponse('Acceso no valido', status = 400)
ahora = datetime.now() ahora = datetime.utcnow()
manana = ahora + timedelta(days=1) # manana = ahora + timedelta(days=1)
manana = manana.replace(hour=0, minute=0, second=0, microsecond=0) # manana = manana.replace(hour=0, minute=0, second=0, microsecond=0)
# diferencia = manana - ahora
# minutos_restantes = diferencia.total_seconds() // 60
payload = { payload = {
'exp': manana, 'exp': ahora + timedelta(minutes=60),
'login': usuario['login'] 'login': usuario['login']
} }
token = jwt.encode(payload, private_key, algorithm="HS256") token = jwt.encode(payload, private_key, algorithm="HS256")

View File

@ -0,0 +1,17 @@
from rest_framework import viewsets
from .. import models, serializers
from django.db import models as dj_models
class ComunaViewSet(viewsets.ModelViewSet):
queryset = models.Comuna.objects.all()
serializer_class = serializers.ComunaSerializer
def create(self, request, *args, **kwargs):
# se indica que si no se indico el id, entonces sea el maximo + 1
if not request.data.get('id_comuna', None):
max_id = models.Comuna.objects.aggregate(dj_models.Max('id_comuna'))['id_comuna__max']
new_id = max_id + 1 if max_id is not None else 1
request.data['id_comuna'] = new_id
return super().create(request, *args, **kwargs)

View File

@ -0,0 +1,7 @@
from rest_framework import viewsets
from .. import models, serializers
class RegionViewSet(viewsets.ModelViewSet):
queryset = models.Region.objects.all()
serializer_class = serializers.RegionSerializer

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>...</title> <title>...</title>
<script type="module" crossorigin src="/assets/index-1eede8db.js"></script> <script type="module" crossorigin src="/assets/index-26045276.js"></script>
<link rel="stylesheet" href="/assets/index-b640e145.css"> <link rel="stylesheet" href="/assets/index-b640e145.css">
</head> </head>
<body> <body>