view gpp/accounts/admin.py @ 552:9e42e6618168

For bitbucket issue #2, tweak the admin settings for the Post model to reduce slow queries. Define our own queryset() method so we can control the select_related(), and not have it cascade from post to topics to forums to categories. Removed 'topic' from list_display because MySQL still sucked with 2 inner joins. Now it seems to be tolerable with only one join to User.
author Brian Neal <bgneal@gmail.com>
date Wed, 25 Jan 2012 20:07:03 -0600
parents d1b11096595b
children
line wrap: on
line source
"""This file contains the automatic admin site definitions for the accounts Models"""

from django.contrib import admin
from accounts.models import IllegalUsername
from accounts.models import IllegalEmail
from accounts.models import PendingUser
from accounts import create_new_user


class PendingUserAdmin(admin.ModelAdmin):
   list_display = ('username', 'email', 'date_joined')
   actions = ('activate_account', )

   def activate_account(self, request, qs):
       """
       Activate the accounts of the selected pending users.

       """
       for pending_user in qs:
           create_new_user(pending_user, admin_activation=True)

       self.message_user(request, "%s accounts activated" % qs.count())

   activate_account.short_description = "Activate accounts for selected users"


admin.site.register(IllegalUsername)
admin.site.register(IllegalEmail)
admin.site.register(PendingUser, PendingUserAdmin)