ordering member

This commit is contained in:
2023-01-12 03:25:59 +00:00
parent 2622e82500
commit 1fc063a378
3 changed files with 47 additions and 5 deletions

View File

@@ -1,6 +1,13 @@
from django.contrib import admin from django.contrib import admin
from .forms import JobForm, JobGroupForm, JobInlineForm, MemberForm from .forms import (
ActiveMemberForm,
InactiveMemberForm,
JobForm,
JobGroupForm,
JobInlineForm,
MemberForm,
)
from .models import Job, JobGroup, JobMember, Member from .models import Job, JobGroup, JobMember, Member
@@ -30,6 +37,7 @@ class JobOverviewInline(JobMemberInline):
class ActiveMemberInline(JobMemberInline): class ActiveMemberInline(JobMemberInline):
form = ActiveMemberForm
verbose_name = "Mitglied" verbose_name = "Mitglied"
verbose_name_plural = "Aktive Mitglieder Liste" verbose_name_plural = "Aktive Mitglieder Liste"
@@ -38,6 +46,7 @@ class ActiveMemberInline(JobMemberInline):
class InactiveMemberInline(JobMemberInline): class InactiveMemberInline(JobMemberInline):
form = InactiveMemberForm
verbose_name = "Mitglied" verbose_name = "Mitglied"
verbose_name_plural = "Inaktive Mitglieder Liste" verbose_name_plural = "Inaktive Mitglieder Liste"

View File

@@ -1,7 +1,7 @@
from ckeditor_uploader.widgets import CKEditorUploadingWidget from ckeditor_uploader.widgets import CKEditorUploadingWidget
from django import forms from django import forms
from .models import Job, JobGroup, Member from .models import Job, JobGroup, JobMember, Member
class JobInlineForm(forms.ModelForm): class JobInlineForm(forms.ModelForm):
@@ -10,6 +10,31 @@ class JobInlineForm(forms.ModelForm):
fields = ["name"] fields = ["name"]
class ActiveMemberForm(forms.ModelForm):
class Meta:
fields = "__all__"
model = JobMember
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["member"].queryset = (
self.fields["member"]
.queryset.filter(role="A")
.order_by("firstname", "surname")
)
class InactiveMemberForm(forms.ModelForm):
class Meta:
fields = "__all__"
model = JobMember
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
member_qs = self.fields["member"].queryset.order_by("firstname", "surname")
self.fields["member"].queryset = member_qs
class MemberForm(forms.ModelForm): class MemberForm(forms.ModelForm):
class Meta: class Meta:
fields = "__all__" fields = "__all__"

View File

@@ -12,12 +12,16 @@ class ActiveJobMemberManager(models.Manager):
return ( return (
self.get_queryset() self.get_queryset()
.filter(job__job_group__slug=slug) .filter(job__job_group__slug=slug)
.order_by("job__slug", "job_role", "member__firstname") .order_by("job__slug", "job_role", "member__firstname", "member__surname")
) )
def get_queryset(self): def get_queryset(self):
date_today = timezone.now().date() date_today = timezone.now().date()
qs = super().get_queryset().order_by("member__firstname") qs = (
super()
.get_queryset()
.order_by("job_role", "member__firstname", "member__surname", "job_start")
)
return qs.filter( return qs.filter(
Q(member__role="A") & (Q(job_end__gt=date_today) | Q(job_end__isnull=True)) Q(member__role="A") & (Q(job_end__gt=date_today) | Q(job_end__isnull=True))
@@ -36,7 +40,11 @@ class InactiveJobMemberManager(models.Manager):
def get_queryset(self): def get_queryset(self):
date_today = timezone.now().date() date_today = timezone.now().date()
qs = super().get_queryset().order_by("member__firstname") qs = (
super()
.get_queryset()
.order_by("member__firstname", "member__surname", "-job_start")
)
return qs.filter( return qs.filter(
Q(member__role="P") Q(member__role="P")