from django.contrib import admin from django.db.models import Count import os from django.utils.translation import ugettext_lazy as _ SETTING = os.environ['WORKOUTTEST_SETTING'] if SETTING == "PROD" : from aitrainer_backoffice.aitrainer_backoffice.models.exercise_type import ExerciseType from aitrainer_backoffice.aitrainer_backoffice.models.exercises import Exercises else: from aitrainer_backoffice.models.exercise_type import ExerciseType from aitrainer_backoffice.models.exercises import Exercises class FrequentExerciseType(ExerciseType): @property def exercise_count(self): count = Exercises.objects.filter(exercise_type_id=self.exercise_type_id).count() return count class Meta: proxy = True verbose_name = _("Frequent Exercise") verbose_name_plural = _("Frequent Exercises") class FrequentExerciseTypeAdmin(admin.ModelAdmin): list_display = ('exercise_type_id', 'name', 'exercise_count') def get_queryset(self, request): qs = super(FrequentExerciseTypeAdmin, self).get_queryset(request) #.annotate(_exercise_count=Count("exercise_count",distinct=True )) return qs.filter(active=True) #exercise_count.admin_order_field = '_exercise_count' admin.site.register(FrequentExerciseType, FrequentExerciseTypeAdmin) admin.autodiscover()