diff --git a/main/models.py b/main/models.py index 1adb78f6e0b3499ecc8db0156d60d4b15b34646a..8d8e2d537c75b08d74d34849f60d44c438ccb3cc 100644 --- a/main/models.py +++ b/main/models.py @@ -417,6 +417,13 @@ class MainCareersPage( parent_page_types = ["main.MainHomePage"] subpage_types = ["main.MainCareerPage"] + def get_context(self, request, *args, **kwargs) -> dict: + context = super().get_context(request, *args, **kwargs) + + context["show_closed"] = (request.GET.get("show_closed", "false") == "true") + + return context + def get_career_categories(self) -> list[str]: return ( MainCareerPage.objects.child_of(self) @@ -427,8 +434,15 @@ class MainCareersPage( .all() ) - def get_career_pages(self): - return MainCareerPage.objects.child_of(self).live().all() + def get_career_pages(self, show_closed: bool = False): + filter = models.Q() + + current_date = date.today() + + if not show_closed: + filter = filter & models.Q(closing_date__gt=current_date) + + return MainCareerPage.objects.child_of(self).filter(filter).live().all() class Meta: verbose_name = "KariĂ©ry" diff --git a/main/templates/main/main_careers_page.html b/main/templates/main/main_careers_page.html index 7232b1d80f32e5950da09a6dd8ba85718c01e3fc..436ab33c88d1230d22cebe9e70d719a1a66e334e 100644 --- a/main/templates/main/main_careers_page.html +++ b/main/templates/main/main_careers_page.html @@ -1,5 +1,5 @@ {% extends "styleguide2/simple_page.html" %} -{% load wagtailcore_tags %} +{% load wagtailcore_tags careers %} {% block content %} {% include 'styleguide2/includes/organisms/layout/main/navbar.html' with selected_item=page.get_menu_title %} @@ -13,11 +13,23 @@ <main role="main" class="mb-20"> <div class="container--wide"> - <div class="grid lg:grid-cols-2 grid-cols-1 gap-6"> - {% for career in page.get_career_pages %} - {% include "styleguide2/includes/molecules/boxes/main/career_box.html" %} - {% endfor %} - </div> + {% with page|get_career_pages:show_closed as career_pages %} + {% if career_pages %} + <div class="grid lg:grid-cols-2 grid-cols-1 gap-6 mb-4"> + {% for career in career_pages %} + {% include "styleguide2/includes/molecules/boxes/main/career_box.html" %} + {% endfor %} + </div> + {% else %} + <div class="mb-4 text-grey-250">ŽádnĂ© aktuálnĂ nabĂdky.</div> + {% endif %} + {% endwith %} + + {% if not show_closed %} + <a class="underline" href="?show_closed=true">Zobrazit uzavĹ™enĂ©</a> + {% else %} + <a class="underline" href="?show_closed=false">SkrĂ˝t uzavĹ™enĂ©</a> + {% endif %} </div> </main> </ui-view-provider> diff --git a/main/templatetags/__init__.py b/main/templatetags/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/main/templatetags/careers.py b/main/templatetags/careers.py new file mode 100644 index 0000000000000000000000000000000000000000..e94728a725cdd10ae759cfa47c0122951da1a1dc --- /dev/null +++ b/main/templatetags/careers.py @@ -0,0 +1,8 @@ +from django import template + +register = template.Library() + + +@register.filter +def get_career_pages(page, show_closed: bool): + return page.get_career_pages(show_closed) \ No newline at end of file