admin: do not offer an edit page after duplicate (#1593)

This commit is contained in:
Frédéric Péters 2012-08-29 16:51:39 +02:00
parent e8cb859e70
commit 3b93d67f0a
2 changed files with 21 additions and 5 deletions

View File

@ -620,11 +620,19 @@ class FormDefPage(Directory):
'</div>'
def duplicate [html] (self):
self.formdefui.formdef.id = self.formdefui.formdef.get_new_id()
self.formdefui.formdef.id = None
original_name = self.formdefui.formdef.name
self.formdefui.formdef.name = self.formdefui.formdef.name + _(' (copy)')
formdef_names = [x.name for x in FormDef.select()]
no = 2
while self.formdefui.formdef.name in formdef_names:
self.formdefui.formdef.name = _('%(name)s (copy %(no)d)') % {
'name': original_name, 'no': no}
no += 1
self.formdefui.formdef.url_name = None
self.formdefui.formdef.disabled = True
return self.edit(duplicate = True)
self.formdefui.formdef.store()
return redirect('../%s/' % self.formdefui.formdef.id)
def delete [html] (self):
form = Form(enctype='multipart/form-data')

View File

@ -401,7 +401,7 @@ class WorkflowStatusPage(Directory):
self.workflow.store()
return redirect('../../')
def edit [html] (self, duplicate = False):
def edit [html] (self):
form = Form(enctype = 'multipart/form-data')
form.add(StringWidget, 'name', title = _('Status Name'), required = True, size=30,
value = self.status.name)
@ -666,9 +666,17 @@ class WorkflowPage(Directory):
return redirect('..')
def duplicate [html] (self):
self.workflow_ui.workflow.id = self.workflow_ui.workflow.get_new_id()
self.workflow_ui.workflow.id = None
original_name = self.workflow_ui.workflow.name
self.workflow_ui.workflow.name = self.workflow_ui.workflow.name + _(' (copy)')
return self.edit(duplicate = True)
workflow_names = [x.name for x in Workflow.select()]
no = 2
while self.workflow_ui.workflow.name in workflow_names:
self.workflow_ui.workflow.name = _('%(name)s (copy %(no)d)') % {
'name': original_name, 'no': no}
no += 1
self.workflow_ui.workflow.store()
return redirect('../%s/' % self.workflow_ui.workflow.id)
class WorkflowsDirectory(Directory):