add newsletter views

v1-0-stable
Christian Merten 9 years ago
parent a826849031
commit 52d0431ce3

@ -25,3 +25,6 @@ class Message(models.Model):
class Meta:
verbose_name = _('message')
verbose_name_plural = _('messages')
permissions = (
("submit_mails", _("Can submit mails")),
)

@ -1,2 +1,3 @@
{% load i18n %}
{% trans "This is the mailer app!" %}
<p><a href={% url 'mailer:send' %}>New Mail</a></p>

@ -0,0 +1,25 @@
{% load i18n %}
{% trans "Here you can send new emails!" %}
{% if error_message %}
<p><b>{{ error_message }}</b></p>
{% endif %}
<form action="{% url 'mailer:send_mail' %}" method="post">
{% csrf_token %}
{% trans "Subject:" %}<br>
<input type="text" name="subject"><br>
{% trans "Content:" %}<br>
<textarea rows="10" cols="80" name="content"></textarea><br>
{% trans "Receiving group:" %}<br>
<select name="to_group">
{% for group in groups %}
<option value="{{ group.id }}">{{ group.name }}</option>
{% endfor %}
</select><br>
<input type="submit" value="{% trans "Send mail" %}">
</form>

@ -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')
]

@ -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'))

Loading…
Cancel
Save