Browse Source

Añado exportación de tabla Lugar

Tino 3 tháng trước cách đây
mục cha
commit
58d02295eb
5 tập tin đã thay đổi với 28 bổ sung5 xóa
  1. 1 1
      K8S/.current_version
  2. 1 1
      K8S/.version
  3. 7 1
      src/eventos/serializers.py
  4. 3 0
      src/eventos/urls.py
  5. 16 2
      src/eventos/views.py

+ 1 - 1
K8S/.current_version

@@ -1 +1 @@
-alpine-13
+alpine-23

+ 1 - 1
K8S/.version

@@ -1 +1 @@
-alpine-14
+alpine-24

+ 7 - 1
src/eventos/serializers.py

@@ -1,5 +1,5 @@
 from rest_framework import serializers
-from .models import Evento, Reserva, ListaEspera, Noticia
+from .models import Evento, Reserva, ListaEspera, Noticia, Lugar
 
 
 class EventoSerializer(serializers.ModelSerializer):
@@ -34,3 +34,9 @@ class NoticiaSerializer(serializers.ModelSerializer):
     class Meta:
         model = Noticia
         fields = ['id', 'titulo', 'contenido', 'fecha_publicacion', 'publicado', 'usuario_email']
+
+
+class LugarSerializer(serializers.ModelSerializer):
+    class Meta:
+        model = Lugar
+        fields = '__all__'  # Incluir todos los campos del modelo

+ 3 - 0
src/eventos/urls.py

@@ -5,6 +5,7 @@ from .views import api_lista_eventos, api_detalle_evento
 from .views import api_lista_reservas, api_detalle_reserva
 from .views import api_lista_listaespera, api_detalle_listaespera
 from .views import api_lista_noticias, api_detalle_noticia
+from .views import api_download_lugares
 from .views import enviar_correo_inscritos_html
 
 app_name = 'eventos'
@@ -48,6 +49,8 @@ urlpatterns = [
     path('api/noticias/', api_lista_noticias, name='api_lista_noticias'),
     path('api/noticias/<int:noticia_id>/', api_detalle_noticia, name='api_detalle_noticia'),
 
+    path('api/lugares/', api_download_lugares, name='api_download_lugares'),
+
 # Estadísticas
 
     path("estadisticas/usuarios/", views.estadisticas_por_usuario, name="estadisticas_por_usuario"),

+ 16 - 2
src/eventos/views.py

@@ -12,6 +12,7 @@ from datetime import date
 import logging
 import requests
 import os
+import json
 
 from django.core.mail import send_mass_mail
 from django.core.mail import BadHeaderError
@@ -21,9 +22,9 @@ from django.http import HttpResponse
 
 from rest_framework.response import Response
 from rest_framework.decorators import api_view
-from .serializers import EventoSerializer, ReservaSerializer, ListaEsperaSerializer, NoticiaSerializer
+from .serializers import EventoSerializer, ReservaSerializer, ListaEsperaSerializer, NoticiaSerializer, LugarSerializer
 
-from .models import Evento, Reserva, ListaEspera, Noticia
+from .models import Evento, Reserva, ListaEspera, Noticia, Lugar
 from .forms import ListaEsperaForm, EventoForm, MensajeCorreoForm, ReservaForm
 
 from django.contrib.auth import get_user_model
@@ -533,6 +534,19 @@ def api_detalle_noticia(request, noticia_id):
         return Response({'error': 'Noticia no encontrado'}, status=404)
 
 
+@api_view(['GET'])
+def api_download_lugares(request):
+    """Descarga la lista de lugares como archivo JSON."""
+    lugares = Lugar.objects.all()
+    serializer = LugarSerializer(lugares, many=True)
+    response = HttpResponse(
+        json.dumps(serializer.data, indent=2, ensure_ascii=False),
+        content_type='application/json'
+    )
+    response['Content-Disposition'] = 'attachment; filename="lugares.json"'
+    return response
+
+
 # Verifica si el usuario es administrador
 def es_admin(user):
     return user.is_staff