7

adds an add page without a template

This commit is contained in:
Boris Besemer
2016-11-15 14:25:51 +01:00
parent ce59df3f0a
commit 93eac2cda8
4 changed files with 29 additions and 5 deletions

View File

@ -19,6 +19,6 @@ urlpatterns = [
name="refferal_rule_embed"),
url(r'^segment/visit-count-rule/$', views.visit_count_rule_embed,
name="visit_count_rule_embed"),
url(r'^(?P<page_pk>\d+)/add/(?P<segment_name>[^/]+)/$',
url(r'^variations/(?P<page_pk>\d+)/add/(?P<segment_name>[^/]+)/$',
views.AddVariation.as_view(), name='add')
]

View File

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.3 on 2016-11-15 13:10
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('personalisation', '0024_personalisablepage'),
]
operations = [
migrations.AlterField(
model_name='personalisablepage',
name='segment',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='segments', to='personalisation.Segment'),
),
]

View File

@ -205,7 +205,8 @@ class AdminPersonalisablePageForm(WagtailAdminPageForm):
self.fields['canonical_page'].widget = ReadOnlyWidget(
text_display=canonical_page_text)
segment_display = Segment.objects.first()
segment_display = Segment.objects.filter(
pk=self.initial['segment']).first()
if self.instance.is_canonical and segment_display:
segment_display = "{} - {}".format(segment_display, "canonical")
@ -213,13 +214,15 @@ class AdminPersonalisablePageForm(WagtailAdminPageForm):
self.fields['segment'].widget = ReadOnlyWidget(
text_display=segment_display if segment_display else '')
class PersonalisablePage(Page):
canonical_page = models.ForeignKey(
'self', related_name='variations', blank=True,
null=True, on_delete=models.SET_NULL
)
segment = models.ForeignKey(
Segment, related_name='segments', on_delete=models.PROTECT
Segment, related_name='segments', on_delete=models.PROTECT,
blank=True, null=True
)
variation_panels = [

View File

@ -88,9 +88,9 @@ class AddVariation(FormView):
self.page = get_object_or_404(PersonalisablePage, pk=page_pk)
self.segment = get_object_or_404(Segment, name=segment_name)
super(AddVariation, self).dispatch(request, *args, **kwargs)
return super(AddVariation, self).dispatch(request, *args, **kwargs)
def get_form_kwargs(self):
def get_form_kwargs(self, *args, **kwargs):
form_kwargs = super(AddVariation, self).get_form_kwargs(*args, **kwargs)
form_kwargs.update({
'page': self.page,