From 4ab2c050fd25c44bab7dab468ff4618506a20ad1 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Thu, 11 Apr 2013 17:08:40 +0100 Subject: [PATCH] Show moderation and inactive stores to admins * Add better admin interface for FlaggedObject * Export totals via context processors * Update base template to show this data to admins. --- app/moderation/admin.py | 8 +++++++- app/moderation/context_processors.py | 10 ++++++++++ app/stores/context_processors.py | 8 +++++--- app/vapemap/conf/base.py | 1 + app/vapemap/templates/base.html | 4 +++- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 app/moderation/context_processors.py diff --git a/app/moderation/admin.py b/app/moderation/admin.py index b5b4014..ceac072 100644 --- a/app/moderation/admin.py +++ b/app/moderation/admin.py @@ -1,5 +1,11 @@ from django.contrib import admin from moderation.models import FlagType, FlaggedObject + +class FlaggedObjectModelAdmin(admin.ModelAdmin): + list_display = ['generic_obj', 'user', 'status', 'note'] + list_filter = ['status'] + + admin.site.register(FlagType, admin.ModelAdmin) -admin.site.register(FlaggedObject, admin.ModelAdmin) +admin.site.register(FlaggedObject, FlaggedObjectModelAdmin) diff --git a/app/moderation/context_processors.py b/app/moderation/context_processors.py new file mode 100644 index 0000000..f021f8d --- /dev/null +++ b/app/moderation/context_processors.py @@ -0,0 +1,10 @@ +from django.contrib.sites.models import Site +from moderation.models import FlaggedObject + +def pending_flagged_admin(request): + if request.user.is_superuser: + pending_flags = FlaggedObject.objects.filter(status=1).count() + return { + 'admin_pending_flags': pending_flags + } + return {} diff --git a/app/stores/context_processors.py b/app/stores/context_processors.py index 438092e..7040132 100644 --- a/app/stores/context_processors.py +++ b/app/stores/context_processors.py @@ -1,5 +1,5 @@ from django.contrib.sites.models import Site -from .models import ClaimRequest +from .models import ClaimRequest, Store def site(request): return { @@ -9,8 +9,10 @@ def site(request): def pending_admin(request): if request.user.is_superuser: - pending = ClaimRequest.objects.filter(status=ClaimRequest.CLAIM_STATUS_PENDING).count() + inactive_stores = Store.objects.filter(active=False).count() + pending_claims = ClaimRequest.objects.filter(status=ClaimRequest.CLAIM_STATUS_PENDING).count() return { - 'admin_pending_requests': pending + 'admin_pending_claims': pending_claims, + 'admin_inactive_stores': inactive_stores, } return {} \ No newline at end of file diff --git a/app/vapemap/conf/base.py b/app/vapemap/conf/base.py index 584f0a0..1b28272 100644 --- a/app/vapemap/conf/base.py +++ b/app/vapemap/conf/base.py @@ -98,6 +98,7 @@ TEMPLATE_CONTEXT_PROCESSORS += ( 'django.core.context_processors.request', 'stores.context_processors.site', 'stores.context_processors.pending_admin', + 'moderation.context_processors.pending_flagged_admin', ) ROOT_URLCONF = 'vapemap.urls' diff --git a/app/vapemap/templates/base.html b/app/vapemap/templates/base.html index f5ddceb..bf4e465 100644 --- a/app/vapemap/templates/base.html +++ b/app/vapemap/templates/base.html @@ -41,7 +41,9 @@
  • Login
  • {% else %} {% if user.is_superuser %} - {% if admin_pending_requests > 0 %}
  • {{ admin_pending_requests }}
  • {% endif %} + {% if admin_inactive_stores > 0 %}
  • {{ admin_inactive_stores }}
  • {% endif %} + {% if admin_pending_flags > 0 %}
  • {{ admin_pending_flags }}
  • {% endif %} + {% if admin_pending_claims > 0 %}
  • {{ admin_pending_claims }}
  • {% endif %}
  • Admin
  • {% endif %}
  • {{ user.username }}