add sorted jobs

This commit is contained in:
2021-11-18 15:03:05 +00:00
committed by Patrick Mayr
parent 98f5ff1f4a
commit d2be819786
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)) 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): class JobGroupManager(models.Manager):
def get_pinned_jobgroups(self): 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)) logger.info("Wrong member id '{}'".format(member_id))
raise Http404("no member") 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 = { context = {
"pinned_job_groups": pinned_job_groups, "pinned_job_groups": pinned_job_groups,
"unpinned_job_groups": unpinned_job_groups, "unpinned_job_groups": unpinned_job_groups,
"member": member, "member": member,
"jobs": jobs, "active_jobs": active_jobs,
"inactive_jobs": inactive_jobs,
} }
return render(request, "members/member.html", context) return render(request, "members/member.html", context)

View File

@@ -14,7 +14,7 @@
<div class="mb-2"> <div class="mb-2">
{{ member.description|softhyphen|safe }} {{ member.description|softhyphen|safe }}
</div> </div>
{% if jobs %} {% if active_jobs or inactive_jobs %}
<h3 class="group mt-4 mb-2 text-lg text-gray-900">Ehrenamtliche Tätigkeiten: <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" <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" @click="expandList = ! expandList"
@@ -27,7 +27,7 @@
</h3> </h3>
<ul class="flex flex-col gap-1"> <ul class="flex flex-col gap-1">
{% for jobm in jobs %} {% for jobm in active_jobs %}
<li class="flex flex-row flex-wrap"> <li class="flex flex-row flex-wrap">
<span>{{ jobm.job.name }}:</span> <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 }} -</span>
@@ -43,10 +43,10 @@
x-transition:leave-start="opacity-100" x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0" x-transition:leave-end="opacity-0"
> >
{% for jobm in jobs %} {% for jobm in inactive_jobs %}
<li class="flex flex-row flex-wrap"> <li class="flex flex-row flex-wrap">
<span>{{ jobm.job.name }}:</span> <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> </li>
{% endfor %} {% endfor %}
</ul> </ul>