admin: always show a popup when duplicating a page (#64883)

This commit is contained in:
Thomas NOËL 2022-05-05 14:36:54 +02:00 committed by Frédéric Péters
parent f167d06ac6
commit 53b1ba16f3
2 changed files with 5 additions and 7 deletions

View File

@ -1693,7 +1693,8 @@ def test_form_duplicate_page_field(pub):
# duplicate copy of 1st page without fields
resp = resp.click(href='4/duplicate')
resp = resp.follow() # no confirmation popup
assert 'Also duplicate all fields of the page' not in resp.text
resp = resp.form.submit().follow()
assert [f.label for f in FormDef.get(1).fields] == [
'1st page',
'1st field',

View File

@ -200,11 +200,7 @@ class FieldDefPage(Directory):
def duplicate(self):
if self.field.type == 'page':
page_fields = self.get_page_fields()
if page_fields:
# display popup if there are fields in the page, to offer to
# duplicate them too.
return self.duplicate_page(page_fields)
return self.duplicate_page(self.get_page_fields())
field_pos = self.objectdef.fields.index(self.field)
fields = self.objectdef.fields
new_field = copy.deepcopy(self.field)
@ -233,7 +229,8 @@ class FieldDefPage(Directory):
duplicate_title = _('Duplicating Page: %s') % ellipsized_field_label
duplicate_message = _("You are about to duplicate the \"%s\" page.") % ellipsized_field_label
form.widgets.append(HtmlWidget('<p>%s</p>' % duplicate_message))
form.add(CheckboxWidget, 'duplicate_fields', title=_('Also duplicate all fields of the page'))
if page_fields:
form.add(CheckboxWidget, 'duplicate_fields', title=_('Also duplicate all fields of the page'))
form.add_submit('submit', _('Duplicate'))
form.add_submit("cancel", _("Cancel"))
if form.get_widget('cancel').parse():