diff --git a/fet2020/members/admin.py b/fet2020/members/admin.py index efe528de..4da4b3f5 100644 --- a/fet2020/members/admin.py +++ b/fet2020/members/admin.py @@ -35,6 +35,9 @@ class JobOverviewInline(JobMemberInline): verbose_name = "Tätigkeit" verbose_name_plural = "Tätigkeitsübersicht" + def get_queryset(self, request): + return JobMember.members.get_all_jobs_sorted() + class ActiveMemberInline(JobMemberInline): form = ActiveMemberForm diff --git a/fet2020/members/managers.py b/fet2020/members/managers.py index 435078c0..e697a7d6 100644 --- a/fet2020/members/managers.py +++ b/fet2020/members/managers.py @@ -1,7 +1,7 @@ from datetime import timedelta from django.db import models -from django.db.models import Q +from django.db.models import F, Q from django.utils import timezone @@ -58,6 +58,12 @@ class JobMemberManager(models.Manager): return qs.filter(Q(member__role=role)) + def get_all_jobs_sorted(self): + qs = self.get_queryset().order_by( + F("job_end").desc(nulls_first=True), "-job_start", "job__name" + ) + return qs + def get_active_jobs(self, member_id): date_today = timezone.now().date() qs = (