website/website/home/models.py

29 lines
851 B
Python
Raw Normal View History

2022-06-12 21:08:11 +01:00
from django.db import models
2022-07-25 20:02:54 +01:00
from django.http.request import HttpRequest
2022-06-12 21:08:11 +01:00
from wagtail.admin.panels import FieldPanel
from wagtail.images import get_image_model_string
2022-06-12 21:08:11 +01:00
2022-07-25 20:02:54 +01:00
from website.blog.models import BlogPostPage
from website.common.models import BasePage
2022-06-09 08:36:29 +01:00
2022-06-12 15:17:28 +01:00
class HomePage(BasePage):
2022-06-14 20:57:50 +01:00
max_count = 1
2022-06-12 21:08:11 +01:00
heading = models.CharField(max_length=128, blank=True)
image = models.ForeignKey(
get_image_model_string(), null=True, on_delete=models.SET_NULL
)
2022-06-12 21:08:11 +01:00
content_panels = BasePage.content_panels + [
FieldPanel("heading"),
FieldPanel("image"),
]
2022-07-25 20:02:54 +01:00
def get_context(self, request: HttpRequest) -> dict:
context = super().get_context(request)
context["latest_blog_post"] = (
BlogPostPage.objects.live().defer_streamfields().order_by("-date").first()
2022-07-25 20:02:54 +01:00
)
return context