diff --git a/konova/models/object.py b/konova/models/object.py index 8353a04d..a27398de 100644 --- a/konova/models/object.py +++ b/konova/models/object.py @@ -12,7 +12,8 @@ from abc import abstractmethod from django.contrib import messages from konova.tasks import celery_send_mail_shared_access_removed, celery_send_mail_shared_access_given, \ - celery_send_mail_shared_data_recorded, celery_send_mail_shared_data_unrecorded, celery_send_mail_shared_data_deleted + celery_send_mail_shared_data_recorded, celery_send_mail_shared_data_unrecorded, \ + celery_send_mail_shared_data_deleted, celery_send_mail_shared_data_checked from user.models import User from django.core.exceptions import ObjectDoesNotExist from django.http import HttpRequest @@ -324,6 +325,12 @@ class CheckableObjectMixin(models.Model): action = UserActionLogEntry.get_checked_action(user) self.checked = action self.save() + + # Send mail + shared_users = self.users.all().values_list("id", flat=True) + for user_id in shared_users: + celery_send_mail_shared_data_checked.delay(self.identifier, user_id) + self.log.add(action) return action diff --git a/konova/tasks.py b/konova/tasks.py index 16925e57..a463374c 100644 --- a/konova/tasks.py +++ b/konova/tasks.py @@ -51,3 +51,10 @@ def celery_send_mail_shared_data_deleted(obj_identifier, user_id): from user.models import User user = User.objects.get(id=user_id) user.send_mail_shared_data_deleted(obj_identifier) + + +@shared_task +def celery_send_mail_shared_data_checked(obj_identifier, user_id): + from user.models import User + user = User.objects.get(id=user_id) + user.send_mail_shared_data_checked(obj_identifier) diff --git a/konova/utils/mailer.py b/konova/utils/mailer.py index b919164d..9c273ff6 100644 --- a/konova/utils/mailer.py +++ b/konova/utils/mailer.py @@ -138,7 +138,7 @@ class Mailer: ) def send_mail_shared_data_deleted(self, obj_identifier, user): - """ Send a mail if user just got access to the object + """ Send a mail if shared data has just been deleted Args: obj_identifier (str): The object identifier @@ -159,3 +159,25 @@ class Mailer: msg ) + def send_mail_shared_data_checked(self, obj_identifier, user): + """ Send a mail if shared data just has been checked + + Args: + obj_identifier (str): The object identifier + + Returns: + + """ + context = { + "user": user, + "obj_identifier": obj_identifier, + "EMAIL_REPLY_TO": EMAIL_REPLY_TO, + } + msg = render_to_string("email/checking/shared_data_checked.html", context) + user_mail_address = [user.email] + self.send( + user_mail_address, + _("{} - Shared data checked").format(obj_identifier), + msg + ) + diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 0549af94..2790b18b 100644 Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index e9ecf952..54fd22a7 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -26,7 +26,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-12 15:36+0100\n" +"POT-Creation-Date: 2022-01-12 15:43+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1773,6 +1773,10 @@ msgstr "{} - Freigegebene Daten entzeichnet" msgid "{} - Shared data deleted" msgstr "{} - Freigegebene Daten gelöscht" +#: konova/utils/mailer.py:180 +msgid "{} - Shared data checked" +msgstr "{} - Freigegebene Daten geprüft" + #: konova/utils/message_templates.py:11 msgid "There was an error on this form." msgstr "Es gab einen Fehler im Formular." @@ -1887,10 +1891,11 @@ msgstr "Alle" msgid "News" msgstr "Neuigkeiten" -#: templates/email/deleting/shared_data_deleted.html:4 -msgid "Shared data deleted" -msgstr "Freigegebene Daten gelöscht" +#: templates/email/checking/shared_data_checked.html:4 +msgid "Shared data checked" +msgstr "Freigegebene Daten geprüft" +#: templates/email/checking/shared_data_checked.html:8 #: templates/email/deleting/shared_data_deleted.html:8 #: templates/email/recording/shared_data_recorded.html:8 #: templates/email/recording/shared_data_unrecorded.html:8 @@ -1899,6 +1904,31 @@ msgstr "Freigegebene Daten gelöscht" msgid "Hello " msgstr "Hallo " +#: templates/email/checking/shared_data_checked.html:10 +msgid "the following dataset has just been checked" +msgstr "der folgende Datensatz wurde soeben geprüft " + +#: templates/email/checking/shared_data_checked.html:14 +msgid "" +"This means, the responsible registration office just confirmed the " +"correctness of this dataset." +msgstr "" +"Das bedeutet, dass die zuständige Zulassungsbehörde die Korrektheit des Datensatzes " +"soeben bestätigt hat." + +#: templates/email/checking/shared_data_checked.html:17 +#: templates/email/deleting/shared_data_deleted.html:17 +#: templates/email/recording/shared_data_recorded.html:17 +#: templates/email/recording/shared_data_unrecorded.html:17 +#: templates/email/sharing/shared_access_given.html:18 +#: templates/email/sharing/shared_access_removed.html:18 +msgid "Best regards" +msgstr "Beste Grüße" + +#: templates/email/deleting/shared_data_deleted.html:4 +msgid "Shared data deleted" +msgstr "Freigegebene Daten gelöscht" + #: templates/email/deleting/shared_data_deleted.html:10 msgid "the following dataset has just been deleted" msgstr "der folgende Datensatz wurde soeben gelöscht " @@ -1911,14 +1941,6 @@ msgstr "" "Falls das nicht hätte passieren dürfen, kontaktieren Sie uns bitte. In der E-" "mail Signatur finden Sie weitere Kontaktinformationen." -#: templates/email/deleting/shared_data_deleted.html:17 -#: templates/email/recording/shared_data_recorded.html:17 -#: templates/email/recording/shared_data_unrecorded.html:17 -#: templates/email/sharing/shared_access_given.html:18 -#: templates/email/sharing/shared_access_removed.html:18 -msgid "Best regards" -msgstr "Beste Grüße" - #: templates/email/recording/shared_data_recorded.html:4 msgid "Shared data recorded" msgstr "Freigegebene Daten verzeichnet" diff --git a/templates/email/checking/shared_data_checked.html b/templates/email/checking/shared_data_checked.html new file mode 100644 index 00000000..ccc0bbf3 --- /dev/null +++ b/templates/email/checking/shared_data_checked.html @@ -0,0 +1,26 @@ +{% load i18n %} + +
+

{% trans 'Shared data checked' %}

+

{{obj_identifier}}

+
+
+ {% trans 'Hello ' %} {{user.username}}, +
+ {% trans 'the following dataset has just been checked' %} +
+ '{{obj_identifier}}' +
+ {% trans 'This means, the responsible registration office just confirmed the correctness of this dataset.' %} +
+
+ {% trans 'Best regards' %} +
+ KSP +
+
+
+ {% include 'email/signature.html' %} +
+
+ diff --git a/user/models/user.py b/user/models/user.py index 12f138e7..837f0c6c 100644 --- a/user/models/user.py +++ b/user/models/user.py @@ -90,3 +90,17 @@ class User(AbstractUser): if notification_set: mailer = Mailer() mailer.send_mail_shared_data_deleted(obj_identifier, self) + + def send_mail_shared_data_checked(self, obj_identifier): + """ Sends a mail to the user in case of shared data has been deleted + + Args: + obj_identifier (): + + Returns: + + """ + notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_DATA_CHECKED) + if notification_set: + mailer = Mailer() + mailer.send_mail_shared_data_checked(obj_identifier, self)