from django.contrib import admin from .models import Author, Category, Post, Contact, Registrant2024, Registrant2025 from django.core.mail import send_mail from django.template.loader import render_to_string class RegistrantAdmin(admin.ModelAdmin): #list_display = ('name','timestamp', 'payed', 'cake', 'rate_reduced') list_display = ('name','birthdate','address_town','mail') readonly_fields = ['timestamp'] list_filter = ['payed', 'rate_reduced', 'canceled', 'team', 'food', 'cake'] actions = ['welcome_mail','preparation_mail','preparation_mail_all','final_mail','final_mail_all'] @admin.action(description='Send welcome mail to ...') def welcome_mail(self, request, queryset): for reg in queryset: msg_plain = render_to_string('welcome_mail.txt', {"form": reg}) msg_html = render_to_string('welcome_mail.html', {"form": reg}) send_mail(f'Herzlich Willkommen zur Im·Puls-Tagung, {reg.name}', msg_plain, 'buero@im-puls.org', [f"{reg.mail}"], fail_silently=False, html_message=msg_html) send_mail(f'Neue Anmeldung: {reg.name}', msg_plain, 'buero@im-puls.org', ["webmaster@denkena-consulting.com"], fail_silently=False, html_message=msg_html) @admin.action(description='Send preparation mail to ...') def preparation_mail(self, request, queryset): for reg in queryset: msg_plain = render_to_string('preparation_mail.txt', {"form": reg}) msg_html = render_to_string('preparation_mail.html', {"form": reg}) send_mail(f'Letzte Informationen zur Im·Puls-Tagung, {reg.name}', msg_plain, 'buero@im-puls.org', [f"{reg.mail}"], fail_silently=False, html_message=msg_html) @admin.action(description='Send preparation mail to all') def preparation_mail_all(self): for reg in Registrant25.objects.all: msg_plain = render_to_string('preparation_mail.txt', {"form": reg}) msg_html = render_to_string('preparation_mail.html', {"form": reg}) send_mail(f'Letzte Informationen zur Im·Puls-Tagung, {reg.name}', msg_plain, 'buero@im-puls.org', [f"{reg.mail}"], fail_silently=False, html_message=msg_html) @admin.action(description='Send final mail to ...') def final_mail(self, request, queryset): for reg in queryset: msg_plain = render_to_string('final_mail.txt', {"form": reg, "RegistrantList": filter(lambda x: not x.canceled, sorted(Registrant2024.objects.all(), key=lambda x: x.name))}) msg_html = render_to_string('final_mail.html', {"form": reg, "RegistrantList": filter(lambda x: not x.canceled, sorted(Registrant2024.objects.all(), key=lambda x: x.name))}) send_mail(f'Kontaktliste und Gruß von der Im·Puls-Tagung, {reg.name}', msg_plain, 'buero@im-puls.org', [f"{reg.mail}"], fail_silently=False, html_message=msg_html) @admin.action(description='Send final mail to all') def final_mail_all(self): for reg in Registrant2024.objects.all: msg_plain = render_to_string('final_mail.txt', {"form": reg, "RegistrantList": filter(lambda x: not x.canceled, sorted(Registrant2024.objects.all(), key=lambda x: x.name))}) msg_html = render_to_string('final_mail.html', {"form": reg, "RegistrantList": filter(lambda x: not x.canceled, sorted(Registrant2024.objects.all(), key=lambda x: x.name))}) send_mail(f'Kontaktliste und Gruß von der Im·Puls-Tagung, {reg.name}', msg_plain, 'buero@im-puls.org', [f"{reg.mail}"], fail_silently=False, html_message=msg_html) admin.site.register(Author) admin.site.register(Category) admin.site.register(Post) admin.site.register(Contact) admin.site.register(Registrant2024, RegistrantAdmin) admin.site.register(Registrant2025, RegistrantAdmin)