Beispiel #1
0
def event_change_reservation(request, event_id):
    if not has_access(request):
        raise PermissionDenied

    context = _create_details_context(request, event_id)
    context["active_tab"] = "reservation"

    event = context["event"]

    if not event.is_attendance_event():
        messages.error(request, _("Dette er ikke et påmeldingsarrangement."))
        return redirect("dashboard_event_details_active",
                        event_id=event.id,
                        active_tab="details")

    if request.method == "POST":
        if not event.attendance_event.has_reservation:
            reservation = Reservation(attendance_event=event.attendance_event,
                                      seats=0)
            reservation.save()
            context[
                "change_reservation_form"] = dashboard_forms.ChangeReservationForm(
                    instance=reservation)
        else:
            form = dashboard_forms.ChangeReservationForm(
                request.POST, instance=event.attendance_event.reserved_seats)
            if form.is_valid():
                messages.success(request, _("Reservasjonen ble lagret."))
                form.save()
            context["change_reservation_form"] = form

    return render(request, "events/dashboard/details.html", context)
Beispiel #2
0
def _create_details_context(request, event_id):
    """
    Prepare a context to be shared for all detail views.
    """

    event = get_object_or_404(Event, pk=event_id)

    # Start with adding base context and the event itself
    context = get_base_context(request)
    context["event"] = event

    # Add forms
    context["change_event_form"] = dashboard_forms.ChangeEventForm(
        instance=event)
    if event.is_attendance_event():
        context[
            "change_attendance_form"] = dashboard_forms.ChangeAttendanceEventForm(
                instance=event.attendance_event)
        if event.attendance_event.has_reservation:
            context[
                "change_reservation_form"] = dashboard_forms.ChangeReservationForm(
                    instance=event.attendance_event.reserved_seats)
            seats = event.attendance_event.reserved_seats.seats
            ReserveeFormSet = modelformset_factory(
                Reservee,
                max_num=seats,
                extra=seats,
                fields=["name", "note", "allergies"],
            )
            context["change_reservees_formset"] = ReserveeFormSet(
                queryset=event.attendance_event.reserved_seats.reservees.all())

    return context