feat(wss): ajout pages liées

master
François Poulain 2018-10-08 16:47:42 +02:00 commité par François Poulain
Parent 5feb4fea11
révision 332cefdea8
1 fichiers modifiés avec 35 ajouts et 3 suppressions

Voir le fichier

@ -5,7 +5,7 @@ from modelcluster.contrib.taggit import ClusterTaggableManager
from modelcluster.fields import ParentalKey
from taggit.models import TaggedItemBase
from wagtail.admin.edit_handlers import (FieldPanel, MultiFieldPanel,
StreamFieldPanel)
InlinePanel, StreamFieldPanel, PageChooserPanel)
from wagtail.core.fields import RichTextField, StreamField
from wagtail.core.models import Page
from wagtail.images.edit_handlers import ImageChooserPanel
@ -29,6 +29,21 @@ class ProductionTag(TaggedItemBase):
)
class PagesLiees(models.Model):
pages_liees_from = ParentalKey(
'SitePage',
verbose_name="Page",
related_name='pages_liees_from'
)
pages_liees_to = ParentalKey(
'SitePage',
verbose_name="Page",
related_name='pages_liees_to'
)
def __str__(self):
return str(self.pages_liees_to)
class SitePage(Page):
"""
Elle sert à publier du contenu statique non périssable : documentation,
@ -102,14 +117,21 @@ class SitePage(Page):
MultiFieldPanel([
FieldPanel('slug'),
FieldPanel('seo_title'),
FieldPanel('show_in_menus'),
FieldPanel('description_seo'),
FieldPanel('mots_cles'),
], "Configuration SEO"),
MultiFieldPanel([
InlinePanel(
'pages_liees_from',
label="Page liée",
panels=[PageChooserPanel('pages_liees_to')],
),
], "Pages liées"),
MultiFieldPanel([
FieldPanel('technicite'),
FieldPanel('production'),
], "Configuration Bio-HdF"),
], "Attributs métiers"),
]
# Réglages
@ -127,6 +149,16 @@ class SitePage(Page):
], "Options d'affichage"),
]
# Pages liées
# ----------
@property
def pages_liees(self):
return [
related.pages_liees_to
for related in self.pages_liees_from.all()
]
class ActualiteIndex(SitePage):
"""