|
|
@ -8,6 +8,7 @@ from cashonly.core.models import * |
|
|
|
from cashonly.core.services import AccountManager |
|
|
|
from cashonly.core.services import AccountManager |
|
|
|
from django.utils.translation import ugettext as _ |
|
|
|
from django.utils.translation import ugettext as _ |
|
|
|
from django.utils.translation import ugettext_lazy |
|
|
|
from django.utils.translation import ugettext_lazy |
|
|
|
|
|
|
|
from django.db import IntegrityError |
|
|
|
#import cashonly.core.version |
|
|
|
#import cashonly.core.version |
|
|
|
import datetime |
|
|
|
import datetime |
|
|
|
|
|
|
|
|
|
|
@ -139,12 +140,21 @@ class UserAvatarForm(forms.Form): |
|
|
|
required=False) |
|
|
|
required=False) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserCardNumberForm(forms.Form): |
|
|
|
|
|
|
|
card_number = forms.CharField(max_length=32, |
|
|
|
|
|
|
|
label=ugettext_lazy('card number'), |
|
|
|
|
|
|
|
required=False) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required |
|
|
|
@login_required |
|
|
|
def usersettings(request, submit=None): |
|
|
|
def usersettings(request, submit=None): |
|
|
|
daily_digest = request.user.account.daily_digest |
|
|
|
daily_digest = request.user.account.daily_digest |
|
|
|
settings_form = UserSettingsForm({'daily_digest': daily_digest}) |
|
|
|
settings_form = UserSettingsForm({'daily_digest': daily_digest}) |
|
|
|
pin_form = UserPinForm() |
|
|
|
pin_form = UserPinForm() |
|
|
|
avatar_form = UserAvatarForm() |
|
|
|
avatar_form = UserAvatarForm() |
|
|
|
|
|
|
|
card_number_form = UserCardNumberForm({ |
|
|
|
|
|
|
|
'card_number': request.user.account.card_number |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
if request.method == 'POST': |
|
|
|
if request.method == 'POST': |
|
|
|
if submit == 'pin': |
|
|
|
if submit == 'pin': |
|
|
@ -176,7 +186,26 @@ def usersettings(request, submit=None): |
|
|
|
request.user.account.avatar = avatar_form.cleaned_data['avatar'] |
|
|
|
request.user.account.avatar = avatar_form.cleaned_data['avatar'] |
|
|
|
request.user.account.save() |
|
|
|
request.user.account.save() |
|
|
|
return render(request, 'cashonly/web/usersettings_saved.html') |
|
|
|
return render(request, 'cashonly/web/usersettings_saved.html') |
|
|
|
|
|
|
|
elif submit == 'card_number': |
|
|
|
|
|
|
|
card_number_form = UserCardNumberForm(request.POST) |
|
|
|
|
|
|
|
# TODO validate card number |
|
|
|
|
|
|
|
if card_number_form.is_valid(): |
|
|
|
|
|
|
|
request.user.account.card_number = \ |
|
|
|
|
|
|
|
card_number_form.cleaned_data['card_number'] |
|
|
|
|
|
|
|
try: |
|
|
|
|
|
|
|
request.user.account.save() |
|
|
|
|
|
|
|
except IntegrityError: |
|
|
|
|
|
|
|
return render( |
|
|
|
|
|
|
|
request, |
|
|
|
|
|
|
|
'cashonly/web/usersettings_error.html', |
|
|
|
|
|
|
|
{'msg': _('Card number is already in use.')} |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
return render(request, 'cashonly/web/usersettings_saved.html') |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
pass |
|
|
|
|
|
|
|
# TODO handle error (invalid card number) |
|
|
|
|
|
|
|
|
|
|
|
return render(request, 'cashonly/web/usersettings.html', |
|
|
|
return render(request, 'cashonly/web/usersettings.html', |
|
|
|
{'settings_form': settings_form, 'pin_form': pin_form, |
|
|
|
{'settings_form': settings_form, 'pin_form': pin_form, |
|
|
|
'avatar_form': avatar_form}) |
|
|
|
'avatar_form': avatar_form, |
|
|
|
|
|
|
|
'card_number_form': card_number_form}) |
|
|
|