Move the 'should we display the publish_copies checkbox' logic into CopyForm

pull/380/head
Matt Westcott 2014-08-01 16:01:51 +01:00
rodzic 37b8f22c4b
commit 858dd11cc6
3 zmienionych plików z 14 dodań i 13 usunięć

Wyświetl plik

@ -82,18 +82,25 @@ class CopyForm(forms.Form):
def __init__(self, *args, **kwargs):
# CopyPage must be passed a 'page' kwarg indicating the page to be copied
self.page = kwargs.pop('page')
can_publish = kwargs.pop('can_publish')
super(CopyForm, self).__init__(*args, **kwargs)
self.fields['new_title'] = forms.CharField(initial=self.page.title)
self.fields['new_slug'] = forms.SlugField(initial=self.page.slug)
pages_to_copy_count = self.page.get_descendants(inclusive=True).count()
if pages_to_copy_count > 1:
subpage_count = pages_to_copy_count - 1
pages_to_copy = self.page.get_descendants(inclusive=True)
subpage_count = pages_to_copy.count() - 1
if subpage_count > 0:
self.fields['copy_subpages'] = forms.BooleanField(required=False, initial=True,
help_text=_("This will copy %(count)s subpages.") % {'count': subpage_count})
publish_copies = forms.BooleanField(required=False, initial=True)
if can_publish:
pages_to_publish_count = pages_to_copy.live().count()
if pages_to_publish_count > 0:
self.fields['publish_copies'] = forms.BooleanField(
required=False, initial=True,
help_text=_("%(count)s of the pages being copied are live. Would you like to publish their copies?") % {'count': pages_to_publish_count}
)
def clean_new_slug(self):
# Make sure the slug isn't already in use

Wyświetl plik

@ -18,11 +18,8 @@
{% include "wagtailadmin/shared/field_as_li.html" with field=form.copy_subpages %}
{% endif %}
{% if pages_to_publish.count and can_publish %}
{% if form.publish_copies %}
{% include "wagtailadmin/shared/field_as_li.html" with field=form.publish_copies %}
<li class="help">
{% blocktrans with live_page_count=pages_to_publish.count %}{{ live_page_count }} of the pages being copied are live. Would you like to publish their copies?{% endblocktrans %}
</li>
{% endif %}
</ul>

Wyświetl plik

@ -681,7 +681,7 @@ def copy(request, page_id):
can_publish = parent_page.permissions_for_user(request.user).can_publish_subpage()
# Create the form
form = CopyForm(request.POST or None, page=page)
form = CopyForm(request.POST or None, page=page, can_publish=can_publish)
# Check if user is submitting
if request.method == 'POST' and form.is_valid():
@ -695,7 +695,7 @@ def copy(request, page_id):
)
# Check if we should keep copied subpages published
publish_copies = can_publish and form.cleaned_data['publish_copies']
publish_copies = can_publish and form.cleaned_data.get('publish_copies')
# Unpublish copied pages if we need to
if not publish_copies:
@ -715,9 +715,6 @@ def copy(request, page_id):
return render(request, 'wagtailadmin/pages/copy.html', {
'page': page,
'parent_page': parent_page,
'pages_to_publish': page.get_descendants(inclusive=True).live(),
'can_publish': can_publish,
'form': form,
})