add congratulating top 10 members
parent
df75c5b324
commit
8df2670138
@ -0,0 +1,48 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from mailer.models import Message
|
||||
from members.models import Member, annotate_activity_score
|
||||
from django.db.models import Q
|
||||
from mailer.mailutils import mail_root, send
|
||||
|
||||
import re
|
||||
|
||||
CONGRATULATE_MEMBERS_MAX = 10
|
||||
SENDING_ADDRESS = mail_root
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Congratulates the most active members'
|
||||
requires_system_checks = False
|
||||
|
||||
def handle(self, *args, **options):
|
||||
qs = annotate_activity_score(Member.objects.all())\
|
||||
.order_by('_activity_score')[:CONGRATULATE_MEMBERS_MAX]
|
||||
for position, member in enumerate(qs):
|
||||
positiontext = "{}. ".format(position + 1) if position > 0 else ""
|
||||
score = member._activity_score
|
||||
if score < 5:
|
||||
level = 1
|
||||
elif score >= 5 and score < 10:
|
||||
level = 2
|
||||
elif score >= 10 and score < 20:
|
||||
level = 3
|
||||
elif score >= 20 and score < 30:
|
||||
level = 4
|
||||
else:
|
||||
level = 5
|
||||
content = "Hallo {}!\n\n"\
|
||||
"Herzlichen Glückwunsch, du hast im letzten Jahr zu den {} aktivsten "\
|
||||
"Mitgliedern der JDAV Ludwigsburg gehört! Um genau zu sein beträgt "\
|
||||
"dein Aktivitäts Wert "\
|
||||
"des letzten Jahres {} Punkte. Das entspricht {} Kletterer*innen. "\
|
||||
"Damit warst du im letzten Jahr "\
|
||||
"das {}aktivste Mitglied der JDAV Ludwigsburg.\n\n"\
|
||||
"Auf ein weiteres aktives Jahr in der JDAV Ludwigsburg\n"\
|
||||
"Dein*e Jugendreferent*in".format(member.prename,
|
||||
CONGRATULATE_MEMBERS_MAX,
|
||||
score,
|
||||
level,
|
||||
positiontext)
|
||||
send("Herzlichen Glückwunsch {}".format(member.prename),
|
||||
content, SENDING_ADDRESS, [member.email],
|
||||
reply_to=["jugendreferent@jdav-ludwigsburgs.de"])
|
||||
Loading…
Reference in New Issue