Mail links

* adds direct object links into mail templates
* refactors transferring app-model identification data from fore- to background (celery) properly
This commit is contained in:
2023-12-11 13:40:32 +01:00
parent b1e7acc5f4
commit 7b3b40f3c9
22 changed files with 107 additions and 34 deletions

View File

@@ -8,11 +8,13 @@ Created on: 16.11.21
import shutil
from django.contrib import messages
from django.urls import reverse
from analysis.settings import LKOMPVZVO_PUBLISH_DATE
from codelist.models import KonovaCode
from compensation.settings import COMPENSATION_IDENTIFIER_TEMPLATE, COMPENSATION_IDENTIFIER_LENGTH, \
COMPENSATION_LANIS_LAYER_NAME_RECORDED, COMPENSATION_LANIS_LAYER_NAME_UNRECORDED, COMPENSATION_LANIS_LAYER_NAME_UNRECORDED_OLD_ENTRY
from konova.sub_settings.django_settings import BASE_URL
from user.models import User, Team
from django.db import models, transaction
from django.db.models import QuerySet, Sum
@@ -307,6 +309,13 @@ class Compensation(AbstractCompensation, CEFMixin, CoherenceMixin, PikMixin):
def __str__(self):
return "{}".format(self.identifier)
def get_detail_url(self):
return reverse("compensation:detail", args=(self.id,))
def get_detail_url_absolute(self):
return BASE_URL + self.get_detail_url()
def save(self, *args, **kwargs):
if self.identifier is None or len(self.identifier) == 0:
# Create new identifier is none was given

View File

@@ -11,6 +11,7 @@ from django.urls import reverse
from compensation.settings import ECO_ACCOUNT_IDENTIFIER_TEMPLATE, ECO_ACCOUNT_IDENTIFIER_LENGTH, \
ECO_ACCOUNT_LANIS_LAYER_NAME_RECORDED, ECO_ACCOUNT_LANIS_LAYER_NAME_UNRECORDED
from konova.sub_settings.django_settings import BASE_URL
from konova.utils.message_templates import DEDUCTION_REMOVED, DOCUMENT_REMOVED_TEMPLATE
from django.core.validators import MinValueValidator
from django.db import models
@@ -58,6 +59,12 @@ class EcoAccount(AbstractCompensation, ShareableObjectMixin, RecordableObjectMix
def __str__(self):
return f"{self.identifier} ({self.title})"
def get_detail_url(self):
return reverse("compensation:acc:detail", args=(self.id,))
def get_detail_url_absolute(self):
return BASE_URL + self.get_detail_url()
def save(self, *args, **kwargs):
if self.identifier is None or len(self.identifier) == 0:
# Create new identifier if none was given
@@ -161,12 +168,12 @@ class EcoAccount(AbstractCompensation, ShareableObjectMixin, RecordableObjectMix
# 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.id, self.__class__, user_id, data_change)
celery_send_mail_deduction_changed.delay(self.id, self.get_app_object_tuple(), 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.id, self.__class__, team_id, data_change)
celery_send_mail_deduction_changed_team.delay(self.id, self.get_app_object_tuple(), team_id, data_change)
def update_deductable_rest(self):
"""