Allow sorting by number of events

This commit is contained in:
David Taylor
2016-04-05 12:08:19 +01:00
parent ca6cddb392
commit 03ca65602f

View File

@@ -9,6 +9,7 @@ from django.template.response import TemplateResponse
from django.contrib import messages from django.contrib import messages
from django.db import transaction from django.db import transaction
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Count
# Register your models here. # Register your models here.
admin.site.register(models.VatRate, reversion.VersionAdmin) admin.site.register(models.VatRate, reversion.VersionAdmin)
@@ -44,9 +45,14 @@ class AssociateAdmin(reversion.VersionAdmin):
actions = ['merge'] actions = ['merge']
def get_queryset(self, request):
return super(AssociateAdmin, self).get_queryset(request).annotate(event_count = Count('event'))
def number_of_events(self,obj): def number_of_events(self,obj):
return obj.latest_events.count() return obj.latest_events.count()
number_of_events.admin_order_field = 'event_count'
def merge(self, request, queryset): def merge(self, request, queryset):
if request.POST.get('post'): # Has the user confirmed which is the master record? if request.POST.get('post'): # Has the user confirmed which is the master record?
try: try: