From 4138481a1b2276696b378a4af424e20c4baf7f62 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Wed, 10 Aug 2022 08:03:18 +0200 Subject: [PATCH 1/3] New Notification * adds new notification setting to user settings form * adds translations * adds initial creating of ENUM on setup command --- konova/management/commands/setup_data.py | 3 +- locale/de/LC_MESSAGES/django.mo | Bin 44074 -> 44182 bytes locale/de/LC_MESSAGES/django.po | 82 ++++++++++++----------- user/enums.py | 3 +- user/forms.py | 2 +- 5 files changed, 49 insertions(+), 41 deletions(-) diff --git a/konova/management/commands/setup_data.py b/konova/management/commands/setup_data.py index 4a5683cd..078b547e 100644 --- a/konova/management/commands/setup_data.py +++ b/konova/management/commands/setup_data.py @@ -28,4 +28,5 @@ USER_NOTIFICATIONS_NAMES = { "NOTIFY_ON_SHARED_DATA_RECORDED": _("On shared data recorded"), "NOTIFY_ON_SHARED_DATA_DELETED": _("On shared data deleted"), "NOTIFY_ON_SHARED_DATA_CHECKED": _("On shared data checked"), -} \ No newline at end of file + "NOTIFY_ON_DEDUCTION_CHANGES": _("On deduction changes"), +} diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 5b2d55a9dbb4a98c46dd7d7eb3f0612c61cd9508..d1cbdfba463cad7b0e3308a74702bbfb3158c120 100644 GIT binary patch delta 11374 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 diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 1da188a2..893d4384 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-08-08 14:39+0200\n" +"POT-Creation-Date: 2022-08-10 08:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -55,7 +55,7 @@ msgstr "Einträge erstellt bis..." #: analysis/forms.py:49 compensation/forms/forms.py:77 #: compensation/templates/compensation/detail/eco_account/view.html:59 #: compensation/templates/compensation/report/eco_account/report.html:16 -#: compensation/utils/quality.py:113 ema/templates/ema/detail/view.html:49 +#: compensation/utils/quality.py:111 ema/templates/ema/detail/view.html:49 #: ema/templates/ema/report/report.html:16 ema/utils/quality.py:26 #: intervention/forms/forms.py:102 #: intervention/templates/intervention/detail/view.html:56 @@ -297,8 +297,8 @@ msgstr "Gesetz" #: analysis/templates/analysis/reports/includes/old_data/amount.html:17 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:33 -#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:28 -#: ema/templates/ema/detail/includes/deadlines.html:28 +#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:33 +#: ema/templates/ema/detail/includes/deadlines.html:33 msgid "Type" msgstr "Typ" @@ -378,10 +378,10 @@ msgstr "Kompensation XY; Flur ABC" #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:39 #: compensation/templates/compensation/detail/compensation/includes/documents.html:34 #: compensation/templates/compensation/detail/eco_account/includes/actions.html:34 -#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:34 +#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:39 #: compensation/templates/compensation/detail/eco_account/includes/documents.html:34 #: ema/templates/ema/detail/includes/actions.html:34 -#: ema/templates/ema/detail/includes/deadlines.html:34 +#: ema/templates/ema/detail/includes/deadlines.html:39 #: ema/templates/ema/detail/includes/documents.html:34 #: intervention/forms/forms.py:198 intervention/forms/modalForms.py:175 #: intervention/templates/intervention/detail/includes/documents.html:34 @@ -399,7 +399,7 @@ msgstr "Zusätzlicher Kommentar" #: compensation/forms/forms.py:93 #: compensation/templates/compensation/detail/eco_account/view.html:63 #: compensation/templates/compensation/report/eco_account/report.html:20 -#: compensation/utils/quality.py:115 ema/templates/ema/detail/view.html:53 +#: compensation/utils/quality.py:113 ema/templates/ema/detail/view.html:53 #: ema/templates/ema/report/report.html:20 ema/utils/quality.py:28 #: intervention/forms/forms.py:130 #: intervention/templates/intervention/detail/view.html:60 @@ -485,7 +485,7 @@ msgstr "Neue Kompensation" msgid "Edit compensation" msgstr "Bearbeite Kompensation" -#: compensation/forms/forms.py:356 compensation/utils/quality.py:97 +#: compensation/forms/forms.py:356 compensation/utils/quality.py:95 msgid "Available Surface" msgstr "Verfügbare Fläche" @@ -495,7 +495,7 @@ msgstr "Die für Abbuchungen zur Verfügung stehende Menge" #: compensation/forms/forms.py:368 #: compensation/templates/compensation/detail/eco_account/view.html:67 -#: compensation/utils/quality.py:85 +#: compensation/utils/quality.py:83 msgid "Agreement date" msgstr "Vereinbarungsdatum" @@ -598,8 +598,8 @@ msgstr "Fristart wählen" #: compensation/forms/modalForms.py:345 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:36 -#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31 -#: ema/templates/ema/detail/includes/deadlines.html:31 +#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:36 +#: ema/templates/ema/detail/includes/deadlines.html:36 #: intervention/forms/modalForms.py:149 msgid "Date" msgstr "Datum" @@ -618,8 +618,8 @@ msgstr "Geben Sie die Daten der neuen Frist ein" #: compensation/forms/modalForms.py:389 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:64 -#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:57 -#: ema/templates/ema/detail/includes/deadlines.html:57 +#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:62 +#: ema/templates/ema/detail/includes/deadlines.html:62 msgid "Edit deadline" msgstr "Frist/Termin bearbeiten" @@ -803,13 +803,13 @@ msgstr "Menge" #: compensation/templates/compensation/detail/compensation/includes/states-after.html:41 #: compensation/templates/compensation/detail/compensation/includes/states-before.html:41 #: compensation/templates/compensation/detail/eco_account/includes/actions.html:39 -#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:38 +#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:43 #: compensation/templates/compensation/detail/eco_account/includes/deductions.html:41 #: compensation/templates/compensation/detail/eco_account/includes/documents.html:38 #: compensation/templates/compensation/detail/eco_account/includes/states-after.html:41 #: compensation/templates/compensation/detail/eco_account/includes/states-before.html:41 #: ema/templates/ema/detail/includes/actions.html:38 -#: ema/templates/ema/detail/includes/deadlines.html:38 +#: ema/templates/ema/detail/includes/deadlines.html:43 #: ema/templates/ema/detail/includes/documents.html:38 #: ema/templates/ema/detail/includes/states-after.html:40 #: ema/templates/ema/detail/includes/states-before.html:40 @@ -883,12 +883,14 @@ msgid "Add new deadline" msgstr "Frist/Termin hinzufügen" #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:25 +#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:25 +#: ema/templates/ema/detail/includes/deadlines.html:25 msgid "Missing finished deadline " msgstr "Umsetzungstermin fehlt" #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:67 -#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:60 -#: ema/templates/ema/detail/includes/deadlines.html:60 +#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:65 +#: ema/templates/ema/detail/includes/deadlines.html:65 msgid "Remove deadline" msgstr "Frist löschen" @@ -932,7 +934,7 @@ msgstr "Dokument löschen" #: compensation/templates/compensation/detail/compensation/includes/states-after.html:8 #: compensation/templates/compensation/detail/eco_account/includes/states-after.html:8 -#: compensation/utils/quality.py:42 +#: compensation/utils/quality.py:40 #: ema/templates/ema/detail/includes/states-after.html:8 msgid "States after" msgstr "Zielzustand" @@ -978,7 +980,7 @@ msgstr "Zustand entfernen" #: compensation/templates/compensation/detail/compensation/includes/states-before.html:8 #: compensation/templates/compensation/detail/eco_account/includes/states-before.html:8 -#: compensation/utils/quality.py:40 +#: compensation/utils/quality.py:38 #: ema/templates/ema/detail/includes/states-before.html:8 msgid "States before" msgstr "Ausgangszustand" @@ -1188,25 +1190,25 @@ msgstr "Abbuchungen für" msgid "None" msgstr "-" -#: compensation/utils/quality.py:37 +#: compensation/utils/quality.py:35 msgid "States unequal" msgstr "Ungleiche Zustandsflächenmengen" -#: compensation/utils/quality.py:61 +#: compensation/utils/quality.py:59 msgid "Finished deadlines" msgstr "Umsetzungstermin" -#: compensation/utils/quality.py:87 intervention/utils/quality.py:84 +#: compensation/utils/quality.py:85 intervention/utils/quality.py:84 msgid "Legal data" msgstr "Rechtliche Daten" -#: compensation/utils/quality.py:101 +#: compensation/utils/quality.py:99 msgid "Deductable surface can not be larger than state surface" msgstr "" "Die abbuchbare Fläche darf die Gesamtfläche der Zielzustände nicht " "überschreiten" -#: compensation/utils/quality.py:117 ema/utils/quality.py:30 +#: compensation/utils/quality.py:115 ema/utils/quality.py:30 #: intervention/utils/quality.py:55 msgid "Responsible data" msgstr "Daten zu den verantwortlichen Stellen" @@ -1220,17 +1222,17 @@ msgid "Compensation {} edited" msgstr "Kompensation {} bearbeitet" #: compensation/views/compensation.py:182 compensation/views/eco_account.py:173 -#: ema/views.py:240 intervention/views.py:338 +#: ema/views.py:241 intervention/views.py:338 msgid "Edit {}" msgstr "Bearbeite {}" -#: compensation/views/compensation.py:269 compensation/views/eco_account.py:359 -#: ema/views.py:194 intervention/views.py:542 +#: compensation/views/compensation.py:269 compensation/views/eco_account.py:360 +#: ema/views.py:195 intervention/views.py:542 msgid "Log" msgstr "Log" -#: compensation/views/compensation.py:613 compensation/views/eco_account.py:727 -#: ema/views.py:558 intervention/views.py:688 +#: compensation/views/compensation.py:613 compensation/views/eco_account.py:728 +#: ema/views.py:559 intervention/views.py:688 msgid "Report {}" msgstr "Bericht {}" @@ -1246,36 +1248,36 @@ msgstr "Ökokonto {} hinzugefügt" msgid "Eco-Account {} edited" msgstr "Ökokonto {} bearbeitet" -#: compensation/views/eco_account.py:276 +#: compensation/views/eco_account.py:277 msgid "Eco-account removed" msgstr "Ökokonto entfernt" -#: compensation/views/eco_account.py:380 ema/views.py:282 +#: compensation/views/eco_account.py:381 ema/views.py:283 #: intervention/views.py:641 msgid "{} unrecorded" msgstr "{} entzeichnet" -#: compensation/views/eco_account.py:380 ema/views.py:282 +#: compensation/views/eco_account.py:381 ema/views.py:283 #: intervention/views.py:641 msgid "{} recorded" msgstr "{} verzeichnet" -#: compensation/views/eco_account.py:804 ema/views.py:628 +#: compensation/views/eco_account.py:805 ema/views.py:629 #: intervention/views.py:439 msgid "{} has already been shared with you" msgstr "{} wurde bereits für Sie freigegeben" -#: compensation/views/eco_account.py:809 ema/views.py:633 +#: compensation/views/eco_account.py:810 ema/views.py:634 #: intervention/views.py:444 msgid "{} has been shared with you" msgstr "{} ist nun für Sie freigegeben" -#: compensation/views/eco_account.py:816 ema/views.py:640 +#: compensation/views/eco_account.py:817 ema/views.py:641 #: intervention/views.py:451 msgid "Share link invalid" msgstr "Freigabelink ungültig" -#: compensation/views/eco_account.py:839 ema/views.py:663 +#: compensation/views/eco_account.py:840 ema/views.py:664 #: intervention/views.py:474 msgid "Share settings updated" msgstr "Freigabe Einstellungen aktualisiert" @@ -1316,11 +1318,11 @@ msgstr "EMAs - Übersicht" msgid "EMA {} added" msgstr "EMA {} hinzugefügt" -#: ema/views.py:230 +#: ema/views.py:231 msgid "EMA {} edited" msgstr "EMA {} bearbeitet" -#: ema/views.py:263 +#: ema/views.py:264 msgid "EMA removed" msgstr "EMA entfernt" @@ -1799,6 +1801,10 @@ msgstr "Wenn meine freigegebenen Daten gelöscht wurden" msgid "On shared data checked" msgstr "Wenn meine freigegebenen Daten geprüft wurden" +#: konova/management/commands/setup_data.py:31 +msgid "On deduction changes" +msgstr "Wenn eine Abbuchung zu meinem Ökokonto verändert oder gelöscht wird" + #: konova/models/deadline.py:18 msgid "Finished" msgstr "Umgesetzt bis" diff --git a/user/enums.py b/user/enums.py index 8d0c34de..04f27b77 100644 --- a/user/enums.py +++ b/user/enums.py @@ -13,4 +13,5 @@ class UserNotificationEnum(BaseEnum): NOTIFY_ON_SHARED_DATA_RECORDED = "NOTIFY_ON_SHARED_DATA_RECORDED" # notifies in case data has been "verzeichnet" NOTIFY_ON_SHARED_DATA_DELETED = "NOTIFY_ON_SHARED_DATA_DELETED" # notifies in case data has been deleted NOTIFY_ON_SHARED_DATA_CHECKED = "NOTIFY_ON_SHARED_DATA_CHECKED" # notifies in case shared data has been checked - NOTIFY_ON_SHARED_ACCESS_GAINED = "NOTIFY_ON_SHARED_ACCESS_GAINED" # notifies in case new access has been gained \ No newline at end of file + NOTIFY_ON_SHARED_ACCESS_GAINED = "NOTIFY_ON_SHARED_ACCESS_GAINED" # notifies in case new access has been gained + NOTIFY_ON_DEDUCTION_CHANGES = "NOTIFY_ON_DEDUCTION_CHANGES" # notifies in case any changes (edit|remove) have been performed on a deduction of the user's ecoaccounts \ No newline at end of file diff --git a/user/forms.py b/user/forms.py index a92c6b00..12688b46 100644 --- a/user/forms.py +++ b/user/forms.py @@ -7,7 +7,7 @@ Created on: 08.07.21 """ from dal import autocomplete from django import forms -from django.db import IntegrityError, transaction +from django.db import transaction from django.urls import reverse, reverse_lazy from django.utils.translation import gettext_lazy as _ From ff26019b6efddaf4a90455467a14c83fb25994b5 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Wed, 10 Aug 2022 08:59:24 +0200 Subject: [PATCH 2/3] Mail sending * adds mail sending logic for new notification setting * adds new templates for user and team based sending * enhances all email template layout * adds translations --- compensation/models/eco_account.py | 22 ++++++- intervention/forms/modalForms.py | 34 ++++++++--- konova/tasks.py | 14 +++++ konova/utils/mailer.py | 55 ++++++++++++++++++ locale/de/LC_MESSAGES/django.mo | Bin 44182 -> 44532 bytes locale/de/LC_MESSAGES/django.po | 54 +++++++++++++---- templates/email/api/verify_token.html | 1 + .../email/checking/shared_data_checked.html | 1 + .../checking/shared_data_checked_team.html | 1 + .../email/deleting/shared_data_deleted.html | 1 + .../deleting/shared_data_deleted_team.html | 1 + templates/email/other/deduction_changed.html | 50 ++++++++++++++++ .../email/other/deduction_changed_team.html | 50 ++++++++++++++++ .../email/recording/shared_data_recorded.html | 1 + .../recording/shared_data_recorded_team.html | 1 + .../recording/shared_data_unrecorded.html | 1 + .../shared_data_unrecorded_team.html | 1 + .../email/sharing/shared_access_given.html | 1 + .../sharing/shared_access_given_team.html | 1 + .../email/sharing/shared_access_removed.html | 1 + .../sharing/shared_access_removed_team.html | 1 + user/models/team.py | 14 +++++ user/models/user.py | 16 +++++ 23 files changed, 300 insertions(+), 22 deletions(-) create mode 100644 templates/email/other/deduction_changed.html create mode 100644 templates/email/other/deduction_changed_team.html diff --git a/compensation/models/eco_account.py b/compensation/models/eco_account.py index 3d48b691..42a202f7 100644 --- a/compensation/models/eco_account.py +++ b/compensation/models/eco_account.py @@ -21,6 +21,7 @@ from compensation.models.compensation import AbstractCompensation, PikMixin from compensation.utils.quality import EcoAccountQualityChecker from konova.models import ShareableObjectMixin, RecordableObjectMixin, AbstractDocument, BaseResource, \ generate_document_file_upload_path +from konova.tasks import celery_send_mail_deduction_changed, celery_send_mail_deduction_changed_team class EcoAccount(AbstractCompensation, ShareableObjectMixin, RecordableObjectMixin, PikMixin): @@ -161,6 +162,25 @@ class EcoAccount(AbstractCompensation, ShareableObjectMixin, RecordableObjectMix """ return reverse("compensation:acc:share", args=(self.id, self.access_token)) + def send_notification_mail_on_deduction_change(self, data_change: dict): + """ Sends notification mails for changes on the deduction + + Args: + data_change (): + + Returns: + + """ + # Send mail + shared_users = self.shared_users.values_list("id", flat=True) + for user_id in shared_users: + celery_send_mail_deduction_changed.delay(self.identifier, self.title, user_id, data_change) + + # Send mail + shared_teams = self.shared_teams.values_list("id", flat=True) + for team_id in shared_teams: + celery_send_mail_deduction_changed_team.delay(self.identifier, self.title, team_id, data_change) + class EcoAccountDocument(AbstractDocument): """ @@ -251,4 +271,4 @@ class EcoAccountDeduction(BaseResource): if user is not None: self.intervention.mark_as_edited(user, edit_comment=DEDUCTION_REMOVED) self.account.mark_as_edited(user, edit_comment=DEDUCTION_REMOVED) - super().delete(*args, **kwargs) \ No newline at end of file + super().delete(*args, **kwargs) diff --git a/intervention/forms/modalForms.py b/intervention/forms/modalForms.py index 07911be9..b6445a55 100644 --- a/intervention/forms/modalForms.py +++ b/intervention/forms/modalForms.py @@ -508,28 +508,44 @@ class EditEcoAccountDeductionModalForm(NewDeductionModalForm): deduction = self.deduction form_account = self.cleaned_data.get("account", None) form_intervention = self.cleaned_data.get("intervention", None) - current_account = deduction.account - current_intervention = deduction.intervention - + old_account = deduction.account + old_intervention = deduction.intervention + old_surface = deduction.surface # If account or intervention has been changed, we put that change in the logs just as if the deduction has # been removed for this entry. Act as if the deduction is newly created for the new entries - if current_account != form_account: - current_account.mark_as_edited(self.user, self.request, edit_comment=DEDUCTION_REMOVED) + if old_account != form_account: + old_account.mark_as_edited(self.user, self.request, edit_comment=DEDUCTION_REMOVED) form_account.mark_as_edited(self.user, self.request, edit_comment=DEDUCTION_ADDED) else: - current_account.mark_as_edited(self.user, self.request, edit_comment=DEDUCTION_EDITED) + old_account.mark_as_edited(self.user, self.request, edit_comment=DEDUCTION_EDITED) - if current_intervention != form_intervention: - current_intervention.mark_as_edited(self.user, self.request, edit_comment=DEDUCTION_REMOVED) + if old_intervention != form_intervention: + old_intervention.mark_as_edited(self.user, self.request, edit_comment=DEDUCTION_REMOVED) form_intervention.mark_as_edited(self.user, self.request, edit_comment=DEDUCTION_ADDED) else: - current_intervention.mark_as_edited(self.user, self.request, edit_comment=DEDUCTION_EDITED) + old_intervention.mark_as_edited(self.user, self.request, edit_comment=DEDUCTION_EDITED) deduction.account = form_account deduction.intervention = self.cleaned_data.get("intervention", None) deduction.surface = self.cleaned_data.get("surface", None) deduction.save() + + data_changes = { + "surface": { + "old": old_surface, + "new": deduction.surface, + }, + "intervention": { + "old": old_intervention.identifier, + "new": deduction.intervention.identifier, + }, + "account": { + "old": old_account.identifier, + "new": deduction.account.identifier, + } + } + old_account.send_notification_mail_on_deduction_change(data_changes) return deduction diff --git a/konova/tasks.py b/konova/tasks.py index 798effb4..65801219 100644 --- a/konova/tasks.py +++ b/konova/tasks.py @@ -106,3 +106,17 @@ def celery_send_mail_shared_data_checked_team(obj_identifier, obj_title=None, te from user.models import Team team = Team.objects.get(id=team_id) team.send_mail_shared_data_checked(obj_identifier, obj_title) + + +@shared_task +def celery_send_mail_deduction_changed_team(obj_identifier, obj_title=None, team_id=None, data_changes=None): + from user.models import Team + team = Team.objects.get(id=team_id) + team.send_mail_deduction_changed(obj_identifier, obj_title, data_changes) + + +@shared_task +def celery_send_mail_deduction_changed(obj_identifier, obj_title=None, user_id=None, data_changes=None): + from user.models import User + user = User.objects.get(id=user_id) + user.send_mail_deduction_changed(obj_identifier, obj_title, data_changes) diff --git a/konova/utils/mailer.py b/konova/utils/mailer.py index dd8eef1f..92bd2b60 100644 --- a/konova/utils/mailer.py +++ b/konova/utils/mailer.py @@ -207,6 +207,33 @@ class Mailer: msg ) + def send_mail_deduction_changed_team(self, obj_identifier, obj_title, team, data_changes): + """ Send a mail if deduction has been changed + + Args: + obj_identifier (str): Identifier of the main object + obj_title (str): Title of the main object + team (Team): Team to be notified + data_changes (dict): Contains the old|new changes of the deduction changes + + Returns: + + """ + context = { + "team": team, + "obj_identifier": obj_identifier, + "obj_title": obj_title, + "EMAIL_REPLY_TO": EMAIL_REPLY_TO, + "data_changes": data_changes, + } + msg = render_to_string("email/other/deduction_changed_team.html", context) + user_mail_address = team.users.values_list("email", flat=True) + self.send( + user_mail_address, + _("{} - Deduction changed").format(obj_identifier), + msg + ) + def send_mail_shared_data_deleted_team(self, obj_identifier, obj_title, team): """ Send a mail if data has just been deleted @@ -322,6 +349,34 @@ class Mailer: msg ) + def send_mail_deduction_changed(self, obj_identifier, obj_title, user, data_changes): + """ Send a mail if deduction has been changed + + Args: + obj_identifier (str): Identifier of the main object + obj_title (str): Title of the main object + user (User): User to be notified + data_changes (dict): Contains the old|new changes of the deduction changes + + + Returns: + + """ + context = { + "user": user, + "obj_identifier": obj_identifier, + "obj_title": obj_title, + "EMAIL_REPLY_TO": EMAIL_REPLY_TO, + "data_changes": data_changes, + } + msg = render_to_string("email/other/deduction_changed.html", context) + user_mail_address = [user.email] + self.send( + user_mail_address, + _("{} - Deduction changed").format(obj_identifier), + msg + ) + def send_mail_verify_api_token(self, user): """ Send a mail if a user creates a new token diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index d1cbdfba463cad7b0e3308a74702bbfb3158c120..6ee76a29ae6b97210a548c54b5f64f6f34f30f49 100644 GIT binary patch delta 12475 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 J%BBIi{s*k@Fwg)1 delta 12160 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 RJ0xq)mOtII7H#e0_CI69)-?bC diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 893d4384..b4b18615 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-08-10 08:01+0200\n" +"POT-Creation-Date: 2022-08-10 08:37+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -241,6 +241,7 @@ msgstr "" #: ema/templates/ema/detail/includes/states-after.html:36 #: ema/templates/ema/detail/includes/states-before.html:36 #: intervention/forms/modalForms.py:364 +#: templates/email/other/deduction_changed.html:29 msgid "Surface" msgstr "Fläche" @@ -307,6 +308,7 @@ msgstr "Typ" #: intervention/forms/modalForms.py:382 intervention/tables.py:87 #: intervention/templates/intervention/detail/view.html:19 #: konova/templates/konova/includes/quickstart/interventions.html:4 +#: templates/email/other/deduction_changed.html:24 #: templates/navbars/navbar.html:22 msgid "Intervention" msgstr "Eingriff" @@ -696,14 +698,14 @@ msgstr "" msgid "Pieces" msgstr "Stück" -#: compensation/models/eco_account.py:55 +#: compensation/models/eco_account.py:56 msgid "" "Deductable surface can not be larger than existing surfaces in after states" msgstr "" "Die abbuchbare Fläche darf die Gesamtfläche der Zielzustände nicht " "überschreiten" -#: compensation/models/eco_account.py:62 +#: compensation/models/eco_account.py:63 msgid "" "Deductable surface can not be smaller than the sum of already existing " "deductions. Please contact the responsible users for the deductions!" @@ -1915,23 +1917,27 @@ msgstr "{} - Zugriff entzogen" msgid "{} - Shared access given" msgstr "{} - Zugriff freigegeben" -#: konova/utils/mailer.py:160 konova/utils/mailer.py:275 +#: konova/utils/mailer.py:160 konova/utils/mailer.py:302 msgid "{} - Shared data unrecorded" msgstr "{} - Freigegebene Daten entzeichnet" -#: konova/utils/mailer.py:183 konova/utils/mailer.py:252 +#: konova/utils/mailer.py:183 konova/utils/mailer.py:279 msgid "{} - Shared data recorded" msgstr "{} - Freigegebene Daten verzeichnet" -#: konova/utils/mailer.py:206 konova/utils/mailer.py:321 +#: konova/utils/mailer.py:206 konova/utils/mailer.py:348 msgid "{} - Shared data checked" msgstr "{} - Freigegebene Daten geprüft" -#: konova/utils/mailer.py:229 konova/utils/mailer.py:298 +#: konova/utils/mailer.py:233 konova/utils/mailer.py:372 +msgid "{} - Deduction changed" +msgstr "{} - Abbuchung geändert" + +#: konova/utils/mailer.py:256 konova/utils/mailer.py:325 msgid "{} - Shared data deleted" msgstr "{} - Freigegebene Daten gelöscht" -#: konova/utils/mailer.py:342 templates/email/api/verify_token.html:4 +#: konova/utils/mailer.py:393 templates/email/api/verify_token.html:4 msgid "Request for new API token" msgstr "Anfrage für neuen API Token" @@ -2235,6 +2241,7 @@ msgstr "" #: templates/email/checking/shared_data_checked_team.html:19 #: templates/email/deleting/shared_data_deleted.html:19 #: templates/email/deleting/shared_data_deleted_team.html:19 +#: templates/email/other/deduction_changed.html:38 #: templates/email/recording/shared_data_recorded.html:19 #: templates/email/recording/shared_data_recorded_team.html:19 #: templates/email/recording/shared_data_unrecorded.html:19 @@ -2253,6 +2260,7 @@ msgstr "Freigegebene Daten geprüft" #: templates/email/checking/shared_data_checked.html:8 #: templates/email/deleting/shared_data_deleted.html:8 +#: templates/email/other/deduction_changed.html:8 #: templates/email/recording/shared_data_recorded.html:8 #: templates/email/recording/shared_data_unrecorded.html:8 #: templates/email/sharing/shared_access_given.html:8 @@ -2295,6 +2303,7 @@ msgstr "der folgende Datensatz wurde soeben gelöscht " #: templates/email/deleting/shared_data_deleted.html:16 #: templates/email/deleting/shared_data_deleted_team.html:16 +#: templates/email/other/deduction_changed.html:35 msgid "" "If this should not have been happened, please contact us. See the signature " "for details." @@ -2302,6 +2311,31 @@ msgstr "" "Falls das nicht hätte passieren dürfen, kontaktieren Sie uns bitte. In der E-" "mail Signatur finden Sie weitere Kontaktinformationen." +#: templates/email/other/deduction_changed.html:4 +msgid "Deduction changed" +msgstr "Abbuchung geändert" + +#: templates/email/other/deduction_changed.html:10 +msgid "a deduction of this eco account has changed:" +msgstr "eine Abbuchung des Ökokontos hat sich geändert:" + +#: templates/email/other/deduction_changed.html:14 +msgid "Attribute" +msgstr "Attribute" + +#: templates/email/other/deduction_changed.html:15 +msgid "Old" +msgstr "Alt" + +#: templates/email/other/deduction_changed.html:16 +#: templates/generic_index.html:43 user/templates/user/team/index.html:22 +msgid "New" +msgstr "Neu" + +#: templates/email/other/deduction_changed.html:19 +msgid "EcoAccount" +msgstr "Ökokonto" + #: templates/email/recording/shared_data_recorded.html:4 #: templates/email/recording/shared_data_recorded_team.html:4 msgid "Shared data recorded" @@ -2499,10 +2533,6 @@ msgstr "* sind Pflichtfelder." msgid "New entry" msgstr "Neuer Eintrag" -#: templates/generic_index.html:43 user/templates/user/team/index.html:22 -msgid "New" -msgstr "Neu" - #: templates/generic_index.html:58 msgid "Search for keywords" msgstr "Nach Schlagwörtern suchen" diff --git a/templates/email/api/verify_token.html b/templates/email/api/verify_token.html index bd12a0fe..355647b2 100644 --- a/templates/email/api/verify_token.html +++ b/templates/email/api/verify_token.html @@ -6,6 +6,7 @@

{% trans 'Hello support' %},
+
{% trans 'you need to verify the API token for user' %}:

diff --git a/templates/email/checking/shared_data_checked.html b/templates/email/checking/shared_data_checked.html index 0b67ecc7..133dae2e 100644 --- a/templates/email/checking/shared_data_checked.html +++ b/templates/email/checking/shared_data_checked.html @@ -7,6 +7,7 @@
{% trans 'Hello ' %} {{user.username}},
+
{% trans 'the following dataset has just been checked' %}
{{obj_identifier}} diff --git a/templates/email/checking/shared_data_checked_team.html b/templates/email/checking/shared_data_checked_team.html index ee813811..6a7a4500 100644 --- a/templates/email/checking/shared_data_checked_team.html +++ b/templates/email/checking/shared_data_checked_team.html @@ -7,6 +7,7 @@
{% trans 'Hello team' %} {{team.name}},
+
{% trans 'the following dataset has just been checked' %}
{{obj_identifier}} diff --git a/templates/email/deleting/shared_data_deleted.html b/templates/email/deleting/shared_data_deleted.html index 272b0fde..7857444c 100644 --- a/templates/email/deleting/shared_data_deleted.html +++ b/templates/email/deleting/shared_data_deleted.html @@ -7,6 +7,7 @@
{% trans 'Hello ' %} {{user.username}},
+
{% trans 'the following dataset has just been deleted' %}
{{obj_identifier}} diff --git a/templates/email/deleting/shared_data_deleted_team.html b/templates/email/deleting/shared_data_deleted_team.html index cedb2a45..0ffa8bbf 100644 --- a/templates/email/deleting/shared_data_deleted_team.html +++ b/templates/email/deleting/shared_data_deleted_team.html @@ -7,6 +7,7 @@
{% trans 'Hello team' %} {{team.name}},
+
{% trans 'the following dataset has just been deleted' %}
{{obj_identifier}} diff --git a/templates/email/other/deduction_changed.html b/templates/email/other/deduction_changed.html new file mode 100644 index 00000000..8129f6b2 --- /dev/null +++ b/templates/email/other/deduction_changed.html @@ -0,0 +1,50 @@ +{% load i18n %} + +
+

{% translate 'Deduction changed' %}

+

{{obj_identifier}}

+
+
+ {% translate 'Hello ' %} {{user.username}}, +
+
+ {% translate 'a deduction of this eco account has changed:' %} +
+
+ + + + + + + + + + + + + + + + + + + + + +
{% translate 'Attribute' %}{% translate 'Old' %}{% translate 'New' %}
{% translate 'EcoAccount' %}{{data_changes.account.old}}{{data_changes.account.new}}
{% translate 'Intervention' %}{{data_changes.intervention.old}}{{data_changes.intervention.new}}
{% translate 'Surface' %}{{data_changes.surface.old}} m²{{data_changes.surface.new}} m²
+
+
+ {% translate 'If this should not have been happened, please contact us. See the signature for details.' %} +
+
+ {% translate 'Best regards' %} +
+ KSP +
+
+
+ {% include 'email/signature.html' %} +
+
+ diff --git a/templates/email/other/deduction_changed_team.html b/templates/email/other/deduction_changed_team.html new file mode 100644 index 00000000..babf36c0 --- /dev/null +++ b/templates/email/other/deduction_changed_team.html @@ -0,0 +1,50 @@ +{% load i18n %} + +
+

{% translate 'Deduction changed' %}

+

{{obj_identifier}}

+
+
+ {% trans 'Hello team' %} {{team.name}}, +
+
+ {% translate 'a deduction of this eco account has changed:' %} +
+
+ + + + + + + + + + + + + + + + + + + + + +
{% translate 'Attribute' %}{% translate 'Old' %}{% translate 'New' %}
{% translate 'EcoAccount' %}{{data_changes.account.old}}{{data_changes.account.new}}
{% translate 'Intervention' %}{{data_changes.intervention.old}}{{data_changes.intervention.new}}
{% translate 'Surface' %}{{data_changes.surface.old}} m²{{data_changes.surface.new}} m²
+
+
+ {% translate 'If this should not have been happened, please contact us. See the signature for details.' %} +
+
+ {% translate 'Best regards' %} +
+ KSP +
+
+
+ {% include 'email/signature.html' %} +
+
+ diff --git a/templates/email/recording/shared_data_recorded.html b/templates/email/recording/shared_data_recorded.html index 6805c928..ccad11e0 100644 --- a/templates/email/recording/shared_data_recorded.html +++ b/templates/email/recording/shared_data_recorded.html @@ -7,6 +7,7 @@
{% trans 'Hello ' %} {{user.username}},
+
{% trans 'the following dataset has just been recorded' %}
{{obj_identifier}} diff --git a/templates/email/recording/shared_data_recorded_team.html b/templates/email/recording/shared_data_recorded_team.html index 12efa8f6..0734bc62 100644 --- a/templates/email/recording/shared_data_recorded_team.html +++ b/templates/email/recording/shared_data_recorded_team.html @@ -7,6 +7,7 @@
{% trans 'Hello team' %} {{team.name}},
+
{% trans 'the following dataset has just been recorded' %}
{{obj_identifier}} diff --git a/templates/email/recording/shared_data_unrecorded.html b/templates/email/recording/shared_data_unrecorded.html index 1e0310ae..3406b750 100644 --- a/templates/email/recording/shared_data_unrecorded.html +++ b/templates/email/recording/shared_data_unrecorded.html @@ -7,6 +7,7 @@
{% trans 'Hello ' %} {{user.username}},
+
{% trans 'the following dataset has just been unrecorded' %}
{{obj_identifier}} diff --git a/templates/email/recording/shared_data_unrecorded_team.html b/templates/email/recording/shared_data_unrecorded_team.html index 64141555..5c0f8560 100644 --- a/templates/email/recording/shared_data_unrecorded_team.html +++ b/templates/email/recording/shared_data_unrecorded_team.html @@ -7,6 +7,7 @@
{% trans 'Hello team' %} {{team.name}},
+
{% trans 'the following dataset has just been unrecorded' %}
{{obj_identifier}} diff --git a/templates/email/sharing/shared_access_given.html b/templates/email/sharing/shared_access_given.html index 140e7a88..6ab759b3 100644 --- a/templates/email/sharing/shared_access_given.html +++ b/templates/email/sharing/shared_access_given.html @@ -7,6 +7,7 @@
{% trans 'Hello ' %} {{user.username}},
+
{% trans 'the following dataset has just been shared with you' %}
{{obj_identifier}} diff --git a/templates/email/sharing/shared_access_given_team.html b/templates/email/sharing/shared_access_given_team.html index 990ba2de..cdf3bb1c 100644 --- a/templates/email/sharing/shared_access_given_team.html +++ b/templates/email/sharing/shared_access_given_team.html @@ -7,6 +7,7 @@
{% trans 'Hello team' %} {{team.name}},
+
{% trans 'the following dataset has just been shared with your team' %}
{{obj_identifier}} diff --git a/templates/email/sharing/shared_access_removed.html b/templates/email/sharing/shared_access_removed.html index d1cbc5bf..b3121117 100644 --- a/templates/email/sharing/shared_access_removed.html +++ b/templates/email/sharing/shared_access_removed.html @@ -7,6 +7,7 @@
{% trans 'Hello ' %} {{user.username}},
+
{% trans 'your shared access, including editing, has been revoked for the dataset ' %}
{{obj_identifier}} diff --git a/templates/email/sharing/shared_access_removed_team.html b/templates/email/sharing/shared_access_removed_team.html index 5472ef73..992f00f8 100644 --- a/templates/email/sharing/shared_access_removed_team.html +++ b/templates/email/sharing/shared_access_removed_team.html @@ -7,6 +7,7 @@
{% trans 'Hello team' %} {{team.name}},
+
{% trans 'your teams shared access, including editing, has been revoked for the dataset ' %}
{{obj_identifier}} diff --git a/user/models/team.py b/user/models/team.py index 5e728e71..7162e977 100644 --- a/user/models/team.py +++ b/user/models/team.py @@ -95,6 +95,20 @@ class Team(UuidModel, DeletableObjectMixin): mailer = Mailer() mailer.send_mail_shared_data_checked_team(obj_identifier, obj_title, self) + def send_mail_deduction_changed(self, obj_identifier, obj_title, data_changes): + """ Sends a mail to the team members in case of changed deduction values + + Args: + obj_identifier (str): Identifier of the main object + obj_title (str): Title of the main object + data_changes (dict): Contains the old|new changes of the deduction changes + + Returns: + + """ + mailer = Mailer() + mailer.send_mail_deduction_changed_team(obj_identifier, obj_title, self, data_changes) + def send_mail_shared_data_deleted(self, obj_identifier, obj_title): """ Sends a mail to the team members in case of deleted data diff --git a/user/models/user.py b/user/models/user.py index b40a3b1b..20d3d50b 100644 --- a/user/models/user.py +++ b/user/models/user.py @@ -145,6 +145,22 @@ class User(AbstractUser): mailer = Mailer() mailer.send_mail_shared_data_checked(obj_identifier, obj_title, self) + def send_mail_deduction_changed(self, obj_identifier, obj_title, data_changes): + """ Sends a mail to the user in case of a changed deduction + + Args: + obj_identifier (str): Identifier of the main object + obj_title (str): Title of the main object + data_changes (dict): Contains the old|new changes of the deduction changes + + Returns: + + """ + notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_DEDUCTION_CHANGES) + if notification_set: + mailer = Mailer() + mailer.send_mail_deduction_changed(obj_identifier, obj_title, self, data_changes) + def get_API_token(self): """ Getter for an API token From 049305c32e1f7d7d8f1285debd2dfda7b88e6e01 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Wed, 10 Aug 2022 09:03:24 +0200 Subject: [PATCH 3/3] Minor changes * updates translation --- locale/de/LC_MESSAGES/django.mo | Bin 44532 -> 44517 bytes locale/de/LC_MESSAGES/django.po | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 6ee76a29ae6b97210a548c54b5f64f6f34f30f49..feda2678e509fe8e667237f2618882f674d2581e 100644 GIT binary patch delta 2071 zcmXZddu+{T9LMqRjykRNHpgW+t(L|~rFAKtxnyhEkhn!jSR!o6uqHzy86gfoL&R-K zt=-zHDq6PHrA30MZDEncR;IDc;xbt>MY2e`pk^`NAJ6mG>v_Jv-|zc{p!XMM>6nXYI2yHp$r#3II2dPR9M|G*e2N>f z@=LQ4j8>YZ;!^B|Yfy!Eq88SGs@EL&z)tFcKA?gqLtJs&j?a zWv)(BuObP&ZyfwX7Xq#RsSY|6&G)c9{*rEL6gYs5hF6 zUGPKfgCC(5upZU=N>oP<`|D?rjs$jSQ|>V=DXBm-;q?fmT+EdT=G`&32#?@4*S!gnFZYumHQ& zy0bD4M=_s@#kc{L?*~-p+AsyLqn^KuTG0QPLw(EK;{xL`%KQV&z_^cBdrzYlbPd(g zd#D1>P=_mA=L+>j<%ywQXaed`zvttnIE48o479T24CMEy#I2}=f1*0^5VgnQy)ID% zvzZS>C3*+7h09S}_=z`;`g%5@7O)kywbiJzR==12uVQeVzzEFS$0vmgkb`YEQJ>q2 z{d`JThq;(q?;M5Wn7@zNSc7?Z7S-x|sD(dAJ(t|Tr;LR-4dV@g*}Dub5?F$12i%*i zL7o0}s1b@taPJ|A+t?7!oKMnQ95mbi;pza?WFi_%=s8$#G zc?oI{=VO0djbW@poq;;kmNlcc>RZ&IyMkKyAO8A%)cuc9g%iJW3rt6yogl*C4F*vh zjU}kly$#3WS=1YKVm3a-9E^VLT3UqKf>MlO1FplLQF*3(A)cGqCLp)S@zf zp#qbbS7RdX$1pbf>&Lt&u`BTw)br<1_h0byOQ=q?p$_#;AMZfj_Xrd8{Xg>;LX9qA z7*#L@^5z+0M&((BipOyl^{s`$TueLc ze%Tg#1Jw6hh1qx%2jDN5gB{*pN8A}2gM)}qMEz}lj5?e(s0FuRGXCV}zu}2^PIPJc M)w0-$*0S8p7blZV+5i9m delta 2081 zcmXZce@xX?7{~D^zzZmtBv*~gMQ(% zzavSX?2H7Do7viCvsriqXXAM+!O(8AIarQmScj`|FKXRCI2SA4HLJ!3oP=NCJ$MG= zIEv{QYcVUunfM4k+hW0;KnEB|W8hEkRm`D3hAB8{k69LmQGp)tmSHyiN>t(+tik7T z0uEp*4q-NajoR13m9X90huT;$p!@lDhn+kRK_@pvaODq#sKK^${%CF<@s zVHCHaPS%N9cMNsKKcOl)hH=d0-tHy8Jx4=3YeX&FhDx*_75FGt;SlOXcfId^4bxC> zb3rjszh>!yW=n_Pz>|2 z3>9b@>I&aLUEx-50`==@L9J^;U2PBQtqpWg|5s_8U|=p*d}y`>8<2->S5QBZ~&*{U#NMhU2c6A>T0r4^P{K}$50h2Ma`cd&`{tiRH>_dzZP|e z^_Yj-F@)WyH_(r|vg4?$`VKSkchttO`R_MT^T&0XgLm51735Tj8}qZsF7EtcUv ztiaQ#1)&~S;&d#aUyMaqjkuw~b{Z)9CkL zDt?L~Jm$ZDCSjQD5=n*6Ze_V2XbK88j3i3l%VoN*F;c zyw881hbi