From 0ed604fc605a64a4d541ef5d8fb57522c945b036 Mon Sep 17 00:00:00 2001 From: Todd Dembrey <todd.dembrey@torchbox.com> Date: Thu, 6 Sep 2018 11:53:13 +0100 Subject: [PATCH] Add revision link --- opentech/apply/activity/messaging.py | 2 ++ opentech/apply/determinations/views.py | 1 + opentech/apply/funds/models/submissions.py | 13 +++++++++++-- opentech/apply/funds/views.py | 12 +++++++----- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/opentech/apply/activity/messaging.py b/opentech/apply/activity/messaging.py index e96326e4b..5191e8cf1 100644 --- a/opentech/apply/activity/messaging.py +++ b/opentech/apply/activity/messaging.py @@ -18,6 +18,8 @@ neat_related = { MESSAGES.UPDATE_LEAD: 'old', MESSAGES.NEW_REVIEW: 'review', MESSAGES.TRANSITION: 'old_phase', + MESSAGES.APPLICANT_EDIT: 'revision', + MESSAGES.EDIT: 'revision', } diff --git a/opentech/apply/determinations/views.py b/opentech/apply/determinations/views.py index 8a12b46cc..7be2e9a41 100644 --- a/opentech/apply/determinations/views.py +++ b/opentech/apply/determinations/views.py @@ -102,6 +102,7 @@ class DeterminationCreateOrUpdateView(CreateOrUpdateView): message=self.object.stripped_message, user=self.request.user, submission=self.submission, + related_object=self.object, ) self.submission.perform_transition(transition, self.request.user, request=self.request, notify=False) diff --git a/opentech/apply/funds/models/submissions.py b/opentech/apply/funds/models/submissions.py index 65dff5f21..93092d921 100644 --- a/opentech/apply/funds/models/submissions.py +++ b/opentech/apply/funds/models/submissions.py @@ -440,8 +440,8 @@ class ApplicationSubmission( self.draft_revision = revision self.save() - return True - return False + return revision + return None def clean_submission(self): self.process_form_data() @@ -635,3 +635,12 @@ class ApplicationRevision(AccessFormData, models.Model): 'to': self.submission.live_revision.id, 'from': self.id, }) + + def get_absolute_url(self): + # Compares against the previous revision + previous_revision = self.submission.revisions.filter(id__lt=self.id).first() + return reverse("funds:submissions:revisions:compare", kwargs={ + 'submission_pk': self.submission.id, + 'to': self.id, + 'from': previous_revision.id, + }) diff --git a/opentech/apply/funds/views.py b/opentech/apply/funds/views.py index 5e612143e..1e469d9ec 100644 --- a/opentech/apply/funds/views.py +++ b/opentech/apply/funds/views.py @@ -280,13 +280,14 @@ class AdminSubmissionEditView(BaseSubmissionEditView): return self.form_invalid(form) if 'submit' in self.request.POST: - created = self.object.create_revision(by=self.request.user) - if created: + revision = self.object.create_revision(by=self.request.user) + if revision: messenger( MESSAGES.EDIT, request=self.request, user=self.request.user, submission=self.object, + related=revision, ) return HttpResponseRedirect(self.get_success_url()) @@ -315,7 +316,7 @@ class ApplicantSubmissionEditView(BaseSubmissionEditView): messages.success(self.request, _('Submission saved successfully')) return self.form_invalid(form) - created = self.object.create_revision(by=self.request.user) + revision = self.object.create_revision(by=self.request.user) submitting_proposal = self.object.phase.name in STAGE_CHANGE_ACTIONS if submitting_proposal: @@ -325,12 +326,13 @@ class ApplicantSubmissionEditView(BaseSubmissionEditView): user=self.request.user, submission=self.object, ) - elif created: + elif revision: messenger( MESSAGES.APPLICANT_EDIT, request=self.request, user=self.request.user, submission=self.object, + related=revision, ) action = set(self.request.POST.keys()) & set(self.transitions.keys()) @@ -340,7 +342,7 @@ class ApplicantSubmissionEditView(BaseSubmissionEditView): transition.target, self.request.user, request=self.request, - notify=not (created or submitting_proposal), # Use the other notification + notify=not (revision or submitting_proposal), # Use the other notification ) return HttpResponseRedirect(self.get_success_url()) -- GitLab