diff --git a/fet2020/members/models.py b/fet2020/members/models.py index 6f64d3d6..485ee602 100644 --- a/fet2020/members/models.py +++ b/fet2020/members/models.py @@ -9,7 +9,7 @@ from datetime import timedelta from easy_thumbnails.fields import ThumbnailerImageField -class ActiveMemberManager(models.Manager): +class ActiveJobMemberManager(models.Manager): ''' return a list of active member, and members who are still working ''' @@ -18,14 +18,15 @@ class ActiveMemberManager(models.Manager): def get_queryset(self): date_today = timezone.now().date() + qs = super().get_queryset().order_by('member__firstname') - return super().get_queryset().filter( + return qs.filter( Q(member__role=Member.MemberRole.ACTIVE) & (Q(job_end__gt=date_today) | Q(job_end__isnull=True)) ) -class InactiveMemberManager(models.Manager): +class InactiveJobMemberManager(models.Manager): ''' return a list of inactive member ''' @@ -34,16 +35,19 @@ class InactiveMemberManager(models.Manager): def get_queryset(self): date_today = timezone.now().date() + qs = super().get_queryset().order_by('member__firstname') - return super().get_queryset().filter( + return qs.filter( Q(member__role=Member.MemberRole.PENSION) | (Q(job_end__lt=date_today + timedelta(days=1)) & Q(job_end__isnull=False)) ) -class MemberManager(models.Manager): +class JobMemberManager(models.Manager): def get_members(self, role): - return self.get_queryset().filter(Q(member__role=role)) + qs = self.get_queryset().order_by('member__firstname') + + return qs.filter(Q(member__role=role)) class JobGroupManager(models.Manager): @@ -76,6 +80,11 @@ class JobGroupManager(models.Manager): return job_groups +class MemberManager(models.Manager): + def get_queryset(self): + return super().get_queryset().order_by('firstname') + + class Member(models.Model): firstname = models.CharField("Vorname", max_length=128) surname = models.CharField("Nachname", max_length=128) @@ -110,7 +119,7 @@ class Member(models.Model): date_created = models.DateTimeField(auto_now_add=True) # Managers - all_members = models.Manager() + all_members = MemberManager() class Meta: verbose_name = "Mitglied" @@ -207,6 +216,6 @@ class JobMember(models.Model): job_role = models.CharField(max_length=2, choices=JobRole.choices, default=JobRole.MEMBER) - members = MemberManager() - active_member = ActiveMemberManager() - inactive_member = InactiveMemberManager() + members = JobMemberManager() + active_member = ActiveJobMemberManager() + inactive_member = InactiveJobMemberManager() diff --git a/fet2020/members/views.py b/fet2020/members/views.py index b8f0e672..1d267e55 100644 --- a/fet2020/members/views.py +++ b/fet2020/members/views.py @@ -93,7 +93,7 @@ class MemberViewSet(viewsets.ModelViewSet): """ API endpoint that allows users to be viewed or edited. """ - queryset = Member.all_members.all().order_by('nickname') + queryset = Member.all_members.order_by('nickname') serializer_class = MemberSerializer #permission_classes = [permissions.IsAuthenticated] diff --git a/fet2020/templates/layout.html b/fet2020/templates/layout.html index 019f597a..e326fa12 100644 --- a/fet2020/templates/layout.html +++ b/fet2020/templates/layout.html @@ -8,7 +8,7 @@ FET - + @@ -76,14 +76,14 @@ footer {
-
+
- - - + + +
diff --git a/fet2020/templates/members/index.html b/fet2020/templates/members/index.html index 06eeeb29..ffea6591 100644 --- a/fet2020/templates/members/index.html +++ b/fet2020/templates/members/index.html @@ -1,40 +1,41 @@ {% extends 'layout.html' %} {% block content %} +
- {% for job in pinned_job_groups %} - + {% endfor %} + {% for job in unpinned_job_groups %} + + {% endfor %} + + + +
- - -
- {% if description is not None %} - {{ description|safe }} - {% endif %} -
+ {% endif %} {% if member %} @@ -45,6 +46,12 @@ {% if members %} +
+
+ Die Fachschaft Elektrotechnik (kurz: FET), ist die offizielle Vertretung aller Studierenden auf der Fakultät für Elektrotechnik und Informationstechnik. Ehrenamtliche engagierte Studierende unterstützen dich in Anliegen und Fragen zum und rund ums Studium. Wir vertreten eure Interessen in den offiziellen Gremien der Universität und arbeiten an Studienplänen mit. Außerdem bieten wir ein Rahmenprogramm zum Studium in Form von Veranstaltungen und Festln. Wir freuen uns über Feedback und Anregungen, insbesondere von jenen, die gleich Nägel mit Köpfen machen und unser Team verstärken wollen oder ihre Themen und Meinungen in eine unserer Sitzungen einbringen möchten. +
+
+
{% include 'members/members_list.html' %}
@@ -65,7 +72,7 @@ {% for jm in jobmem.list %} {% with member=jm.member %}
-

{{jm.member.surname}}

+

{{member.firstname}} {{member.surname}}

{% include 'members/partials/_member.html' %} {{jm.get_job_role_display}} ({{jm.job_start|date}} - {{jm.job_end|date}})
@@ -80,3 +87,28 @@
{% endblock %} + + diff --git a/fet2020/templates/members/partials/_job_membership_grid.html b/fet2020/templates/members/partials/_job_membership_grid.html index 1cd9683d..7872f4bb 100644 --- a/fet2020/templates/members/partials/_job_membership_grid.html +++ b/fet2020/templates/members/partials/_job_membership_grid.html @@ -2,7 +2,7 @@ {% for mem in job_memberships %} {% with member=mem.member %}
-

{{mem.member.surname}}

+

{{member.firstname}} {{member.surname}}

{% include 'members/partials/_member.html' %}

{{mem.get_job_role_display}} ({{mem.job_start|date}} - {{mem.job_end|date}})