Browse Source

Подобавлял атомарных транзакции к коммерческим представлениям

devel
bashmak 9 years ago
parent
commit
ebeea96333
  1. 38
      clientsideapp/locale/ru/LC_MESSAGES/django.po
  2. 39
      clientsideapp/views.py

38
clientsideapp/locale/ru/LC_MESSAGES/django.po

@ -162,3 +162,41 @@ msgstr "Комментарий"
#: clientsideapp/templates/clientsideapp/pays.html:25 #: clientsideapp/templates/clientsideapp/pays.html:25
msgid "You have not spent payments" msgid "You have not spent payments"
msgstr "У вас нет проведённых платежей" msgstr "У вас нет проведённых платежей"
msgid "Buy the service via user side, service '%s'"
msgstr "Покупка тарифного плана через личный кабинет, тариф '%s'"
msgid ""
"You are subscribed on new service. "
"That will enable service when your current service has expired."
msgstr ""
"Вы подписались на новую услугу. Она встала на очередь подключений. "
"Когда закончится ваша текущая услуга, то включится эта"
msgid "Service '%s' has been finished"
msgstr "Услуга '%s' успешно завершена"
msgid "The service '%s' wan successfully activated"
msgstr "Услуга '%s' успешно активирована"
msgid "Early terminated service '%s' via client side"
msgstr "Досрочное завершение услуги '%s' из личного кабинета"
msgid "Act is not confirmed"
msgstr "Действие не подтверждено"
msgid "Temporary network bug"
msgstr "Временные неполадки в сети"
msgid "You has been successfully unsubscribed from service, '%s'"
msgstr "Вы успешно отписались от услуги, '%s'"
msgid "The service was not found"
msgstr "Указанная подписка на услугу не найдена"
msgid "Are you not sure that you want buy the service?"
msgstr "Вы не уверены что хотите оплатить долг?"
msgid "Your account have not enough money"
msgstr "Недостаточно средств на счету"

39
clientsideapp/views.py

@ -4,6 +4,8 @@ from django.contrib.gis.shortcuts import render_to_text
from django.shortcuts import render, get_object_or_404, redirect from django.shortcuts import render, get_object_or_404, redirect
from django.contrib import messages from django.contrib import messages
from django.utils import timezone from django.utils import timezone
from django.db.transaction import atomic
from django.utils.translation import ugettext_lazy as _
from abonapp.models import AbonLog, AbonTariff, InvoiceForPayment, Abon from abonapp.models import AbonLog, AbonTariff, InvoiceForPayment, Abon
from tariff_app.models import Tariff from tariff_app.models import Tariff
@ -41,16 +43,17 @@ def services(request):
@login_required @login_required
@atomic
def buy_service(request, srv_id): def buy_service(request, srv_id):
abon = get_object_or_404(Abon, pk=request.user.pk) abon = get_object_or_404(Abon, pk=request.user.pk)
service = get_object_or_404(Tariff, pk=srv_id) service = get_object_or_404(Tariff, pk=srv_id)
try: try:
current_service = abon.active_tariff() current_service = abon.active_tariff()
if request.method == 'POST': if request.method == 'POST':
abon.pick_tariff(service, request.user, 'Покупка тарифного плана через личный кабинет, тариф "%s"'
% service)
messages.success(request, 'Вы подписались на новую услугу. Она встала на очередь подключений. '
'Когда закончится ваша текущая услуга, то включится эта')
abon.pick_tariff(service, request.user, _("Buy the service via user side, service '%s'")
% service)
messages.success(request, _('You are subscribed on new service. '
'That will enable service when your current service has expired.'))
else: else:
return render_to_text('clientsideapp/modal_service_buy.html', { return render_to_text('clientsideapp/modal_service_buy.html', {
'service': service, 'service': service,
@ -64,6 +67,7 @@ def buy_service(request, srv_id):
@login_required @login_required
@atomic
def complete_service(request, srv_id): def complete_service(request, srv_id):
abtar = get_object_or_404(AbonTariff, id=srv_id) abtar = get_object_or_404(AbonTariff, id=srv_id)
service = abtar.tariff service = abtar.tariff
@ -75,15 +79,15 @@ def complete_service(request, srv_id):
if finish_confirm == 'yes': if finish_confirm == 'yes':
# удаляем запись о текущей услуге. # удаляем запись о текущей услуге.
abtar.delete() abtar.delete()
messages.success(request, 'Услуга "%s" успешно завершена' % service.title)
messages.success(request, _("Service '%s' has been finished") % service.title)
AbonLog.objects.create( AbonLog.objects.create(
abon=abtar.abon, abon=abtar.abon,
amount=0.0, amount=0.0,
author=abtar.abon, author=abtar.abon,
comment='Досрочное завершение услуги "%s" из личного кабинета' % service.title
comment=_("Early terminated service '%s' via client side") % service.title
) )
else: else:
messages.error(request, 'Действие не подтверждено')
messages.error(request, _('Act is not confirmed'))
else: else:
time_use = RuTimedelta(timezone.now() - abtar.time_start) time_use = RuTimedelta(timezone.now() - abtar.time_start)
return render_to_text('clientsideapp/modal_complete_service.html', { return render_to_text('clientsideapp/modal_complete_service.html', {
@ -96,11 +100,12 @@ def complete_service(request, srv_id):
except NasFailedResult as e: except NasFailedResult as e:
messages.error(request, e) messages.error(request, e)
except NasNetworkError: except NasNetworkError:
messages.error(request, 'Временные неполадки')
messages.error(request, _('Temporary network bug'))
return redirect('client_side:services') return redirect('client_side:services')
@login_required @login_required
@atomic
def unsubscribe_service(request, srv_id): def unsubscribe_service(request, srv_id):
abtar = get_object_or_404(AbonTariff, id=srv_id) abtar = get_object_or_404(AbonTariff, id=srv_id)
service = abtar.tariff service = abtar.tariff
@ -109,24 +114,25 @@ def unsubscribe_service(request, srv_id):
# досрочно завершаем услугу # досрочно завершаем услугу
if request.POST.get('finish_confirm') == 'yes': if request.POST.get('finish_confirm') == 'yes':
AbonTariff.objects.get(pk=srv_id).delete() AbonTariff.objects.get(pk=srv_id).delete()
messages.success(request, 'Вы успешно отписались от услуги, "%s"' % service.title)
messages.success(request, _("You has been successfully unsubscribed from service, '%s'") % service.title)
else: else:
messages.error(request, 'Действие не подтверждено')
messages.error(request, _('Act is not confirmed'))
else: else:
return render_to_text('clientsideapp/modal_unsubscribe_service.html', { return render_to_text('clientsideapp/modal_unsubscribe_service.html', {
'abtar': abtar, 'abtar': abtar,
'service': service 'service': service
}, request=request) }, request=request)
except AbonTariff.DoesNotExist: except AbonTariff.DoesNotExist:
messages.error(request, 'Указанная подписка на услугу не найдена')
messages.error(request, _('The service was not found'))
except NasFailedResult as e: except NasFailedResult as e:
messages.error(request, e) messages.error(request, e)
except NasNetworkError: except NasNetworkError:
messages.error(request, 'Временные неполадки')
messages.error(request, _('Temporary network bug'))
return redirect('client_side:services') return redirect('client_side:services')
@login_required @login_required
@atomic
def activate_service(request, srv_id): def activate_service(request, srv_id):
abtar = get_object_or_404(AbonTariff, id=srv_id) abtar = get_object_or_404(AbonTariff, id=srv_id)
service = abtar.tariff service = abtar.tariff
@ -136,9 +142,9 @@ def activate_service(request, srv_id):
# активируем услугу # активируем услугу
if request.POST.get('finish_confirm') == 'yes': if request.POST.get('finish_confirm') == 'yes':
abtar.activate(request.user) abtar.activate(request.user)
messages.success(request, 'Услуга "%s" успешно активирована' % service.title)
messages.success(request, _("The service '%s' wan successfully activated") % service.title)
else: else:
messages.error(request, 'Запрос не подтверждён')
messages.error(request, _('Act is not confirmed'))
return redirect('client_side:services') return redirect('client_side:services')
except NasFailedResult as e: except NasFailedResult as e:
messages.error(request, e) messages.error(request, e)
@ -164,6 +170,7 @@ def debts_list(request):
@login_required @login_required
@atomic
def debt_buy(request, d_id): def debt_buy(request, d_id):
debt = get_object_or_404(InvoiceForPayment, id=d_id) debt = get_object_or_404(InvoiceForPayment, id=d_id)
abon = get_object_or_404(Abon, id=request.user.id) abon = get_object_or_404(Abon, id=request.user.id)
@ -171,9 +178,9 @@ def debt_buy(request, d_id):
try: try:
sure = request.POST.get('sure') sure = request.POST.get('sure')
if sure != 'on': if sure != 'on':
raise LogicError('Вы не уверены что хотите оплатить долг?')
raise LogicError(_("Are you not sure that you want buy the service?"))
if abon.ballance < debt.amount: if abon.ballance < debt.amount:
raise LogicError('Не достаточно средств на счету')
raise LogicError(_('Your account have not enough money'))
abon.make_pay(request.user, debt.amount) abon.make_pay(request.user, debt.amount)
debt.set_ok() debt.set_ok()

Loading…
Cancel
Save