Browse Source

Añado api con solo una función

politica
Celestino Rey 1 year ago
parent
commit
529aea3db0
6 changed files with 34 additions and 17 deletions
  1. +9
    -0
      JugarAlPadel/gestion_reservas/eventos/serializers.py
  2. +3
    -0
      JugarAlPadel/gestion_reservas/eventos/urls.py
  3. +18
    -15
      JugarAlPadel/gestion_reservas/eventos/views.py
  4. +2
    -1
      JugarAlPadel/gestion_reservas/gestion_reservas/settings.py
  5. +1
    -1
      JugarAlPadel/gestion_reservas/templates/eventos/lista_eventos.html
  6. +1
    -0
      JugarAlPadel/requirements.txt

+ 9
- 0
JugarAlPadel/gestion_reservas/eventos/serializers.py View File

@ -0,0 +1,9 @@
from rest_framework import serializers
from .models import Evento
class EventoSerializer(serializers.ModelSerializer):
class Meta:
model = Evento
fields = ['id', 'nombre', 'descripcion', 'fecha', 'hora', 'plazas_restantes', 'publicado']

+ 3
- 0
JugarAlPadel/gestion_reservas/eventos/urls.py View File

@ -17,4 +17,7 @@ urlpatterns = [
path('reservar/<int:evento_id>/',
views.reservar_evento, name='reservar_evento'),
path('api/proximo-evento/', views.proximo_evento, name='proximo_evento'),
]

+ 18
- 15
JugarAlPadel/gestion_reservas/eventos/views.py View File

@ -1,3 +1,7 @@
from rest_framework.response import Response
from rest_framework.decorators import api_view
from django.utils import timezone
from django.shortcuts import render, get_object_or_404, redirect
from django.contrib.auth.decorators import login_required, user_passes_test
from django.contrib import messages
@ -7,6 +11,7 @@ from django.template.loader import render_to_string
from .models import Evento, Reserva, ListaEspera, Noticia
from .forms import ListaEsperaForm, EventoForm
from .serializers import EventoSerializer
@login_required
@ -52,7 +57,6 @@ def reservar_evento(request, evento_id):
else:
messages.error(request, 'Lo sentimos, no quedan plazas disponibles.')
print("Lo sentimos, no quedan plazas disponibles.")
return redirect('eventos:lista_eventos')
@ -112,21 +116,7 @@ def detalle_noticia(request, noticia_id):
def ayuda(request):
'''
evento = get_object_or_404(Evento, id=1)
reservas = Reserva.objects.filter(evento=1)
print("Ayuda->plazas disponibles: ", evento.plazas_disponibles)
print("Ayuda->reservas: ", evento.reservas.count())
numero = random.randint(1, evento.plazas_disponibles-2)
if numero < evento.reservas.count():
print("Ayuda->Aqui haria algo...")
print("Ayuda->Aleatorio: ", numero)
'''
return render(request, 'eventos/help.html')
@ -218,3 +208,16 @@ def apuntar_lista_espera(request, evento_id):
form = ListaEsperaForm()
return render(request, 'eventos/apuntar_lista_espera.html', {'form': form, 'evento': evento})
@api_view(['GET'])
def proximo_evento(request):
# Obtén el próximo evento que esté publicado y cuya fecha sea mayor a la fecha actual
# evento = Evento.objects.filter(publicado=True, fecha__gte=timezone.now()).order_by('fecha').first()
evento = Evento.objects.filter(fecha__gte=timezone.now()).order_by('fecha').first()
if evento:
serializer = EventoSerializer(evento)
return Response(serializer.data)
else:
return Response({'detail': 'No hay eventos próximos.'}, status=404)

+ 2
- 1
JugarAlPadel/gestion_reservas/gestion_reservas/settings.py View File

@ -28,7 +28,6 @@ DEBUG = os.environ["DEBUG"] == 'True'
ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS").split(" ")
print("ALLOWD_HOSTS: ", ALLOWED_HOSTS)
# Application definition
@ -42,6 +41,8 @@ INSTALLED_APPS = [
'eventos',
'reymotausers',
'rest_framework',
]
MIDDLEWARE = [


+ 1
- 1
JugarAlPadel/gestion_reservas/templates/eventos/lista_eventos.html View File

@ -73,7 +73,7 @@
{% endif %}
{% if user.is_staff and not evento.evento.publicado %}
<button class="btn btn-danger" href="{% url 'eventos:publicar_evento' evento.id %}">Publicar</button>
<a class="btn btn-danger" href="{% url 'eventos:publicar_evento' evento.id %}">Publicar</a>
{% endif %}
</div>
</div>


+ 1
- 0
JugarAlPadel/requirements.txt View File

@ -11,3 +11,4 @@ pyflakes==3.2.0
sqlparse==0.5.1
typing_extensions==4.12.2
django-calculation==1.0.0
djangorestframework==3.15.2

Loading…
Cancel
Save