2023-10-03 17:55:41 +02:00
from django . contrib import admin
2024-02-19 16:00:06 +01:00
from . models import Author , Category , Post , Contact , Registrant2024 , Registrant2025
2024-02-09 23:37:46 +01:00
from django . core . mail import send_mail
from django . template . loader import render_to_string
2023-10-28 13:14:13 +02:00
class RegistrantAdmin ( admin . ModelAdmin ) :
2024-02-19 16:00:06 +01:00
#list_display = ('name','timestamp', 'payed', 'cake', 'rate_reduced')
list_display = ( ' name ' , ' birthdate ' , ' address_town ' , ' mail ' )
2023-11-09 19:13:35 +01:00
readonly_fields = [ ' timestamp ' ]
2024-02-12 20:00:18 +01:00
list_filter = [ ' payed ' , ' rate_reduced ' , ' canceled ' , ' team ' , ' food ' , ' cake ' ]
2024-03-12 22:19:25 +01:00
actions = [ ' welcome_mail ' , ' preparation_mail ' , ' preparation_mail_all ' , ' final_mail ' , ' final_mail_all ' ]
2024-02-09 23:37:46 +01:00
2024-02-19 16:00:06 +01:00
@admin.action ( description = ' Send welcome mail to ... ' )
2024-02-09 23:37:46 +01:00
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 )
2023-10-28 13:14:13 +02:00
2024-03-12 22:19:25 +01:00
2024-02-19 16:00:06 +01:00
@admin.action ( description = ' Send preparation mail to ... ' )
2024-02-12 20:00:18 +01:00
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 )
2024-02-19 16:00:06 +01:00
@admin.action ( description = ' Send preparation mail to all ' )
2024-03-17 04:16:29 +01:00
def preparation_mail_all ( self , * args ) :
for reg in Registrant2025 . objects . all ( ) :
2024-02-19 16:00:06 +01:00
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 )
2024-02-12 20:00:18 +01:00
2024-03-12 22:19:25 +01:00
@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 ' )
2024-03-17 04:16:29 +01:00
def final_mail_all ( self , * args ) :
for reg in Registrant2025 . objects . all ( ) :
2024-03-12 22:19:25 +01:00
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 )
2023-10-28 13:14:13 +02:00
admin . site . register ( Author )
admin . site . register ( Category )
admin . site . register ( Post )
admin . site . register ( Contact )
2024-02-19 16:00:06 +01:00
admin . site . register ( Registrant2024 , RegistrantAdmin )
admin . site . register ( Registrant2025 , RegistrantAdmin )