Esempio n. 1
0
def poll_detail_view(request, pk, model, template_name, slug=None):
    obj = get_object_or_404(
        get_activity_queryset(request, model,
                              with_common_annotations=True).with_answers(),
        pk=pk,
    )
    return render_activity_detail(request, obj, template_name)
Esempio n. 2
0
def event_list_view(request, model, template_name):
    qs = (get_activity_queryset(
        request, model,
        with_common_annotations=True).with_relevance().with_timedelta())
    return render_activity_list(request,
                                qs,
                                template_name,
                                ordering=("-relevance", "timedelta"))
Esempio n. 3
0
def event_detail_view(request, model, pk, template_name, slug=None):
    event = get_activity_or_404(
        request,
        get_activity_queryset(request, model,
                              with_common_annotations=True).with_next_date(),
        pk=pk,
    )
    return render_activity_detail(request, event, template_name)
Esempio n. 4
0
def event_cancel_view(request, pk):
    event = get_object_or_404(get_activity_queryset(request, Event), pk=pk)
    has_perm_or_403(request.user, "events.cancel", event)

    event.canceled = timezone.now()
    event.save()
    event.notify_on_cancel(request.user)

    messages.success(request, _("This event has been canceled"))

    return redirect(event)
Esempio n. 5
0
def event_attend_view(request, pk, remove=False):

    event = get_object_or_404(get_activity_queryset(request, Event), pk=pk)
    has_perm_or_403(request.user, "events.attend", event)

    if remove:
        event.attendees.remove(request.user)
        messages.info(request, _("You are no longer attending this event"))
    else:
        event.attendees.add(request.user)
        event.notify_on_attend(request.user)
        messages.success(request, _("You are now attending this event"))

    return (TurboFrame(event.get_dom_id() + "-attend").template(
        "events/includes/attend.html",
        {
            "object": event,
            "is_attending": not (remove)
        },
    ).response(request))
Esempio n. 6
0
def event_download_view(request, pk):
    event = get_object_or_404(get_activity_queryset(request, Event), pk=pk)
    response = HttpResponse(content_type="text/calendar")
    response.write(event.to_ical())
    return response
Esempio n. 7
0
def poll_list_view(request, model, template_name):
    qs = get_activity_queryset(request, model,
                               with_common_annotations=True).with_answers()
    return render_activity_list(request, qs, template_name)