From 9809f82e31537b2c1522233b48a7eadf0c6f7f69 Mon Sep 17 00:00:00 2001 From: Celestino Rey Date: Tue, 1 Oct 2024 12:41:45 +0200 Subject: [PATCH] =?UTF-8?q?Formulario=20de=20creaci=C3=B3n=20de=20evento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JugarAlPadel/gestion_reservas/db.sqlite3 | Bin 147456 -> 147456 bytes .../gestion_reservas/eventos/forms.py | 11 +++++++++ JugarAlPadel/gestion_reservas/eventos/urls.py | 1 + .../gestion_reservas/eventos/views.py | 21 ++++++++++++++++++ .../gestion_reservas/templates/base.html | 16 +++++++++++++ .../{form_autor.html => crear_evento.html} | 4 +--- 6 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 JugarAlPadel/gestion_reservas/eventos/forms.py rename JugarAlPadel/gestion_reservas/templates/eventos/{form_autor.html => crear_evento.html} (79%) diff --git a/JugarAlPadel/gestion_reservas/db.sqlite3 b/JugarAlPadel/gestion_reservas/db.sqlite3 index 106c0fef3f8ccfba67ab7c4d31990f3e17e36dfd..08eb18a5ec895e8011872d8eba60271caeb3a56a 100644 GIT binary patch delta 589 zcmaix$!gnR5XUW&rBAusmJuGWzoJ z33vS}F2P9XUu}r z&W17bt@DP7e*Y8y@%9-6F#vf8l2}Y)X1S2HqRCf_x{BFKNp{tdg1|m0)uz~@I&NhuyB-x2 f@`FCYqYENH5)^NE_7}(hPox{b{^qy`1Mktl45zQ> delta 493 zcmajbyKd7^0D$2*5r|AysZc>sH7i0+jxXmpwp3MaOp09+w@#DBT}&=c;#_@h`eGW6ztC;d*ZH$SMS#&s~`dJ!Zu z5@0cjR(LM<#UWz7q&o};6F4h6deR!#u(5EJ=J9~3lEz7SiH#}43#!n9N;vE^K!|EK z2lbe!#M8Z%J{Iw%T@^178EDa@ao#|-s%T6zVby_VqHbb#`My;})oay{+ZG~lDMh6M}@ f3qX%N diff --git a/JugarAlPadel/gestion_reservas/eventos/forms.py b/JugarAlPadel/gestion_reservas/eventos/forms.py new file mode 100644 index 0000000..b83cb5a --- /dev/null +++ b/JugarAlPadel/gestion_reservas/eventos/forms.py @@ -0,0 +1,11 @@ +from django import forms + +from .models import Evento + + +class EventoForm(forms.ModelForm): + class Meta: + model = Evento + fields = ['nombre', 'descripcion', 'fecha', 'plazas_disponibles'] + + fecha = forms.DateField(widget=forms.DateInput(attrs={'type': 'date', 'class': 'form-control'})) diff --git a/JugarAlPadel/gestion_reservas/eventos/urls.py b/JugarAlPadel/gestion_reservas/eventos/urls.py index 60c8305..f2a6232 100644 --- a/JugarAlPadel/gestion_reservas/eventos/urls.py +++ b/JugarAlPadel/gestion_reservas/eventos/urls.py @@ -7,6 +7,7 @@ urlpatterns = [ path('eventos/', views.lista_eventos, name='lista_eventos'), path('eventos//', views.detalle_evento, name='detalle_evento'), path('eventos/ayuda/', views.ayuda, name='ayuda'), + path('eventos/crear/', views.crear_evento, name='crear_evento'), # URL para crear un evento path('reservar//', views.reservar_evento, name='reservar_evento'), diff --git a/JugarAlPadel/gestion_reservas/eventos/views.py b/JugarAlPadel/gestion_reservas/eventos/views.py index d8a61d8..f1ccee8 100644 --- a/JugarAlPadel/gestion_reservas/eventos/views.py +++ b/JugarAlPadel/gestion_reservas/eventos/views.py @@ -1,8 +1,10 @@ from django.shortcuts import render, get_object_or_404, redirect from django.contrib.auth.decorators import login_required from django.contrib import messages +from django.contrib.auth.decorators import user_passes_test from .models import Evento, Reserva +from .forms import EventoForm @login_required @@ -54,3 +56,22 @@ def detalle_evento(request, evento_id): print("Reserva: ", i.usuario.nombre) return render(request, 'eventos/detalle_evento.html', {'evento': evento, 'reservas': reservas}) + + +# Verificar si el usuario es administrador +def es_admin(user): + return user.is_staff + + +@user_passes_test(es_admin) +def crear_evento(request): + if request.method == 'POST': + form = EventoForm(request.POST) + if form.is_valid(): + form.save() + messages.success(request, 'Evento creado exitosamente.') + return redirect('eventos:lista_eventos') # Redirige a la lista de eventos + else: + form = EventoForm() + + return render(request, 'eventos/crear_evento.html', {'form': form}) \ No newline at end of file diff --git a/JugarAlPadel/gestion_reservas/templates/base.html b/JugarAlPadel/gestion_reservas/templates/base.html index 28a9d8f..b9c8e69 100644 --- a/JugarAlPadel/gestion_reservas/templates/base.html +++ b/JugarAlPadel/gestion_reservas/templates/base.html @@ -84,6 +84,22 @@ Principal + + {% if user.is_staff %} + + + + + + + + + + Crear un nuevo evento + + + {% endif %} +