set publish_as by default for DiffusionPage

This commit is contained in:
bkfox 2017-05-08 23:19:33 +02:00
parent 4f0beec7a1
commit dfc03c129a

View File

@ -281,7 +281,6 @@ class Publication(Page):
blank=True blank=True
) )
class Meta: class Meta:
verbose_name = _('Publication') verbose_name = _('Publication')
verbose_name_plural = _('Publication') verbose_name_plural = _('Publication')
@ -448,6 +447,12 @@ class ProgramPage(Publication):
.order_by('-start').prefetch_related('page') .order_by('-start').prefetch_related('page')
return self.diffs_to_page(diffs) return self.diffs_to_page(diffs)
def save(self, *args, **kwargs):
# set publish_as
if self.program and not self.pk:
self.publish_as = self
super().save(*args, **kwargs)
class Track(aircox.models.Track,Orderable): class Track(aircox.models.Track,Orderable):
diffusion = ParentalKey('DiffusionPage', diffusion = ParentalKey('DiffusionPage',
@ -497,11 +502,14 @@ class DiffusionPage(Publication):
content_panels = Publication.content_panels + [ content_panels = Publication.content_panels + [
InlinePanel('tracks', label=_('Tracks')), InlinePanel('tracks', label=_('Tracks')),
] ]
promote_panels = [ promote_panels = [
# FieldPanel('diffusion'), MultiFieldPanel([
FieldPanel('publish_archive'), FieldPanel('publish_archive'),
] + Publication.promote_panels FieldPanel('tags'),
FieldPanel('focus'),
], heading=_('Content')),
InlinePanel('links', label=_('Links'))
] + Page.promote_panels
@classmethod @classmethod
def from_diffusion(cl, diff, model = None, **kwargs): def from_diffusion(cl, diff, model = None, **kwargs):
@ -577,6 +585,10 @@ class DiffusionPage(Publication):
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if self.diffusion: if self.diffusion:
# set publish_as
if not self.pk:
self.publish_as = self.diffusion.program.page.first()
# sync date # sync date
self.date = self.diffusion.start self.date = self.diffusion.start