37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
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()
|