diff --git a/opentech/apply/activity/messaging.py b/opentech/apply/activity/messaging.py index 0310a560f0a9b3078d01e85e650579e9c74c4dc3..e96326e4ba18528c2d307d868e51de46b1111ec2 100644 --- a/opentech/apply/activity/messaging.py +++ b/opentech/apply/activity/messaging.py @@ -1,5 +1,6 @@ import requests +from django.db import models from django.conf import settings from django.contrib import messages from django.template.loader import render_to_string @@ -14,6 +15,9 @@ def link_to(target, request): neat_related = { MESSAGES.DETERMINATION_OUTCOME: 'determination', + MESSAGES.UPDATE_LEAD: 'old', + MESSAGES.NEW_REVIEW: 'review', + MESSAGES.TRANSITION: 'old_phase', } @@ -59,8 +63,9 @@ class AdapterBase: def recipients(self, message_type, **kwargs): raise NotImplementedError() - def process(self, message_type, event, user, submission, related=None): + def process(self, message_type, event, request, user, submission, related=None): kwargs = { + 'request': request, 'user': user, 'submission': submission, 'related': related, @@ -86,7 +91,7 @@ class AdapterBase: message = '{} [to: {}]: {}'.format(self.adapter_type, recipient, message) else: message = '{}: {}'.format(self.adapter_type, message) - messages.add_message(kwargs['request'], messages.INFO, message) + messages.add_message(request, messages.INFO, message) def create_log(self, message, recipient, event): from .models import Message @@ -115,7 +120,7 @@ class ActivityAdapter(AdapterBase): MESSAGES.DETERMINATION_OUTCOME: 'Sent a determination. Outcome: {determination.clean_outcome}', MESSAGES.INVITED_TO_PROPOSAL: 'Invited to submit a proposal', MESSAGES.REVIEWERS_UPDATED: 'reviewers_updated', - MESSAGES.NEW_REVIEW: 'Submitted a review', + MESSAGES.NEW_REVIEW: MESSAGES.NEW_REVIEW.name, MESSAGES.OPENED_SEALED: 'Opened the submission while still sealed', } @@ -143,12 +148,19 @@ class ActivityAdapter(AdapterBase): def send_message(self, message, user, submission, **kwargs): from .models import Activity, PUBLIC visibility = kwargs.get('visibility', PUBLIC) + + related =kwargs['related'] + if isinstance(related, models.Model): + related_object = related + else: + related_object = None + Activity.actions.create( user=user, submission=submission, message=message, visibility=visibility, - related_object=kwargs['related'] + related_object=related_object, ) @@ -290,11 +302,11 @@ class MessengerBackend: def __call__(self, message_type, request, user, submission, **kwargs): return self.send(message_type, request=request, user=user, submission=submission, **kwargs) - def send(self, message_type, user, submission, related): + def send(self, message_type, request, user, submission, related): from .models import Event event = Event.objects.create(type=message_type.name, by=user, submission=submission) for adapter in self.adapters: - adapter.process(message_type, event, user=user, submission=submission, related=related) + adapter.process(message_type, event, request=request, user=user, submission=submission, related=related) adapters = [ diff --git a/opentech/apply/funds/models/submissions.py b/opentech/apply/funds/models/submissions.py index eeaf49583146c37d79a50cace03b326e7b1091ff..65dff5f21fe70cf57987beb090a98c8877297978 100644 --- a/opentech/apply/funds/models/submissions.py +++ b/opentech/apply/funds/models/submissions.py @@ -596,7 +596,7 @@ def log_status_update(sender, **kwargs): user=by, request=request, submission=instance, - old_phase=old_phase, + related=old_phase, ) if instance.status in review_statuses: diff --git a/opentech/apply/funds/views.py b/opentech/apply/funds/views.py index eb27dc0dd2223153aea20c107748975e8a337ad7..5e612143e5c6d07b9db092aeb20856503da622e2 100644 --- a/opentech/apply/funds/views.py +++ b/opentech/apply/funds/views.py @@ -104,7 +104,7 @@ class UpdateLeadView(DelegatedViewMixin, UpdateView): request=self.request, user=self.request.user, submission=form.instance, - old=old, + related=old, ) return response diff --git a/opentech/apply/review/views.py b/opentech/apply/review/views.py index 445efe2e4742f0c1e8c2442ea39b32c2e8aa34f5..70a3ad13ce6defe07672fec054c0c2630f393b40 100644 --- a/opentech/apply/review/views.py +++ b/opentech/apply/review/views.py @@ -89,7 +89,7 @@ class ReviewCreateOrUpdateView(BaseStreamForm, CreateOrUpdateView): request=self.request, user=self.object.author, submission=self.submission, - review=self.object, + related=self.object, ) return response