47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
from __future__ import absolute_import, unicode_literals
|
|
|
|
from django.http import HttpResponseRedirect
|
|
from django.shortcuts import get_object_or_404, reverse
|
|
from personalisation.models import PersonalisablePage, Segment
|
|
|
|
|
|
def enable(request, segment_id):
|
|
"""Enable the selected segment"""
|
|
segment = get_object_or_404(Segment, pk=segment_id)
|
|
segment.status = 'enabled'
|
|
segment.save()
|
|
|
|
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
|
|
|
|
|
|
def disable(request, segment_id):
|
|
"""Disable the selected segment"""
|
|
segment = get_object_or_404(Segment, pk=segment_id)
|
|
segment.status = 'disabled'
|
|
segment.save()
|
|
|
|
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
|
|
|
|
|
|
def copy_page_view(request, page_id, segment_id):
|
|
"""Copy page with selected segment"""
|
|
segment = get_object_or_404(Segment, pk=segment_id)
|
|
page = get_object_or_404(PersonalisablePage, pk=page_id)
|
|
|
|
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,
|
|
}
|
|
|
|
new_page = page.copy(update_attrs=update_attrs, copy_revisions=False)
|
|
|
|
edit_url = reverse('wagtailadmin_pages:edit', args=[new_page.id])
|
|
|
|
return HttpResponseRedirect(edit_url)
|