Projet

Général

Profil

0001-admin-don-t-lose-drafts-when-assigning-a-new-workflo.patch

Frédéric Péters, 17 février 2016 20:04

Télécharger (2,26 ko)

Voir les différences:

Subject: [PATCH] admin: don't lose drafts when assigning a new workflow to a
 formdef (#10017)

 tests/test_admin_pages.py | 16 +++++++++++-----
 wcs/admin/forms.py        |  2 +-
 2 files changed, 12 insertions(+), 6 deletions(-)
tests/test_admin_pages.py
415 415

  
416 416
    data_class = formdef.data_class()
417 417
    data_class.wipe()
418
    formdata = data_class()
419
    formdata.status = 'wf-new'
420
    formdata.store()
418
    formdata1 = data_class()
419
    formdata1.status = 'wf-new'
420
    formdata1.store()
421

  
422
    formdata2 = data_class()
423
    formdata2.status = 'draft'
424
    formdata2.store()
421 425

  
422 426
    Workflow.wipe()
423 427
    workflow = Workflow(name='Workflow One')
......
438 442
        assert resp.forms[0]['mapping-%s' % status.id]
439 443
        # there's only one possible new status
440 444
        assert len(resp.forms[0]['mapping-just_submitted'].options) == 1
441
    assert data_class.get(1).status == 'wf-new'
445
    assert data_class.get(formdata1.id).status == 'wf-new'
446
    assert data_class.get(formdata2.id).status == 'draft'
442 447
    resp = resp.forms[0].submit()
443
    assert data_class.get(1).status == 'wf-finished'
448
    assert data_class.get(formdata1.id).status == 'wf-finished'
449
    assert data_class.get(formdata2.id).status == 'draft'
444 450

  
445 451
def test_form_workflow_role(pub):
446 452
    create_superuser(pub)
wcs/admin/forms.py
728 728
            return redirect('.')
729 729

  
730 730
    def workflow_status_remapping_submit(self, form):
731
        status_mapping = {'wf-draft': 'wf-draft'}
731
        status_mapping = {'wf-draft': 'draft', 'draft': 'draft'}
732 732
        for status in self.formdef.workflow.possible_status:
733 733
            status_mapping['wf-%s' % status.id] = 'wf-%s' % \
734 734
                    form.get_widget('mapping-%s' % status.id).parse()
735
-