Merge branch 'newsletter_self' of https://github.com/Schlabonski/jdav_lb_webapp into newsletter_self

v1-0-stable
Schlabonski 9 years ago
commit cb7d77f0da

@ -1,43 +1,42 @@
from django.contrib import admin from django.contrib import admin
from django.contrib.admin import helpers
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.shortcuts import render
from .models import Message from .models import Message
class Button: class MessageAdmin(admin.ModelAdmin):
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') list_display = ('subject', 'from_addr', 'to_group', 'sent')
change_form_template = "mailer/change_form.html"
# 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]
actions = ['send_message'] actions = ['send_message']
def send_message(self, request, queryset): def send_message(self, request, queryset):
for msg in queryset: print("calling send_message")
msg.submit() if request.POST.get('confirmed'):
self.message_user(request, _("Message sent")) 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")
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-10-22 18:28+0200\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,10 +18,14 @@ 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:41 #: admin.py:20
msgid "Message sent" msgid "Message sent"
msgstr "Nachricht gesendet" msgstr "Nachricht gesendet"
#: admin.py:28
msgid "Send message"
msgstr "Nachricht verschicken"
#: apps.py:7 #: apps.py:7
msgid "mailer" msgid "mailer"
msgstr "Verteiler" msgstr "Verteiler"
@ -42,18 +46,76 @@ msgstr "Inhalt"
msgid "to group" msgid "to group"
msgstr "An Gruppe" msgstr "An Gruppe"
#: models.py:23 #: models.py:13
msgid "sent"
msgstr "Gesendet"
#: models.py:29
msgid "message" msgid "message"
msgstr "Nachricht" msgstr "Nachricht"
#: models.py:24 #: models.py:30
msgid "messages" msgid "messages"
msgstr "Nachrichten" msgstr "Nachrichten"
#: templates/admin/change_form.html:10 #: models.py:32
msgid "History" msgid "Can submit mails"
msgstr "Geschichte" msgstr "Kann Mails verschicken"
#: 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?"
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:30
msgid "Send"
msgstr "Senden"
#: templates/mailer/confirm_send.html:35
msgid "Cancel"
msgstr "Abbruch"
#: templates/mailer/index.html:2 #: templates/mailer/index.html:2
msgid "This is the mailer app!" msgid "This is the mailer app!"
msgstr "Das ist die 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!"
#~ msgid "History"
#~ msgstr "Geschichte"

@ -10,6 +10,7 @@ class Message(models.Model):
subject = models.CharField(_('subject'), max_length=50) subject = models.CharField(_('subject'), max_length=50)
content = models.TextField(_('content')) content = models.TextField(_('content'))
to_group = models.ForeignKey('members.Group', verbose_name=_('to group')) to_group = models.ForeignKey('members.Group', verbose_name=_('to group'))
sent = models.BooleanField(_('sent'), default=False)
def __str__(self): def __str__(self):
return self.subject return self.subject
@ -21,6 +22,8 @@ class Message(models.Model):
for member in self.to_group.member_set.all() for member in self.to_group.member_set.all()
] ]
send_mass_mail(data) send_mass_mail(data)
self.sent = True
self.save()
class Meta: class Meta:
verbose_name = _('message') verbose_name = _('message')

@ -1,15 +0,0 @@
{% extends "admin/change_form.html" %}
{% load i18n %}
{% block object-tools %}
{% if change %}{% if not is_popup %}
<ul class="object-tools">
{% for button in buttons %}
<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 %}

@ -0,0 +1,15 @@
{% extends "admin/change_form.html" %}
{% load i18n %}
{% block content %}
{{ block.super }}
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'mailer/change_style.css' %}" />
<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 %}

@ -0,0 +1,38 @@
{% extends "admin/base_site.html" %}
{% load i18n %}
{% load static %}
{% block content %}
<link rel="stylesheet" type="text/css" href="{% static 'admin/style.css' %}" />
<p>{% trans "Do you really want to send these mails?" %}</p>
<ul>
{% for mail in mails %}
<li>
{{mail.subject}}
{% if mail.sent %}
({% trans "already sent" %})
{%endif %}
</li>
{% endfor %}
</ul>
{% if some_sent %}
<p><b>{% trans "Some messages have already been sent! Do you really want to resend them?" %}</b></p>
{% endif %}
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="confirmed" value="yes">
<input type="hidden" name="action" value="send_message">
{% for id in ids %}
<input type="hidden" name="{{ action_checkbox_name }}" value="{{ id.0 }}">
{% endfor %}
<input type="submit" value={% trans "Send" %}>
</form>
<form action="" method="post" class="cancel">
{% csrf_token %}
<input type="submit" value={% trans "Cancel" %}>
</form>
{% endblock %}

@ -1,3 +1,3 @@
Django==1.10.2 Django==1.10.2
Pillow==3.4.2
mysqlclient==1.3.9 mysqlclient==1.3.9
PyMySQL==0.7.9

Loading…
Cancel
Save