From fc442171e4f871e5a92bc708f81bf5de1021ae65 Mon Sep 17 00:00:00 2001 From: Rob Moorman Date: Wed, 31 May 2017 13:20:12 +0200 Subject: [PATCH] Move to edit page if variant exists fixes #106 and fixes #89 --- src/wagtail_personalisation/views.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/wagtail_personalisation/views.py b/src/wagtail_personalisation/views.py index 4dd2082..8f4df4e 100644 --- a/src/wagtail_personalisation/views.py +++ b/src/wagtail_personalisation/views.py @@ -7,6 +7,7 @@ from django.shortcuts import get_object_or_404, reverse from django.utils.translation import ugettext_lazy as _ from wagtail.contrib.modeladmin.options import ModelAdmin, modeladmin_register from wagtail.contrib.modeladmin.views import IndexView +from wagtail.wagtailcore.models import Page from wagtail_personalisation.models import PersonalisablePage, Segment @@ -137,9 +138,12 @@ def copy_page_view(request, page_id, segment_id): 'is_segmented': True, } - new_page = page.copy(update_attrs=update_attrs, copy_revisions=False) + try: + variant = Page.objects.get(slug=slug, depth=page.depth) + except Page.DoesNotExist: + variant = page.copy(update_attrs=update_attrs, copy_revisions=False) - edit_url = reverse('wagtailadmin_pages:edit', args=[new_page.id]) + edit_url = reverse('wagtailadmin_pages:edit', args=[variant.id]) return HttpResponseRedirect(edit_url)