From 4667c698da9af84358c3da817f628cf799b62b6f Mon Sep 17 00:00:00 2001 From: Todd Dembrey <todd.dembrey@torchbox.com> Date: Thu, 21 Jun 2018 10:54:57 +0100 Subject: [PATCH] Add test to prevent multiple creation of revisions for draft objects --- opentech/apply/funds/models.py | 7 ++++++- opentech/apply/funds/tests/test_models.py | 12 ++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/opentech/apply/funds/models.py b/opentech/apply/funds/models.py index 59fdc1db8..bf2926c0e 100644 --- a/opentech/apply/funds/models.py +++ b/opentech/apply/funds/models.py @@ -745,7 +745,12 @@ class ApplicationSubmission(WorkflowHelpers, BaseStreamForm, AbstractFormSubmiss self.clean_submission() current_data = ApplicationSubmission.objects.get(id=self.id).form_data if current_data != self.form_data: - revision = ApplicationRevision.objects.create(submission=self, form_data=self.form_data) + if self.live_revision == self.draft_revision: + revision = ApplicationRevision.objects.create(submission=self, form_data=self.form_data) + else: + revision = self.draft_revision + revision.form_data = self.form_data + if draft: self.form_data = self.live_revision.form_data else: diff --git a/opentech/apply/funds/tests/test_models.py b/opentech/apply/funds/tests/test_models.py index 9a4131538..22d1c9cde 100644 --- a/opentech/apply/funds/tests/test_models.py +++ b/opentech/apply/funds/tests/test_models.py @@ -405,3 +405,15 @@ class TestApplicationSubmission(TestCase): submission = self.refresh(submission) self.assertNotEqual(submission.title, title) + + def test_draft_updated(self): + submission = ApplicationSubmissionFactory() + title = 'My new title' + submission.form_data = {'title': title} + submission.create_revision(draft=True) + self.assertEqual(submission.revisions.count(), 2) + + title = 'My even newer title' + submission.form_data = {'title': title} + submission.create_revision(draft=True) + self.assertEqual(submission.revisions.count(), 2) -- GitLab