diff --git a/main/models.py b/main/models.py index d8a60e90fa45f8f2103038a5685f5ccf8c6fe9a2..f547cc8dc316d360858c05d89cc09f9cea36b003 100644 --- a/main/models.py +++ b/main/models.py @@ -200,14 +200,44 @@ class MainWorkPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, P class Meta: verbose_name = "Piráti pracují" - def get_context(self, request, *args, **kwargs): - ctx = super().get_context(request, args, kwargs) + def get_article_data_list(self): last_month = timezone.now().today().replace(day=1) - timedelta(days=1) first_day_of_last_month = last_month.replace(day=1) - article_qs = MainArticlePage.objects.filter(date__gt=first_day_of_last_month) - # article_data_list = + + sorted_article_qs = MainArticlePage.objects.filter( + date__gt=first_day_of_last_month + ).order_by("-date") + + article_data_list = [] + + current_month_data = self.get_empty_month_data(timezone.now().date()) + + for idx, article in enumerate(sorted_article_qs): + if article.date.month != current_month_data["month_text"]: + article_data_list.append(current_month_data) # append completed month + current_month_data = self.get_empty_month_data(article.date) + + current_column = "left_column" if idx % 2 else "right_column" + current_month_data[current_column].append(article) + + article_data_list.append(current_month_data) # last iteration + + return article_data_list + + def get_context(self, request, *args, **kwargs): + ctx = super().get_context(request, args, kwargs) + ctx["article_data_list"] = self.get_article_data_list() return ctx + @staticmethod + def get_empty_month_data(date_obj): + return { + "month_number": date_obj.month, + "month_text": date_obj.strftime("%B"), + "left_column": [], + "right_column": [], + } + class MainArticleTag(TaggedItemBase): content_object = ParentalKey("main.MainArticlePage", on_delete=models.CASCADE) diff --git a/main/styleguide/source/_patterns/atoms/buttons/button-animated.mustache b/main/styleguide/source/_patterns/atoms/buttons/button-animated.mustache index 8cd6637cb6613da6e5c5062b8a4c8d90223f5722..ba85982988ed7f3be760e09d7a6b4e8e3fa67798 100644 --- a/main/styleguide/source/_patterns/atoms/buttons/button-animated.mustache +++ b/main/styleguide/source/_patterns/atoms/buttons/button-animated.mustache @@ -1,7 +1,7 @@ <a href="" class="btn btn__slide__wrap {{ classes }}"> - <span class="btn text-sm bg-black text-white w-32 lg:text-base"> - {{ btn-text }} - </span> + <span class="btn text-sm bg-black text-white w-32 lg:text-base"> + {{ btn-text }} + </span> <span class="btn text-sm bg-white text-black w-32 lg:text-base"> {{ btn-text }} </span> diff --git a/main/templates/main/main_work_page.html b/main/templates/main/main_work_page.html index 15cfa4ad2b4f2c6669beb650e30429b4f6dffdb2..f9ff4d2c489a26b5b4744b26f4ece11f895559d8 100644 --- a/main/templates/main/main_work_page.html +++ b/main/templates/main/main_work_page.html @@ -1,4 +1,69 @@ {% extends "main/base.html" %} {% load wagtailcore_tags wagtailimages_tags shared_filters %} -{% block content %}{% endblock content %} +{% block content %} + <main role="main"> + <div class="grid-container mb-2 xl:mb-12"> + <div class="grid-left-side"> + TODO menu + </div> + <div class="grid-content leading-6"> + <h2 class="head-xl mb-2"> + {{ page.perex }} + </h2> + <h2 class="head-xl mb-2"> + Projděte si archiv tiskových zpráv a souhrn našich nejvýraznějších aktivit + </h2> + </div> + </div> + + <div class="grid-container article-section"> + <div class="grid-full mb-8"> + <div class="mb-4"> + <h3 class="head-7xl mb-4 xl:hidden">Červenec</h3> + <div class="flex flex-col justify-between xl:flex-row"> + <div class="xl:pt-8"> + {{> molecules-work-article-preview }} + {{> molecules-work-article-preview }} + </div> + <div class="relative border border-violet-400 mx-8 hidden xl:block"> + <div class="absolute bg-violet-400 p-1 text-white font-bold" style="transform: translateX(-50%); top: -1rem"> + Červenec + </div> + </div> + <div class="xl:pt-14"> + {{> molecules-work-article-preview }} + {{> molecules-work-article-preview }} + </div> + </div> + </div> + <div class="mb-4"> + <h3 class="head-7xl mb-4 xl:hidden">Srpen</h3> + <div class="flex flex-col justify-between xl:flex-row"> + <div class="xl:pt-8"> + {{> molecules-work-article-preview }} + {{> molecules-work-article-preview }} + </div> + <div class="relative border border-violet-400 mx-8 hidden xl:block"> + <div class="absolute bg-violet-400 p-1 text-white font-bold" style="transform: translateX(-50%); top: -1rem"> + Srpen + </div> + </div> + <div class="xl:pt-14"> + {{> molecules-work-article-preview }} + {{> molecules-work-article-preview }} + </div> + </div> + </div> + <div class="flex justify-center"> + {{> atoms-button-animated(btn-text: "Zobrazit další", classes-btn-hidden: "bg-black") }} + </div> + </div> + </div> + </main> + {% for month_article_data in article_data_list %} + {{ month_article_data.month_text }} + {{ month_article_data.left_column }} + {{ month_article_data.right_column }} + {% endfor %} +{% endblock content %}