admin: allow changing form recipient role in a popup
This commit is contained in:
parent
04db262c19
commit
cd11fa46e0
|
@ -272,7 +272,8 @@ class FieldsDirectory(FieldsDirectory):
|
|||
|
||||
class FormDefPage(Directory):
|
||||
_q_exports = ['', 'fields', 'edit', 'delete', 'duplicate', 'export',
|
||||
'archive', 'invite', 'enable', 'workflow', 'category']
|
||||
'archive', 'invite', 'enable', 'workflow', 'category',
|
||||
'recipient']
|
||||
|
||||
def __init__(self, component):
|
||||
try:
|
||||
|
@ -295,30 +296,41 @@ class FormDefPage(Directory):
|
|||
'<div class="bo-block">'
|
||||
'<h3>%s</h3>' % _('Access')
|
||||
'<ul>'
|
||||
|
||||
categories = get_categories()
|
||||
if categories:
|
||||
'<li>%s ' % _('Category:')
|
||||
if self.formdef.category:
|
||||
self.formdef.category.name
|
||||
else:
|
||||
_('None')
|
||||
'-'
|
||||
' '
|
||||
'(<a href="category" rel="popup">%s</a>)' % _('change')
|
||||
'</li>'
|
||||
|
||||
'<li>%s ' % _('Workflow:')
|
||||
if self.formdef.workflow:
|
||||
'<li>%s ' % _('Workflow:')
|
||||
'%s' % self.formdef.workflow.name
|
||||
if self.formdef.workflow_id:
|
||||
pristine_workflow = Workflow.get(self.formdef.workflow_id)
|
||||
if pristine_workflow.has_options():
|
||||
' (<a href="workflow">%s</a>)' % _('options')
|
||||
'</li>'
|
||||
self.formdef.workflow.name
|
||||
else:
|
||||
'-'
|
||||
if self.formdef.workflow_id:
|
||||
pristine_workflow = Workflow.get(self.formdef.workflow_id)
|
||||
if pristine_workflow.has_options():
|
||||
' (<a href="workflow">%s</a>)' % _('options')
|
||||
'</li>'
|
||||
|
||||
'<li>%s ' % _('Recipient Role:')
|
||||
if self.formdef.receiver:
|
||||
'<li>%s ' % _('Recipient Role:')
|
||||
'<a href="../../roles/%s/">%s</a></li>' % (
|
||||
'<a href="../../roles/%s/">%s</a>' % (
|
||||
self.formdef.receiver.id, self.formdef.receiver.name)
|
||||
else:
|
||||
'-'
|
||||
' '
|
||||
'(<a href="recipient" rel="popup">%s</a>)' % _('change')
|
||||
'</li>'
|
||||
|
||||
'<li>%s ' % _('Sender Roles:')
|
||||
if self.formdef.roles:
|
||||
'<li>%s ' % _('Sender Roles:')
|
||||
roles = []
|
||||
for x in self.formdef.roles:
|
||||
if x == logged_users_role().id:
|
||||
|
@ -328,7 +340,10 @@ class FormDefPage(Directory):
|
|||
'%s' % ', '.join(roles)
|
||||
if self.formdef.always_advertise:
|
||||
' (%s)' % _('Always advertise')
|
||||
'</li>'
|
||||
else:
|
||||
'-'
|
||||
'</li>'
|
||||
|
||||
if self.formdef.acl_read:
|
||||
'<li>%s ' % _('Read Access:')
|
||||
'%s</li>' % {'none': _('None'),
|
||||
|
@ -371,7 +386,7 @@ class FormDefPage(Directory):
|
|||
'</div>'
|
||||
|
||||
'<div class="bo-block clear">'
|
||||
'<h3 class="clear">%s (<a href="fields">%s</a>)</h3>' % (
|
||||
'<h3 class="clear">%s (<a href="fields/">%s</a>)</h3>' % (
|
||||
_('Fields'), _('edit'))
|
||||
self.get_preview()
|
||||
'</div>'
|
||||
|
@ -410,6 +425,26 @@ class FormDefPage(Directory):
|
|||
self.formdef.store()
|
||||
redirect('.')
|
||||
|
||||
def recipient [html] (self):
|
||||
form = Form(enctype='multipart/form-data')
|
||||
form.add(SingleSelectWidget, 'receiver_id',
|
||||
value=self.formdef.receiver_id,
|
||||
options = get_user_roles())
|
||||
form.add_submit('submit', _('Submit'))
|
||||
form.add_submit('cancel', _('Cancel'))
|
||||
if form.get_widget('cancel').parse():
|
||||
return redirect('.')
|
||||
|
||||
if not form.is_submitted() or form.has_errors():
|
||||
get_response().breadcrumb.append( ('recipient', _('Recipient Role')) )
|
||||
html_top('forms', title=self.formdef.name)
|
||||
'<p>%s</p>' % _('Select the role that will handle those forms.')
|
||||
form.render()
|
||||
else:
|
||||
self.formdef.receiver_id = form.get_widget('receiver_id').parse()
|
||||
self.formdef.store()
|
||||
redirect('.')
|
||||
|
||||
def get_preview [html] (self):
|
||||
form = Form()
|
||||
on_page = 0
|
||||
|
|
Loading…
Reference in New Issue