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 = [ MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware', 'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware', 'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',
@@ -121,6 +122,7 @@ TEMPLATES = [
'django.template.context_processors.request', 'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth', 'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages', '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 return a list of active member, and members who are still working
''' '''
def get_all_by_slug(self, slug): 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): def get_queryset(self):
date_today = timezone.now().date() date_today = timezone.now().date()
@@ -31,7 +31,7 @@ class InactiveJobMemberManager(models.Manager):
return a list of inactive member return a list of inactive member
''' '''
def get_all_by_slug(self, slug): 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): def get_queryset(self):
date_today = timezone.now().date() date_today = timezone.now().date()
@@ -221,12 +221,12 @@ class JobMember(models.Model):
job_end = models.DateField('Job Ende', null=True, blank=True) job_end = models.DateField('Job Ende', null=True, blank=True)
class JobRole(models.TextChoices): class JobRole(models.TextChoices):
PRESIDENT = '1V', _('VorsitzendeR') PRESIDENT = ('10', _('VorsitzendeR'))
VICE_PRESIDENT = '2V', _('stv VorsitzendeR') VICE_PRESIDENT = ('20', _('stv VorsitzendeR'))
SECOND_VICE_PRESIDENT = '3V', _('2. stv VorsitzendeR') SECOND_VICE_PRESIDENT = ('30', _('2. stv VorsitzendeR'))
MEMBER = 'M', _('Mitglied') PERSON_RESPONSIBLE = ('40', _('VerantwortlicheR'))
SUBSTITUTE_MEMBER = 'E', _('Ersatzmitglied') MEMBER = ('50', _('Mitglied'))
PERSON_RESPONSIBLE = 'V', _('VerantwortlicheR') SUBSTITUTE_MEMBER = ('60', _('Ersatzmitglied'))
job_role = models.CharField(max_length=2, choices=JobRole.choices, default=JobRole.MEMBER) 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 #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(): def __get_job_groups():
pinned_job_groups = JobGroup.all_jobgroups.get_pinned_active_jobgroups() pinned_job_groups = JobGroup.all_jobgroups.get_pinned_active_jobgroups()
unpinned_job_groups = JobGroup.all_jobgroups.get_unpinned_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 # show max 5 pinned jobgroups
if len(pinned_job_groups) > 5: if len(pinned_job_groups) > 5:
for idx, val in enumerate(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"> <div class="grid-x grid-padding-x padding-top-1">
{% for job in pinned_job_groups %} {% 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 %} {% endfor %}
{% for job in unpinned_job_groups %} {% for job in unpinned_job_groups %}
<div class="cell large-2 medium-4 small-6"> <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 }} {{ job.name|softhyphen|safe }}
</a> </a>
</div> </div>
{% endfor %} {% 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 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 {% 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/' == request.path %} active {% endif %}" href="/members">Alle Mitglieder</a></div>
</div> </div>
@@ -72,20 +76,16 @@
{% for jobmem in all_jobmem_list %} {% 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> <h2>{{jobmem.grouper}}<a class="headerlink" href="#{{jobmem.list.0.job.slug}}" title="Permalink to {{jobmem.grouper}}"> #</a></h2>
<b>Aktuelle Mitglieder:</b> <b>Aktuelle Mitglieder:</b>
<div class="grid-x"> <div class="grid-x align-bottom">
{% for jm in jobmem.list %} {% for jm in jobmem.list %}
{% with member=jm.member %} {% with member=jm.member %}
<div class="medium-3 large-2 small-6 cell"> {% include 'members/partials/_job_membership_grid.html' %}
<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>
{% endwith %} {% endwith %}
{% endfor %} {% endfor %}

View File

@@ -1,7 +1,7 @@
<div class="grid-x"> <div class="grid-x align-bottom">
{% for member in members %} {% 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> <h2>{{member.firstname}} {{member.surname}}</h2>
{% include 'members/partials/_member.html' %} {% include 'members/partials/_member.html' %}
</div> </div>

View File

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

View File

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