Skip to content
Snippets Groups Projects
Verified Commit 4ca65f10 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Implement automatic sending of info mailings

parent d24d07e1
No related branches found
No related tags found
1 merge request!9Resolve "Info mailing"
Pipeline #56918 failed
...@@ -29,6 +29,8 @@ class InfoMailing(ExtensibleModel): ...@@ -29,6 +29,8 @@ class InfoMailing(ExtensibleModel):
text = RichTextField(verbose_name=_("Text")) text = RichTextField(verbose_name=_("Text"))
reply_to = models.EmailField(verbose_name=_("Request replies to"), blank=True) reply_to = models.EmailField(verbose_name=_("Request replies to"), blank=True)
active = models.BooleanField(verbose_name=_("Mailing is active"), default=False)
send_to_person = models.BooleanField(verbose_name=_("Send to registered person"), default=True) send_to_person = models.BooleanField(verbose_name=_("Send to registered person"), default=True)
send_to_guardians = models.BooleanField(verbose_name=_("Send to guardians"), default=False) send_to_guardians = models.BooleanField(verbose_name=_("Send to guardians"), default=False)
...@@ -37,6 +39,10 @@ class InfoMailing(ExtensibleModel): ...@@ -37,6 +39,10 @@ class InfoMailing(ExtensibleModel):
def __str__(self) -> str: def __str__(self) -> str:
return self.subject return self.subject
@classmethod
def get_active_mailings(cls):
return cls.objects.filter(active=True)
def send(self): def send(self):
sent_to = self.sent_to.all() sent_to = self.sent_to.all()
......
from datetime import timedelta
from aleksis.core.celery import app
@app.task(run_every=timedelta(hours=1))
def send_info_mailings() -> None:
from .models import InfoMailing # noqa
for mailing in InfoMailing.get_active_mailings():
mailing.send()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment