2025-12-19 23:16:56 +00:00
|
|
|
from django.db import models
|
2025-12-20 02:06:03 +00:00
|
|
|
|
2025-12-19 23:16:56 +00:00
|
|
|
from wagtail.admin.panels import (
|
|
|
|
|
FieldPanel,
|
|
|
|
|
MultiFieldPanel,
|
2025-12-20 02:06:03 +00:00
|
|
|
PublishingPanel,
|
2025-12-19 23:16:56 +00:00
|
|
|
)
|
2025-12-20 02:06:03 +00:00
|
|
|
|
|
|
|
|
from wagtail.fields import RichTextField
|
|
|
|
|
|
|
|
|
|
from wagtail.models import (
|
|
|
|
|
DraftStateMixin,
|
|
|
|
|
PreviewableMixin,
|
|
|
|
|
RevisionMixin,
|
|
|
|
|
TranslatableMixin,
|
|
|
|
|
)
|
|
|
|
|
|
2025-12-19 23:16:56 +00:00
|
|
|
from wagtail.contrib.settings.models import (
|
|
|
|
|
BaseGenericSetting,
|
|
|
|
|
register_setting,
|
|
|
|
|
)
|
|
|
|
|
|
2025-12-20 02:06:03 +00:00
|
|
|
from wagtail.snippets.models import register_snippet
|
|
|
|
|
|
|
|
|
|
|
2025-12-19 23:16:56 +00:00
|
|
|
@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)
|
2025-12-19 23:16:56 +00:00
|
|
|
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"),
|
2025-12-19 23:16:56 +00:00
|
|
|
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"
|