Projet

Général

Profil

0001-workflows-mappings-display-in-inspect-view-42239.patch

Lauréline Guérin, 22 juin 2020 16:41

Télécharger (3,64 ko)

Voir les différences:

Subject: [PATCH] workflows: mappings display in inspect view (#42239)

 tests/test_backoffice_pages.py | 36 +++++++++++++++++++++++++++++++++-
 wcs/wf/create_formdata.py      | 11 +++++++++++
 2 files changed, 46 insertions(+), 1 deletion(-)
tests/test_backoffice_pages.py
5686 5686

  
5687 5687

  
5688 5688
def test_workflow_inspect_page(pub):
5689
    create_superuser(pub)
5689
    admin = create_user(pub, is_admin=True)
5690 5690
    create_environment(pub, set_receiver=True)
5691 5691

  
5692 5692
    workflow = Workflow.get_default_workflow()
......
5710 5710
    resp = app.get('/backoffice/workflows/%s/inspect' % workflow.id)
5711 5711
    assert '23 hours' in resp.text
5712 5712

  
5713
    target_formdef = FormDef()
5714
    target_formdef.name = 'target form'
5715
    target_formdef.workflow_roles = {'_receiver': 1}
5716
    target_formdef.backoffice_submission_roles = admin.roles[:]
5717
    target_formdef.fields = [
5718
        fields.StringField(id='0', label='string', varname='foo_string'),
5719
        fields.FileField(id='1', label='file', type='file', varname='foo_file'),
5720
    ]
5721

  
5722
    st2 = workflow.add_status('Status2')
5723

  
5724
    target_formdef.store()
5725
    create_formdata = CreateFormdataWorkflowStatusItem()
5726
    create_formdata.id = '_create_formdata'
5727
    create_formdata.varname = 'resubmitted'
5728
    create_formdata.draft = True
5729
    create_formdata.formdef_slug = target_formdef.url_name
5730
    create_formdata.keep_user = True
5731
    create_formdata.backoffice_submission = True
5732
    create_formdata.mappings = [
5733
        Mapping(field_id='0', expression='=form_var_toto_string'),
5734
        Mapping(field_id='1', expression='=form_var_toto_file_raw'),
5735
        Mapping(field_id='2', expression='=form_var_foobar_raw'),
5736
    ]
5737
    create_formdata.parent = st2
5738
    st2.items.append(create_formdata)
5739
    workflow.store()
5740

  
5741
    resp = app.get('/backoffice/workflows/%s/inspect' % workflow.id)
5742
    assert (
5743
        '<ul class="mappings"><li>string → =form_var_toto_string</li>'
5744
        '<li>file → =form_var_toto_file_raw</li>'
5745
        '<li>#2 → =form_var_foobar_raw</li></ul>') in resp.text
5746

  
5713 5747

  
5714 5748
def test_workflow_comment_required(pub):
5715 5749
    user = create_user(pub)
wcs/wf/create_formdata.py
285 285
                     title=_('Include new form in the form history'),
286 286
                     value=self.attach_to_history)
287 287

  
288
    def get_mappings_parameter_view_value(self):
289
        to_id_fields = {str(field.id): field for field in self.formdef.get_widget_fields()}
290
        result = []
291
        for mapping in self.mappings or []:
292
            try:
293
                dest_field = to_id_fields[str(mapping.field_id)]
294
                result.append(htmltext('<li>%s → %s</li>') % (dest_field.label, mapping.expression))
295
            except KeyError:
296
                result.append(htmltext('<li>#%s → %s</li>') % (mapping.field_id, mapping.expression))
297
        return htmltext('<ul class="mappings">%s</ul>') % htmltext('').join(result)
298

  
288 299
    def _common_varnames(self):
289 300
        '''Compute common varnames between the targeted formdef and all formdefs related to the parent workflow.'''
290 301
        assert self.formdef
291
-