dnscms: improve associations app

This commit is contained in:
2026-05-19 21:49:38 +02:00
parent 4a264c589d
commit 29c61ffc76
11 changed files with 295 additions and 95 deletions
+19 -10
View File
@@ -1,4 +1,5 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
from grapple.helpers import register_singular_query_field
from grapple.models import (
GraphQLImage,
@@ -26,8 +27,8 @@ class AssociationIndex(HeadlessMixin, Page):
body = CommonStreamField
content_panels = Page.content_panels + [
FieldPanel("lead", heading="Ingress"),
FieldPanel("body", heading="Innhold"),
FieldPanel("lead", heading=_("Lead")),
FieldPanel("body", heading=_("Content")),
]
graphql_fields = [
@@ -37,6 +38,10 @@ class AssociationIndex(HeadlessMixin, Page):
search_fields = Page.search_fields
class Meta:
verbose_name = _("association index")
verbose_name_plural = _("association indexes")
class AssociationPage(HeadlessMixin, WPImportedPageMixin, Page):
subpage_types = []
@@ -44,8 +49,8 @@ class AssociationPage(HeadlessMixin, WPImportedPageMixin, Page):
show_in_menus = False
class AssociationType(models.TextChoices):
FORENING = "forening", "Forening"
UTVALG = "utvalg", "Utvalg"
FORENING = "forening", _("Association")
UTVALG = "utvalg", _("Committee")
excerpt = models.TextField(max_length=512, blank=False)
lead = RichTextField(features=["italic", "link"], blank=True)
@@ -65,14 +70,14 @@ class AssociationPage(HeadlessMixin, WPImportedPageMixin, Page):
content_panels = Page.content_panels + [
FieldPanel(
"excerpt",
heading="Utdrag",
help_text="En veldig kort oppsummering av innholdet nedenfor. Brukes i listevisninger.",
heading=_("Excerpt"),
help_text=_("A very short summary of the content below. Used in listing views."),
),
FieldPanel("lead", heading="Ingress"),
FieldPanel("body", heading="Innhold"),
FieldPanel("lead", heading=_("Lead")),
FieldPanel("body", heading=_("Content")),
FieldPanel("logo"),
FieldPanel("association_type", heading="Type"),
FieldPanel("website_url", heading="Nettside"),
FieldPanel("association_type", heading=_("Type")),
FieldPanel("website_url", heading=_("Website")),
]
graphql_fields = [
@@ -89,6 +94,10 @@ class AssociationPage(HeadlessMixin, WPImportedPageMixin, Page):
index.SearchField("body"),
]
class Meta:
verbose_name = _("association")
verbose_name_plural = _("associations")
def import_wordpress_data(self, data):
import html