Jacks_Bastards_Website/base/models.py

71 lines
1.6 KiB
Python
Raw Permalink Normal View History

from django.db import models
2025-12-20 02:06:03 +00:00
from wagtail.admin.panels import (
FieldPanel,
MultiFieldPanel,
2025-12-20 02:06:03 +00:00
PublishingPanel,
)
2025-12-20 02:06:03 +00:00
from wagtail.fields import RichTextField
from wagtail.models import (
DraftStateMixin,
PreviewableMixin,
RevisionMixin,
TranslatableMixin,
)
from wagtail.contrib.settings.models import (
BaseGenericSetting,
register_setting,
)
2025-12-20 02:06:03 +00:00
from wagtail.snippets.models import register_snippet
@register_setting
class NavigationSettings(BaseGenericSetting):
youtube_url = models.URLField(verbose_name="Youtube URL", blank=True)
instagram_url = models.URLField(verbose_name="Instagram URL", blank=True)
2025-12-20 02:06:03 +00:00
facebook_url = models.URLField(verbose_name="Facebook URL", blank=True)
gitea_url = models.URLField(verbose_name="Gitea URL", blank=True)
panels = [
MultiFieldPanel(
[
FieldPanel("youtube_url"),
FieldPanel("instagram_url"),
2025-12-20 02:06:03 +00:00
FieldPanel("facebook_url"),
FieldPanel("gitea_url"),
],
"Social settings",
)
2025-12-20 02:06:03 +00:00
]
@register_snippet
class FooterText(
DraftStateMixin,
RevisionMixin,
PreviewableMixin,
TranslatableMixin,
models.Model,
):
body = RichTextField()
panels = [
FieldPanel("body"),
PublishingPanel(),
]
def __str__(self):
return "Footer text"
def get_preview_template(self, request, mode_name):
return "base.html"
def get_preview_context(self, request, mode_name):
return {"footer_text": self.body}
class Meta(TranslatableMixin.Meta):
verbose_name_plural = "Footer Text"