admin: factor anchored field redirection (#43580)
This commit is contained in:
parent
7644b3578c
commit
520dee9e8a
|
@ -102,6 +102,13 @@ class FieldDefPage(Directory):
|
|||
def get_deletion_extra_warning(self):
|
||||
return _('Warning: this field data will be permanently deleted.')
|
||||
|
||||
def redirect_field_anchor(self, field):
|
||||
anchor = '#itemId_%s' % field.id if field else ''
|
||||
if self.page_id:
|
||||
return redirect('../%s' % anchor)
|
||||
else:
|
||||
return redirect('../../fields/%s' % anchor)
|
||||
|
||||
def delete(self):
|
||||
form = Form(enctype='multipart/form-data')
|
||||
ellipsized_field_label = misc.ellipsize(self.field.unhtmled_label, 60)
|
||||
|
@ -114,10 +121,7 @@ class FieldDefPage(Directory):
|
|||
form.add_submit('delete', _('Submit'))
|
||||
form.add_submit("cancel", _("Cancel"))
|
||||
if form.get_widget('cancel').parse():
|
||||
if self.page_id:
|
||||
return redirect('../#itemId_%s' % self.field.id)
|
||||
else:
|
||||
return redirect('../../fields/#itemId_%s' % self.field.id)
|
||||
return self.redirect_field_anchor(self.field)
|
||||
if not form.is_submitted() or form.has_errors():
|
||||
get_response().breadcrumb.append(('delete', _('Delete')))
|
||||
self.html_top(title = _('Delete Field'))
|
||||
|
@ -135,13 +139,9 @@ class FieldDefPage(Directory):
|
|||
above_field = self.objectdef.fields[0]
|
||||
else:
|
||||
above_field = self.objectdef.fields[field_index-1]
|
||||
anchor = '#itemId_%s' % above_field.id
|
||||
else:
|
||||
anchor = ''
|
||||
if self.page_id:
|
||||
return redirect('../' + anchor)
|
||||
else:
|
||||
return redirect('../../fields/' + anchor)
|
||||
above_field = None
|
||||
return self.redirect_field_anchor(above_field)
|
||||
|
||||
def duplicate(self):
|
||||
field_pos = self.objectdef.fields.index(self.field)
|
||||
|
@ -151,11 +151,7 @@ class FieldDefPage(Directory):
|
|||
new_field.id = self.objectdef.get_new_field_id()
|
||||
fields.insert(field_pos+1, new_field)
|
||||
self.objectdef.store()
|
||||
anchor = '#itemId_%s' % new_field.id
|
||||
if self.page_id:
|
||||
return redirect('../' + anchor)
|
||||
else:
|
||||
return redirect('../../fields/' + anchor)
|
||||
return self.redirect_field_anchor(new_field)
|
||||
|
||||
|
||||
class FieldsPagesDirectory(Directory):
|
||||
|
|
Loading…
Reference in New Issue