Merge pull request #18 from Schlabonski/subscribe

add subscribe option
v1-0-stable
Christian Merten 9 years ago committed by GitHub
commit 330259289c

@ -0,0 +1,44 @@
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
{% load i18n %}
<p><b>{% trans "Here you can register yourself to the newsletter" %}</b></p>
{% if error_message %}
<p><b>{{ error_message }}</b></p>
{% endif %}
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="post" value="yes">
<p>
{% trans "Prename" %}
<input type="text" name="prename">
</p>
<p>
{% trans "Lastname" %}
<input type="text" name="lastname">
</p>
<p>
{% trans "Birthdate" %}
<input type="date" name="birthdate" class="datepicker">
</p>
<script>
$(document).ready(function() {
$('.datepicker').datepicker({
dateFormat: "yy-mm-dd"});
});
</script>
<p>
{% trans "Email address" %}
<input type="email" name="email">
</p>
<p>
<input type="submit" value="{% trans "Register" %}">
</p>
</form>

@ -0,0 +1,3 @@
{% load i18n %}
<p><b>{% trans "Subscribed successfully" %}</b></p>

@ -5,6 +5,5 @@ from . import views
app_name = "mailer" app_name = "mailer"
urlpatterns = [ 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'^subscribe$', views.subscribe, name='subscribe'),
url(r'^send', views.send, name='send')
] ]

@ -1,40 +1,57 @@
from django.shortcuts import render from django.shortcuts import render
from django import forms
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.urls import reverse from django.urls import reverse
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import permission_required
from members.models import Group from members.models import Member
from .models import Message
@permission_required('mailer.submit_mails', login_url='/admin/')
def index(request): def index(request):
"""This is the main newsletter view""" return HttpResponseRedirect(reverse('mailer:subscribe'))
return render(request, 'mailer/index.html')
@permission_required('mailer.submit_mails', login_url='/admin/') def render_subscribe(request, error_message=""):
def send(request): date_input = forms.DateInput(attrs={'required': True,
return render(request, 'mailer/send.html', { 'class': 'datepicker',
'groups': Group.objects.all() 'name': 'birthdate'})
}) date_field = date_input.render(_("Birthdate"), "")
context = {'date_field': date_field}
if error_message:
context['error_message'] = error_message
return render(request, 'mailer/subscribe.html', context)
@permission_required('mailer.submit_mails', login_url='/admin/') def subscribe(request):
def send_mail(request):
try: try:
subject = request.POST['subject'] request.POST['post']
content = request.POST['content'] try:
to_group = Group.objects.get(pk=request.POST['to_group']) print("trying to subscribe")
except (KeyError, Group.DoesNotExist): prename = request.POST['prename']
return render(request, 'mailer/send.html', { lastname = request.POST['lastname']
'error_message': _("Please fill in every field!"), email = request.POST['email']
'groups': Group.objects.all() print("email", email)
}) birth_date = request.POST['birthdate']
else: print("birthdate", birth_date)
msg = Message(subject=subject, content=content, to_group=to_group) except KeyError:
msg.submit() return subscribe(request, _("Please fill in every field!"))
msg.save() else:
return HttpResponseRedirect(reverse('mailer:index')) # TODO: check whether member exists
exists = Member.objects.filter(prename=prename,
lastname=lastname)
if len(exists) > 0:
return render_subscribe(request,
error_message=_("Member already exists"))
member = Member(prename=prename,
lastname=lastname,
email=email,
birth_date=birth_date,
gets_newsletter=True)
member.save()
return subscribed(request)
except KeyError:
return render_subscribe(request)
def subscribed(request):
return render(request, 'mailer/subscribed.html')

Loading…
Cancel
Save