You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

114 lines
3.7 KiB

# -*- coding: utf-8 -*-
from django.shortcuts import render, redirect, get_object_or_404
from django.core.urlresolvers import reverse
from django.views.decorators.csrf import csrf_protect
from django.contrib.auth.decorators import login_required
from project.commons.paginator import pagination, save_per_page_value
from .. import models, forms
from ..decorators import license_required
@login_required
@csrf_protect
@save_per_page_value
def bank_accounts_list(request, page_num=None):
"""Список расчетных счетов пользователя."""
template_name = 'customer/bank_accounts/list.html'
account_list = models.BankAccount.objects.get_all(request.user)
page, pagination_form = pagination(request, account_list, page_num)
return render(request, template_name, {'page': page, 'pagination_form': pagination_form,})
@login_required
@csrf_protect
def bank_accounts_add(request):
"""Добавить расчетный счет."""
template_name='customer/bank_accounts/add.html'
form_class = forms.BankAccountForm
success_url = 'customer_bank_accounts_list'
referer = request.POST.get('referer')
if referer and reverse('customer_profile_edit') in referer:
success_url = 'customer_profile_edit'
if request.method == 'POST' and '_cancel' in request.POST:
return redirect(success_url)
if request.method == 'POST':
form = form_class(data=request.POST)
if form.is_valid():
new_account = form.save(commit=False)
new_account.user = request.user
new_account.save()
return redirect(success_url)
else:
form = form_class()
dictionary = {
'form': form,
'referer': request.META.get('HTTP_REFERER'),
}
return render(request, template_name, dictionary)
@login_required
@csrf_protect
def bank_accounts_edit(request, id):
"""Редактировать расчетный счет."""
template_name = 'customer/bank_accounts/edit.html'
form_class = forms.BankAccountForm
success_url = 'customer_bank_accounts_list'
referer = request.POST.get('referer')
if referer and reverse('customer_profile_edit') in referer:
success_url = 'customer_profile_edit'
if request.method == 'POST' and '_cancel' in request.POST:
return redirect(success_url)
account = get_object_or_404(models.BankAccount, pk=id, user=request.user)
if request.method == 'POST':
form = form_class(data=request.POST, instance=account)
if form.is_valid():
form.save()
return redirect(success_url)
else:
form = form_class(instance=account)
dictionary = {
'account': account,
'form': form,
'referer': request.META.get('HTTP_REFERER'),
}
return render(request, template_name, dictionary)
@login_required
@csrf_protect
def bank_accounts_delete(request, id):
"""Удалить расчетный счет."""
template_name='customer/bank_accounts/delete.html'
success_url = 'customer_bank_accounts_list'
referer = request.POST.get('referer')
if referer and reverse('customer_profile_edit') in referer:
success_url = 'customer_profile_edit'
if request.method == 'POST' and '_cancel' in request.POST:
return redirect(success_url)
account = get_object_or_404(models.BankAccount, pk=id, user=request.user)
if request.method == 'POST':
account.delete()
# TODO обработать ошибки удаления
return redirect(success_url)
dictionary = {
'account': account,
'referer': request.META.get('HTTP_REFERER'),
}
return render(request, template_name, dictionary)