From 52d0431ce370f321d61e3cc7f85783c43ed7cb39 Mon Sep 17 00:00:00 2001 From: erichhasl Date: Sat, 22 Oct 2016 22:56:37 +0200 Subject: [PATCH] add newsletter views --- jdav_web/mailer/models.py | 3 ++ jdav_web/mailer/templates/mailer/index.html | 1 + jdav_web/mailer/templates/mailer/send.html | 25 ++++++++++++++ jdav_web/mailer/urls.py | 4 ++- jdav_web/mailer/views.py | 36 ++++++++++++++++++++- 5 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 jdav_web/mailer/templates/mailer/send.html diff --git a/jdav_web/mailer/models.py b/jdav_web/mailer/models.py index 2140c53..475b8d0 100644 --- a/jdav_web/mailer/models.py +++ b/jdav_web/mailer/models.py @@ -25,3 +25,6 @@ class Message(models.Model): class Meta: verbose_name = _('message') verbose_name_plural = _('messages') + permissions = ( + ("submit_mails", _("Can submit mails")), + ) diff --git a/jdav_web/mailer/templates/mailer/index.html b/jdav_web/mailer/templates/mailer/index.html index c4e81f2..c58684a 100644 --- a/jdav_web/mailer/templates/mailer/index.html +++ b/jdav_web/mailer/templates/mailer/index.html @@ -1,2 +1,3 @@ {% load i18n %} {% trans "This is the mailer app!" %} +

New Mail

diff --git a/jdav_web/mailer/templates/mailer/send.html b/jdav_web/mailer/templates/mailer/send.html new file mode 100644 index 0000000..ad36842 --- /dev/null +++ b/jdav_web/mailer/templates/mailer/send.html @@ -0,0 +1,25 @@ +{% load i18n %} +{% trans "Here you can send new emails!" %} + +{% if error_message %} +

{{ error_message }}

+{% endif %} + +
+ {% csrf_token %} + + {% trans "Subject:" %}
+
+ + {% trans "Content:" %}
+
+ + {% trans "Receiving group:" %}
+
+ + +
diff --git a/jdav_web/mailer/urls.py b/jdav_web/mailer/urls.py index 3497ade..03ad286 100644 --- a/jdav_web/mailer/urls.py +++ b/jdav_web/mailer/urls.py @@ -4,5 +4,7 @@ from . import views app_name = "mailer" urlpatterns = [ - url(r'^$', views.index, name='index') + url(r'^$', views.index, name='index'), + url(r'^send_mail', views.send_mail, name='send_mail'), + url(r'^send', views.send, name='send') ] diff --git a/jdav_web/mailer/views.py b/jdav_web/mailer/views.py index 06a5c6f..9bc0fcb 100644 --- a/jdav_web/mailer/views.py +++ b/jdav_web/mailer/views.py @@ -1,6 +1,40 @@ from django.shortcuts import render +from django.utils.translation import ugettext_lazy as _ +from django.urls import reverse +from django.http import HttpResponseRedirect +from django.contrib.auth.decorators import permission_required +from members.models import Group -# Create your views here. +from .models import Message + + +@permission_required('mailer.submit_mails', login_url='/admin/') def index(request): + """This is the main newsletter view""" return render(request, 'mailer/index.html') + + +@permission_required('mailer.submit_mails', login_url='/admin/') +def send(request): + return render(request, 'mailer/send.html', { + 'groups': Group.objects.all() + }) + + +@permission_required('mailer.submit_mails', login_url='/admin/') +def send_mail(request): + try: + subject = request.POST['subject'] + content = request.POST['content'] + to_group = Group.objects.get(pk=request.POST['to_group']) + except (KeyError, Group.DoesNotExist): + return render(request, 'mailer/send.html', { + 'error_message': _("Please fill in every field!"), + 'groups': Group.objects.all() + }) + else: + msg = Message(subject=subject, content=content, to_group=to_group) + msg.submit() + msg.save() + return HttpResponseRedirect(reverse('mailer:index'))