Merge branch 'newsletter_self' of https://github.com/Schlabonski/jdav_lb_webapp into newsletter_self
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)
|
||||||
|
|||||||
@ -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 %}
|
||||||
Loading…
Reference in New Issue