diff --git a/JugarAlPadel/gestion_reservas/db.sqlite3 b/JugarAlPadel/gestion_reservas/db.sqlite3 index 106c0fe..08eb18a 100644 Binary files a/JugarAlPadel/gestion_reservas/db.sqlite3 and b/JugarAlPadel/gestion_reservas/db.sqlite3 differ 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 %} +