job sidebar as a templatetag

This commit is contained in:
2023-01-08 12:42:02 +00:00
parent 274257ff58
commit f42e47a650
6 changed files with 39 additions and 42 deletions

View File

View File

@@ -0,0 +1,20 @@
from collections import deque
from django import template
from members.models import JobMember, JobGroup
register = template.Library()
@register.inclusion_tag("members/partials/jobs_sidebar.html")
def get_jobs_sidebar():
job_groups = deque(JobGroup.objects.all())
# remove job group if there is no longer an active member
for elem in job_groups.copy():
job_members = JobMember.active_member.get_all(slug=elem.slug)
if not job_members:
job_groups.remove(elem)
return {"job_groups": job_groups}

View File

@@ -1,4 +1,3 @@
from collections import deque
import logging
from django.http import Http404
@@ -9,24 +8,10 @@ from .models import Member, JobMember, JobGroup
logger = logging.getLogger(__name__)
def __get_job_groups():
job_groups = deque(JobGroup.objects.all())
# remove job group if there is no longer an active member
for elem in job_groups.copy():
job_members = JobMember.active_member.get_all(slug=elem.slug)
if not job_members:
job_groups.remove(elem)
return job_groups
def index(request):
job_groups = __get_job_groups()
members = Member.all_members.filter(role=Member.MemberRole.ACTIVE)
context = {
"job_groups": job_groups,
"members": members,
}
@@ -34,8 +19,6 @@ def index(request):
def jobs(request, slug=None):
job_groups = __get_job_groups()
try:
description = JobGroup.objects.filter(slug=slug).values().first()["description"]
except Exception:
@@ -46,7 +29,6 @@ def jobs(request, slug=None):
active_job_group = JobGroup.objects.filter(slug=slug).first()
context = {
"job_groups": job_groups,
"description": description,
"job_members": job_members,
"active_job_group": active_job_group,
@@ -56,8 +38,6 @@ def jobs(request, slug=None):
def members(request, role=None):
job_groups = __get_job_groups()
for elem in Member.MemberRole:
if role == elem.label.lower():
members = Member.all_members.filter(role=elem.value)
@@ -66,7 +46,6 @@ def members(request, role=None):
members = Member.all_members.all()
context = {
"job_groups": job_groups,
"members": members,
}
@@ -74,8 +53,6 @@ def members(request, role=None):
def profile(request, member_id=None):
job_groups = __get_job_groups()
member = Member.all_members.filter(id=member_id).first()
if not member:
logger.info("Wrong member id '{}'".format(member_id))
@@ -85,7 +62,6 @@ def profile(request, member_id=None):
inactive_jobs = JobMember.members.get_inactive_jobs(member_id)
context = {
"job_groups": job_groups,
"member": member,
"active_jobs": active_jobs,
"inactive_jobs": inactive_jobs,

View File

@@ -1,6 +1,7 @@
{% extends 'base.html' %}
{% load flatpages %}
{% load job_groups %}
{% load softhyphen_tags %}
{% load static %}
@@ -41,9 +42,7 @@
</div>
</div>
<ul class="sideBarNav">
{% for job in job_groups %}
{% include 'members/partials/_jobs_side_bar.html' %}
{% endfor %}
{% get_jobs_sidebar %}
<hr class="">

View File

@@ -1,15 +0,0 @@
<li class="{% if job.slug in request.path %}active{% endif %}">
<a href="{% url 'members:jobs' job.slug %}">{{ job.name }}</a>
</li>
{% if job.slug == active_job_group.slug %}
{% regroup job_members by job.name as all_jobmem_list %}
<ul class="scrollSpyNav">
{% for jobmem in all_jobmem_list %}
<li class="{% if jobmem.grouper %}active{% endif %}">
<a href="#{{ jobmem.list.0.job.slug }}">{{ jobmem.grouper }}</a>
</li>
{% endfor %}
</ul>
{% endif %}

View File

@@ -0,0 +1,17 @@
{% for job in job_groups %}
<li class="{% if job.slug in request.path %}active{% endif %}">
<a href="{% url 'members:jobs' job.slug %}">{{ job.name }}</a>
</li>
{% if job.slug == active_job_group.slug %}
{% regroup job_members by job.name as all_jobmem_list %}
<ul class="scrollSpyNav">
{% for jobmem in all_jobmem_list %}
<li class="{% if jobmem.grouper %}active{% endif %}">
<a href="#{{ jobmem.list.0.job.slug }}">{{ jobmem.grouper }}</a>
</li>
{% endfor %}
</ul>
{% endif %}
{% endfor %}