From 7d3dddf27cfb7520b69328f9518ce229bae57f78 Mon Sep 17 00:00:00 2001
From: Todd Dembrey <todd.dembrey@torchbox.com>
Date: Thu, 21 Feb 2019 16:50:56 +0000
Subject: [PATCH] GH-858: Use the id of the submission as a more robust key

---
 opentech/apply/activity/messaging.py | 12 ++++++------
 opentech/apply/funds/views.py        |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/opentech/apply/activity/messaging.py b/opentech/apply/activity/messaging.py
index 7e1a38ddf..718726ce8 100644
--- a/opentech/apply/activity/messaging.py
+++ b/opentech/apply/activity/messaging.py
@@ -264,7 +264,7 @@ class ActivityAdapter(AdapterBase):
     def handle_batch_transition(self, transitions, submissions, **kwargs):
         kwargs.pop('submission')
         for submission in submissions:
-            old_phase = transitions[submission]
+            old_phase = transitions[submission.id]
             return self.handle_transition(old_phase=old_phase, submission=submission, **kwargs)
 
     def send_message(self, message, user, submission, submissions, **kwargs):
@@ -381,7 +381,7 @@ class SlackAdapter(AdapterBase):
         submissions_text = [
             ': '.join([
                 self.slack_links(links, [submission]),
-                f'{transitions[submission].display_name} → {submission.phase}',
+                f'{transitions[submission.id].display_name} → {submission.phase}',
             ])
             for submission in submissions
         ]
@@ -499,7 +499,7 @@ class EmailAdapter(AdapterBase):
     def handle_batch_transition(self, transitions, submissions, **kwargs):
         kwargs.pop('submission')
         for submission in submissions:
-            old_phase = transitions[submission]
+            old_phase = transitions[submission.id]
             return self.render_message(
                 'messages/email/transition.html',
                 submission=submission,
@@ -583,14 +583,14 @@ class DjangoMessagesAdapter(AdapterBase):
     def batch_transition(self, submissions, transitions, **kwargs):
         base_message = 'Successfully updated:'
         transition = '{submission} [{old_display} → {new_display}].'
-        transitions = [
+        transition_messages = [
             transition.format(
                 submission=submission.title,
-                old_display=transitions[submission],
+                old_display=transitions[submission.id],
                 new_display=submission.phase,
             ) for submission in submissions
         ]
-        messages = [base_message, *transitions]
+        messages = [base_message, *transition_messages]
         return ' '.join(messages)
 
     def recipients(self, *args, **kwargs):
diff --git a/opentech/apply/funds/views.py b/opentech/apply/funds/views.py
index 8eb580073..01659e1e8 100644
--- a/opentech/apply/funds/views.py
+++ b/opentech/apply/funds/views.py
@@ -151,7 +151,7 @@ class BatchProgressSubmissionView(DelegatedViewMixin, FormView):
             except (PermissionDenied, KeyError):
                 failed.append(submission)
             else:
-                phase_changes[submission] = old_phase
+                phase_changes[submission.id] = old_phase
 
         if failed:
             messages.warning(
-- 
GitLab