0001-workflows-make-display-form-associated-button-label-.patch
tests/test_backoffice_pages.py | ||
---|---|---|
3097 | 3097 |
assert formdef.data_class().get(formdata.id).workflow_data == { |
3098 | 3098 |
'blah_var_str': 'blah', 'blah_var_radio': 'c', 'blah_var_radio_raw': 'c'} |
3099 | 3099 | |
3100 |
# test alternate button label |
|
3101 |
display_form.button_label = 'CLICK ME' |
|
3102 |
wf.store() |
|
3103 | ||
3104 |
for formdata in formdef.data_class().select(): |
|
3105 |
if formdata.status == 'wf-new': |
|
3106 |
break |
|
3107 |
app = login(get_app(pub)) |
|
3108 |
resp = app.get(formdata.get_url(backoffice=True)) |
|
3109 |
assert 'CLICK ME' in resp.body |
|
3110 | ||
3100 | 3111 |
def test_backoffice_criticality_in_formdef_listing(pub): |
3101 | 3112 |
if not pub.is_using_postgresql(): |
3102 | 3113 |
pytest.skip('this requires SQL') |
tests/test_workflow_import.py | ||
---|---|---|
216 | 216 |
# formdef.max_field_id is recalculated when importing a FormWorkflowStatusItem |
217 | 217 |
assert wf2.possible_status[0].items[0].formdef.max_field_id == len(display_form.formdef.fields) |
218 | 218 | |
219 |
display_form.button_label = 'Test' |
|
220 |
display_form.backoffice_info_text = 'Lorem ipsum long description.' |
|
221 |
wf2 = assert_import_export_works(wf) |
|
222 | ||
219 | 223 | |
220 | 224 |
def test_export_to_model_action(): |
221 | 225 |
wf = Workflow(name='status') |
wcs/wf/form.py | ||
---|---|---|
78 | 78 |
by = [] |
79 | 79 |
formdef = None |
80 | 80 |
varname = None |
81 |
button_label = None |
|
82 |
backoffice_info_text = None |
|
81 | 83 | |
82 | 84 |
@classmethod |
83 | 85 |
def init(cls): |
... | ... | |
93 | 95 |
element_kwargs = {'render_br': False, |
94 | 96 |
'options': [(None, '---', None)] + |
95 | 97 |
self.get_list_of_roles(include_logged_in_users=False)}) |
98 |
if 'button_label' in parameters: |
|
99 |
form.add(StringWidget, '%sbutton_label' % prefix, title=_('Button Label'), |
|
100 |
value=self.button_label or _('Submit'), |
|
101 |
required=True) |
|
102 |
if 'backoffice_info_text' in parameters: |
|
103 |
form.add(WysiwygTextWidget, '%sbackoffice_info_text' % prefix, |
|
104 |
title=_('Information Text for Backoffice'), |
|
105 |
value=self.backoffice_info_text) |
|
96 | 106 |
if 'varname' in parameters: |
97 | 107 |
form.add(VarnameWidget, '%svarname' % prefix, required=True, |
98 | 108 |
title=_('Variable Name'), value=self.varname) |
... | ... | |
100 | 110 |
form.widgets.append(HtmlWidget(htmltext('<p><a href="fields/">%s</a></p>') % _('Edit Fields'))) |
101 | 111 | |
102 | 112 |
def get_parameters(self): |
103 |
return ('by', 'varname') |
|
113 |
return ('by', 'button_label', 'backoffice_info_text', 'varname')
|
|
104 | 114 | |
105 | 115 |
def export_to_xml(self, charset, include_id=False): |
106 | 116 |
item = WorkflowStatusItem.export_to_xml(self, charset, include_id=include_id) |
... | ... | |
143 | 153 |
if not self.formdef: |
144 | 154 |
return |
145 | 155 |
self.formdef.add_fields_to_form(form) |
146 |
form.add_submit('submit', _('Submit')) |
|
156 |
form.add_submit('submit', self.button_label or _('Submit')) |
|
157 |
form.get_widget('submit').backoffice_info_text = self.backoffice_info_text |
|
147 | 158 | |
148 | 159 |
formdata.feed_session() |
149 | 160 | |
150 |
- |