From 3de45d1134ca567038f9c4956e632960093e1e8b Mon Sep 17 00:00:00 2001 From: Celestino Rey Date: Tue, 1 Oct 2024 13:14:24 +0200 Subject: [PATCH] =?UTF-8?q?Se=20a=C3=B1ade=20bot=C3=B3n=20para=20solicitar?= =?UTF-8?q?=20baja?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JugarAlPadel/gestion_reservas/db.sqlite3 | Bin 147456 -> 147456 bytes JugarAlPadel/gestion_reservas/eventos/urls.py | 1 + .../gestion_reservas/eventos/views.py | 35 +++++++++++++++++- .../templates/eventos/lista_eventos.html | 9 +++-- .../gestion_reservas/templates/login.html | 2 +- .../templates/registration/login.html | 2 +- .../templates/registration/signup.html | 2 +- 7 files changed, 44 insertions(+), 7 deletions(-) diff --git a/JugarAlPadel/gestion_reservas/db.sqlite3 b/JugarAlPadel/gestion_reservas/db.sqlite3 index 08eb18a5ec895e8011872d8eba60271caeb3a56a..7539972ca27d3919e50c90f23c9715fe0c89462b 100644 GIT binary patch delta 346 zcmZo@;B08%oFL8UFj2;t(P3kPw>~4w<~90K4m^fdhQ?N=mU^a^W){tt^0!~gXEZ9{ zVc~zn!2gH;JO3yCH=6|;?(nOyGBYwVv9K_6GBSe*CT3<%PA&!p2Dr*M{2#$8SwYe) z(?9-a6b2eo#lU}`e;@xG{;G|QS^P>0EUXNUjGRUWMkcz32D%1@3Wh)j7y*%~Arh1urC21zD~xv5F!RTf5N7D>gKmg$zINrlsy<(am+7x-BD zdPd}=yHxl&MuvrlRC*Uic=?zZRQQFthm?2*6yKOZc>z&gzU>x^KL delta 294 zcmZo@;B08%oFL6;JyFJ)(RyQow>~5D<~90K4m<`{#%5N==6a?EhQ`g8^0!~gXEZ9{ zV&?zE!2gH;JO8K6f(=jjWmuRw8JR%@6Eia>Cl><)12g|eh>DLu6_5F+fBerV4AeG< zf&V`LKK?nI1q=H4x6k2ca_3jbGcc+wNli>I$}Bd^ORvZ`D6%ljF(@!MN;S?%%+AZ3 z&MeQg)!og>D##)uBRIz*HOxK5JS*8UJ<`!UGce1%q$D%gFSOh^BR|SG(j}lE-^|3q o$iT=%*U&)M&{V+?<^?kYBXh&;|K*t;61H=j0n;abJ`|m100I/', views.detalle_evento, name='detalle_evento'), + path('eventos/anular_reserva//', views.anular_reserva, name='anular_reserva'), path('eventos/ayuda/', views.ayuda, name='ayuda'), path('eventos/crear/', views.crear_evento, name='crear_evento'), # URL para crear un evento diff --git a/JugarAlPadel/gestion_reservas/eventos/views.py b/JugarAlPadel/gestion_reservas/eventos/views.py index f1ccee8..4a814da 100644 --- a/JugarAlPadel/gestion_reservas/eventos/views.py +++ b/JugarAlPadel/gestion_reservas/eventos/views.py @@ -31,17 +31,50 @@ def reservar_evento(request, evento_id): return redirect('eventos:lista_eventos') +@login_required +def anular_reserva(request, evento_id): + evento = get_object_or_404(Evento, id=evento_id) + + # Verificar si el usuario ya tiene una reserva para este evento + if Reserva.objects.filter(evento=evento, usuario=request.user).exists(): + messages.error(request, 'Vamos a solicitar la baja.') + + return redirect('eventos:lista_eventos') + + return redirect('eventos:lista_eventos') + + @login_required def lista_eventos(request): eventos = Evento.objects.all() - return render(request, 'eventos/lista_eventos.html', {'eventos': eventos}) + # Crear un diccionario que mapea cada evento con un booleano indicando si el usuario ya ha reservado + eventos_con_reserva = [] + for evento in eventos: + inscrito = Reserva.objects.filter(evento=evento, usuario=request.user).exists() if request.user.is_authenticated else False + + print("Inscrito: ", inscrito) + + eventos_con_reserva.append({ + 'evento': evento, + 'inscrito': inscrito, + 'id': evento.id, + 'nombre': evento.nombre, + 'fecha': evento.fecha, + 'plazas_disponibles': evento.plazas_disponibles, + 'plazas_restantes': evento.plazas_restantes + }) + + return render(request, 'eventos/lista_eventos.html', {'eventos_con_reserva': eventos_con_reserva}) def principal(request): return render(request, 'eventos/lista_eventos.html') + + + def ayuda(request): return render(request, 'eventos/help.html') diff --git a/JugarAlPadel/gestion_reservas/templates/eventos/lista_eventos.html b/JugarAlPadel/gestion_reservas/templates/eventos/lista_eventos.html index 90092f7..94bf46a 100644 --- a/JugarAlPadel/gestion_reservas/templates/eventos/lista_eventos.html +++ b/JugarAlPadel/gestion_reservas/templates/eventos/lista_eventos.html @@ -25,7 +25,7 @@
- {% if eventos %} + {% if eventos_con_reserva %} @@ -37,15 +37,18 @@ - {% for evento in eventos %} + {% for evento in eventos_con_reserva %} + {% if not evento.inscrito %} - + {% else %} + + {% endif %} {% endfor %} diff --git a/JugarAlPadel/gestion_reservas/templates/login.html b/JugarAlPadel/gestion_reservas/templates/login.html index 4eaabed..870b4b6 100644 --- a/JugarAlPadel/gestion_reservas/templates/login.html +++ b/JugarAlPadel/gestion_reservas/templates/login.html @@ -8,7 +8,7 @@
{% include "_branding.html" %} -

Entrar en Finanzas

+

Entrar en Jugar al Pádel

{% if form.errors and not form.non_field_errors %}

diff --git a/JugarAlPadel/gestion_reservas/templates/registration/login.html b/JugarAlPadel/gestion_reservas/templates/registration/login.html index 4eaabed..870b4b6 100644 --- a/JugarAlPadel/gestion_reservas/templates/registration/login.html +++ b/JugarAlPadel/gestion_reservas/templates/registration/login.html @@ -8,7 +8,7 @@

{% include "_branding.html" %} -

Entrar en Finanzas

+

Entrar en Jugar al Pádel

{% if form.errors and not form.non_field_errors %}

diff --git a/JugarAlPadel/gestion_reservas/templates/registration/signup.html b/JugarAlPadel/gestion_reservas/templates/registration/signup.html index d86ba8b..10edb44 100644 --- a/JugarAlPadel/gestion_reservas/templates/registration/signup.html +++ b/JugarAlPadel/gestion_reservas/templates/registration/signup.html @@ -7,7 +7,7 @@

{% include "_branding.html" %} -

Registrarse en Finanzas

+

Registrarse en Jugar al Pádel

{{ evento.nombre }} {{ evento.fecha }} {{ evento.plazas_disponibles }} {{ evento.plazas_restantes }}ReservarSolicitar baja