X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/53dd30b74a0b805937dd3a8add59aeb8c5ffeee0..bee7cca13d8612ecd13592315e6022fcdadcba32:/src/messaging/admin.py diff --git a/src/messaging/admin.py b/src/messaging/admin.py index 854079bee..6749106d6 100644 --- a/src/messaging/admin.py +++ b/src/messaging/admin.py @@ -1,12 +1,14 @@ from django.contrib import admin +from django.contrib import messages from django.utils.translation import ugettext_lazy as _ +from fnpdjango.actions import export_as_csv_action from . import models class EmailSentInline(admin.TabularInline): model = models.EmailSent - fields = ['timestamp', 'email', 'subject'] - readonly_fields = ['timestamp', 'email', 'subject'] + fields = ['timestamp', 'contact', 'subject'] + readonly_fields = ['timestamp', 'contact', 'subject'] extra = 0 can_delete = False show_change_link = True @@ -34,14 +36,29 @@ class EmailTemplateAdmin(admin.ModelAdmin): ]}), ] + def _test_email(self, request, obj): + if request.user.email: + obj.send_test_email(request.user.email) + messages.info(request, _('Test e-mail has been sent to %(email)s.') % {"email": request.user.email}) + else: + messages.warning(request, _('You have no email set. Test e-mail not sent.')) + + def response_add(self, request, obj): + self._test_email(request, obj) + return super().response_add(request, obj) + + def response_change(self, request, obj): + self._test_email(request, obj) + return super().response_change(request, obj) + admin.site.register(models.EmailTemplate, EmailTemplateAdmin) class EmailSentAdmin(admin.ModelAdmin): list_filter = ['template'] - list_display = ['timestamp', 'template', 'email', 'subject'] - fields = ['timestamp', 'template', 'email', 'subject', 'body', 'hash_value'] + list_display = ['timestamp', 'template', 'contact', 'subject'] + fields = ['timestamp', 'template', 'contact', 'subject', 'body'] readonly_fields = fields change_links = ['template'] @@ -49,11 +66,25 @@ class EmailSentAdmin(admin.ModelAdmin): admin.site.register(models.EmailSent, EmailSentAdmin) +class ContactEmailSentInline(admin.TabularInline): + model = models.EmailSent + fields = ['timestamp', 'template', 'subject'] + readonly_fields = ['timestamp', 'template', 'subject'] + extra = 0 + can_delete = False + show_change_link = True + + def has_add_permission(self, request, obj): + return False + + class ContactAdmin(admin.ModelAdmin): + inlines = [ContactEmailSentInline] list_filter = ['level'] list_display = ['email', 'level', 'since', 'expires_at'] search_fields = ['email'] date_hierarchy = 'since' + actions = [export_as_csv_action(fields=['id', 'email', 'get_level_display', 'since', 'expires_at'])] admin.site.register(models.Contact, ContactAdmin)