From 52c29cafe82a465424f08e0a3f0571b1ae7dda96 Mon Sep 17 00:00:00 2001
From: Todd Dembrey <todd.dembrey@torchbox.com>
Date: Sat, 15 Sep 2018 11:42:32 +0100
Subject: [PATCH] Short circuit the save for the transition

---
 opentech/apply/funds/models/submissions.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/opentech/apply/funds/models/submissions.py b/opentech/apply/funds/models/submissions.py
index 93092d921..4bf6246b7 100644
--- a/opentech/apply/funds/models/submissions.py
+++ b/opentech/apply/funds/models/submissions.py
@@ -225,7 +225,7 @@ class AddTransitions(models.base.ModelBase):
                 raise PermissionDenied(f'You do not have permission to "{ action }"')
 
             transition(by=user, request=request, **kwargs)
-            self.save()
+            self.save(update_fields=['status'])
 
             self.progress_stage_when_possible(user, request)
 
@@ -474,7 +474,11 @@ class ApplicationSubmission(
                         f.save(folder)
                 self.form_data[field.id] = file
 
-    def save(self, *args, **kwargs):
+    def save(self, *args, update_fields=list(), **kwargs):
+        if update_fields and 'form_data' not in update_fields:
+            # We don't want to use this approach if the user is sending data
+            return super().save(*args, update_fields=update_fields, **kwargs)
+
         if self.is_draft:
             raise ValueError('Cannot save with draft data')
 
-- 
GitLab