diff options
| author | Magnus Hagander | 2014-03-26 16:00:29 +0000 |
|---|---|---|
| committer | Magnus Hagander | 2014-03-26 16:00:29 +0000 |
| commit | cab4134b72562fef921d0222a72f5e479e555e53 (patch) | |
| tree | f53590009e2b420f5c0272ee3554873ace0cdda2 | |
| parent | e0b0ac7d004a4d15a2d662b1f5df5099c3645304 (diff) | |
Add simple admin dashboard for conferences
This is basically just a linkdump, for those who can't remember
all the different links that are used.
| -rw-r--r-- | postgresqleu/confreg/views.py | 12 | ||||
| -rw-r--r-- | postgresqleu/urls.py | 1 | ||||
| -rw-r--r-- | postgresqleu/util/middleware.py | 5 | ||||
| -rw-r--r-- | template/confreg/admin_dashboard.html | 49 |
4 files changed, 67 insertions, 0 deletions
diff --git a/postgresqleu/confreg/views.py b/postgresqleu/confreg/views.py index c59d82f5..15bd6a87 100644 --- a/postgresqleu/confreg/views.py +++ b/postgresqleu/confreg/views.py @@ -1256,6 +1256,18 @@ def advanced_report(request, confname): return build_attendee_report(conference, request.POST ) +@ssl_required +@login_required +def admin_dashboard(request): + if request.user.is_superuser: + conferences = Conference.objects.all().order_by('-startdate') + else: + conferences = Conference.objects.filter(administrators=request.user).order_by('-startdate') + + return render_to_response('confreg/admin_dashboard.html', { + 'conferences': conferences, + }) + # Admin view that's used to send email to multiple users @ssl_required @login_required diff --git a/postgresqleu/urls.py b/postgresqleu/urls.py index 3cba8100..397f07bc 100644 --- a/postgresqleu/urls.py +++ b/postgresqleu/urls.py @@ -80,6 +80,7 @@ urlpatterns = patterns('', (r'^events/reports/(\w+)/advanced/$', postgresqleu.confreg.views.advanced_report), (r'^events/reports/(\w+)/feedback/$', postgresqleu.confreg.feedback.feedback_report), (r'^events/reports/(\w+)/feedback/session/$', postgresqleu.confreg.feedback.feedback_sessions), + (r'^events/admin/$', 'postgresqleu.confreg.views.admin_dashboard'), # Mobile conference stuff (r'^m/(\w+)/$', postgresqleu.confreg.mobileviews.index), diff --git a/postgresqleu/util/middleware.py b/postgresqleu/util/middleware.py index 265520c9..da88c4d5 100644 --- a/postgresqleu/util/middleware.py +++ b/postgresqleu/util/middleware.py @@ -24,6 +24,11 @@ class FilterPersistMiddleware(object): del session[key] return None request.session[key] = query_string + elif '_directlink=1' in query_string: # Direct link to a filter, by ourselves, so remove it + redirect_to = path+'?'+query_string.replace('&_directlink=1','') + if session.has_key(key): + del session[key] + return http.HttpResponseRedirect(redirect_to) else: #We are are coming from another page, restore filter if available if session.get(key, False): query_string=request.session.get(key) diff --git a/template/confreg/admin_dashboard.html b/template/confreg/admin_dashboard.html new file mode 100644 index 00000000..f7ac227f --- /dev/null +++ b/template/confreg/admin_dashboard.html @@ -0,0 +1,49 @@ +{%extends "base.html" %} +{%block title%}Conferences{%endblock%} +{%block layoutblock%} +<h1>Conferences</h1> +{%if conferences%} +<p> +Entering metadata is still typically done through the +<a href="/admin/confreg/">main admin interface</a>. +</p> + +<table border="1" cellspacing="0" cellpadding="2"> + {%for c in conferences%} + <tr> + <td valign="top"><strong>{{c}}</strong><br/>{{c.startdate|date:"Y-m-d"}} - {{c.enddate|date:"Y-m-d"}}<br/>{{c.location}}</td> + <td> + <b>Admin actions</b> + <ul> + <li><a href="/admin/confreg/conference/{{c.id}}/">Edit conference</li> + <li><a href="/admin/confreg/conferenceregistration/?conference__id__exact={{c.id}}&_directlink=1">View/edit registrations</a></li> + <li><a href="/admin/confreg/prepaidvoucher/?conference__id__exact={{c.id}}&_directlink=1">View prepaid voucher usage</a></li> + <li><a href="/admin/confreg/conferencesession/?conference__id__exact={{c.id}}&_directlink=1">View submitted sessions</a></li> + <li><a href="/events/schedule/{{c.urlname}}/create/">Create schedule</a></li> + <li><a href="/events/reports/{{c.urlname}}/">Reports</a><ul> + <li><a href="/events/reports/time/">Time reports</a></li> + </ul></li> + <li><a href="/events/reports/{{c.urlname}}/feedback/">Feedback</a></li> + <li><a href="/events/talkvote/{{c.urlname}}/">Talk voting</a></li> + <li><a href="/events/prepaid/">Create prepaid voucher</a></li> + </ul> + <b>User actions</b> + <ul> + <li><a href="/events/register/{{c.urlname}}/">Registration</a></li> + <li><a href="/events/bulkpay/{{c.urlname}}/">Bulk payment</a></li> + <li><a href="/events/callforpapers/{{c.urlname}}/">Call for papers</a></li> + <li><a href="/events/speakerprofile/{{c.urlname}}/">Speaker profile</a></li> + <li><a href="/events/schedule/{{c.urlname}}/">Schedule</a></li> + <li><a href="/events/sessions/{{c.urlname}}/">Session list</a></li> + </ul> + </td> + </tr> + {%endfor%} +</table> +{%else%} +<p> +You don't have access to any conferences. +</p> +{%endif%} + +{%endblock%} |
