Projet

Général

Profil

0002-create_formdata-keep-user-on-parameter-s-view-when-c.patch

Benjamin Dauvergne, 03 avril 2020 16:16

Télécharger (3,04 ko)

Voir les différences:

Subject: [PATCH 2/2] create_formdata: keep user on parameter's view when
 changing formdef_slug (#39732)

 wcs/wf/create_formdata.py | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
wcs/wf/create_formdata.py
226 226
            list_forms = [(None, '---', '')]
227 227
            list_forms += [(x.url_name, x.name, x.url_name) for x in self.formdef_class.select(order_by='name')
228 228
                           if not x.disabled or x.url_name == self.formdef_slug]
229
            form.add(SingleSelectWidget, 'formdef_slug',
230
                     title=_(self.formdef_label),
229
            form.add(SingleSelectWidget, '%sformdef_slug' % prefix,
230
                     title=_('Form'),
231 231
                     value=self.formdef_slug,
232 232
                     options=list_forms)
233 233
        if 'draft' in parameters:
......
250 250
                     value=self.keep_submission_context,
251 251
                     advanced=(
252 252
                         self.keep_submission_context == CreateFormdataWorkflowStatusItem.keep_submission_context))
253
        formdef = self._resolve_formdef_slug(form.get('formdef_slug'))
253
        formdef_slug = form.get('%sformdef_slug' % prefix)
254
        formdef = self._resolve_formdef_slug(formdef_slug)
254 255
        if 'mappings' in parameters and formdef:
255 256
            form.add(MappingsWidget, '%smappings' % prefix,
256 257
                     title=_(self.mappings_label),
257 258
                     to_formdef=formdef,
258 259
                     value=self.mappings)
260
            if form.is_submitted():
261
                # do not validate form if formdef is changed and there is no mappings
262
                if formdef_slug != self.formdef_slug and '%smappings$added_elements' % prefix not in get_request().form:
263
                    form.get_widget('%smappings' % prefix).set_error(_('Please define new mappings'))
259 264
        if 'varname' in parameters:
260 265
            form.add(VarnameWidget, '%svarname' % prefix,
261 266
                     title=_('Identifier'), value=self.varname,
......
287 292
                       for field in formdef.get_widget_fields() if field.varname)
288 293
        return sorted(varnames & set(field.varname for field in self.formdef.get_widget_fields() if field.varname))
289 294

  
290
    def submit_admin_form(self, form):
291
        self.mappings = []
292
        super(CreateFormdataWorkflowStatusItem, self).submit_admin_form(form)
293

  
294 295
    def get_parameters(self):
295 296
        return ('draft', 'formdef_slug', 'map_fields_by_varname', 'mappings', 'backoffice_submission',
296 297
                'keep_user', 'keep_submission_context', 'varname', 'attach_to_history', 'condition')
297
-