Basic email template for notifications #96
@ -114,7 +114,7 @@ class EmailPreviewAdmin(NoAddDeleteMixin, EmailAdmin):
|
||||
|
||||
fake_notifications = construct_fake_notifications()
|
||||
for fake_notification in fake_notifications:
|
||||
mail_name = fake_notification.full_template_name
|
||||
mail_name = fake_notification.original_template_name
|
||||
email_with_fake_context[mail_name] = {
|
||||
'template': fake_notification.template_name,
|
||||
**fake_notification.get_template_context(),
|
||||
|
@ -3,6 +3,7 @@ import logging
|
||||
from actstream.models import Action
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.db import models
|
||||
from django.template import loader, TemplateDoesNotExist
|
||||
|
||||
from constants.activity import Verb
|
||||
from utils import absolutify
|
||||
@ -34,7 +35,12 @@ class Notification(models.Model):
|
||||
unique_together = ['recipient', 'action']
|
||||
|
||||
@property
|
||||
def full_template_name(self) -> str:
|
||||
def original_template_name(self) -> str:
|
||||
"""Template name constructed from action type, target and so on.
|
||||
|
||||
If we want to override email template for this specific notification,
|
||||
this is the name of the template that should be created.
|
||||
"""
|
||||
action = self.action
|
||||
action_object = action.action_object
|
||||
target_name = action.target.__class__.__name__.lower()
|
||||
@ -43,10 +49,10 @@ class Notification(models.Model):
|
||||
|
||||
@property
|
||||
def template_name(self) -> str:
|
||||
"""Template name to be used for constructing notification email."""
|
||||
default_name = 'new_activity'
|
||||
name = self.full_template_name
|
||||
name = self.original_template_name
|
||||
args = {'name': name, 'default_name': default_name}
|
||||
from django.template import loader, TemplateDoesNotExist
|
||||
|
||||
try:
|
||||
loader.get_template(f'emails/{name}.html')
|
||||
@ -56,6 +62,7 @@ class Notification(models.Model):
|
||||
return name
|
||||
|
||||
def get_template_context(self):
|
||||
"""Return template context to be used in the notification email."""
|
||||
action = self.action
|
||||
action_object = action.action_object
|
||||
quoted_message = getattr(action_object, 'message', getattr(action_object, 'text', ''))
|
||||
|
Loading…
Reference in New Issue
Block a user