From 561103825b803dfd7fca32a53f37eb8177e6a880 Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Sun, 18 Nov 2018 19:29:38 +0100 Subject: [PATCH] Add list of all previously attended events for user Link this to the account homepage. Also consistently talk about events on these pages, and fix a spelling error. --- postgresqleu/urls.py | 1 + postgresqleu/views.py | 15 +++++++++++++++ template/account/index.html | 9 +++++++-- template/events/attendee.html | 33 +++++++++++++++++++++++++++++++++ template/nav_account.html | 4 +++- 5 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 template/events/attendee.html diff --git a/postgresqleu/urls.py b/postgresqleu/urls.py index c2ece47..28143c8 100644 --- a/postgresqleu/urls.py +++ b/postgresqleu/urls.py @@ -40,6 +40,7 @@ urlpatterns = [ url(r'^events/past/$', postgresqleu.views.pastevents), url(r'^(events/services)/$', postgresqleu.static.views.static_fallback), url(r'^events/series/[^/]+-(\d+)/$', postgresqleu.views.eventseries), + url(r'^events/attendee/$', postgresqleu.views.attendee_events), url(r'^news/archive/$', postgresqleu.newsevents.views.newsarchive), url(r'news/[^/]+-(\d+)/$', postgresqleu.newsevents.views.newsitem), diff --git a/postgresqleu/views.py b/postgresqleu/views.py index 6fab407..bb542dc 100644 --- a/postgresqleu/views.py +++ b/postgresqleu/views.py @@ -1,6 +1,7 @@ # Index has a very special view that lives out here from django.shortcuts import render, get_object_or_404 from django.template.defaultfilters import slugify +from django.contrib.auth.decorators import login_required from postgresqleu.newsevents.models import News from postgresqleu.confreg.models import Conference, ConferenceSeries @@ -91,6 +92,20 @@ def eventseries(request, id): 'past': [e for e in events if e.enddate < datetime.datetime.today().date()], }) +# Handle a users list of previous events +@login_required +def attendee_events(request): + events = list(Conference.objects.filter(promoactive=True, enddate__gte=datetime.datetime.today()).order_by('startdate')) + series = ConferenceSeries.objects.filter(visible=True).extra( + where=["EXISTS (SELECT 1 FROM confreg_conference c WHERE c.series_id=confreg_conferenceseries.id AND c.promoactive)"] + ) + attended = Conference.objects.only('urlname', 'conferencename', 'location').filter(conferenceregistration__attendee=request.user, conferenceregistration__payconfirmedat__isnull=False).distinct().order_by('-startdate') + return render(request, 'events/attendee.html', { + 'attended': attended, + 'events': events, + 'series': series, + }) + # Handle CSRF failures def csrf_failure(request, reason=''): resp = render(request, 'csrf_failure.html', { diff --git a/template/account/index.html b/template/account/index.html index a98a84d..77b94c4 100644 --- a/template/account/index.html +++ b/template/account/index.html @@ -29,10 +29,15 @@

{%endif%} -

Speaker profile

+

Events

+

+ You can view all previous events you + have attended or presented at. +

+

Speaker profile

Your shared PostgreSQL Europe speaker profile - is used for all conferenced which are organized by PostgreSQL Europe. + is used for all events which are organized by PostgreSQL Europe.

{%endblock%} diff --git a/template/events/attendee.html b/template/events/attendee.html new file mode 100644 index 0000000..047d4dd --- /dev/null +++ b/template/events/attendee.html @@ -0,0 +1,33 @@ +{%extends "nav_events.html"%} +{%load markup%} +{%block title%}Past events{%endblock%} +{%block fullcontent%} +
+

Past events

+

+You have attended the following events: +

+ + + +
+ +
+

Upcoming events

+{%include "events/compacteventlist.inc"%} +

Our Event series

+ +
+ +{%endblock%} diff --git a/template/nav_account.html b/template/nav_account.html index 4d4b963..562b419 100644 --- a/template/nav_account.html +++ b/template/nav_account.html @@ -11,7 +11,9 @@
  • Meetings
  • {%endif%} -

    Speaker

    +

    Events

    {%endblock%} -- 2.39.5