From 3232de90d45b9af4a6d871ae0c9c36792a8fbc94 Mon Sep 17 00:00:00 2001 From: Warren Chen Date: Fri, 17 Oct 2025 17:47:21 +0900 Subject: [PATCH] Add article and category page models, templates, and default cover image --- .../0003_articlepage_categorypage.py | 39 ++++ .../0004_latestpage_recommandedpage.py | 35 ++++ ..._rename_recommandedpage_recommendedpage.py | 18 ++ ...age_cover_image_articlepage_recommended.py | 25 +++ innovedus_cms/home/models.py | 171 +++++++++++++++++- .../home/static/img/default_cover.jpg | Bin 0 -> 9256 bytes .../home/templates/home/article_page.html | 15 ++ .../home/templates/home/category_page.html | 9 + .../home/templates/home/home_page.html | 9 +- .../home/includes/category_block_list.html | 25 +++ .../home/includes/category_full_list.html | 39 ++++ .../original_images/DefaultArticleCover.jpg | Bin 0 -> 61513 bytes 12 files changed, 375 insertions(+), 10 deletions(-) create mode 100644 innovedus_cms/home/migrations/0003_articlepage_categorypage.py create mode 100644 innovedus_cms/home/migrations/0004_latestpage_recommandedpage.py create mode 100644 innovedus_cms/home/migrations/0005_rename_recommandedpage_recommendedpage.py create mode 100644 innovedus_cms/home/migrations/0006_articlepage_cover_image_articlepage_recommended.py create mode 100644 innovedus_cms/home/static/img/default_cover.jpg create mode 100644 innovedus_cms/home/templates/home/article_page.html create mode 100644 innovedus_cms/home/templates/home/category_page.html create mode 100644 innovedus_cms/home/templates/home/includes/category_block_list.html create mode 100644 innovedus_cms/home/templates/home/includes/category_full_list.html create mode 100644 innovedus_cms/media/original_images/DefaultArticleCover.jpg diff --git a/innovedus_cms/home/migrations/0003_articlepage_categorypage.py b/innovedus_cms/home/migrations/0003_articlepage_categorypage.py new file mode 100644 index 0000000..ed3cc8a --- /dev/null +++ b/innovedus_cms/home/migrations/0003_articlepage_categorypage.py @@ -0,0 +1,39 @@ +# Generated by Django 5.2.7 on 2025-10-17 04:15 + +import django.db.models.deletion +import wagtail.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('home', '0002_create_homepage'), + ('wagtailcore', '0095_groupsitepermission'), + ] + + operations = [ + migrations.CreateModel( + name='ArticlePage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('date', models.DateField(verbose_name='Published date')), + ('intro', models.CharField(blank=True, max_length=250)), + ('body', wagtail.fields.StreamField([('heading', 0), ('paragraph', 1), ('image', 2), ('embed', 3)], block_lookup={0: ('wagtail.blocks.CharBlock', (), {'form_classname': 'full title'}), 1: ('wagtail.blocks.RichTextBlock', (), {'features': ['bold', 'italic', 'link']}), 2: ('wagtail.images.blocks.ImageChooserBlock', (), {}), 3: ('wagtail.embeds.blocks.EmbedBlock', (), {})})), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='CategoryPage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + ] diff --git a/innovedus_cms/home/migrations/0004_latestpage_recommandedpage.py b/innovedus_cms/home/migrations/0004_latestpage_recommandedpage.py new file mode 100644 index 0000000..50bdb38 --- /dev/null +++ b/innovedus_cms/home/migrations/0004_latestpage_recommandedpage.py @@ -0,0 +1,35 @@ +# Generated by Django 5.2.7 on 2025-10-17 07:28 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('home', '0003_articlepage_categorypage'), + ('wagtailcore', '0095_groupsitepermission'), + ] + + operations = [ + migrations.CreateModel( + name='LatestPage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='RecommandedPage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + ] diff --git a/innovedus_cms/home/migrations/0005_rename_recommandedpage_recommendedpage.py b/innovedus_cms/home/migrations/0005_rename_recommandedpage_recommendedpage.py new file mode 100644 index 0000000..738ab54 --- /dev/null +++ b/innovedus_cms/home/migrations/0005_rename_recommandedpage_recommendedpage.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2025-10-17 07:36 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('home', '0004_latestpage_recommandedpage'), + ('wagtailcore', '0095_groupsitepermission'), + ] + + operations = [ + migrations.RenameModel( + old_name='RecommandedPage', + new_name='RecommendedPage', + ), + ] diff --git a/innovedus_cms/home/migrations/0006_articlepage_cover_image_articlepage_recommended.py b/innovedus_cms/home/migrations/0006_articlepage_cover_image_articlepage_recommended.py new file mode 100644 index 0000000..ab23371 --- /dev/null +++ b/innovedus_cms/home/migrations/0006_articlepage_cover_image_articlepage_recommended.py @@ -0,0 +1,25 @@ +# Generated by Django 5.2.7 on 2025-10-17 07:50 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('home', '0005_rename_recommandedpage_recommendedpage'), + ('wagtailimages', '0027_image_description'), + ] + + operations = [ + migrations.AddField( + model_name='articlepage', + name='cover_image', + field=models.ForeignKey(blank=True, help_text='文章列表與分享用的首圖', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'), + ), + migrations.AddField( + model_name='articlepage', + name='recommended', + field=models.BooleanField(default=False, help_text='在推薦清單顯示'), + ), + ] diff --git a/innovedus_cms/home/models.py b/innovedus_cms/home/models.py index 5076f57..b7d3a3a 100644 --- a/innovedus_cms/home/models.py +++ b/innovedus_cms/home/models.py @@ -1,7 +1,174 @@ from django.db import models from wagtail.models import Page +from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger +BLOCK_SIZE = 5 +PAGE_SIZE = 10 -class HomePage(Page): - pass +class CategoryMixin: + def build_category_blocks(self, request=None): + blocks = [] + subcategories = self.get_children().type(CategoryPage).live() + if subcategories.exists(): + for category in subcategories : + blocks.append({ + "title": category.title, + "items": ArticlePage.objects.child_of(category).live().order_by("-first_published_at")[:BLOCK_SIZE], + "url": category.url, + }) + else: + paginator = Paginator(ArticlePage.objects.child_of(self).live().order_by("-first_published_at"), PAGE_SIZE) + page_number = request.GET.get("page") if request else None + + try: + page_obj = paginator.page(page_number) + except PageNotAnInteger: + page_obj = paginator.page(1) + except EmptyPage: + page_obj = paginator.page(paginator.num_pages) + + blocks.append({ + "title": self.title, + "items": page_obj, + "url": self.url, + }) + return blocks + + def get_latest_articles(self, request=None): + latestPage = LatestPage.objects.first() + if not request: + return { + "title": latestPage.title, + "items": ArticlePage.objects.live().order_by("-first_published_at")[:BLOCK_SIZE], + "url": latestPage.url, + } + else: + paginator = Paginator(ArticlePage.objects.live().order_by("-first_published_at"), PAGE_SIZE) + page_number = request.GET.get("page") + + try: + page_obj = paginator.page(page_number) + except PageNotAnInteger: + page_obj = paginator.page(1) + except EmptyPage: + page_obj = paginator.page(paginator.num_pages) + return { + "title": self.title, + "items": page_obj, + "url": self.url, + } + + def get_recommended_articles(self, request=None): + recommendedPage = RecommendedPage.objects.first() + if not request: + return { + "title": recommendedPage.title, + "items": ArticlePage.objects.filter(recommended=True).live()[:BLOCK_SIZE], + "url": recommendedPage.url, + } + else: + paginator = Paginator(ArticlePage.objects.filter(recommended=True).live(), PAGE_SIZE) + page_number = request.GET.get("page") + + try: + page_obj = paginator.page(page_number) + except PageNotAnInteger: + page_obj = paginator.page(1) + except EmptyPage: + page_obj = paginator.page(paginator.num_pages) + return { + "title": self.title, + "items": page_obj, + "url": self.url, + } + return blocks + +class HomePage(Page, CategoryMixin): + def get_context(self, request): + context = super().get_context(request) + + category_blocks = [ + self.get_latest_articles(), + self.get_recommended_articles(), + ] + + # 找出第一層 CategoryPage(HomePage 直屬子項) + categories = CategoryPage.objects.child_of(self).live().in_menu() + + # 若第一層沒有分類,就嘗試抓所有 descendant CategoryPage + if not categories.exists(): + categories = CategoryPage.objects.descendant_of(self).live().in_menu() + + for category in categories: + subcategories = category.get_children().type(CategoryPage).live() + category_blocks.append({ + "title": category.title, + "type": "category", + "items": subcategories or ArticlePage.objects.child_of(category).live()[:BLOCK_SIZE], + "url": category.url, + }) + + context["category_blocks"] = category_blocks + return context + +class LatestPage(Page, CategoryMixin): + template = "home/category_page.html" + def get_context(self, request): + context = super().get_context(request) + context["category_blocks"] = [ + self.get_latest_articles(request) + ] + return context + +class RecommendedPage(Page, CategoryMixin): + template = "home/category_page.html" + def get_context(self, request): + context = super().get_context(request) + context["category_blocks"] = [ + self.get_recommended_articles(request) + ] + return context + +class CategoryPage(Page, CategoryMixin): + @property + def has_subcategories(self): + return self.get_children().type(CategoryPage).live().exists() + + def get_context(self, request): + context = super().get_context(request) + context["category_blocks"] = self.build_category_blocks(request) + return context + +# from wagtail.fields import RichTextField +from wagtail.admin.panels import FieldPanel +from wagtail import blocks +from wagtail.embeds.blocks import EmbedBlock +from wagtail.images.blocks import ImageChooserBlock +from wagtail.fields import StreamField + +class ArticlePage(Page): + cover_image = models.ForeignKey( + "wagtailimages.Image", + null=True, blank=True, + on_delete=models.SET_NULL, + related_name="+", + help_text="文章列表與分享用的首圖" + ) + date = models.DateField("Published date") + intro = models.CharField(max_length=250, blank=True) + body = StreamField([ + ("heading", blocks.CharBlock(form_classname="full title")), + ("paragraph", blocks.RichTextBlock(features=["bold", "italic", "link"])), + ("image", ImageChooserBlock()), + ("embed", EmbedBlock()), + ], use_json_field=True) + recommended = models.BooleanField(default=False, help_text="在推薦清單顯示") + + content_panels = Page.content_panels + [ + FieldPanel("recommended"), + FieldPanel("cover_image"), + FieldPanel("date"), + FieldPanel("intro"), + FieldPanel("body"), + ] diff --git a/innovedus_cms/home/static/img/default_cover.jpg b/innovedus_cms/home/static/img/default_cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..61cb38d51dd309f0fbdc09f81fe705ba5c2d8249 GIT binary patch literal 9256 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 literal 0 HcmV?d00001 diff --git a/innovedus_cms/home/templates/home/article_page.html b/innovedus_cms/home/templates/home/article_page.html new file mode 100644 index 0000000..788c1c0 --- /dev/null +++ b/innovedus_cms/home/templates/home/article_page.html @@ -0,0 +1,15 @@ +{% extends "base.html" %} +{% load wagtailcore_tags wagtailimages_tags %} + +{% block content %} +
+ {% image page.cover_image original as cover %} + {{ page.title }} +

{{ page.title }}

+

{{ page.date }}

+
{{ page.intro }}
+
+ {{ page.body }} +
+
+{% endblock %} \ No newline at end of file diff --git a/innovedus_cms/home/templates/home/category_page.html b/innovedus_cms/home/templates/home/category_page.html new file mode 100644 index 0000000..5ae1796 --- /dev/null +++ b/innovedus_cms/home/templates/home/category_page.html @@ -0,0 +1,9 @@ +{% extends "base.html" %} +{% load wagtailcore_tags %} +{% block content %} + {% if page.has_subcategories %} + {% include "home/includes/category_block_list.html" %} + {% else %} + {% include "home/includes/category_full_list.html" %} + {% endif %} +{% endblock %} diff --git a/innovedus_cms/home/templates/home/home_page.html b/innovedus_cms/home/templates/home/home_page.html index db9e9b0..a7d00e4 100644 --- a/innovedus_cms/home/templates/home/home_page.html +++ b/innovedus_cms/home/templates/home/home_page.html @@ -5,17 +5,10 @@ {% block extra_css %} -{% comment %} -Delete the line below if you're just getting started and want to remove the welcome screen! -{% endcomment %} - {% endblock extra_css %} {% block content %} -{% comment %} -Delete the line below if you're just getting started and want to remove the welcome screen! -{% endcomment %} -{% include 'home/welcome_page.html' %} +{% include "home/includes/category_block_list.html" with category_blocks=category_blocks %} {% endblock content %} diff --git a/innovedus_cms/home/templates/home/includes/category_block_list.html b/innovedus_cms/home/templates/home/includes/category_block_list.html new file mode 100644 index 0000000..7f1b955 --- /dev/null +++ b/innovedus_cms/home/templates/home/includes/category_block_list.html @@ -0,0 +1,25 @@ +{% load wagtailimages_tags %} + + +
+ {% for category in category_blocks %} +
+

{{ category.title }}

+ +
+ {% endfor %} +
diff --git a/innovedus_cms/home/templates/home/includes/category_full_list.html b/innovedus_cms/home/templates/home/includes/category_full_list.html new file mode 100644 index 0000000..296d914 --- /dev/null +++ b/innovedus_cms/home/templates/home/includes/category_full_list.html @@ -0,0 +1,39 @@ +{% load wagtailimages_tags %} + +
+ {% with category=category_blocks.0 %} +

{{ category.title }}

+ + + + {% if category.items.paginator.num_pages > 1 %} + + {% endif %} + + {% endwith %} +
diff --git a/innovedus_cms/media/original_images/DefaultArticleCover.jpg b/innovedus_cms/media/original_images/DefaultArticleCover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2c1fea8f088fe5b9b3d8614eae170c742219a3db GIT binary patch literal 61513 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%0A@)PvvzE53O2}P-?e%xS zkU@vUe%d16%2XA#UL2SL)QD(mE7gxn%pYbj2L9RL6^q5qc{2)YGc>M0DVruD$YzYT z^4hkBQlgI*<;5u{tIWsuWC7wegghzrQIu4-8}dj;9S+>(Rv0#k)hqAvTV^LsoM%-@ z$XwS|6Dp>^)R51lD@OVM>ss5r{MP_h>ERKXS`{IC);E1xbRovxSb-WHvg-FNVVG2t$_bzTkxMv