diff --git a/fet2020/posts/cronjobs.py b/fet2020/posts/cronjobs.py index fba4fe7b..43e20b06 100644 --- a/fet2020/posts/cronjobs.py +++ b/fet2020/posts/cronjobs.py @@ -1,14 +1,17 @@ # HOW TO ADD CRONJOBS # write a cronjob function # add cronjob to fet2020/settings.py -# add cronjob with cmd 'fet2020/manage.py crontab add' +# add cronjob with cmd 'python3 fet2020/manage.py crontab add' +import logging +from datetime import timedelta from django.utils import timezone from .models import FetMeeting from .mails import send_agenda_mail -from datetime import timedelta + +logger = logging.getLogger(__name__) def check_to_send_agenda_mail(): @@ -16,8 +19,5 @@ def check_to_send_agenda_mail(): next_meeting = FetMeeting.objects.filter(event_start__date=agenda_date).first() if next_meeting and next_meeting.has_agenda: - send_agenda_mail( - self.event_start.date().strftime("%d.%m.%Y"), - self.event_start.time(), - self.slug, - ) + logger.info(f"Agenda für die {next_meeting.slug} soll gesendet werden.") + send_agenda_mail(next_meeting) diff --git a/fet2020/posts/mails.py b/fet2020/posts/mails.py index a9967cd1..c93d2365 100644 --- a/fet2020/posts/mails.py +++ b/fet2020/posts/mails.py @@ -1,24 +1,43 @@ +import logging + +from html2text import html2text + from django.conf import settings from django.core.mail import send_mail -def send_agenda_mail(date, time, slug): +logger = logging.getLogger(__name__) + + +def send_agenda_mail(meeting): + date = meeting.event_start.date().strftime("%d.%m.%Y") + time = meeting.event_start.time() + agenda = html2text(meeting.agenda_html) + msg = ( "Liebe Alle,\n\n" - "wir haben am " + str(date) + " um " + str(time) + " wieder Sitzung.\n" - "du hast noch bis morgen Zeit, weitere Themen auf die Agenda zu schreiben: " + "wir haben am " + str(date) + " um " + str(time) + " wieder eine FET-Sitzung.\n" + "du hast noch bis morgen " + + str(time) + + " Zeit, weitere Themen auf die Agenda zu schreiben: " + settings.HOST_NAME + "/posts/" - + str(slug) + + str(meeting.slug) + ".\n\n" + "Die aktuelle Agenda ist: \n\n" + agenda + "\n\n" "LG deine FET" ) - send_mail( + transmitted = send_mail( subject="Test - Agenda der FET Sitzung von " + str(date), message=msg, - from_email="patrick@fet.at", + from_email="service@fet.at", recipient_list=[ - "all@fet.at", + "patrick@fet.at", ], ) + + if transmitted: + logger.info(f"Mail für die Agenda {meeting.slug} wurde gesendet.") + else: + logger.info(f"Mail für die Agenda {meeting.slug} wurde nicht gesendet.") diff --git a/fet2020/requirements.txt b/fet2020/requirements.txt index a4d641d4..3d1c7c33 100644 --- a/fet2020/requirements.txt +++ b/fet2020/requirements.txt @@ -12,6 +12,7 @@ docutils==0.17.1 easy-thumbnails==2.8.0 etherpad-lite==0.5 ghostscript==0.7 +html2text==2020.1.16 ldap3==2.9.1 mysqlclient==2.1.0 xhtml2pdf==0.2.5