kopia lustrzana https://github.com/wagtail/wagtail
Move the 'should we display the publish_copies checkbox' logic into CopyForm
rodzic
37b8f22c4b
commit
858dd11cc6
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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,
|
||||
})
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue