Browse Source

Merge branch 'master' of 13e7.de:lugcash2

master
Niklas Brachmann 11 years ago
parent
commit
84da667313
  1. 7
      cash/static/style.css
  2. 2
      cash/templates/cash/base.html
  3. 32
      cash/templates/cash/usersettings.html
  4. 9
      cash/templates/cash/usersettings_saved.html
  5. 4
      cash/urls.py
  6. 50
      cash/views.py

7
cash/static/style.css

@ -232,7 +232,12 @@ div.success { @@ -232,7 +232,12 @@ div.success {
font-weight: normal;
}
.formtable th {
font-weight: normal;
}
.formtable td {
border: none;
}

2
cash/templates/cash/base.html

@ -67,7 +67,7 @@ DEVELOPMENT @@ -67,7 +67,7 @@ DEVELOPMENT
<ul class="topmenu">
{% if user.is_authenticated %}
<li class="topmenu"><a href="/">Home</a></li>
<li class="topmenu"><a href="usersettings.php">Einstellungen</a></li>
<li class="topmenu"><a href="{% url 'usersettings' %}">Einstellungen</a></li>
<li class="topmenu"><a href="{% url 'django.contrib.auth.views.logout_then_login' %}">Logout</a></li>
{% else %}
<li class="topmenu"><a href="{% url 'django.contrib.auth.views.login' %}">Login</a></li>

32
cash/templates/cash/usersettings.html

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
{% extends "cash/base.html" %}
{% load url from future %}
{% block content %}
<h1>Einstellungen</h1>
<h2>Täglicher Kontoauszug</h2>
<p>Der Kontoauszug wird nachts versandt, sofern in den vergangenen 24 Stunden Kontobewegungen stattgefunden haben.</p>
<form action="{% url 'usersettings' %}settings/" method="post">
{% csrf_token %}
<table class="formtable">
{{ settings_form.as_table }}
<th colspan="2"><br/><input type="submit" value="Speichern" /></th>
</table>
</form>
<hr/>
<h2>PIN ändern</h2>
<p>Der PIN wird nach dem Einscannen des Mitgliederausweises abgefragt. Wenn das Feld leergelassen wird, wird kein PIN abgefragt.</p>
<form action="{% url 'usersettings' %}pin/" method="post">
{% csrf_token %}
<table class="formtable">
{{ pin_form.as_table }}
<th colspan="2"><br/><input type="submit" value="Speichern" /></th>
</table>
</form>
{% endblock %}

9
cash/templates/cash/usersettings_saved.html

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
{% extends "cash/base.html" %}
{% load url from future %}
{% block content %}
<h1>Einstellungen</h1>
Die Einstellungen wurden erfolgreich gespeichert.<br/>
<br/>
<a href="{% url 'usersettings' %}">Zurück</a>
{% endblock %}

4
cash/urls.py

@ -18,5 +18,9 @@ urlpatterns = patterns('', @@ -18,5 +18,9 @@ urlpatterns = patterns('',
url(r'buy/(?P<product_id>\d+)/really/$', 'cash.views.buy',
{'confirm': True}, name='buy_really'),
url(r'usersettings(/(?P<submit>\w+))?/$', 'cash.views.usersettings',
name='usersettings'),
)

50
cash/views.py

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
from django.views import generic
from django import forms
from django.shortcuts import render_to_response, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.template import RequestContext
@ -55,5 +56,54 @@ def buy(request, product_id, confirm=False): @@ -55,5 +56,54 @@ def buy(request, product_id, confirm=False):
return render_to_response('cash/buy_confirm.html',
context_instance=context)
class UserSettingsForm(forms.Form):
daily_digest = forms.BooleanField(required=False)
class UserPinForm(forms.Form):
pin = forms.CharField(max_length=32)
pin_confirm = forms.CharField(max_length=32)
def clean(self):
cleaned_data = super(UserPinForm, self).clean()
if cleaned_data['pin'] != cleaned_data['pin_confirm']:
raise forms.ValidationError('Pins sind ungleich.')
return cleaned_data
@login_required
def usersettings(request, submit=None):
daily_digest = request.user.account.daily_digest
settings_form = UserSettingsForm({'daily_digest': daily_digest})
pin_form = UserPinForm()
if request.method == 'POST':
if submit == 'pin':
pin_form = UserPinForm(request.POST)
if pin_form.is_valid():
pin = pin_form.cleaned_data['pin']
request.user.account.pin = pin
request.user.account.save()
context = RequestContext(request)
return render_to_response('cash/usersettings_saved.html',
context_instance=context)
elif submit == 'settings':
settings_form = UserSettingsForm(request.POST)
if settings_form.is_valid():
daily_digest = settings_form.cleaned_data['daily_digest']
request.user.account.daily_digest = daily_digest
request.user.account.save()
context = RequestContext(request)
return render_to_response('cash/usersettings_saved.html',
context_instance=context)
context = RequestContext(request, { 'settings_form': settings_form,
'pin_form': pin_form})
return render_to_response('cash/usersettings.html',
context_instance=context)

Loading…
Cancel
Save