From 519051adb33e305cf944831b9aaa271cc0cefa39 Mon Sep 17 00:00:00 2001 From: Dan Braghis <dan.braghis@torchbox.com> Date: Fri, 22 Jun 2018 12:53:22 +0100 Subject: [PATCH] Fix issue with submitting edited draft saving old version of draft --- opentech/apply/funds/models.py | 1 + opentech/apply/funds/tests/test_views.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/opentech/apply/funds/models.py b/opentech/apply/funds/models.py index 645d6cd43..69820493f 100644 --- a/opentech/apply/funds/models.py +++ b/opentech/apply/funds/models.py @@ -771,6 +771,7 @@ class ApplicationSubmission(WorkflowHelpers, BaseStreamForm, AbstractFormSubmiss revision = self.draft_revision revision.form_data = self.form_data revision.author = by + revision.save() if draft: self.form_data = self.live_revision.form_data diff --git a/opentech/apply/funds/tests/test_views.py b/opentech/apply/funds/tests/test_views.py index f58b9a3de..14eb31ae9 100644 --- a/opentech/apply/funds/tests/test_views.py +++ b/opentech/apply/funds/tests/test_views.py @@ -147,6 +147,27 @@ class TestRevisionsView(BaseSubmissionViewTestCase): self.assertEqual(submission.draft_revision.author, self.user) self.assertDictEqual(submission.live_revision.form_data, old_data) + def test_existing_draft_edit_and_submit(self): + submission = ApplicationSubmissionFactory(status='draft_proposal', workflow_stages=2, user=self.user) + draft_data = submission.raw_data.copy() + draft_data[submission.must_include['title']] = 'New title' + self.post_page(submission, {'save': True, **draft_data}, 'edit') + + submission = self.refresh(submission) + + new_title = 'Newer title' + draft_data[submission.must_include['title']] = new_title + self.post_page(submission, {'submit': True, **draft_data}, 'edit') + + submission = self.refresh(submission) + + self.maxDiff = None + self.assertEqual(submission.revisions.count(), 2) + self.assertDictEqual(submission.draft_revision.form_data, submission.from_draft().form_data) + self.assertDictEqual(submission.live_revision.form_data, submission.form_data) + + self.assertEqual(submission.title, new_title) + class TestRevisionList(BaseSubmissionViewTestCase): base_view_name = 'revisions:list' -- GitLab