Skip to content
Snippets Groups Projects
Commit 249a0847 authored by Todd Dembrey's avatar Todd Dembrey
Browse files

Add new application message

parent f8a10324
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,7 @@ from .models import Activity
class MESSAGES(Enum):
UPDATE_LEAD = 'update_lead'
NEW_SUBMISSION = 'new_submission'
NEW_DETERMINATION = 'new_determination'
DETERMINATION_OUTCOME = 'determination_outcome'
INVITED_TO_PROPOSAL = 'invited_to_proposal'
......@@ -19,6 +20,7 @@ class MessageAdapter:
class ActivityAdapter:
messages = {
MESSAGES.NEW_SUBMISSION: 'Submitted {submission.title} for {submission.page.title}',
MESSAGES.UPDATE_LEAD: 'Lead changed from {old.lead} to {new.lead}',
MESSAGES.NEW_DETERMINATION: 'Created a determination for {submission.title}',
MESSAGES.DETERMINATION_OUTCOME: 'Sent a {submission.determination.get_outcome_display} determination for {submission.title}:\r\n{determination.clean_message}',
......
from django.conf import settings
from django.db import models
from django.db.models.signals import post_save
from django.dispatch import receiver
from django_fsm.signals import post_transition
......@@ -104,18 +103,6 @@ class Activity(models.Model):
return [(choice, VISIBILITY[choice]) for choice in cls.visibility_for(user)]
@receiver(post_save, sender=ApplicationSubmission)
def log_submission_activity(sender, **kwargs):
if kwargs.get('created', False):
submission = kwargs.get('instance')
Activity.actions.create(
user=submission.user,
submission=submission,
message=f'Submitted {submission.title} for {submission.page.title}'
)
@receiver(post_transition, sender=ApplicationSubmission)
def log_status_update(sender, **kwargs):
instance = kwargs['instance']
......
......@@ -10,6 +10,8 @@ from django.core.serializers.json import DjangoJSONEncoder
from django.db import models
from django.db.models import Q
from django.db.models.expressions import RawSQL, OrderBy
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.http import Http404
from django.template.loader import render_to_string
from django.urls import reverse
......@@ -33,6 +35,7 @@ from wagtail.core.fields import StreamField
from wagtail.core.models import Orderable
from wagtail.contrib.forms.models import AbstractEmailForm, AbstractFormSubmission
from opentech.apply.activity.messaging import messenger, MESSAGES
from opentech.apply.stream_forms.blocks import UploadableMediaBlock
from opentech.apply.stream_forms.models import AbstractStreamForm, BaseStreamForm
from opentech.apply.users.groups import REVIEWER_GROUP_NAME, STAFF_GROUP_NAME
......@@ -950,6 +953,18 @@ class ApplicationSubmission(WorkflowHelpers, BaseStreamForm, AbstractFormSubmiss
return f'<{self.__class__.__name__}: {self.user}, {self.round}, {self.page}>'
@receiver(post_save, sender=ApplicationSubmission)
def log_submission_activity(sender, **kwargs):
if kwargs.get('created', False):
submission = kwargs.get('instance')
messenger(
MESSAGES.NEW_APPLICATION,
user=submission.user,
submission=submission,
)
class ApplicationRevision(models.Model):
submission = models.ForeignKey(ApplicationSubmission, related_name='revisions', on_delete=models.CASCADE)
form_data = JSONField(encoder=DjangoJSONEncoder)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment