add sorted jobs

This commit is contained in:
2021-11-18 15:03:05 +00:00
committed by root
parent 6c09519b26
commit e2c1366075
3 changed files with 22 additions and 6 deletions

View File

@@ -50,6 +50,20 @@ class JobMemberManager(models.Manager):
return qs.filter(Q(member__role=role))
def get_active_jobs(self, member_id):
date_today = timezone.now().date()
qs = self.get_queryset().filter(member__id=member_id).order_by("-job_start")
return qs.filter(Q(job_end__gt=date_today) | Q(job_end__isnull=True))
def get_inactive_jobs(self, member_id):
date_today = timezone.now().date()
qs = self.get_queryset().filter(member__id=member_id).order_by("-job_start")
return qs.filter(
Q(job_end__lt=date_today + timedelta(days=1)) & Q(job_end__isnull=False)
)
class JobGroupManager(models.Manager):
def get_pinned_jobgroups(self):

View File

@@ -107,13 +107,15 @@ def profile_view(request, member_id=None):
logger.info("Wrong member id '{}'".format(member_id))
raise Http404("no member")
jobs = deque(JobMember.members.filter(member__id=member_id).order_by("job_start"))
active_jobs = deque(JobMember.members.get_active_jobs(member_id))
inactive_jobs = deque(JobMember.members.get_inactive_jobs(member_id))
context = {
"pinned_job_groups": pinned_job_groups,
"unpinned_job_groups": unpinned_job_groups,
"member": member,
"jobs": jobs,
"active_jobs": active_jobs,
"inactive_jobs": inactive_jobs,
}
return render(request, "members/member.html", context)

View File

@@ -14,7 +14,7 @@
<div class="mb-2">
{{ member.description|softhyphen|safe }}
</div>
{% if jobs %}
{% if active_jobs or inactive_jobs %}
<h3 class="group mt-4 mb-2 text-lg text-gray-900">Ehrenamtliche Tätigkeiten:
<button class="inline float-right text-sm px-2 py-1 text-gray-600 md:text-gray-500 group-hover:text-gray-600 border rounded border-gray-500 md:border-gray-400 group-hover:border-gray-500"
@click="expandList = ! expandList"
@@ -27,7 +27,7 @@
</h3>
<ul class="flex flex-col gap-1">
{% for jobm in jobs %}
{% for jobm in active_jobs %}
<li class="flex flex-row flex-wrap">
<span>{{ jobm.job.name }}:</span>
<span class="ml-2 text-gray-600">{{ jobm.job_start|date }} -</span>
@@ -43,10 +43,10 @@
x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0"
>
{% for jobm in jobs %}
{% for jobm in inactive_jobs %}
<li class="flex flex-row flex-wrap">
<span>{{ jobm.job.name }}:</span>
<span class="ml-2 text-gray-600">{{ jobm.job_start|date }} -</span>
<span class="ml-2 text-gray-600">{{ jobm.job_start|date }} - {{ jobm.job_end|date }}</span>
</li>
{% endfor %}
</ul>