diff --git a/opentech/apply/funds/models.py b/opentech/apply/funds/models.py index 59fdc1db8ed13d4af317567fbe308fc8a9dadcc9..bf2926c0e5d8b9901a2962fd89d60c2501942229 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 9a41315381b6353fac6c2f5094c278e34fa124d0..22d1c9cde4e3a41c9be93a3e330ae418b0955300 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)