From e9ccbd9bce8d9580f10ceb06d0793d8f71a141a5 Mon Sep 17 00:00:00 2001 From: bashmak Date: Fri, 17 Feb 2017 19:03:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BB=20=D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8E=20ru?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abonapp/forms.py | 9 +- abonapp/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 7756 bytes abonapp/locale/ru/LC_MESSAGES/django.po | 559 ++++++++++++++++++ abonapp/models.py | 19 +- abonapp/pay_systems.py | 2 +- abonapp/templates/abonapp/abonamount.html | 9 +- .../templates/abonapp/activate_service.html | 20 +- abonapp/templates/abonapp/addAbon.html | 27 +- abonapp/templates/abonapp/addGroup.html | 16 +- abonapp/templates/abonapp/addInvoice.html | 18 +- abonapp/templates/abonapp/buy_tariff.html | 16 +- .../templates/abonapp/complete_service.html | 35 +- abonapp/templates/abonapp/debtors.html | 19 +- abonapp/templates/abonapp/editAbon.html | 35 +- abonapp/templates/abonapp/ext.htm | 21 +- abonapp/templates/abonapp/group_list.html | 19 +- .../templates/abonapp/invoiceForPayment.html | 21 +- abonapp/templates/abonapp/log.html | 22 +- abonapp/templates/abonapp/payHistory.html | 13 +- abonapp/templates/abonapp/peoples.html | 37 +- abonapp/templates/abonapp/services.html | 36 +- abonapp/templates/abonapp/task_log.html | 17 +- abonapp/templates/abonapp/viewAbon.html | 43 +- abonapp/views.py | 57 +- 24 files changed, 820 insertions(+), 250 deletions(-) create mode 100644 abonapp/locale/ru/LC_MESSAGES/django.mo create mode 100644 abonapp/locale/ru/LC_MESSAGES/django.po diff --git a/abonapp/forms.py b/abonapp/forms.py index c44a05d..c653122 100644 --- a/abonapp/forms.py +++ b/abonapp/forms.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +from django.utils.translation import ugettext as _ from django import forms from django.contrib.auth.hashers import make_password from random import choice @@ -25,9 +26,9 @@ def generate_random_password(): class AbonForm(forms.ModelForm): username = forms.CharField(max_length=127, required=False, initial=generate_random_username, widget=forms.TextInput(attrs={ - 'placeholder': 'Логин', + 'placeholder': _('login'), 'class': "form-control", - 'required':'' + 'required': '' })) password = forms.CharField(max_length=64, initial=generate_random_password, @@ -38,12 +39,12 @@ class AbonForm(forms.ModelForm): fields = ['username', 'telephone', 'fio', 'group', 'description', 'street', 'house', 'is_active'] widgets = { 'fio': forms.TextInput(attrs={ - 'placeholder': 'ФИО', + 'placeholder': _('fio'), 'class': "form-control", 'required': '' }), 'telephone': forms.TextInput(attrs={ - 'placeholder': '+[7,8,9,3] и 10,11 цифр', + 'placeholder': _('telephone placeholder'), 'pattern': r'^\+[7,8,9,3]\d{10,11}$', 'required': '', 'class': 'form-control' diff --git a/abonapp/locale/ru/LC_MESSAGES/django.mo b/abonapp/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ca53904fee125c30e1d03ed2577b635d377f2838 GIT binary patch literal 7756 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\n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: abonapp/forms.py:29 abonapp/templates/abonapp/addAbon.html.py:21 +msgid "login" +msgstr "Логин" + +#: abonapp/forms.py:42 +msgid "fio" +msgstr "ФИО" + +#: abonapp/forms.py:47 +msgid "telephone placeholder" +msgstr "+[7,8,9,3] и 10,11 цифр" + +#: abonapp/models.py:23 +msgid "fill account" +msgstr "Пополнение счёта" + +#: abonapp/models.py:118 +msgid "not enough money" +msgstr "Не хватает денег на счету" + +#: abonapp/models.py:124 +msgid "service finish log" +msgstr "Завершение и оплата услуги по истечению срока действия" + +#: abonapp/models.py:143 +msgid "finish service perm" +msgstr "Снятие со счёта средств" + +#: abonapp/models.py:144 +msgid "activate service perm" +msgstr "Активация услуги абонента" + +#: abonapp/models.py:187 +msgid "Buy service perm" +msgstr "Покупка тарифа абоненту" + +#: abonapp/models.py:191 +msgid "pay log" +msgstr "Снятие со счёта средств" + +#: abonapp/models.py:236 +msgid "Buy service default log" +msgstr "Покупка тарифного плана через админку" + +#: abonapp/models.py:248 +msgid "service overdue log" +msgstr "Услуга просрочена, отключаем, и подключаем новую" + +#: abonapp/templates/abonapp/abonamount.html:6 +msgid "Additional sum" +msgstr "Начисление средств на счёт" + +#: abonapp/templates/abonapp/abonamount.html:15 +msgid "Amount of money" +msgstr "Количество денег" + +#: abonapp/templates/abonapp/abonamount.html:27 +msgid "Refill" +msgstr "Пополнить" + +#: abonapp/templates/abonapp/abonamount.html:30 +#: abonapp/templates/abonapp/addAbon.html:89 +#: abonapp/templates/abonapp/addGroup.html:32 +#: abonapp/templates/abonapp/addInvoice.html:49 +#: abonapp/templates/abonapp/buy_tariff.html:37 +#: abonapp/templates/abonapp/complete_service.html:63 +msgid "Reset" +msgstr "Сбросить" + +#: abonapp/templates/abonapp/activate_service.html:8 +#: abonapp/templates/abonapp/addAbon.html:7 +#: abonapp/templates/abonapp/addGroup.html:7 +#: abonapp/templates/abonapp/addInvoice.html:7 +#: abonapp/templates/abonapp/buy_tariff.html:7 +#: abonapp/templates/abonapp/complete_service.html:7 +msgid "User groups" +msgstr "Группы абонентов" + +#: abonapp/templates/abonapp/activate_service.html:11 +#: abonapp/templates/abonapp/activate_service.html:18 +msgid "Activate service" +msgstr "Активировать услугу" + +#: abonapp/templates/abonapp/activate_service.html:26 +#, python-format +msgid "" +"\n" +"Are you sure that you want activate service for the user?
\n" +"Note that the account will be removed from his money and open access to the " +"resources of the paid services.
\n" +"Maintenance cost is %(amount)s. On account of %(ballance)s, will be " +"%(diff)s
\n" +"It will work until %(deadline)s" +msgstr "" +"\n" +"Вы уверены что хотите активировать абоненту эту услугу?
Обратите внимание " +"что с его счёта снимутся деньги и откроется доступ к ресурсам " +"оплаченной услуги.
Стоимость услуги: %(amount)sруб. На счету %(ballance)s " +"руб, останется %(diff)s руб.
Услуга будет действовать до %(deadline)s" + +#: abonapp/templates/abonapp/activate_service.html:34 +#: abonapp/templates/abonapp/addAbon.html:86 +#: abonapp/templates/abonapp/addGroup.html:29 +#: abonapp/templates/abonapp/addInvoice.html:46 +#: abonapp/templates/abonapp/buy_tariff.html:34 +#: abonapp/templates/abonapp/complete_service.html:60 +msgid "Save" +msgstr "Сохранить" + +#: abonapp/templates/abonapp/addAbon.html:9 +#: abonapp/templates/abonapp/addAbon.html:16 +msgid "Add abon" +msgstr "Добавить абонента" + +#: abonapp/templates/abonapp/addAbon.html:29 +msgid "Long name" +msgstr "Фамилия и Имя" + +#: abonapp/templates/abonapp/addAbon.html:37 +msgid "Telephone" +msgstr "Телефон" + +#: abonapp/templates/abonapp/addAbon.html:45 +msgid "User group" +msgstr "Группа" + +#: abonapp/templates/abonapp/addAbon.html:53 +#: abonapp/templates/abonapp/addInvoice.html:40 +msgid "Comment" +msgstr "Комментарий" + +#: abonapp/templates/abonapp/addAbon.html:59 +msgid "Street" +msgstr "Улица" + +#: abonapp/templates/abonapp/addAbon.html:67 +msgid "Apartment" +msgstr "Квартира" + +#: abonapp/templates/abonapp/addAbon.html:76 +msgid "Password" +msgstr "Пароль" + +#: abonapp/templates/abonapp/addGroup.html:8 +#: abonapp/templates/abonapp/addGroup.html:15 +msgid "Add group" +msgstr "Добавьте группу абонентов" + +#: abonapp/templates/abonapp/addGroup.html:20 +msgid "Group title" +msgstr "Название группы" + +#: abonapp/templates/abonapp/addInvoice.html:10 +msgid "Add debt" +msgstr "Добавить квитанцию" + +#: abonapp/templates/abonapp/addInvoice.html:17 +msgid "Add receipt for" +msgstr "Добавьте платёж на оплату для" + +#: abonapp/templates/abonapp/addInvoice.html:25 +msgid "Sum of pay" +msgstr "Сумма для платежа" + +#: abonapp/templates/abonapp/addInvoice.html:36 +msgid "Pay status" +msgstr "Статус оплаты" + +#: abonapp/templates/abonapp/buy_tariff.html:10 +#: abonapp/templates/abonapp/buy_tariff.html:25 +msgid "Pick a service" +msgstr "Заказать услугу" + +#: abonapp/templates/abonapp/buy_tariff.html:17 +msgid "Pick a service for" +msgstr "Купить новую услугу (заказать тариф) для" + +#: abonapp/templates/abonapp/buy_tariff.html:18 +msgid "Sub" +msgstr "Абонент" + +#: abonapp/templates/abonapp/complete_service.html:10 +#: abonapp/templates/abonapp/complete_service.html:17 +msgid "Finish service" +msgstr "Завершить услугу" + +#: abonapp/templates/abonapp/complete_service.html:25 +msgid "" +"Early completion of the current service will cause that user will be denied " +"access to services Resources (Net closes)\n" +"To continue to use the resources necessary to connect the required service" +msgstr "" +"Досрочное завершение текущей услуги приведёт к тому что пользователю будет запрещён доступ к ресурсам " +"услуги (закроется инет)
" +"Для продолжения пользования ресурсами надо подключить нужную услугу" + +#: abonapp/templates/abonapp/complete_service.html:32 +msgid "" +"Details:
\n" +"You complete tariff" +msgstr "" +"Подробнее:
" +"Вы завершаете тариф" + +#: abonapp/templates/abonapp/complete_service.html:44 +#, python-format +msgid "" +"The service has been connected: %(time_start)s
\n" +"Today: %(today)s
\n" +"Time of use: %(time_use)s
\n" +"The total cost of the service: %(amount)s
\n" +"Total cost: %(tcost)s" +msgstr "" +"Услуга была подключена: %(time_start)s
" +"Сегодня: %(today)s
" +"Время использования: %(time_use)s
" +"Полная стоимость услуги: %(amount)s
" +"Итоговая стоимость: %(tcost)s" + +#: abonapp/views.py:50 +msgid "create group success msg" +msgstr "Группа успешно создана" + +#: abonapp/views.py:53 abonapp/views.py:111 abonapp/views.py:252 +#: abonapp/views.py:344 +msgid "fix form errors" +msgstr "Некоторые поля заполнены не правильно, проверте ещё раз" + +#: abonapp/views.py:88 abonapp/views.py:153 +msgid "delete group success msg" +msgstr "Группа успешно удалена" + +#: abonapp/views.py:108 +msgid "create abon success msg" +msgstr "Абонент успешно создан" + +#: abonapp/views.py:125 +msgid "Address" +msgstr "Адрес" + +#: abonapp/views.py:147 +msgid "delete abon success msg" +msgstr "Абонент успешно удалён" + +#: abonapp/views.py:156 +msgid "I not know what to delete" +msgstr "Не понятно что удалять" + +#: abonapp/views.py:160 +#, python-format +msgid "NAS says: '%s'" +msgstr "NAS сказал: '%s'" + +#: abonapp/views.py:173 +msgid "fill account through admin side" +msgstr "Пополнение счёта через админку" + +#: abonapp/views.py:175 +#, python-format +msgid "Account filled successfully on %.2f" +msgstr "" + +#: abonapp/views.py:178 +msgid "I not know the account id" +msgstr "Счёт успешно пополнен на %.2f" + +#: abonapp/views.py:250 +msgid "edit abon success msg" +msgstr "Абонент успешно изменён" + +#: abonapp/views.py:257 +#, python-format +msgid "Ip address already exist. %s" +msgstr "" +"Проверте введённые вами значения, скорее всего такой ip уже у кого-то есть. " +"А вообще: %s" + +#: abonapp/views.py:265 +msgid "Ip address not found" +msgstr "Указанный вами ip отсутствует в ip pool" + +#: abonapp/views.py:267 +msgid "User has not have password, and cannot login" +msgstr "Для абонента не задан пароль, он не сможет войти в учётку" + +#: abonapp/views.py:314 +msgid "Receipt has been created" +msgstr "Квитанция на оплату была создана" + +#: abonapp/views.py:341 +msgid "Tariff has been picked" +msgstr "Тариф успешно выбран" + +#: abonapp/views.py:398 +msgid "Service has been finished successfully" +msgstr "Услуга успешно завершена" + +#: abonapp/views.py:401 abonapp/views.py:430 +msgid "Not confirmed" +msgstr "Действие не подтверждено" + +#: abonapp/views.py:433 +msgid "Service has been activated successfully" +msgstr "Услуга успешно активирована" + +#: abonapp/views.py:458 +msgid "User has been detached from service" +msgstr "Абонент отвязан от услуги" + +msgid "House" +msgstr "Дом" + +msgid "Debtors" +msgstr "Должники" + +msgid "People with debts" +msgstr "Народ, у которого есть неоплаченные услуги" + +msgid "Date of make" +msgstr "Дата создания" + +msgid "Author" +msgstr "Автор" + +msgid "Debts not found" +msgstr "Нет должников" + +msgid "Change subscriber" +msgstr "Изменение абонента" + +msgid "Is active" +msgstr "Активен" + +msgid "Ip Address" +msgstr "IP Адрес" + +msgid "Passport information" +msgstr "Паспортные данные" + +msgid "Pasport serial" +msgstr "Серия пас." + +msgid "Pasport number" +msgstr "Номер пас." + +msgid "Distributor" +msgstr "Кем выдан" + +msgid "Ballance" +msgstr "Балланс" + + +msgid "Sub information" +msgstr "Информация абонента" + +msgid "Services" +msgstr "Услуги" +msgid "Service" +msgstr "Услуга" + +msgid "Fill account" +msgstr "Пополнить счёт" + +msgid "Debts" +msgstr "Долги" + +msgid "Payment history" +msgstr "История платежей" + +msgid "History of tasks" +msgstr "История задач" + +msgid "Number of subscribers" +msgstr "Количество абонентов" + +msgid "Groups was not found" +msgstr "Ещё нет групп" + +msgid "Subscribers actions" +msgstr "История действий абонентов" + +msgid "List of debtors" +msgstr "Список должников" + +msgid "History of subscriber" +msgstr "История абонента" + +msgid "Sum" +msgstr "Сумма" + +msgid "Date" +msgstr "Время" + +msgid "Actions not found" +msgstr "Нет событий" + +msgid "Month" +msgstr "Месяц" + +msgid "Date of payment" +msgstr "Дата оплаты" + +msgid "Author of payment" +msgstr "Назначил" + +msgid "Created paid,Not yet paid" +msgstr "Создан оплаченным,Ещё не оплачено" + +msgid "Receipts not found" +msgstr "Назначенные платежи отсутствуют" + +msgid "Payment history is empty" +msgstr "История платежей пуста" + +msgid "The people in the selected group" +msgstr "Народ в выбранной группе" + +msgid "Not assigned" +msgstr "<Не назначен>" + +msgid "Subscribers not found" +msgstr "Абоненты не найдены" + +msgid "Refresh subscribers on NAS" +msgstr "Обновить абонентов в NAS" + +msgid "Services of subscriber" +msgstr "Купленные абонентом услуги (назначенные тарифные планы)" + +msgid "Priority" +msgstr "Приоритет" + +msgid "Input speed" +msgstr "Входящая скорость" + +msgid "Output speed" +msgstr "Исходящая скорость" + +msgid "Time of action" +msgstr "Время действия" + +msgid "Edit" +msgstr "Ред." + +msgid "Priority up" +msgstr "Повысить приоритет" + +msgid "Priority down" +msgstr "Понизить приоритет" + +msgid "Delete service" +msgstr "Удалить услугу" + +msgid "Services of subscribers not found" +msgstr "Нет подключённых абоненту услуг" + +msgid "Buy" +msgstr "Купить" + +msgid "Buy service" +msgstr "Купить услугу" + +msgid "Recipients" +msgstr "Исполнители" + +msgid "State" +msgstr "Состояние" + +msgid "Type" +msgstr "Тип" + +msgid "Recipients not found" +msgstr "Нет исполнителей" + +msgid "Tasks not found" +msgstr "Нет задач" + +msgid "View the subscriber" +msgstr "Просмотр абонента" + +msgid "yes,no" +msgstr "Да,Нет" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + +msgid "" +msgstr "" + diff --git a/abonapp/models.py b/abonapp/models.py index eeb94a7..f285ae3 100644 --- a/abonapp/models.py +++ b/abonapp/models.py @@ -2,6 +2,7 @@ from django.utils import timezone from django.db import models from django.core.validators import DecimalValidator +from django.utils.translation import ugettext as _ from agent import Transmitter, AbonStruct, TariffStruct, NasFailedResult from ip_pool.models import IpPoolItem from tariff_app.models import Tariff @@ -19,7 +20,7 @@ class AbonGroup(models.Model): class Meta: db_table = 'abonent_groups' permissions = ( - ('can_add_ballance', 'Пополнение счёта'), + ('can_add_ballance', _('fill account')), ) def __str__(self): @@ -114,13 +115,13 @@ class AbonTariff(models.Model): amnt = self.calc_amount_service() # если не хватает денег if self.abon.ballance < amnt: - raise LogicError('Не хватает денег на счету') + raise LogicError(_('not enough money')) # считаем дату активации услуги self.time_start = timezone.now() # считаем дату завершения услуги self.deadline = calc_obj.calc_deadline() # снимаем деньги за услугу - self.abon.make_pay(current_user, amnt, u_comment='Завершение и оплата услуги по истечению срока действия') + self.abon.make_pay(current_user, amnt, u_comment=_('service finish log')) self.save() # Используется-ли услуга сейчас, если время старта есть то он активирован @@ -139,8 +140,8 @@ class AbonTariff(models.Model): db_table = 'abonent_tariff' unique_together = (('abon', 'tariff', 'tariff_priority'),) permissions = ( - ('can_complete_service', 'Досрочное завершение услуги абонента'), - ('can_activate_service', 'Активация услуги абонента') + ('can_complete_service', _('finish service perm')), + ('can_activate_service', _('activate service perm')) ) @@ -183,11 +184,11 @@ class Abon(UserProfile): class Meta: db_table = 'abonent' permissions = ( - ('can_buy_tariff', 'Покупка тарифа абоненту'), + ('can_buy_tariff', _('Buy service perm')), ) # Платим за что-то - def make_pay(self, curuser, how_match_to_pay=0.0, u_comment='Снятие со счёта средств'): + def make_pay(self, curuser, how_match_to_pay=0.0, u_comment=_('pay log')): AbonLog.objects.create( abon=self, amount=-how_match_to_pay, @@ -232,7 +233,7 @@ class Abon(UserProfile): AbonLog.objects.create( abon=self, amount=-tariff.amount, author=author, - comment=comment or 'Покупка тарифного плана через админку, тариф "%s"' % tariff + comment=comment or _('Buy service default log') ) # Пробует подключить новую услугу если пришло время @@ -244,7 +245,7 @@ class Abon(UserProfile): for at in ats: # если услуга просрочена if nw > at.deadline: - print("Услуга просрочена, отключаем, и подключаем новую") + print(_('service overdue log')) # выберем следующую по приоритету # next_tarifs = AbonTariff.objects.filter(tariff_priority__gt = self.tariff_priority, abon=self.abon) next_tarifs = [tr for tr in ats if tr.tariff_priority > at.tariff_priority][:2] diff --git a/abonapp/pay_systems.py b/abonapp/pay_systems.py index 5c86651..9673ca5 100644 --- a/abonapp/pay_systems.py +++ b/abonapp/pay_systems.py @@ -68,7 +68,7 @@ def allpay(request): summ=pay_amount ) # тут в author передаём учётку абонента, т.к. это он сам через терминал пополняет - abon.add_ballance(abon, pay_amount, comment='Пополнение на %.2f через AllPay' % pay_amount) + abon.add_ballance(abon, pay_amount, comment='AllPay %.2f' % pay_amount) abon.save(update_fields=['ballance']) current_date = timezone.now().strftime("%d.%m.%Y %H:%M:%S") return "" \ diff --git a/abonapp/templates/abonapp/abonamount.html b/abonapp/templates/abonapp/abonamount.html index 733375b..54cb3a4 100644 --- a/abonapp/templates/abonapp/abonamount.html +++ b/abonapp/templates/abonapp/abonamount.html @@ -1,8 +1,9 @@ {% extends request.is_ajax|yesno:'nullcont.htm,abonapp/ext.htm' %} +{% load i18n %} {% block content %} - Начисление средств на счёт + {% trans 'Additional sum' %}
@@ -11,7 +12,7 @@ method="post"> {% csrf_token %}
- +
@@ -23,10 +24,10 @@
diff --git a/abonapp/templates/abonapp/activate_service.html b/abonapp/templates/abonapp/activate_service.html index bfa6dfd..040b669 100644 --- a/abonapp/templates/abonapp/activate_service.html +++ b/abonapp/templates/abonapp/activate_service.html @@ -1,35 +1,37 @@ {% extends request.is_ajax|yesno:'bajax.html,base.html' %} +{% load i18n %} {% block main %} {% include 'message_block.html' %}
-

Активировать услугу

+

{% trans 'Activate service' %}

{% csrf_token %} -

Вы уверены что хотите активировать абоненту эту услугу?
- Обратите внимание что с его счёта снимутся деньги и откроется доступ к ресурсам оплаченной - услуги.
- Стоимость услуги: {{ amount }}руб. На счету {{ abon.ballance }} руб, останется {{ diff }} руб.
- Услуга будет действовать до {{ deadline|date:'d F Y, H:i:s' }} +

+{% blocktrans with ballance=abon.ballance deadline=deadline|date:'d F Y, H:i:s' %} +Are you sure that you want activate service for the user?
+Note that the account will be removed from his money and open access to the resources of the paid services.
+Maintenance cost is {{ amount }}. On account of {{ ballance }}, will be {{ diff }}
+It will work until {{ deadline }}{% endblocktrans %}

diff --git a/abonapp/templates/abonapp/addAbon.html b/abonapp/templates/abonapp/addAbon.html index c63cce7..c69cc6c 100644 --- a/abonapp/templates/abonapp/addAbon.html +++ b/abonapp/templates/abonapp/addAbon.html @@ -1,23 +1,24 @@ {% extends request.is_ajax|yesno:'bajax.html,base.html' %} +{% load i18n %} {% block main %} {% include 'message_block.html' %}
-

Добавьте аккаунт абонента

+

{% trans 'Add abon' %}

{% csrf_token %}
- +
@@ -25,7 +26,7 @@
- +
@@ -33,7 +34,7 @@
- +
@@ -41,7 +42,7 @@
- +
@@ -49,13 +50,13 @@
- + {{ form.description }}{{ form.description.errors }}
- +
@@ -63,7 +64,7 @@
- +
@@ -72,7 +73,7 @@
- +
@@ -82,10 +83,10 @@
diff --git a/abonapp/templates/abonapp/addGroup.html b/abonapp/templates/abonapp/addGroup.html index 20e72e6..4f407a3 100644 --- a/abonapp/templates/abonapp/addGroup.html +++ b/abonapp/templates/abonapp/addGroup.html @@ -1,35 +1,35 @@ {% extends 'base.html' %} +{% load i18n %} {% block main %} - {% include 'message_block.html' %}
-

Добавьте группу абонентов

+

{% trans 'Add group' %}

{% csrf_token %}
- +
- {{ form.title.errors }} + {{ form.title.errors }}
diff --git a/abonapp/templates/abonapp/addInvoice.html b/abonapp/templates/abonapp/addInvoice.html index 22f9a26..1c65d5e 100644 --- a/abonapp/templates/abonapp/addInvoice.html +++ b/abonapp/templates/abonapp/addInvoice.html @@ -1,20 +1,20 @@ {% extends request.is_ajax|yesno:'bajax.html,base.html' %} +{% load i18n %} {% block main %} - {% include 'message_block.html' %}
-

Добавьте платёж на оплату для +

{% trans 'Add receipt for' %} {{ abon.fio }}

@@ -22,7 +22,7 @@
{% csrf_token %}
- +
@@ -33,20 +33,20 @@
- +
diff --git a/abonapp/templates/abonapp/buy_tariff.html b/abonapp/templates/abonapp/buy_tariff.html index 0e4259c..b952d60 100644 --- a/abonapp/templates/abonapp/buy_tariff.html +++ b/abonapp/templates/abonapp/buy_tariff.html @@ -1,28 +1,28 @@ {% extends request.is_ajax|yesno:'bajax.html,base.html' %} +{% load i18n %} {% block main %} - {% include 'message_block.html' %}
-

Купить новую услугу (заказать тариф) для - абонента +

{% trans 'Pick a service for' %} + {% trans 'Sub' %}

{% csrf_token %}
- +
@@ -31,10 +31,10 @@
diff --git a/abonapp/templates/abonapp/complete_service.html b/abonapp/templates/abonapp/complete_service.html index 607568b..0d30ea5 100644 --- a/abonapp/templates/abonapp/complete_service.html +++ b/abonapp/templates/abonapp/complete_service.html @@ -1,32 +1,33 @@ {% extends request.is_ajax|yesno:'bajax.html,base.html' %} +{% load i18n %} {% block main %} - {% include 'message_block.html' %}
-

Завершить услугу

+

{% trans 'Finish service' %}

{% csrf_token %} -

Досрочное завершение текущей услуги приведёт к тому что пользователю будет запрещён доступ к ресурсам - услуги (закроется инет)
- Для продолжения пользования ресурсами надо подключить нужную услугу

+

+ {% blocktrans %}Early completion of the current service will cause that user will be denied access to services Resources (Net closes) +To continue to use the resources necessary to connect the required service{% endblocktrans %} +

-

Подробнее:
- Вы завершаете тариф +

{% blocktrans %}Details:
+You complete tariff{% endblocktrans %} {% if perms.tariff_app.change_tariff %} {{ abtar.tariff.title }}.
@@ -34,20 +35,20 @@ {{ abtar.tariff.title }}.
{% endif %} - Услуга была подключена: {{ abtar.time_start|date:'d F Y, H:i:s' }}
- Сегодня: {% now "d F Y, H:i:s" %}
- Время использования: {{ time_use }}
- Полная стоимость услуги: {{ abtar.tariff.amount }}
- Итоговая стоимость: {{ abtar.calc_amount_service }} + {% now "d F Y, H: i: s" as today %} + {% blocktrans with time_start=abtar.time_start|date:'d F Y, H: i: s' amount=abtar.tariff.amount tcost=abtar.calc_amount_service %}The service has been connected: {{ time_start }}
+Today: {{ today }}
+Time of use: {{ time_use }}
+The total cost of the service: {{ amount }}
+Total cost: {{ tcost }}{% endblocktrans %}

-
diff --git a/abonapp/templates/abonapp/debtors.html b/abonapp/templates/abonapp/debtors.html index 1499b41..96d16be 100644 --- a/abonapp/templates/abonapp/debtors.html +++ b/abonapp/templates/abonapp/debtors.html @@ -1,26 +1,27 @@ {% extends 'base.html' %} +{% load i18n %} {% block main %} {% include 'message_block.html' %} -

Народ, у которого есть неоплаченные услуги

+

{% trans 'People with debts' %}

- - - - - + + + + + @@ -38,7 +39,7 @@ {% empty %} {% endfor %} diff --git a/abonapp/templates/abonapp/editAbon.html b/abonapp/templates/abonapp/editAbon.html index e81bef7..7701cc4 100644 --- a/abonapp/templates/abonapp/editAbon.html +++ b/abonapp/templates/abonapp/editAbon.html @@ -1,52 +1,53 @@ {% extends request.is_ajax|yesno:'nullcont.htm,abonapp/ext.htm' %} +{% load i18n %} {% block content %}
-

Изменение абонента

+

{% trans 'Change subscriber' %}

{% csrf_token %}
- +
{{ form.group }}{{ form.group.errors }}
- +
{{ form.is_active }}
- +
{{ form.username }}{{ form.username.errors }}
- +
{{ form.fio }}{{ form.fio.errors }}
- +
{{ form.telephone }}{{ form.telephone.errors }}
- +
{{ form.street }}{{ form.street.errors }} @@ -54,7 +55,7 @@
- +
{{ form.house }}{{ form.house.errors }} @@ -62,21 +63,21 @@
- +
- +
{{ form.password }}{{ form.password.errors }}
- +
{{ form.description }}{{ form.description.errors }}
@@ -85,7 +86,7 @@
@@ -98,25 +99,25 @@
-

Паспортные данные

+

{% trans 'Passport information' %}

- +
- +
- +
@@ -125,7 +126,7 @@
diff --git a/abonapp/templates/abonapp/ext.htm b/abonapp/templates/abonapp/ext.htm index 86f8666..ce69167 100644 --- a/abonapp/templates/abonapp/ext.htm +++ b/abonapp/templates/abonapp/ext.htm @@ -1,9 +1,10 @@ {% extends request.is_ajax|yesno:'bajax.html,base.html' %} +{% load i18n %} {% block main %} @@ -11,9 +12,9 @@ {% include 'message_block.html' %} @@ -22,34 +23,34 @@ {% url 'abonapp:abon_home' abon_group.id abon.id as abon_home %} - Информация абонента + {% trans 'Sub information' %} {% url 'abonapp:abon_services' abon_group.id abon.id as abserv %} - Услуги + {% trans 'Services' %} {% if perms.abonapp.can_add_ballance %} {% url 'abonapp:abon_amount' abon_group.id abon.id as abamount %} - Пополнить счёт + {% trans 'Fill account' %} {% endif %} {% url 'abonapp:abon_debts' abon_group.id abon.id as abondebts %} - Долги + {% trans 'Debts' %} {% url 'abonapp:abon_phistory' abon_group.id abon.id as abphist %} - История платежей + {% trans 'Payment history' %} {% url 'abonapp:task_log' abon_group.id abon.id as abtasklog %} - История задач + {% trans 'History of tasks' %} diff --git a/abonapp/templates/abonapp/group_list.html b/abonapp/templates/abonapp/group_list.html index 1fe2760..d3ec5f4 100644 --- a/abonapp/templates/abonapp/group_list.html +++ b/abonapp/templates/abonapp/group_list.html @@ -1,13 +1,14 @@ {% extends 'base.html' %} +{% load i18n %} {% block main %} -

Группы абонентов

+

{% trans 'User groups' %}

{% include 'message_block.html' %} @@ -18,14 +19,14 @@
- + @@ -47,7 +48,7 @@ {% empty %} - + {% endfor %} @@ -56,14 +57,14 @@ diff --git a/abonapp/templates/abonapp/invoiceForPayment.html b/abonapp/templates/abonapp/invoiceForPayment.html index b097527..231a398 100644 --- a/abonapp/templates/abonapp/invoiceForPayment.html +++ b/abonapp/templates/abonapp/invoiceForPayment.html @@ -1,16 +1,17 @@ {% extends request.is_ajax|yesno:'nullcont.htm,abonapp/ext.htm' %} +{% load i18n %} {% block content %}
#АбонентЦенаКомментарийДата созданияАвтор{% trans 'Sub' %}{% trans 'Sum of pay' %}{% trans 'Comment' %}{% trans 'Date of make' %}{% trans 'Author' %}
- Нет должников + {% trans 'Debts not found' %}
# - Название группы + {% trans 'Group title' %} {% if order_by == 'title' %}{% endif %} - Количество абонентов + {% trans 'Number of subscribers' %} Do#
Ещё нет групп{% trans 'Groups was not found' %}
{% if perms.abonapp.add_abongroup %} - Создать группу + {% trans 'Add group' %} {% endif %} - Действия абонентов + {% trans 'Subscribers actions' %} - Список должников + {% trans 'List of debtors' %}
- - - - - - - + + + + + + + @@ -29,14 +30,14 @@ {% if inv.date_pay %} {{ inv.date_pay|date:"D d M Y H:i:s" }} {% else %} - {{ inv.status|yesno:'Создан оплаченным,Ещё не оплачено' }} + {{ inv.status|yesno:_('Created paid,Not yet paid') }} {% endif %} {% empty %} - + {% endfor %} @@ -45,7 +46,7 @@ diff --git a/abonapp/templates/abonapp/log.html b/abonapp/templates/abonapp/log.html index cb8d2d5..90ca85e 100644 --- a/abonapp/templates/abonapp/log.html +++ b/abonapp/templates/abonapp/log.html @@ -1,24 +1,25 @@ {% extends 'base.html' %} +{% load i18n %} {% block main %} {% include 'message_block.html' %} -

История абонента

+

{% trans 'History of subscriber' %}

СтатусМесяцСтоимостьКомментарийДата созданияДата оплатыНазначил{% trans 'Pay status' %}{% trans 'Month' %}{% trans 'Sum' %}{% trans 'Comment' %}{% trans 'Date of make' %}{% trans 'Date of payment' %}{% trans 'Author of payment' %}
{{ inv.author.username }}
Назначенные платежи отсутствуют{% trans 'Receipts not found' %}
- Добавить + {% trans 'Add debt' %}
- - - - - + + + + + @@ -36,17 +37,14 @@ {% empty %} - + {% endfor %} -
СуммаАбонентКомментарийВремяАвтор{% trans 'Sum' %}{% trans 'Sub' %}{% trans 'Comment' %}{% trans 'Date' %}{% trans 'Author' %}
Нет событий{% trans 'Actions not found' %}
{% include 'toolbar_page.html' with pag=logs %} - - {% endblock %} \ No newline at end of file diff --git a/abonapp/templates/abonapp/payHistory.html b/abonapp/templates/abonapp/payHistory.html index 98c0999..a353427 100644 --- a/abonapp/templates/abonapp/payHistory.html +++ b/abonapp/templates/abonapp/payHistory.html @@ -1,14 +1,15 @@ {% extends request.is_ajax|yesno:'nullcont.htm,abonapp/ext.htm' %} +{% load i18n %} {% block content %} - - - - - + + + + + @@ -22,7 +23,7 @@ {% empty %} - + {% endfor %} diff --git a/abonapp/templates/abonapp/peoples.html b/abonapp/templates/abonapp/peoples.html index 145075e..955f026 100644 --- a/abonapp/templates/abonapp/peoples.html +++ b/abonapp/templates/abonapp/peoples.html @@ -1,59 +1,60 @@ {% extends 'base.html' %} +{% load i18n %} {% block main %} {% include 'message_block.html' %} -

Народ в выбранной группе

+

{% trans 'The people in the selected group' %}

АбонентСуммаДата транзакцииАвтор платежаКомментарий{% trans 'Sub' %}{% trans 'Sum' %}{% trans 'Date of payment' %}{% trans 'Author of payment' %}{% trans 'Comment' %}
История платежей пуста{% trans 'Payment history is empty' %}
- - + + - + @@ -64,10 +65,10 @@ {% endif %} - + - - + + @@ -104,11 +105,11 @@ diff --git a/abonapp/templates/abonapp/services.html b/abonapp/templates/abonapp/services.html index bcbabcc..c87e936 100644 --- a/abonapp/templates/abonapp/services.html +++ b/abonapp/templates/abonapp/services.html @@ -1,17 +1,18 @@ {% extends request.is_ajax|yesno:'nullcont.htm,abonapp/ext.htm' %} +{% load i18n %} {% block content %} - Купленные абонентом услуги (назначенные тарифные планы) + {% trans 'Services of subscriber' %}
- Абонент + {% trans 'Sub' %} {% if order_by == 'username' %}{% endif %} - IP Адрес + {% trans 'Ip address' %} {% if order_by == 'ip_address' %}{% endif %} - ФИО + {% trans 'fio' %} {% if order_by == 'fio' %}{% endif %} - Улица + {% trans 'Street' %} {% if order_by == 'street' %}{% endif %} - дом/кв + {% trans 'House' %}/{% trans 'Apartment' %} {% if order_by == 'house' %}{% endif %} ТелефонТариф{% trans 'Telephone' %}{% trans 'Service' %} - Балланс + {% trans 'Ballance' %} {% if order_by == 'ballance' %}{% endif %} Do#
{{ human.username }}{{ human.ip_address|default:'Не назначен' }}{{ human.ip_address|default:_('Not assigned') }} {{ human.fio }}{{ human.street|default:'Не указан' }}{{ human.house|default:'Не указан' }}{{ human.street|default:_('Not assigned') }}{{ human.house|default:_('Not assigned') }} {{ human.telephone }} {% if human.active_tariff %} @@ -91,9 +92,9 @@ {% empty %}
- Ещё нет абонентов. + {% trans 'Subscribers not found' %}. {% if perms.abonapp.add_abon %} - Добавить + {% trans 'Add abon' %} {% endif %}
{% if perms.abonapp.add_abon %} - Добавить абонента + {% trans 'Add abon' %} {% endif %} - Обновить абонентов в NAS + {% trans 'Refresh subscribers on NAS' %}
- - - - - - - + + + + + + + @@ -40,7 +41,7 @@ {% if perms.abonapp.can_activate_service %} {% if not active_abontariff_id %} + class="btn btn-success btn-sm" title="{% trans 'Activate service' %}"> {% endif %} @@ -48,37 +49,36 @@ + class="btn btn-default btn-sm disabled" title="{% trans 'Priority up' %}"> + class="btn btn-default btn-sm disabled" title="{% trans 'Priority down' %}"> {% if perms.abonapp.delete_abontariff %} + class="btn btn-danger btn-sm" title="{% trans 'Delete service' %}"> {% endif %} {% else %} {% endif %} {% empty %} - @@ -89,7 +89,7 @@ diff --git a/abonapp/templates/abonapp/task_log.html b/abonapp/templates/abonapp/task_log.html index b4699bf..63fcd4e 100644 --- a/abonapp/templates/abonapp/task_log.html +++ b/abonapp/templates/abonapp/task_log.html @@ -1,15 +1,16 @@ {% extends request.is_ajax|yesno:'nullcont.htm,abonapp/ext.htm' %} +{% load i18n %} {% block content %}
ПриоритетТарифСтоимостьВходящая скоростьИсходящая скоростьВремя действияРед.{% trans 'Priority' %}{% trans 'Service' %}{% trans 'Sum' %}{% trans 'Input speed' %}{% trans 'Output speed' %}{% trans 'Time of action' %}{% trans 'Edit' %}
- - Завершить + + {% trans 'Finish service' %}
Нет подключённых абоненту услуг. + {% trans 'Services of subscribers not found' %}. {% if perms.abonapp.can_buy_tariff %} - Купить + {% trans 'Buy' %} {% endif %}
- Купить услугу + {% trans 'Buy service' %}
- - - - - - + + + + + + @@ -20,7 +21,7 @@ {% for rec in task.recipients.all %} {{ rec.get_short_name }} {% empty %} - Нет исполнителей + {% trans 'Recipients not found' %} {% endfor %} @@ -30,7 +31,7 @@ {% empty %} - + {% endfor %} diff --git a/abonapp/templates/abonapp/viewAbon.html b/abonapp/templates/abonapp/viewAbon.html index a01852e..914b7e9 100644 --- a/abonapp/templates/abonapp/viewAbon.html +++ b/abonapp/templates/abonapp/viewAbon.html @@ -1,4 +1,5 @@ {% extends request.is_ajax|yesno:'nullcont.htm,abonapp/ext.htm' %} +{% load i18n %} {% block content %}
@@ -6,51 +7,51 @@
-

Просмотр абонента

+

{% trans 'View the subscriber' %}

АвторИсполнителиКомментарийСостояниеТипДата создания{% trans 'Author' %}{% trans 'Recipients' %}{% trans 'Comment' %}{% trans 'State' %}{% trans 'Type' %}{% trans 'Date of make' %}
{{ task.descr|default:'—' }}
Нет задач{% trans 'Tasks not found' %}
- + - + - - + + - - + + - - + + - + - - + + - - + + - + @@ -63,17 +64,17 @@
-

Паспортные данные (статичная)

+

{% trans 'Passport information' %}

Группа{% trans 'User group' %} - {{ abon.group|default:'<нет>' }} + {{ abon.group|default:_('Not assigned') }}
Активен{% trans 'Is active' %} - {{ abon.is_active|yesno:'Да,Нет' }} + {{ abon.is_active|yesno:_('yes,no') }}
Логин{{ abon.username|default:'<нет>' }}{% trans 'login' %}{{ abon.username|default:_('Not assigned') }}
ФИО{{ abon.fio|default:'<нет>' }}{% trans 'fio' %}{{ abon.fio|default:_('Not assigned') }}
Телефон{{ abon.telephone|default:'<нет>' }}{% trans 'Telephone' %}{{ abon.telephone|default:_('Not assigned') }}
Улица{% trans 'Street' %} - {{ abon.street|default:'<нет>' }} + {{ abon.street|default:_('Not assigned') }}
Дом{{ abon.house|default:'<не указан>' }}{% trans 'House' %}{{ abon.house|default:_('Not assigned') }}
IP Адрес{{ abon.ip_address|default:'<не назначен>' }}{% trans 'Ip Address' %}{{ abon.ip_address|default:_('Not assigned') }}
Пароль{% trans 'Password' %} {{ passw }}
- + - + diff --git a/abonapp/views.py b/abonapp/views.py index 2b04f05..be9e221 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -8,6 +8,7 @@ from django.contrib.auth.decorators import login_required, permission_required from django.utils import timezone from django.http import HttpResponse, Http404 from django.contrib import messages +from django.utils.translation import ugettext as _ from tariff_app.models import Tariff from agent import NasFailedResult, Transmitter, NasNetworkError @@ -46,10 +47,10 @@ def addgroup(request): frm = forms.AbonGroupForm(request.POST) if frm.is_valid(): frm.save() - messages.success(request, 'Группа успешно создана') + messages.success(request, _('create group success msg')) return redirect('abonapp:group_list') else: - messages.error(request, 'Исправьте ошибки') + messages.error(request, _('fix form errors')) except NasFailedResult as e: messages.error(request, e) except NasNetworkError as e: @@ -84,7 +85,7 @@ def delgroup(request): try: agd = mydefs.safe_int(request.GET.get('id')) get_object_or_404(models.AbonGroup, id=agd).delete() - messages.success(request, 'Группа успешно удалена') + messages.success(request, _('delete group success msg')) return mydefs.res_success(request, 'abonapp:group_list') except NasFailedResult as e: messages.error(request, e) @@ -104,10 +105,10 @@ def addabon(request, gid): frm = forms.AbonForm(request.POST, initial={'group': group}) if frm.is_valid(): abon = frm.save() - messages.success(request, 'Абонент создан') + messages.success(request, _('create abon success msg')) return redirect('abonapp:abon_home', group.id, abon.pk) else: - messages.error(request, 'Некоторые поля заполнены не правильно, проверте ещё раз') + messages.error(request, _('fix form errors')) except IntegrityError as e: messages.error(request, e) @@ -121,7 +122,7 @@ def addabon(request, gid): if not frm: frm = forms.AbonForm(initial={ 'group': group, - 'address': 'Адрес', + 'address': _('Address'), 'is_active': False }) @@ -143,20 +144,20 @@ def delentity(request): abon = get_object_or_404(models.Abon, id=uid) gid = abon.group.id abon.delete() - messages.success(request, 'Абонент успешно удалён') + messages.success(request, _('delete abon success msg')) return mydefs.res_success(request, resolve_url('abonapp:people_list', gid=gid)) elif typ == 'g': if not request.user.has_perm('abonapp.delete_abongroup'): raise PermissionDenied get_object_or_404(models.AbonGroup, id=uid).delete() - messages.success(request, 'Группа успешно удалёна') + messages.success(request, _('delete group success msg')) return mydefs.res_success(request, 'abonapp:group_list') else: - messages.warning(request, 'Не понятно что удалять') + messages.warning(request, _('I not know what to delete')) except NasNetworkError as e: messages.error(request, e) except NasFailedResult as e: - messages.error(request, "NAS сказал: '%s'" % e) + messages.error(request, _("NAS says: '%s'") % e) return redirect('abonapp:group_list') @@ -169,12 +170,12 @@ def abonamount(request, gid, uid): abonid = mydefs.safe_int(request.POST.get('abonid')) if abonid == int(uid): amnt = mydefs.safe_float(request.POST.get('amount')) - abon.add_ballance(request.user, amnt, comment='Пополнение счёта через админку') + abon.add_ballance(request.user, amnt, comment=_('fill account through admin side')) abon.save(update_fields=['ballance']) - messages.success(request, 'Счёт успешно пополнен на %d' % amnt) + messages.success(request, _('Account filled successfully on %.2f') % amnt) return redirect('abonapp:abon_home', gid=gid, uid=uid) else: - messages.error(request, 'Не могу разобрать id абонента') + messages.error(request, _('I not know the account id')) except NasNetworkError as e: messages.error(request, e) except NasFailedResult as e: @@ -246,18 +247,14 @@ def abonhome(request, gid, uid): else: abon.ip_address = None frm.save() - messages.success(request, 'Абонент успешно сохранён') + messages.success(request, _('edit abon success msg')) else: - messages.warning(request, 'Не правильные значения, проверте поля и попробуйте ещё') + messages.warning(request, _('fix form errors')) else: passw = models.AbonRawPassword.objects.get(account=abon).passw_text frm = forms.AbonForm(instance=abon, initial={'password': passw}) except IntegrityError as e: - messages.error(request, 'Проверте введённые вами значения, скорее всего такой ip уже у кого-то есть. А вообще: %s' % e) - frm = forms.AbonForm(instance=abon, initial={'password': passw}) - - except Http404: - messages.error(request, 'Ip адрес не найден в списке IP адресов') + messages.error(request, _('Ip address already exist. %s') % e) frm = forms.AbonForm(instance=abon, initial={'password': passw}) except NasFailedResult as e: @@ -265,9 +262,9 @@ def abonhome(request, gid, uid): except NasNetworkError as e: messages.error(request, e) except IpPoolItem.DoesNotExist: - messages.error(request, 'Указанный вами ip отсутствует в ip pool') + messages.error(request, _('Ip address not found')) except models.AbonRawPassword.DoesNotExist: - messages.warning(request, 'Для абонента не задан пароль, он не сможет войти в учётку') + messages.warning(request, _('User has not have password, and cannot login')) if request.user.has_perm('abonapp.change_abon'): return render(request, 'abonapp/editAbon.html', { @@ -314,7 +311,7 @@ def add_invoice(request, gid, uid): newinv.author = request.user newinv.save() - messages.success(request, 'Необходимый платёж создан') + messages.success(request, _('Receipt has been created')) return redirect('abonapp:abon_home', gid=gid, uid=uid) except NasNetworkError as e: @@ -341,10 +338,10 @@ def pick_tariff(request, gid, uid): cd = frm.cleaned_data abon.pick_tariff(cd['tariff'], request.user) #abon.save() - messages.success(request, 'Тариф успешно выбран') + messages.success(request, _('Tariff has been picked')) return redirect('abonapp:abon_services', gid=gid, uid=abon.id) else: - messages.error(request, 'Что-то не так при покупке услуги, проверьте и попробуйте ещё') + messages.error(request, _('fix form errors')) else: frm = forms.BuyTariff() except models.LogicError as e: @@ -398,10 +395,10 @@ def complete_service(request, gid, uid, srvid): if request.POST.get('finish_confirm') == 'yes': # удаляем запись о текущей услуге. abtar.delete() - messages.success(request, 'Услуга успешно завершена') + messages.success(request, _('Service has been finished successfully')) return redirect('abonapp:abon_services', gid, uid) else: - raise models.LogicError('Действие не подтверждено') + raise models.LogicError(_('Not confirmed')) time_use = mydefs.RuTimedelta(timezone.now() - abtar.time_start) @@ -430,10 +427,10 @@ def activate_service(request, gid, uid, srvid): try: if request.method == 'POST': if request.POST.get('finish_confirm') != 'yes': - return HttpResponse('

Запрос не подтверждён

') + return HttpResponse(_('Not confirmed')) abtar.activate(request.user) - messages.success(request, 'Услуга активирована') + messages.success(request, _('Service has been activated successfully')) return redirect('abonapp:abon_services', gid, uid) except NasFailedResult as e: @@ -458,7 +455,7 @@ def activate_service(request, gid, uid, srvid): def unsubscribe_service(request, gid, uid, srvid): try: get_object_or_404(models.AbonTariff, id=int(srvid)).delete() - messages.success(request, 'Абонент отвязан от услуги') + messages.success(request, _('User has been detached from service')) except NasFailedResult as e: messages.error(request, e) except NasNetworkError as e:
Серия пас.{% trans 'Pasport serial' %} 67 54 937238746
Кем выдан{% trans 'Distributor' %} ОСУО Всякое название