update member view

This commit is contained in:
2020-11-24 20:31:06 +00:00
parent b6847ab9fa
commit e0adc53dd3
7 changed files with 51 additions and 33 deletions

View File

@@ -98,6 +98,7 @@ INSTALLED_APPS = [
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
@@ -121,6 +122,7 @@ TEMPLATES = [
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.i18n',
],
},
},

View File

@@ -14,7 +14,7 @@ class ActiveJobMemberManager(models.Manager):
return a list of active member, and members who are still working
'''
def get_all_by_slug(self, slug):
return self.get_queryset().filter(job__job_group__slug=slug)
return self.get_queryset().filter(job__job_group__slug=slug).order_by('job__slug', 'job_role', 'member__firstname')
def get_queryset(self):
date_today = timezone.now().date()
@@ -31,7 +31,7 @@ class InactiveJobMemberManager(models.Manager):
return a list of inactive member
'''
def get_all_by_slug(self, slug):
return self.get_queryset().filter(job__job_group__slug=slug)
return self.get_queryset().filter(job__job_group__slug=slug).order_by('job__slug', 'job_role', 'member__firstname')
def get_queryset(self):
date_today = timezone.now().date()
@@ -221,12 +221,12 @@ class JobMember(models.Model):
job_end = models.DateField('Job Ende', null=True, blank=True)
class JobRole(models.TextChoices):
PRESIDENT = '1V', _('VorsitzendeR')
VICE_PRESIDENT = '2V', _('stv VorsitzendeR')
SECOND_VICE_PRESIDENT = '3V', _('2. stv VorsitzendeR')
MEMBER = 'M', _('Mitglied')
SUBSTITUTE_MEMBER = 'E', _('Ersatzmitglied')
PERSON_RESPONSIBLE = 'V', _('VerantwortlicheR')
PRESIDENT = ('10', _('VorsitzendeR'))
VICE_PRESIDENT = ('20', _('stv VorsitzendeR'))
SECOND_VICE_PRESIDENT = ('30', _('2. stv VorsitzendeR'))
PERSON_RESPONSIBLE = ('40', _('VerantwortlicheR'))
MEMBER = ('50', _('Mitglied'))
SUBSTITUTE_MEMBER = ('60', _('Ersatzmitglied'))
job_role = models.CharField(max_length=2, choices=JobRole.choices, default=JobRole.MEMBER)

View File

@@ -11,10 +11,23 @@ from rest_framework import viewsets
#from rest_framework import permissions
def __remove_if_zero_active_mem(job_group):
for elem in job_group:
job_members = JobMember.active_member.get_all_by_slug(slug=elem.slug)
if not job_members:
job_group.remove(elem)
return job_group
def __get_job_groups():
pinned_job_groups = JobGroup.all_jobgroups.get_pinned_active_jobgroups()
unpinned_job_groups = JobGroup.all_jobgroups.get_unpinned_active_jobgroups()
# remove job group if there is no longer an active member
pinned_job_groups = __remove_if_zero_active_mem(pinned_job_groups)
unpinned_job_groups = __remove_if_zero_active_mem(unpinned_job_groups)
# show max 5 pinned jobgroups
if len(pinned_job_groups) > 5:
for idx, val in enumerate(pinned_job_groups[5:]):

View File

@@ -23,19 +23,23 @@
<div class="grid-x grid-padding-x padding-top-1">
{% for job in pinned_job_groups %}
<div class="cell large-2 medium-4 small-6"><a class="button {% if job.slug in request.path %} active {% endif %}" style="width: 100%;" href="/members/jobs/{{job.slug}}">{{job.name}}</a></div>
<div class="cell large-2 medium-4 small-6">
<a class="button expanded {% if job.slug in request.path %} active {% endif %}" href="/members/jobs/{{job.slug}}">
{{job.name}}
</a>
</div>
{% endfor %}
{% for job in unpinned_job_groups %}
<div class="cell large-2 medium-4 small-6">
<a class="button {% if job.slug in request.path %} active {% endif %}" style="width: 100%;" href="/members/jobs/{{job.slug}}">
<a class="button expanded {% if job.slug in request.path %} active {% endif %}" href="/members/jobs/{{job.slug}}">
{{ job.name|softhyphen|safe }}
</a>
</div>
{% endfor %}
<div class="cell large-2 medium-4 small-6"><a class="button memb {% if '/members/' == request.path %} active {% endif %}" style="width: 100%;" href="/members">Alle Mitglieder</a></div>
<div class="cell large-2 medium-4 small-6"><a class="button memb {% if '/members/P' == request.path %} active {% endif %}" style="width: 100%;" href="/members/P">Pension Mitglieder</a></div>
<div class="cell large-2 medium-4 small-6"><a class="button memb expanded {% if '/members/P' == request.path %} active {% endif %}" href="/members/P">Pension</a></div>
<div class="cell large-2 medium-4 small-6"><a class="button memb expanded {% if '/members/' == request.path %} active {% endif %}" href="/members">Alle Mitglieder</a></div>
</div>
@@ -72,20 +76,16 @@
{% for jobmem in all_jobmem_list %}
<div class="padding-top-1 padding-left-1 padding-bottom-1 padding-right-1" style="background-color: white;">
<div class="padding-top-1 padding-left-1 padding-right-1" style="background-color: white;">
<h2>{{jobmem.grouper}}<a class="headerlink" href="#{{jobmem.list.0.job.slug}}" title="Permalink to {{jobmem.grouper}}"> #</a></h2>
<b>Aktuelle Mitglieder:</b>
<div class="grid-x">
<div class="grid-x align-bottom">
{% for jm in jobmem.list %}
{% with member=jm.member %}
<div class="medium-3 large-2 small-6 cell">
<h2>{{member.firstname}} {{member.surname}}</h2>
{% include 'members/partials/_member.html' %}
{{jm.get_job_role_display}} ({{jm.job_start|date}} - {{jm.job_end|date}})
</div>
{% include 'members/partials/_job_membership_grid.html' %}
{% endwith %}
{% endfor %}

View File

@@ -1,7 +1,7 @@
<div class="grid-x">
<div class="grid-x align-bottom">
{% for member in members %}
<div class="cell large-2 medium-3 small-6">
<div class="cell large-2 medium-3 small-6 padding-right-1">
<h2>{{member.firstname}} {{member.surname}}</h2>
{% include 'members/partials/_member.html' %}
</div>

View File

@@ -1,11 +1,15 @@
<div class="grid-x">
{% for mem in job_memberships %}
{% with member=mem.member %}
<div class="medium-3 large-2 small-6 cell">
{% load i18n %}
<div class="cell medium-3 large-2 small-6 padding-right-1 padding-bottom-1">
<h2>{{member.firstname}} {{member.surname}}</h2>
{% include 'members/partials/_member.html' %}
<h2>{{mem.get_job_role_display}} ({{mem.job_start|date}} - {{mem.job_end|date}})</h2>
</div>
{% endwith %}
{% endfor %}
<br>
{{ jm.get_job_role_display }}<br>
({{ jm.job_start|date }} -
{% if jm.job_end %}
{{ jm.job_end|date }})<br>
{% else %}
)<br><br>
{% endif %}
</div>

View File

@@ -4,7 +4,6 @@
<div class="thumb-layer">
<div>
<h1>{{member.nickname}}</h1>
<p>{{member.firstname}} {{member.surname}}</p>
</div>
</div>
</a>