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"
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^send_mail', views.send_mail, name='send_mail'),
url(r'^send', views.send, name='send')
url(r'^subscribe$', views.subscribe, name='subscribe'),
]

@ -1,40 +1,57 @@
from django.shortcuts import render
from django import forms
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
from members.models import Member
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')
return HttpResponseRedirect(reverse('mailer:subscribe'))
@permission_required('mailer.submit_mails', login_url='/admin/')
def send(request):
return render(request, 'mailer/send.html', {
'groups': Group.objects.all()
})
def render_subscribe(request, error_message=""):
date_input = forms.DateInput(attrs={'required': True,
'class': 'datepicker',
'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 send_mail(request):
def subscribe(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'))
request.POST['post']
try:
print("trying to subscribe")
prename = request.POST['prename']
lastname = request.POST['lastname']
email = request.POST['email']
print("email", email)
birth_date = request.POST['birthdate']
print("birthdate", birth_date)
except KeyError:
return subscribe(request, _("Please fill in every field!"))
else:
# 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