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!" %} +
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 %} + + 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'))