add anchor tags to jobs, add http404 response

This commit is contained in:
2020-09-06 10:00:34 +00:00
parent 91c127b0db
commit 6fb036d0f1
4 changed files with 32 additions and 32 deletions

View File

@@ -72,11 +72,13 @@ class MemberManager(models.Manager):
class JobManager(models.Manager): class JobManager(models.Manager):
def get_job_names(self, slug): def get_job_names(self, slug):
tmp_list = [] job_list = []
slug_list = []
for i in self.get_queryset().filter(Q(job__job_group__slug=slug)): for i in self.get_queryset().filter(Q(job__job_group__slug=slug)):
if i.job.name not in tmp_list: if i.job.name not in job_list:
tmp_list.append(i.job.name) job_list.append(i.job.name)
return tmp_list slug_list.append(i.job.slug)
return job_list, slug_list
class Member(models.Model): class Member(models.Model):

View File

@@ -1,3 +1,4 @@
from django.http import Http404
from django.shortcuts import render from django.shortcuts import render
from collections import deque from collections import deque
@@ -9,16 +10,9 @@ from rest_framework import permissions
# from django_filters.rest_framework import DjangoFilterBackend # from django_filters.rest_framework import DjangoFilterBackend
def index(request, slug=None, filter=None): def index(request):
job_group = deque(JobGroup.objects.all()) job_group = deque(JobGroup.objects.all())
members = None members = deque(Member.all_members.all())
if filter is None:
members = deque(Member.all_members.all())
elif filter in Member.MemberRole:
members = deque(Member.all_members.filter(role=filter))
else:
members = None
context = { context = {
"job_group": job_group, "job_group": job_group,
@@ -32,12 +26,18 @@ def jobs_view(request, slug=None):
job_group = deque(JobGroup.objects.all()) job_group = deque(JobGroup.objects.all())
job_list = [] job_list = []
job_names = JobMember.jobs.get_job_names(slug=slug) job_names, slug_list = JobMember.jobs.get_job_names(slug=slug)
if not job_names:
raise Http404("no jobs")
active_members = JobMember.active_member.get_members_of_job(job_names=job_names) active_members = JobMember.active_member.get_members_of_job(job_names=job_names)
inactive_members = JobMember.inactive_member.get_members_of_job(job_names=job_names) inactive_members = JobMember.inactive_member.get_members_of_job(job_names=job_names)
for idx, item in enumerate(job_names): for idx, item in enumerate(job_names):
job_list.append((job_names[idx], active_members[idx], inactive_members[idx])) job_list.append(
(job_names[idx], active_members[idx], inactive_members[idx], slug_list[idx])
)
context = { context = {
"job_group": job_group, "job_group": job_group,
@@ -49,12 +49,10 @@ def jobs_view(request, slug=None):
def members_view(request, filter=None): def members_view(request, filter=None):
job_group = deque(JobGroup.objects.all()) job_group = deque(JobGroup.objects.all())
if filter is None: if filter in Member.MemberRole:
members = deque(Member.all_members.all())
elif filter in Member.MemberRole:
members = deque(Member.all_members.filter(role=filter)) members = deque(Member.all_members.filter(role=filter))
else: else:
members = None raise Http404("no member role")
context = { context = {
"job_group": job_group, "job_group": job_group,
@@ -66,10 +64,10 @@ def members_view(request, filter=None):
def profile_view(request, member_name=None): def profile_view(request, member_name=None):
job_group = deque(JobGroup.objects.all()) job_group = deque(JobGroup.objects.all())
member = None
jobs = None
member = deque(Member.all_members.filter(nickname=member_name)) member = deque(Member.all_members.filter(nickname=member_name))
if not member:
raise Http404("no member")
jobs = deque(JobMember.members.filter(member__nickname=member_name)) jobs = deque(JobMember.members.filter(member__nickname=member_name))
context = { context = {

View File

@@ -11,7 +11,7 @@
<a id="members" data-toggle="tab" href="/members/A">Aktive Mitglieder</a> <a id="members" data-toggle="tab" href="/members/A">Aktive Mitglieder</a>
<a id="members" data-toggle="tab" href="/members/P">Inaktive Mitglieder</a> <a id="members" data-toggle="tab" href="/members/P">Inaktive Mitglieder</a>
{% for job in job_group %} {% for job in job_group %}
<a id="jobs-{{job.slug}}" data-toggle="tab" href="/members/jobs/{{job.slug}}">{{job.name}}</a> <a id="jobs-{{job.slug}}" data-toggle="tab" href="/members/jobs/{{job.slug}}">{{job.name}}</a>
{% endfor %} {% endfor %}
</ul> </ul>
@@ -24,17 +24,17 @@
{% endwith %} {% endwith %}
{% endfor %} {% endfor %}
<div id="members" class="tab-pane fade in active"> {% if members is not None %}
{% if members is not None %} <div id="members" class="tab-pane">
{% include 'members/members_list.html' %} {% include 'members/members_list.html' %}
{% endif %} </div>
</div> {% endif %}
{% for job in job_list %} {% for job in job_list %}
<div id="jobs-{{job.slug}}" class="tab-pane"> <div id="jobs" class="tab-pane">
<div class="grid-container"> <div class="grid-container">
<h2>{{job.0}}</h2> <div id="{{job.3}}"><a href="#{{job.3}}"><h2>{{job.0}}</h2></a></div>
{% with active_members=job.1 inactive_members=job.2 %} {% with active_members=job.1 inactive_members=job.2 %}
{% include 'members/jobs_list.html' %} {% include 'members/jobs_list.html' %}

View File

@@ -4,7 +4,7 @@
<div class="medium-3 large-2 small-6 cell"> <div class="medium-3 large-2 small-6 cell">
<h2>{{mem.member.surname}}</h2> <h2>{{mem.member.surname}}</h2>
{% include 'members/partials/_member.html' %} {% include 'members/partials/_member.html' %}
<h2>{{mem.get_job_role_display}} ({{mem.job_start}} - {{mem.job_end}})</h2> <h2>{{mem.get_job_role_display}} ({{mem.job_start|date}} - {{mem.job_end|date}})</h2>
</div> </div>
{%endwith %} {%endwith %}
{% endfor %} {% endfor %}