From 59f7139c526144c73aba94695d3a5de04d4c64aa Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 19 Nov 2016 14:14:32 +0100 Subject: [PATCH 1/5] update requirements --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6c4722e..19e4b8f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ Django==1.10.2 +Pillow==3.4.2 mysqlclient==1.3.9 -PyMySQL==0.7.9 From 0b9d3639316d0abf0aa01cea8bf5847b12361931 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 19 Nov 2016 14:16:08 +0100 Subject: [PATCH 2/5] not working send button, confirm send message --- jdav_web/mailer/admin.py | 30 +++++--- .../mailer/locale/de/LC_MESSAGES/django.po | 69 +++++++++++++++++-- jdav_web/mailer/models.py | 3 + jdav_web/mailer/static/admin/style.css | 4 ++ .../mailer/templates/admin/change_form.html | 4 +- .../mailer/templates/mailer/confirm_send.html | 38 ++++++++++ jdav_web/mailer/templatetags/custom_send.py | 8 +++ 7 files changed, 142 insertions(+), 14 deletions(-) create mode 100644 jdav_web/mailer/static/admin/style.css create mode 100644 jdav_web/mailer/templates/mailer/confirm_send.html create mode 100644 jdav_web/mailer/templatetags/custom_send.py diff --git a/jdav_web/mailer/admin.py b/jdav_web/mailer/admin.py index abead81..9c7da22 100644 --- a/jdav_web/mailer/admin.py +++ b/jdav_web/mailer/admin.py @@ -1,5 +1,7 @@ from django.contrib import admin +from django.contrib.admin import helpers from django.utils.translation import ugettext_lazy as _ +from django.shortcuts import render from .models import Message @@ -26,18 +28,30 @@ class ButtonableModelAdmin(admin.ModelAdmin): class MessageAdmin(ButtonableModelAdmin): """Message creation view""" - list_display = ('subject', 'from_addr', 'to_group') + list_display = ('subject', 'from_addr', 'to_group', 'sent') + # TODO: get this working # can't find a good solution for this at the moment - # send_message = Button() - # send_message.short_description = _("Send") - # send_message.view = "mailer:index" - # buttons = [send_message] + send_message = Button() + send_message.short_description = _("Send") + send_message.view = "mailer:send_mail" + buttons = [send_message] actions = ['send_message'] def send_message(self, request, queryset): - for msg in queryset: - msg.submit() - self.message_user(request, _("Message sent")) + print("calling send_message") + if request.POST.get('confirmed'): + for msg in queryset: + msg.submit() + self.message_user(request, _("Message sent")) + else: + context = { + 'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME, + 'mails': queryset, + 'ids': queryset.values_list("id"), + 'some_sent': any(m.sent for m in queryset)} + return render(request, 'mailer/confirm_send.html', context) + send_message.short_description = _("Send message") + admin.site.register(Message, MessageAdmin) diff --git a/jdav_web/mailer/locale/de/LC_MESSAGES/django.po b/jdav_web/mailer/locale/de/LC_MESSAGES/django.po index 8d7a2ad..bc20696 100644 --- a/jdav_web/mailer/locale/de/LC_MESSAGES/django.po +++ b/jdav_web/mailer/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-10-22 18:28+0200\n" +"POT-Creation-Date: 2016-11-19 13:59+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,10 +18,18 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: admin.py:41 +#: admin.py:36 templates/mailer/confirm_send.html:30 +msgid "Send" +msgstr "Senden" + +#: admin.py:46 msgid "Message sent" msgstr "Nachricht gesendet" +#: admin.py:54 +msgid "Send message" +msgstr "Nachricht verschicken" + #: apps.py:7 msgid "mailer" msgstr "Verteiler" @@ -42,18 +50,69 @@ msgstr "Inhalt" msgid "to group" msgstr "An Gruppe" -#: models.py:23 +#: models.py:13 +msgid "sent" +msgstr "Gesendet" + +#: models.py:29 msgid "message" msgstr "Nachricht" -#: models.py:24 +#: models.py:30 msgid "messages" msgstr "Nachrichten" -#: templates/admin/change_form.html:10 +#: models.py:32 +msgid "Can submit mails" +msgstr "Kann Mails verschicken" + +#: templates/admin/change_form.html:12 msgid "History" msgstr "Geschichte" +#: templates/mailer/confirm_send.html:7 +msgid "Do you really want to send these mails?" +msgstr "Möchtest du diese Emails wirklich verschicken?" + +#: templates/mailer/confirm_send.html:13 +msgid "already sent" +msgstr "schon verschickt" + +#: templates/mailer/confirm_send.html:19 +msgid "" +"Some messages have already been sent! Do you really want to resend them?" +msgstr "" +"Einige Emails wurden schon versendet! Möchtest du diese wirklich nochmal " +"senden?" + +#: templates/mailer/confirm_send.html:35 +msgid "Cancel" +msgstr "Abbruch" + #: templates/mailer/index.html:2 msgid "This is the mailer app!" msgstr "Das ist die Mailer App!" + +#: templates/mailer/send.html:2 +msgid "Here you can send new emails!" +msgstr "Hier kannst du neue Emails verschicken!" + +#: templates/mailer/send.html:11 +msgid "Subject:" +msgstr "Betreff" + +#: templates/mailer/send.html:14 +msgid "Content:" +msgstr "Inhalt:" + +#: templates/mailer/send.html:17 +msgid "Receiving group:" +msgstr "Erhaltende Gruppe" + +#: templates/mailer/send.html:24 +msgid "Send mail" +msgstr "Email senden" + +#: views.py:33 +msgid "Please fill in every field!" +msgstr "Bitte jedes Feld ausfüllen!" diff --git a/jdav_web/mailer/models.py b/jdav_web/mailer/models.py index 475b8d0..0498719 100644 --- a/jdav_web/mailer/models.py +++ b/jdav_web/mailer/models.py @@ -10,6 +10,7 @@ class Message(models.Model): subject = models.CharField(_('subject'), max_length=50) content = models.TextField(_('content')) to_group = models.ForeignKey('members.Group', verbose_name=_('to group')) + sent = models.BooleanField(_('sent'), default=False) def __str__(self): return self.subject @@ -21,6 +22,8 @@ class Message(models.Model): for member in self.to_group.member_set.all() ] send_mass_mail(data) + self.sent = True + self.save() class Meta: verbose_name = _('message') diff --git a/jdav_web/mailer/static/admin/style.css b/jdav_web/mailer/static/admin/style.css new file mode 100644 index 0000000..5d34418 --- /dev/null +++ b/jdav_web/mailer/static/admin/style.css @@ -0,0 +1,4 @@ +form { + float:left; + margin-right:30px; +} diff --git a/jdav_web/mailer/templates/admin/change_form.html b/jdav_web/mailer/templates/admin/change_form.html index 226923d..3e71d7b 100644 --- a/jdav_web/mailer/templates/admin/change_form.html +++ b/jdav_web/mailer/templates/admin/change_form.html @@ -1,11 +1,13 @@ {% extends "admin/change_form.html" %} {% load i18n %} +{% load custom_send %} {% block object-tools %} {% if change %}{% if not is_popup %}
    {% for button in buttons %} -
  • {{ button.short_description }}
  • + + {% endfor %}
  • {% trans "History" %}
  • {% if has_absolute_url %}
  • View on site
  • {% endif%} diff --git a/jdav_web/mailer/templates/mailer/confirm_send.html b/jdav_web/mailer/templates/mailer/confirm_send.html new file mode 100644 index 0000000..82ae759 --- /dev/null +++ b/jdav_web/mailer/templates/mailer/confirm_send.html @@ -0,0 +1,38 @@ +{% extends "admin/base_site.html" %} +{% load i18n %} +{% load static %} + +{% block content %} + +

    {% trans "Do you really want to send these mails?" %}

    +
      +{% for mail in mails %} +
    • + {{mail.subject}} + {% if mail.sent %} + ({% trans "already sent" %}) + {%endif %} +
    • +{% endfor %} +
    +{% if some_sent %} +

    {% trans "Some messages have already been sent! Do you really want to resend them?" %}

    +{% endif %} + +
    + {% csrf_token %} + + + + {% for id in ids %} + + {% endfor %} + +
    + +
    + {% csrf_token %} + +
    + +{% endblock %} diff --git a/jdav_web/mailer/templatetags/custom_send.py b/jdav_web/mailer/templatetags/custom_send.py new file mode 100644 index 0000000..0ea534f --- /dev/null +++ b/jdav_web/mailer/templatetags/custom_send.py @@ -0,0 +1,8 @@ +from django import template + +register = template.Library() + + +@register.inclusion_tag('change_form.html') +def custom_send(): + print("CUstom send!") From febdff7602c07c5dcce525188ede213eb54d4bcb Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 19 Nov 2016 16:16:22 +0100 Subject: [PATCH 3/5] add newsletter send button --- jdav_web/mailer/admin.py | 38 ++++++------------- .../mailer/locale/de/LC_MESSAGES/django.po | 23 ++++++----- jdav_web/mailer/static/admin/style.css | 4 -- .../mailer/templates/admin/change_form.html | 24 ++++++------ jdav_web/mailer/templatetags/custom_send.py | 8 ---- 5 files changed, 35 insertions(+), 62 deletions(-) delete mode 100644 jdav_web/mailer/static/admin/style.css delete mode 100644 jdav_web/mailer/templatetags/custom_send.py diff --git a/jdav_web/mailer/admin.py b/jdav_web/mailer/admin.py index 9c7da22..74d78c6 100644 --- a/jdav_web/mailer/admin.py +++ b/jdav_web/mailer/admin.py @@ -6,36 +6,10 @@ from django.shortcuts import render from .models import Message -class Button: - short_description = "" - view = "" - - -class ButtonableModelAdmin(admin.ModelAdmin): - buttons = [] - - def change_view(self, request, object_id, extra_context={}): - extra_context['buttons'] = self.buttons - if '/' in object_id: - object_id = object_id[:object_id.find('/')] - return super( - ButtonableModelAdmin, - self).change_view( - request, - object_id, - extra_context=extra_context) - - -class MessageAdmin(ButtonableModelAdmin): +class MessageAdmin(): """Message creation view""" list_display = ('subject', 'from_addr', 'to_group', 'sent') - # TODO: get this working - # can't find a good solution for this at the moment - send_message = Button() - send_message.short_description = _("Send") - send_message.view = "mailer:send_mail" - buttons = [send_message] actions = ['send_message'] def send_message(self, request, queryset): @@ -53,5 +27,15 @@ class MessageAdmin(ButtonableModelAdmin): return render(request, 'mailer/confirm_send.html', context) send_message.short_description = _("Send message") + def response_change(self, request, obj): + if "_send" in request.POST: + obj.submit() + return super(MessageAdmin, self).response_change(request, obj) + + def response_add(self, request, obj): + if "_send" in request.POST: + obj.submit() + return super(MessageAdmin, self).response_change(request, obj) + admin.site.register(Message, MessageAdmin) diff --git a/jdav_web/mailer/locale/de/LC_MESSAGES/django.po b/jdav_web/mailer/locale/de/LC_MESSAGES/django.po index bc20696..fd5005e 100644 --- a/jdav_web/mailer/locale/de/LC_MESSAGES/django.po +++ b/jdav_web/mailer/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-19 13:59+0100\n" +"POT-Creation-Date: 2016-11-19 16:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,15 +18,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: admin.py:36 templates/mailer/confirm_send.html:30 -msgid "Send" -msgstr "Senden" - -#: admin.py:46 +#: admin.py:20 msgid "Message sent" msgstr "Nachricht gesendet" -#: admin.py:54 +#: admin.py:28 msgid "Send message" msgstr "Nachricht verschicken" @@ -66,9 +62,9 @@ msgstr "Nachrichten" msgid "Can submit mails" msgstr "Kann Mails verschicken" -#: templates/admin/change_form.html:12 -msgid "History" -msgstr "Geschichte" +#: templates/admin/change_form.html:11 +msgid "Save and send mail" +msgstr "Speichern und Email senden" #: templates/mailer/confirm_send.html:7 msgid "Do you really want to send these mails?" @@ -85,6 +81,10 @@ msgstr "" "Einige Emails wurden schon versendet! Möchtest du diese wirklich nochmal " "senden?" +#: templates/mailer/confirm_send.html:30 +msgid "Send" +msgstr "Senden" + #: templates/mailer/confirm_send.html:35 msgid "Cancel" msgstr "Abbruch" @@ -116,3 +116,6 @@ msgstr "Email senden" #: views.py:33 msgid "Please fill in every field!" msgstr "Bitte jedes Feld ausfüllen!" + +#~ msgid "History" +#~ msgstr "Geschichte" diff --git a/jdav_web/mailer/static/admin/style.css b/jdav_web/mailer/static/admin/style.css deleted file mode 100644 index 5d34418..0000000 --- a/jdav_web/mailer/static/admin/style.css +++ /dev/null @@ -1,4 +0,0 @@ -form { - float:left; - margin-right:30px; -} diff --git a/jdav_web/mailer/templates/admin/change_form.html b/jdav_web/mailer/templates/admin/change_form.html index 3e71d7b..c5be0e0 100644 --- a/jdav_web/mailer/templates/admin/change_form.html +++ b/jdav_web/mailer/templates/admin/change_form.html @@ -1,17 +1,15 @@ {% extends "admin/change_form.html" %} {% load i18n %} -{% load custom_send %} +{% block content %} +{{ block.super }} +{% load static %} -{% block object-tools %} - {% if change %}{% if not is_popup %} - - {% endif %}{% endif %} -{% endblock %} + + +{% endblock %} diff --git a/jdav_web/mailer/templatetags/custom_send.py b/jdav_web/mailer/templatetags/custom_send.py deleted file mode 100644 index 0ea534f..0000000 --- a/jdav_web/mailer/templatetags/custom_send.py +++ /dev/null @@ -1,8 +0,0 @@ -from django import template - -register = template.Library() - - -@register.inclusion_tag('change_form.html') -def custom_send(): - print("CUstom send!") From 87c5847e24fa3fe7e954d677fc1b1979864e60a6 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 19 Nov 2016 17:04:52 +0100 Subject: [PATCH 4/5] fix message admin --- jdav_web/mailer/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdav_web/mailer/admin.py b/jdav_web/mailer/admin.py index 74d78c6..d434cb3 100644 --- a/jdav_web/mailer/admin.py +++ b/jdav_web/mailer/admin.py @@ -6,7 +6,7 @@ from django.shortcuts import render from .models import Message -class MessageAdmin(): +class MessageAdmin(admin.ModelAdmin): """Message creation view""" list_display = ('subject', 'from_addr', 'to_group', 'sent') From 4ce74c2efc2e2d9ac913ece5710ce6913ceb5942 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 19 Nov 2016 17:18:16 +0100 Subject: [PATCH 5/5] fix template overriding --- jdav_web/mailer/admin.py | 1 + jdav_web/mailer/templates/{admin => mailer}/change_form.html | 0 2 files changed, 1 insertion(+) rename jdav_web/mailer/templates/{admin => mailer}/change_form.html (100%) diff --git a/jdav_web/mailer/admin.py b/jdav_web/mailer/admin.py index d434cb3..a5913bb 100644 --- a/jdav_web/mailer/admin.py +++ b/jdav_web/mailer/admin.py @@ -9,6 +9,7 @@ from .models import Message class MessageAdmin(admin.ModelAdmin): """Message creation view""" list_display = ('subject', 'from_addr', 'to_group', 'sent') + change_form_template = "mailer/change_form.html" actions = ['send_message'] diff --git a/jdav_web/mailer/templates/admin/change_form.html b/jdav_web/mailer/templates/mailer/change_form.html similarity index 100% rename from jdav_web/mailer/templates/admin/change_form.html rename to jdav_web/mailer/templates/mailer/change_form.html