add newsletter send button

v1-0-stable
Christian Merten 9 years ago
parent 0b9d363931
commit febdff7602

@ -6,36 +6,10 @@ from django.shortcuts import render
from .models import Message from .models import Message
class Button: class MessageAdmin():
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):
"""Message creation view""" """Message creation view"""
list_display = ('subject', 'from_addr', 'to_group', 'sent') 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'] actions = ['send_message']
def send_message(self, request, queryset): def send_message(self, request, queryset):
@ -53,5 +27,15 @@ class MessageAdmin(ButtonableModelAdmin):
return render(request, 'mailer/confirm_send.html', context) return render(request, 'mailer/confirm_send.html', context)
send_message.short_description = _("Send message") 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) admin.site.register(Message, MessageAdmin)

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,15 +18,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin.py:36 templates/mailer/confirm_send.html:30 #: admin.py:20
msgid "Send"
msgstr "Senden"
#: admin.py:46
msgid "Message sent" msgid "Message sent"
msgstr "Nachricht gesendet" msgstr "Nachricht gesendet"
#: admin.py:54 #: admin.py:28
msgid "Send message" msgid "Send message"
msgstr "Nachricht verschicken" msgstr "Nachricht verschicken"
@ -66,9 +62,9 @@ msgstr "Nachrichten"
msgid "Can submit mails" msgid "Can submit mails"
msgstr "Kann Mails verschicken" msgstr "Kann Mails verschicken"
#: templates/admin/change_form.html:12 #: templates/admin/change_form.html:11
msgid "History" msgid "Save and send mail"
msgstr "Geschichte" msgstr "Speichern und Email senden"
#: templates/mailer/confirm_send.html:7 #: templates/mailer/confirm_send.html:7
msgid "Do you really want to send these mails?" 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 " "Einige Emails wurden schon versendet! Möchtest du diese wirklich nochmal "
"senden?" "senden?"
#: templates/mailer/confirm_send.html:30
msgid "Send"
msgstr "Senden"
#: templates/mailer/confirm_send.html:35 #: templates/mailer/confirm_send.html:35
msgid "Cancel" msgid "Cancel"
msgstr "Abbruch" msgstr "Abbruch"
@ -116,3 +116,6 @@ msgstr "Email senden"
#: views.py:33 #: views.py:33
msgid "Please fill in every field!" msgid "Please fill in every field!"
msgstr "Bitte jedes Feld ausfüllen!" msgstr "Bitte jedes Feld ausfüllen!"
#~ msgid "History"
#~ msgstr "Geschichte"

@ -1,4 +0,0 @@
form {
float:left;
margin-right:30px;
}

@ -1,17 +1,15 @@
{% extends "admin/change_form.html" %} {% extends "admin/change_form.html" %}
{% load i18n %} {% load i18n %}
{% load custom_send %} {% block content %}
{{ block.super }}
{% load static %}
{% block object-tools %} <link rel="stylesheet" type="text/css" href="{% static 'mailer/change_style.css' %}" />
{% if change %}{% if not is_popup %}
<ul class="object-tools">
{% for button in buttons %}
<input type="button" value="{{ button.short_description }}" name="_button" onclick="window.alert('Hey')">
<!--<li><a href={% url button.view %} class="historylink">{{ button.short_description }}</a></li>-->
{% endfor %}
<li><a href="../history/" class="historylink">{% trans "History" %}</a></li>
{% if has_absolute_url %}<li><a href="../../../r/{{ content_type_id }}/{{ object_id }}/" class="viewsitelink">View on site</a></li>{% endif%}
</ul>
{% endif %}{% endif %}
{% endblock %}
<script type="text/javascript">
(function($){
$('<input type="submit" value="{% trans 'Save and send mail' %}" name="_send" class="send_mail"/>')
.prependTo('div.submit-row');
})(django.jQuery);
</script>
{% endblock %}

@ -1,8 +0,0 @@
from django import template
register = template.Library()
@register.inclusion_tag('change_form.html')
def custom_send():
print("CUstom send!")
Loading…
Cancel
Save