57 lines
3.7 KiB
Python
57 lines
3.7 KiB
Python
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, *args):
|
|
for reg in Registrant2025.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, *args):
|
|
for reg in Registrant2025.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)
|