|
|
|
@ -52,7 +52,11 @@ def reservar_evento(request, evento_id): |
|
|
|
|
|
|
|
@login_required |
|
|
|
def lista_eventos(request): |
|
|
|
eventos = Evento.objects.all() |
|
|
|
# Solo mostrar los eventos publicados a los usuarios normales |
|
|
|
if request.user.is_staff: |
|
|
|
eventos = Evento.objects.all() # Los administradores ven todos los eventos |
|
|
|
else: |
|
|
|
eventos = Evento.objects.filter(publicado=True) # Los usuarios ven solo eventos publicados |
|
|
|
|
|
|
|
# Crear un diccionario que mapea cada evento con un booleano indicando si el usuario ya ha reservado |
|
|
|
eventos_con_reserva = [] |
|
|
|
@ -73,7 +77,8 @@ def lista_eventos(request): |
|
|
|
'plazas_disponibles': evento.plazas_disponibles, |
|
|
|
'plazas_restantes': evento.plazas_restantes, |
|
|
|
'en_espera': en_espera, |
|
|
|
'usuario': request.user |
|
|
|
'usuario': request.user, |
|
|
|
'publicado': evento.publicado |
|
|
|
}) |
|
|
|
|
|
|
|
return render(request, 'eventos/lista_eventos.html', {'eventos_con_reserva': eventos_con_reserva}) |
|
|
|
@ -118,6 +123,19 @@ def crear_evento(request): |
|
|
|
return render(request, 'eventos/crear_evento.html', {'form': form}) |
|
|
|
|
|
|
|
|
|
|
|
@user_passes_test(lambda u: u.is_staff) |
|
|
|
def editar_evento(request, evento_id): |
|
|
|
evento = get_object_or_404(Evento, id=evento_id) |
|
|
|
if request.method == 'POST': |
|
|
|
form = EventoForm(request.POST, instance=evento) |
|
|
|
if form.is_valid(): |
|
|
|
form.save() |
|
|
|
return redirect('lista_eventos') |
|
|
|
else: |
|
|
|
form = EventoForm(instance=evento) |
|
|
|
return render(request, 'crear_evento.html', {'form': form, 'evento': evento}) |
|
|
|
|
|
|
|
|
|
|
|
@login_required |
|
|
|
def apuntar_lista_espera(request, evento_id): |
|
|
|
evento = get_object_or_404(Evento, id=evento_id) |
|
|
|
|