feat: adds notification
This commit is contained in:
parent
1ab5052d0d
commit
3f40e2fe07
|
|
@ -76,6 +76,20 @@ class EmailTemplate(Enum):
|
||||||
"it": "d-30c6aa9accda4973a940dd25703cb4a9",
|
"it": "d-30c6aa9accda4973a940dd25703cb4a9",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Fremdeinschätzung (Requester → Provider)
|
||||||
|
SELF_EVALUATION_FEEDBACK_REQUESTED = {
|
||||||
|
"de": "d-cf9c6681991d4293a7baccaa5b043c5c",
|
||||||
|
"fr": "d-6b103876807a4a0db6a0c31651c1e8ba",
|
||||||
|
"it": "d-403b2f9d09bb41dc9dc85eed6c35c942",
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fremdeinschätzung (Provider → Requester)
|
||||||
|
SELF_EVALUATION_FEEDBACK_PROVIDED = {
|
||||||
|
"de": "d-e547bff40252458fa802759f2c502e3a",
|
||||||
|
"fr": "d-62aa7ce8639c49319f92edb858bbb1cd",
|
||||||
|
"it": "d-de2b5dfaf5d2470dbeea5d3ea2a6c442",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def send_email(
|
def send_email(
|
||||||
recipient_email: str,
|
recipient_email: str,
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,13 @@ class NotificationTrigger(models.TextChoices):
|
||||||
CASEWORK_EVALUATED = "CASEWORK_EVALUATED", _("Casework Evaluated")
|
CASEWORK_EVALUATED = "CASEWORK_EVALUATED", _("Casework Evaluated")
|
||||||
NEW_FEEDBACK = "NEW_FEEDBACK", _("New Feedback")
|
NEW_FEEDBACK = "NEW_FEEDBACK", _("New Feedback")
|
||||||
|
|
||||||
|
SELF_EVALUATION_FEEDBACK_REQUESTED = "SELF_EVALUATION_FEEDBACK_REQUESTED", _(
|
||||||
|
"Self Evaluation Feedback Requested"
|
||||||
|
)
|
||||||
|
SELF_EVALUATION_FEEDBACK_PROVIDED = "SELF_EVALUATION_FEEDBACK_PROVIDED", _(
|
||||||
|
"Self Evaluation Feedback Provided"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class Notification(AbstractNotification):
|
class Notification(AbstractNotification):
|
||||||
# UUIDs are not supported by the notifications app...
|
# UUIDs are not supported by the notifications app...
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ from vbv_lernwelt.notify.models import (
|
||||||
NotificationCategory,
|
NotificationCategory,
|
||||||
NotificationTrigger,
|
NotificationTrigger,
|
||||||
)
|
)
|
||||||
|
from vbv_lernwelt.self_evaluation_feedback.models import SelfEvaluationFeedback
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from vbv_lernwelt.assignment.models import AssignmentCompletion
|
from vbv_lernwelt.assignment.models import AssignmentCompletion
|
||||||
|
|
@ -73,6 +74,74 @@ class NotificationService:
|
||||||
email_template=EmailTemplate.CASEWORK_SUBMITTED,
|
email_template=EmailTemplate.CASEWORK_SUBMITTED,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def send_self_evaluation_feedback_request_feedback_notification(
|
||||||
|
cls,
|
||||||
|
self_evaluation_feedback: SelfEvaluationFeedback,
|
||||||
|
):
|
||||||
|
"""Requester -> Provider"""
|
||||||
|
requester_user = self_evaluation_feedback.feedback_requester_user
|
||||||
|
provider_user = self_evaluation_feedback.feedback_provider_user
|
||||||
|
|
||||||
|
texts = {
|
||||||
|
"de": "%(requester)s hat eine Selbsteinschätzung mit dir geteilt",
|
||||||
|
"fr": "%(requester)s a partagé une auto-évaluation avec vous",
|
||||||
|
"it": "%(requester)s ha condiviso una valutazione personale con te",
|
||||||
|
}
|
||||||
|
|
||||||
|
verb = texts.get(provider_user.language, "de") % {
|
||||||
|
"requester": requester_user.get_full_name(),
|
||||||
|
}
|
||||||
|
|
||||||
|
return cls._send_notification(
|
||||||
|
recipient=provider_user,
|
||||||
|
verb=verb,
|
||||||
|
notification_category=NotificationCategory.USER_INTERACTION,
|
||||||
|
notification_trigger=NotificationTrigger.SELF_EVALUATION_FEEDBACK_REQUESTED,
|
||||||
|
sender=requester_user,
|
||||||
|
target_url=self_evaluation_feedback.feedback_provider_evaluation_url,
|
||||||
|
action_object=self_evaluation_feedback,
|
||||||
|
email_template=EmailTemplate.SELF_EVALUATION_FEEDBACK_REQUESTED,
|
||||||
|
template_data={
|
||||||
|
"mentee_name": requester_user.get_full_name(),
|
||||||
|
"mentee_email": requester_user.email,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def send_self_evaluation_feedback_received_notification(
|
||||||
|
cls,
|
||||||
|
self_evaluation_feedback: SelfEvaluationFeedback,
|
||||||
|
):
|
||||||
|
"""Provider -> Requester"""
|
||||||
|
requester_user = self_evaluation_feedback.feedback_requester_user
|
||||||
|
provider_user = self_evaluation_feedback.feedback_provider_user
|
||||||
|
|
||||||
|
texts = {
|
||||||
|
"de": "%(provider)s hat dir eine Fremdeinschätzung gegeben",
|
||||||
|
"fr": "%(provider)s vous a donné une évaluation externe",
|
||||||
|
"it": "%(provider)s ti ha dato una valutazione esterna",
|
||||||
|
}
|
||||||
|
|
||||||
|
verb = texts.get(requester_user.language, "de") % {
|
||||||
|
"provider": provider_user.get_full_name(),
|
||||||
|
}
|
||||||
|
|
||||||
|
return cls._send_notification(
|
||||||
|
recipient=requester_user,
|
||||||
|
verb=verb,
|
||||||
|
notification_category=NotificationCategory.USER_INTERACTION,
|
||||||
|
notification_trigger=NotificationTrigger.SELF_EVALUATION_FEEDBACK_PROVIDED,
|
||||||
|
sender=provider_user,
|
||||||
|
target_url=self_evaluation_feedback.feedback_requester_results_url,
|
||||||
|
action_object=self_evaluation_feedback,
|
||||||
|
email_template=EmailTemplate.SELF_EVALUATION_FEEDBACK_PROVIDED,
|
||||||
|
template_data={
|
||||||
|
"mentor_name": provider_user.get_full_name(),
|
||||||
|
"mentor_email": provider_user.email,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def send_assignment_evaluated_notification(
|
def send_assignment_evaluated_notification(
|
||||||
cls,
|
cls,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue