7

Remove custom wagtail page form

THe older page form allowed to change segment settings inline but since
support for this was temporarily removed in an earlier commit we can
clean this up too
This commit is contained in:
Michael van Tellingen
2017-06-01 13:51:13 +02:00
parent dda0bc720e
commit 29001fac8e
3 changed files with 21 additions and 51 deletions

View File

@ -1,43 +0,0 @@
from wagtail.wagtailadmin.forms import WagtailAdminPageForm
class AdminPersonalisablePageForm(WagtailAdminPageForm):
"""The personalisable page form that allows creation of variants."""
def save(self, commit=True):
"""Save a copy of the original page, linked to a segment.
:returns: The original page, or a new page.
:rtype: wagtail_personalisation.models.PersonalisablePage
"""
page = super(AdminPersonalisablePageForm, self).save(commit=False)
if page.segment:
segment = page.segment
slug = "{}-{}".format(page.slug, segment.encoded_name())
title = "{} ({})".format(page.title, segment.name)
update_attrs = {
'title': title,
'slug': slug,
'segment': segment,
'live': False,
'canonical_page': page,
'is_segmented': True,
}
if page.is_segmented:
slug = "{}-{}".format(
page.canonical_page.slug, segment.encoded_name())
title = "{} ({})".format(
page.canonical_page.title, segment.name)
page.slug = slug
page.title = title
page.save()
return page
else:
new_page = page.copy(
update_attrs=update_attrs, copy_revisions=False)
return new_page
return page

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.1 on 2017-06-01 11:48
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('wagtail_personalisation', '0011_personalisablepagemetadata'),
]
operations = [
migrations.RemoveField(
model_name='personalisablepagemetadata',
name='is_segmented',
),
]

View File

@ -7,13 +7,12 @@ from django.utils.functional import cached_property
from django.utils.translation import ugettext_lazy as _
from modelcluster.fields import ParentalKey
from modelcluster.models import ClusterableModel
from wagtail.wagtailcore.models import Page
from wagtail.utils.decorators import cached_classmethod
from wagtail.wagtailadmin.edit_handlers import (
FieldPanel, FieldRowPanel, InlinePanel, MultiFieldPanel, ObjectList,
PageChooserPanel, TabbedInterface)
from wagtail.wagtailcore.models import Page
from wagtail_personalisation.forms import AdminPersonalisablePageForm
from wagtail_personalisation.rules import AbstractBaseRule
from wagtail_personalisation.utils import count_active_days
@ -115,10 +114,6 @@ class PersonalisablePageMetadata(ClusterableModel):
segment = models.ForeignKey(
Segment, related_name='page_metadata', null=True, blank=True)
is_segmented = models.BooleanField(default=False)
base_form_class = AdminPersonalisablePageForm
@cached_property
def has_variations(self):
"""Return a boolean indicating whether or not the personalisable page
@ -170,8 +165,7 @@ class PersonalisablePageMetadata(ClusterableModel):
PersonalisablePageMetadata.objects.create(
canonical_page=page,
variant=new_page,
segment=segment,
is_segmented=True)
segment=segment)
return new_page
def variants_for_segments(self, segments):