feat: adds notification
This commit is contained in:
parent
1ab5052d0d
commit
3f40e2fe07
|
|
@ -76,6 +76,20 @@ class EmailTemplate(Enum):
|
|||
"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(
|
||||
recipient_email: str,
|
||||
|
|
|
|||
|
|
@ -24,6 +24,13 @@ class NotificationTrigger(models.TextChoices):
|
|||
CASEWORK_EVALUATED = "CASEWORK_EVALUATED", _("Casework Evaluated")
|
||||
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):
|
||||
# UUIDs are not supported by the notifications app...
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ from vbv_lernwelt.notify.models import (
|
|||
NotificationCategory,
|
||||
NotificationTrigger,
|
||||
)
|
||||
from vbv_lernwelt.self_evaluation_feedback.models import SelfEvaluationFeedback
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from vbv_lernwelt.assignment.models import AssignmentCompletion
|
||||
|
|
@ -73,6 +74,74 @@ class NotificationService:
|
|||
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
|
||||
def send_assignment_evaluated_notification(
|
||||
cls,
|
||||
|
|
|
|||
Loading…
Reference in New Issue