def edit_event()

in moderator/moderate/views.py [0:0]


def edit_event(request, slug=None):
    """Creates a new event."""
    user = request.user
    query_args = []
    user_can_edit = False

    if not user.is_superuser:
        query_args = [Q(moderators=user)]

    event = get_object_or_404(Event, *query_args, slug=slug) if slug else None
    # if there is an event or no slug, the user can edit
    if event or not slug:
        user_can_edit = True
    event_form = EventForm(request.POST or None, instance=event, user=user)

    if event_form.is_valid():
        e = event_form.save(commit=False)
        if not event:
            e.created_by = user
        e.save()
        event_form.save_m2m()

        if slug:
            msg = "Event successfully edited."
        else:
            msg = "Event successfully created."
        messages.success(request, msg)
        if e.archived:
            return redirect(reverse("archive"))
        return redirect(reverse("main"))

    ctx = {
        "slug": event.slug if event else None,
        "event_form": event_form,
        "event": event,
        "profile": user.userprofile,
        "user_can_edit": user_can_edit,
    }

    return render(request, "create_event.jinja", ctx)