summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander2014-03-26 16:00:29 +0000
committerMagnus Hagander2014-03-26 16:00:29 +0000
commitcab4134b72562fef921d0222a72f5e479e555e53 (patch)
treef53590009e2b420f5c0272ee3554873ace0cdda2
parente0b0ac7d004a4d15a2d662b1f5df5099c3645304 (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.py12
-rw-r--r--postgresqleu/urls.py1
-rw-r--r--postgresqleu/util/middleware.py5
-rw-r--r--template/confreg/admin_dashboard.html49
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%}