job sidebar as a templatetag
This commit is contained in:
0
fet2020/members/templatetags/__init__.py
Normal file
0
fet2020/members/templatetags/__init__.py
Normal file
20
fet2020/members/templatetags/job_groups.py
Normal file
20
fet2020/members/templatetags/job_groups.py
Normal 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}
|
||||
@@ -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,
|
||||
|
||||
@@ -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="">
|
||||
|
||||
|
||||
@@ -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 %}
|
||||
17
fet2020/templates/members/partials/jobs_sidebar.html
Normal file
17
fet2020/templates/members/partials/jobs_sidebar.html
Normal 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 %}
|
||||
Reference in New Issue
Block a user