Skip to content

Commit 4deaaa9

Browse files
robmoormanpjstevns
authored andcommitted
Redirect to existing variant if present
1 parent 63d5de9 commit 4deaaa9

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

src/wagtail_personalisation/views.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ def toggle(request, segment_id):
111111

112112

113113
def copy_page_view(request, page_id, segment_id):
114-
"""Copy page with selected segment.
114+
"""Copy page with selected segment. If the page for the selected segment
115+
already exists the user will be redirected to that particular page.
115116
116117
:param request: The http request
117118
:type request: django.http.HttpRequest
@@ -126,8 +127,12 @@ def copy_page_view(request, page_id, segment_id):
126127
if request.user.has_perm('wagtailadmin.access_admin'):
127128
segment = get_object_or_404(Segment, pk=segment_id)
128129
page = get_object_or_404(Page, pk=page_id).specific
129-
new_page = page.copy_for_segment(segment)
130-
edit_url = reverse('wagtailadmin_pages:edit', args=[new_page.id])
130+
variants = page.variants_for_segments([segment])
131+
if variants.exists():
132+
variant = variants.first()
133+
else:
134+
variant = page.copy_for_segment(segment)
135+
edit_url = reverse('wagtailadmin_pages:edit', args=[variant.id])
131136

132137
return HttpResponseRedirect(edit_url)
133138

0 commit comments

Comments
 (0)