36 lines
No EOL
1.2 KiB
Python
36 lines
No EOL
1.2 KiB
Python
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
from .notification_kind import NotificationKind
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# NotificationRule
|
|
# ---------------------------------------------------------------------------
|
|
class NotificationRule(models.Model):
|
|
"""Global rules: Which events trigger in-app and/or email notifications."""
|
|
|
|
class Meta:
|
|
verbose_name = _("Notification rule")
|
|
verbose_name_plural = _("Notification rules")
|
|
|
|
kind = models.CharField(
|
|
_("Event"),
|
|
max_length=40,
|
|
choices=NotificationKind.choices,
|
|
unique=True,
|
|
)
|
|
enabled_in_app = models.BooleanField(_("Show in app"), default=True)
|
|
enabled_email = models.BooleanField(_("Send via email"), default=False)
|
|
|
|
# Recipient groups
|
|
to_owner = models.BooleanField(
|
|
_("Send to owner/responsible/reporter (if available)"),
|
|
default=True,
|
|
)
|
|
to_staff = models.BooleanField(_("Send to all staff"), default=False)
|
|
extra_recipients = models.TextField(
|
|
_("Extra recipients (emails, comma or newline separated)"),
|
|
blank=True,
|
|
)
|
|
|
|
def __str__(self):
|
|
return self.get_kind_display() or self.kind |