diff --git a/fet2020/members/templatetags/__init__.py b/fet2020/members/templatetags/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/fet2020/members/templatetags/job_groups.py b/fet2020/members/templatetags/job_groups.py new file mode 100644 index 00000000..362d851f --- /dev/null +++ b/fet2020/members/templatetags/job_groups.py @@ -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} diff --git a/fet2020/members/views.py b/fet2020/members/views.py index 16fa3b0d..e2b2e1a7 100644 --- a/fet2020/members/views.py +++ b/fet2020/members/views.py @@ -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, diff --git a/fet2020/templates/members/index.html b/fet2020/templates/members/index.html index a90af2aa..e55924de 100644 --- a/fet2020/templates/members/index.html +++ b/fet2020/templates/members/index.html @@ -1,6 +1,7 @@ {% extends 'base.html' %} {% load flatpages %} +{% load job_groups %} {% load softhyphen_tags %} {% load static %} @@ -41,9 +42,7 @@