add anchor tags to jobs, add http404 response
This commit is contained in:
@@ -72,11 +72,13 @@ class MemberManager(models.Manager):
|
||||
|
||||
class JobManager(models.Manager):
|
||||
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)):
|
||||
if i.job.name not in tmp_list:
|
||||
tmp_list.append(i.job.name)
|
||||
return tmp_list
|
||||
if i.job.name not in job_list:
|
||||
job_list.append(i.job.name)
|
||||
slug_list.append(i.job.slug)
|
||||
return job_list, slug_list
|
||||
|
||||
|
||||
class Member(models.Model):
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
from django.http import Http404
|
||||
from django.shortcuts import render
|
||||
|
||||
from collections import deque
|
||||
@@ -9,16 +10,9 @@ from rest_framework import permissions
|
||||
# from django_filters.rest_framework import DjangoFilterBackend
|
||||
|
||||
|
||||
def index(request, slug=None, filter=None):
|
||||
def index(request):
|
||||
job_group = deque(JobGroup.objects.all())
|
||||
members = None
|
||||
|
||||
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
|
||||
members = deque(Member.all_members.all())
|
||||
|
||||
context = {
|
||||
"job_group": job_group,
|
||||
@@ -32,12 +26,18 @@ def jobs_view(request, slug=None):
|
||||
job_group = deque(JobGroup.objects.all())
|
||||
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)
|
||||
inactive_members = JobMember.inactive_member.get_members_of_job(job_names=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 = {
|
||||
"job_group": job_group,
|
||||
@@ -49,12 +49,10 @@ def jobs_view(request, slug=None):
|
||||
def members_view(request, filter=None):
|
||||
job_group = deque(JobGroup.objects.all())
|
||||
|
||||
if filter is None:
|
||||
members = deque(Member.all_members.all())
|
||||
elif filter in Member.MemberRole:
|
||||
if filter in Member.MemberRole:
|
||||
members = deque(Member.all_members.filter(role=filter))
|
||||
else:
|
||||
members = None
|
||||
raise Http404("no member role")
|
||||
|
||||
context = {
|
||||
"job_group": job_group,
|
||||
@@ -66,10 +64,10 @@ def members_view(request, filter=None):
|
||||
|
||||
def profile_view(request, member_name=None):
|
||||
job_group = deque(JobGroup.objects.all())
|
||||
member = None
|
||||
jobs = None
|
||||
|
||||
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))
|
||||
|
||||
context = {
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<a id="members" data-toggle="tab" href="/members/A">Aktive Mitglieder</a>
|
||||
<a id="members" data-toggle="tab" href="/members/P">Inaktive Mitglieder</a>
|
||||
{% 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 %}
|
||||
</ul>
|
||||
|
||||
@@ -24,17 +24,17 @@
|
||||
{% endwith %}
|
||||
{% 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' %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% for job in job_list %}
|
||||
<div id="jobs-{{job.slug}}" class="tab-pane">
|
||||
<div id="jobs" class="tab-pane">
|
||||
<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 %}
|
||||
{% include 'members/jobs_list.html' %}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="medium-3 large-2 small-6 cell">
|
||||
<h2>{{mem.member.surname}}</h2>
|
||||
{% 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>
|
||||
{%endwith %}
|
||||
{% endfor %}
|
||||
|
||||
Reference in New Issue
Block a user