add sorted jobs
This commit is contained in:
@@ -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):
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user