diff --git a/opentech/apply/activity/messaging.py b/opentech/apply/activity/messaging.py index 5e0f88023248b4f876e43ef348fd58617c47e7dc..580b98fa1305d3d115a95a491dd3c55c11c82281 100644 --- a/opentech/apply/activity/messaging.py +++ b/opentech/apply/activity/messaging.py @@ -40,6 +40,14 @@ class AdapterBase: raise NotImplementedError() +class MessageAdapter(AdapterBase): + messages = { + enum: enum.value + for enum in MESSAGES.__members__.values() + } + + def send_message(self, message, **kwargs): + messages.add_message(kwargs['request'], messages.INFO, message) class ActivityAdapter(AdapterBase): @@ -75,10 +83,13 @@ class ActivityAdapter(AdapterBase): class MessengerBackend: - adapters = [ActivityAdapter()] + adapters = [ + ActivityAdapter(), + MessageAdapter(), + ] - def __call__(self, message_type, user, submission, **kwargs): - return self.send(message_type, user=user, submission=submission, **kwargs) + 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, **kwargs): for adapter in self.adapters: diff --git a/opentech/apply/funds/views.py b/opentech/apply/funds/views.py index 07eff41865a58de26b4f907377310e14f2519d48..41c970d7b71e8cb9488554d80effac363b129e44 100644 --- a/opentech/apply/funds/views.py +++ b/opentech/apply/funds/views.py @@ -100,6 +100,7 @@ class UpdateLeadView(DelegatedViewMixin, UpdateView): response = super().form_valid(form) messenger( MESSAGES.UPDATE_LEAD, + request=self.request, user=self.request.user, submission=form.instance, old=old, diff --git a/opentech/static_src/src/sass/apply/components/_messages.scss b/opentech/static_src/src/sass/apply/components/_messages.scss new file mode 100644 index 0000000000000000000000000000000000000000..d4432782ccd458501c5cbc6b4c9e0f29cdb3502b --- /dev/null +++ b/opentech/static_src/src/sass/apply/components/_messages.scss @@ -0,0 +1,11 @@ +.messages { + + &__text { + padding: 10px; + + &-info { + background: $color--pastel-green; + border: solid 1px darken($color--pastel-green, 20%); + } + } +} diff --git a/opentech/static_src/src/sass/apply/main.scss b/opentech/static_src/src/sass/apply/main.scss index 3f122dd07cd6dfbe816c097559da8ee0477f5b99..ee6fea8b3633d4363fad6d7ec2fc1d48b345d23b 100755 --- a/opentech/static_src/src/sass/apply/main.scss +++ b/opentech/static_src/src/sass/apply/main.scss @@ -44,6 +44,7 @@ @import 'components/traffic-light'; @import 'components/wrapper'; @import 'components/revisions'; +@import 'components/messages'; // Layout @import 'layout/header'; diff --git a/opentech/templates/base-apply.html b/opentech/templates/base-apply.html index a2f3f51fd446a68913a1a0179c18c48479be3af9..4fabf4f6896c544cb7afc4a59db64b94b33d86c2 100644 --- a/opentech/templates/base-apply.html +++ b/opentech/templates/base-apply.html @@ -33,6 +33,14 @@ <body class="{% block body_class %}light-grey-bg template-{{ page.get_verbose_name|slugify }}{% endblock %}"> {% hijack_notification %} + {% if messages %} + <ul class="messages"> + {% for message in messages %} + <li class="messages__text{% if message.tags %} messages__text-{{ message.tags }}"{% endif %}>{{ message }}</li> + {% endfor %} + </ul> + {% endif %} + {% if GOOGLE_TAG_MANAGER_ID %} {# To enable GTM code you need to specify GOOGLE_TAG_MANAGER_ID in production.py or in local.py #} <!-- Google Tag Manager (noscript) -->