From 386caac193de2d62b5964a0a7d0500e8843aee06 Mon Sep 17 00:00:00 2001 From: Todd Dembrey <todd.dembrey@torchbox.com> Date: Mon, 23 Jul 2018 17:28:45 +0100 Subject: [PATCH] Add the messaging adaptor for the django messages --- opentech/apply/activity/messaging.py | 17 ++++++++++++++--- opentech/apply/funds/views.py | 1 + .../src/sass/apply/components/_messages.scss | 11 +++++++++++ opentech/static_src/src/sass/apply/main.scss | 1 + opentech/templates/base-apply.html | 8 ++++++++ 5 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 opentech/static_src/src/sass/apply/components/_messages.scss diff --git a/opentech/apply/activity/messaging.py b/opentech/apply/activity/messaging.py index 5e0f88023..580b98fa1 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 07eff4186..41c970d7b 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 000000000..d4432782c --- /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 3f122dd07..ee6fea8b3 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 a2f3f51fd..4fabf4f68 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) --> -- GitLab