From 84a8691868c15e9daa28b03f6f5a8906070b91e8 Mon Sep 17 00:00:00 2001 From: bashmak Date: Wed, 8 Mar 2017 17:44:26 +0300 Subject: [PATCH] =?UTF-8?q?FIXBUG:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D1=82=D1=81=D1=83=D1=82=D1=81=D1=82=D0=B2=D1=83?= =?UTF-8?q?=D1=8E=D1=89=D0=B8=D0=B5=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B8=20=D0=B8=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clientsideapp/views.py | 85 +++++++++++++++++++++++++----------------- 1 file changed, 50 insertions(+), 35 deletions(-) diff --git a/clientsideapp/views.py b/clientsideapp/views.py index bd04e14..0aa8e32 100644 --- a/clientsideapp/views.py +++ b/clientsideapp/views.py @@ -43,18 +43,23 @@ def services(request): def buy_service(request, srv_id): abon = get_object_or_404(Abon, id=request.user.pk) service = get_object_or_404(Tariff, id=srv_id) - current_service = abon.active_tariff() - if request.method == 'POST': - abon.pick_tariff(service, request.user, 'Покупка тарифного плана через личный кабинет, тариф "%s"' - % service) - messages.success(request, 'Вы подписались на новую услугу. Она встала на очередь подключений. ' - 'Когда закончится ваша текущая услуга, то включится эта') - return redirect('client_side:services') - - return render_to_text('clientsideapp/modal_service_buy.html', { - 'service': service, - 'current_service': current_service - }, request=request) + try: + current_service = abon.active_tariff() + if request.method == 'POST': + abon.pick_tariff(service, request.user, 'Покупка тарифного плана через личный кабинет, тариф "%s"' + % service) + messages.success(request, 'Вы подписались на новую услугу. Она встала на очередь подключений. ' + 'Когда закончится ваша текущая услуга, то включится эта') + else: + return render_to_text('clientsideapp/modal_service_buy.html', { + 'service': service, + 'current_service': current_service + }, request=request) + except LogicError as e: + messages.error(request, e) + except NasFailedResult as e: + messages.error(request, e) + return redirect('client_side:services') @login_required @@ -62,30 +67,36 @@ def complete_service(request, srv_id): abtar = get_object_or_404(AbonTariff, id=srv_id) service = abtar.tariff - if request.method == 'POST': - # досрочно завершаем услугу - finish_confirm = request.POST.get('finish_confirm') - if finish_confirm == 'yes': - # удаляем запись о текущей услуге. - abtar.delete() - messages.success(request, 'Услуга "%s" успешно завершена' % service.title) - AbonLog.objects.create( - abon=abtar.abon, - amount=0.0, - author=abtar.abon, - comment='Досрочное завершение услуги "%s" из личного кабинета' % service.title - ) + try: + if request.method == 'POST': + # досрочно завершаем услугу + finish_confirm = request.POST.get('finish_confirm') + if finish_confirm == 'yes': + # удаляем запись о текущей услуге. + abtar.delete() + messages.success(request, 'Услуга "%s" успешно завершена' % service.title) + AbonLog.objects.create( + abon=abtar.abon, + amount=0.0, + author=abtar.abon, + comment='Досрочное завершение услуги "%s" из личного кабинета' % service.title + ) + else: + messages.error(request, 'Действие не подтверждено') else: - messages.error(request, 'Действие не подтверждено') - return redirect('client_side:services') - - time_use = RuTimedelta(timezone.now() - abtar.time_start) - - return render_to_text('clientsideapp/modal_complete_service.html', { - 'service': service, - 'abtar': abtar, - 'time_use': time_use - }, request=request) + time_use = RuTimedelta(timezone.now() - abtar.time_start) + return render_to_text('clientsideapp/modal_complete_service.html', { + 'service': service, + 'abtar': abtar, + 'time_use': time_use + }, request=request) + except LogicError as e: + messages.error(request, e) + except NasFailedResult as e: + messages.error(request, e) + except NasNetworkError: + messages.error(request, 'Временные неполадки') + return redirect('client_side:services') @login_required @@ -107,6 +118,10 @@ def unsubscribe_service(request, srv_id): }, request=request) except AbonTariff.DoesNotExist: messages.error(request, 'Указанная подписка на услугу не найдена') + except NasFailedResult as e: + messages.error(request, e) + except NasNetworkError: + messages.error(request, 'Временные неполадки') return redirect('client_side:services')