From 0a6f4e5f9e11c31594908bfc56262674d1962e00 Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Mon, 13 Apr 2020 17:11:59 +0200 Subject: [PATCH] Add member information fields. Advances #86 --- aleksis/apps/ticdesk_org/model_extensions.py | 43 +++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/aleksis/apps/ticdesk_org/model_extensions.py b/aleksis/apps/ticdesk_org/model_extensions.py index 21aec7a..b1dd466 100644 --- a/aleksis/apps/ticdesk_org/model_extensions.py +++ b/aleksis/apps/ticdesk_org/model_extensions.py @@ -1,7 +1,46 @@ -from jsonstore import CharField +from django.utils import timezone +from django.utils.translation import gettext_lazy as _ +from jsonstore import CharField, IntegerField, DateField -from aleksis.core.models import Person +from aleksis.core.models import Person, Group + +@Person.property +def is_member_of(self, group): + """ Check if person is member of a given group """ + + return group in self.groups + + +@Person.property +def is_member(self): + """ Check if person is still a member """ + + now = timezone.datetime.now().date() + members = Groups.objects.get(short_name="members") + return ( + self.is_member_of(members) + and (self.member_since and self.member_since <= now) + and (not self.member_until or self.member_until >= now) + ) + + +# Field for school Person.field(school=CharField(verbose_name=_("Name of school"))) Person.field(school_class=CharField(verbose_name=_("School class"))) Person.field(school_place=CharField(verbose_name=_("Place of the school"))) + +# Member information +Person.field( + employee_number=IntegerField( + verbose_name=_("Employee number"), blank=True, null=True + ) +) +Person.field( + member_since=DateField(verbose_name=_("Member since"), blank=True, null=True) +) +Person.field( + member_until=DateField(verbose_name=_("Member until"), blank=True, null=True) +) +Person.field(iban=CharField(verbose_name=_("IBAN"), blank=True, null=True)) +Person.field(bic=CharField(verbose_name=_("BIC"), blank=True, null=True)) -- GitLab