aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/admin/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/admin/views.py')
-rw-r--r--mediagoblin/admin/views.py49
1 files changed, 43 insertions, 6 deletions
diff --git a/mediagoblin/admin/views.py b/mediagoblin/admin/views.py
index 7a4dfbd4..97970577 100644
--- a/mediagoblin/admin/views.py
+++ b/mediagoblin/admin/views.py
@@ -16,12 +16,13 @@
from werkzeug.exceptions import Forbidden
-from mediagoblin.db.models import MediaEntry, User, MediaComment, CommentReport, ReportBase
+from mediagoblin.db.models import (MediaEntry, User, MediaComment, \
+ CommentReport, ReportBase, Privilege)
from mediagoblin.decorators import require_admin_login
from mediagoblin.tools.response import render_to_response
@require_admin_login
-def admin_processing_panel(request):
+def admin_media_processing_panel(request):
'''
Show the global media processing panel for this instance
'''
@@ -38,7 +39,7 @@ def admin_processing_panel(request):
# Render to response
return render_to_response(
request,
- 'mediagoblin/admin/panel.html',
+ 'mediagoblin/admin/media_panel.html',
{'processing_entries': processing_entries,
'failed_entries': failed_entries,
'processed_entries': processed_entries})
@@ -50,13 +51,31 @@ def admin_users_panel(request):
'''
user_list = User.query
- # Render to response
return render_to_response(
request,
- 'mediagoblin/admin/user.html',
+ 'mediagoblin/admin/user_panel.html',
{'user_list': user_list})
@require_admin_login
+def admin_users_detail(request):
+ '''
+ Shows details about a particular user.
+ '''
+ user = User.query.filter_by(username=request.matchdict['user']).first()
+ privileges = Privilege.query
+ active_reports = user.reports_filed_on.filter(
+ ReportBase.resolved==None).limit(5)
+ closed_reports = user.reports_filed_on.filter(
+ ReportBase.resolved!=None).all()
+
+ return render_to_response(
+ request,
+ 'mediagoblin/admin/user.html',
+ {'user':user,
+ 'privileges':privileges,
+ 'reports':active_reports})
+
+@require_admin_login
def admin_reports_panel(request):
'''
Show the global panel for monitoring reports filed against comments or
@@ -72,7 +91,25 @@ def admin_reports_panel(request):
# Render to response
return render_to_response(
request,
- 'mediagoblin/admin/report.html',
+ 'mediagoblin/admin/report_panel.html',
{'report_list':report_list,
'closed_report_list':closed_report_list})
+@require_admin_login
+def admin_reports_detail(request):
+ report = ReportBase.query.get(request.matchdict['report_id'])
+ if report.discriminator == 'comment_report':
+ comment = MediaComment.query.get(report.comment_id)
+ media_entry = None
+ elif report.discriminator == 'media_report':
+ media_entry = MediaEntry.query.get(report.media_entry_id)
+ comment = None
+
+ return render_to_response(
+ request,
+ 'mediagoblin/admin/report.html',
+ {'report':report,
+ 'media_entry':media_entry,
+ 'comment':comment})
+
+