Display a timeline on the dashboard (#1290)

* Timeline data model

* Display timeline

* …

* More events

* Plugin support

* Fix docs typo
This commit is contained in:
Raphael Michel
2019-05-17 17:32:38 +02:00
committed by GitHub
parent ecc9c7f39f
commit c6b18b31a1
8 changed files with 331 additions and 2 deletions

View File

@@ -1,3 +1,4 @@
from datetime import timedelta
from decimal import Decimal
import pytz
@@ -22,6 +23,7 @@ from pretix.base.models import (
WaitingListEntry,
)
from pretix.base.models.checkin import CheckinList
from pretix.base.timeline import timeline_for_event
from pretix.control.forms.event import CommentForm
from pretix.control.signals import (
event_dashboard_widgets, user_dashboard_widgets,
@@ -279,6 +281,7 @@ def event_index(request, organizer, event):
ctx = {
'widgets': rearrange(widgets),
'logs': qs[:5],
'subevent': subevent,
'actions': a_qs[:5] if can_change_orders else [],
'comment_form': CommentForm(initial={'comment': request.event.comment})
}
@@ -302,7 +305,19 @@ def event_index(request, organizer, event):
for a in ctx['actions']:
a.display = a.display(request)
return render(request, 'pretixcontrol/event/index.html', ctx)
ctx['timeline'] = [
{
'date': t.datetime.astimezone(request.event.timezone).date(),
'entry': t,
'time': t.datetime.astimezone(request.event.timezone)
}
for t in timeline_for_event(request.event, subevent)
]
ctx['today'] = now().astimezone(request.event.timezone).date()
ctx['nearly_now'] = now().astimezone(request.event.timezone) - timedelta(seconds=20)
resp = render(request, 'pretixcontrol/event/index.html', ctx)
# resp['Content-Security-Policy'] = "style-src 'unsafe-inline'"
return resp
def annotated_event_query(request):