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):
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):

View File

@@ -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
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 = {

View File

@@ -24,17 +24,17 @@
{% endwith %}
{% endfor %}
<div id="members" class="tab-pane fade in active">
{% if members is not None %}
<div id="members" class="tab-pane">
{% include 'members/members_list.html' %}
{% endif %}
</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' %}

View File

@@ -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 %}