diff --git a/abonapp/locale/ru/LC_MESSAGES/django.po b/abonapp/locale/ru/LC_MESSAGES/django.po index f06f1f4..1485d7f 100644 --- a/abonapp/locale/ru/LC_MESSAGES/django.po +++ b/abonapp/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-06-15 13:35+0300\n" +"POT-Creation-Date: 2017-12-27 14:08+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Dmitry Novikov nerosketch@gmail.com\n" "Language: ru\n" @@ -19,1004 +19,982 @@ msgstr "" "%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" "%100>=11 && n%100<=14)? 2 : 3);\n" -#: abonapp/formfields.py:12 -msgid "Enter a valid integer." -msgstr "Введите верное число" - -#: abonapp/formfields.py:21 -msgid "Enter a valid MAC Address." -msgstr "Введите валидный mac адрес" - -#: abonapp/forms.py:42 abonapp/templates/abonapp/addAbon.html.py:21 -#: abonapp/templates/abonapp/editAbon.html:15 -#: abonapp/templates/abonapp/viewAbon.html:28 +#: forms.py:45 templates/abonapp/addAbon.html.py:21 +#: templates/abonapp/editAbon.html:16 templates/abonapp/viewAbon.html.py:28 msgid "login" msgstr "Логин" -#: abonapp/forms.py:55 abonapp/templates/abonapp/editAbon.html.py:22 -#: abonapp/templates/abonapp/peoples.html:37 -#: abonapp/templates/abonapp/viewAbon.html:32 +#: forms.py:58 templates/abonapp/editAbon.html.py:23 +#: templates/abonapp/peoples.html:38 templates/abonapp/viewAbon.html.py:32 msgid "fio" msgstr "ФИО" -#: abonapp/forms.py:60 +#: forms.py:63 forms.py:146 msgid "telephone placeholder" msgstr "+[7,8,9,3] и 10,11 цифр" -#: abonapp/models.py:23 -msgid "fill account" -msgstr "Пополнение счёта" +#: models.py:30 +msgid "Can view subscriber group" +msgstr "Может просматривать группу абонентов" -#: abonapp/models.py:116 -msgid "not enough money" -msgstr "Не хватает денег на счету" +#: models.py:32 +msgid "Abon group" +msgstr "Группа абонентов" -#: abonapp/models.py:144 +#: models.py:33 +msgid "Abon groups" +msgstr "Группы абонентов" + +#: models.py:49 +msgid "Can view subscriber logs" +msgstr "Может видеть логи абонента" + +#: models.py:82 msgid "finish service perm" msgstr "Снятие со счёта средств" -#: abonapp/models.py:162 +#: models.py:84 +msgid "Abon service" +msgstr "Услуга абонента" + +#: models.py:85 +msgid "Abon services" +msgstr "Услуги абонентов" + +#: models.py:97 templates/abonapp/addAbon.html.py:59 +#: templates/abonapp/editAbon.html:64 templates/abonapp/peoples.html.py:44 +#: templates/abonapp/viewAbon.html:40 +msgid "Street" +msgstr "Улица" + +#: models.py:98 templates/abonapp/peoples.html.py:148 +msgid "Streets" +msgstr "Улицы" + +#: models.py:103 msgid "Digital field" msgstr "Цифровое поле" -#: abonapp/models.py:163 +#: models.py:104 msgid "Text field" msgstr "Текстовое поле" -#: abonapp/models.py:164 +#: models.py:105 msgid "Floating field" msgstr "Дробное с плавающей точкой" -#: abonapp/models.py:165 abonapp/templates/abonapp/editAbon.html.py:43 -#: abonapp/templates/abonapp/viewAbon.html:50 +#: models.py:106 templates/abonapp/editAbon.html.py:50 +#: templates/abonapp/viewAbon.html:50 msgid "Ip Address" msgstr "IP Адрес" -#: abonapp/models.py:190 +#: models.py:131 msgid "Double invalid value" msgstr "Введите число с плавающей запятой" -#: abonapp/models.py:244 +#: models.py:172 msgid "Buy service perm" msgstr "Покупка тарифа абоненту" -#: abonapp/models.py:245 +#: models.py:173 msgid "Can view passport" msgstr "Может просматривать паспортные данные" -#: abonapp/models.py:292 +#: models.py:174 +msgid "fill account" +msgstr "Пополнение счёта" + +#: models.py:175 +msgid "Can ping" +msgstr "Может пинговать" + +#: models.py:178 +msgid "Abon" +msgstr "Абонент" + +#: models.py:179 +msgid "Abons" +msgstr "Абоненты" + +#: models.py:204 +msgid "User that is no staff can not buy admin services" +msgstr "" +"Пользователь, который не является персоналом не может покупать услуги для " +"внутренних нужд" + +#: models.py:209 +msgid "That service already activated" +msgstr "Эта услуга уже подключена" + +#: models.py:212 +msgid "Service already activated" +msgstr "Услуга уже подключена" + +#: models.py:216 +msgid "not enough money" +msgstr "Не хватает денег на счету" + +#: models.py:231 msgid "Buy service default log" msgstr "Покупка тарифного плана через админку" -#: abonapp/models.py:307 -msgid "service overdue log" -msgstr "Услуга просрочена, отключаем, и подключаем новую" - -#: abonapp/models.py:347 +#: models.py:272 msgid "Ip address already exist" msgstr "Такой ip уже у кого-то есть" -#: 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 -#: abonapp/templates/abonapp/debtors.html:8 -#: abonapp/templates/abonapp/group_list.html:8 -#: abonapp/templates/abonapp/group_list.html:11 -#: abonapp/templates/abonapp/group_list.html:47 -#: abonapp/templates/abonapp/group_tariffs.html:7 -#: abonapp/templates/abonapp/invoiceForPayment.html:7 -#: abonapp/templates/abonapp/log.html:7 -#: abonapp/templates/abonapp/peoples.html:8 -#: abonapp/templates/abonapp/peoples.html:132 +#: models.py:285 models.py:286 +msgid "Passport Info" +msgstr "Паспортные данные" + +#: models.py:315 +msgid "Can view invoice for payment" +msgstr "Может видеть назначенные платежи" + +#: models.py:317 +msgid "Debt" +msgstr "Квитанция (долг)" + +#: models.py:318 templates/abonapp/invoiceForPayment.html.py:10 +#: templates/abonapp/payHistory.html:44 +msgid "Debts" +msgstr "Квитанции (долги)" + +#: models.py:380 templates/abonapp/addAbon.html.py:37 +#: templates/abonapp/editAbon.html:30 templates/abonapp/modal_add_phone.html:10 +#: templates/abonapp/modal_additional_telephones.html:14 +#: templates/abonapp/modal_phonebook.html:10 templates/abonapp/peoples.html:54 +#: templates/abonapp/viewAbon.html.py:36 +msgid "Telephone" +msgstr "Телефон" + +#: models.py:393 +msgid "Can view additional telephones" +msgstr "Может видеть дополнительные телефоны" + +#: models.py:395 +msgid "Additional telephone" +msgstr "Дополнительный телефон" + +#: models.py:396 templates/abonapp/editAbon.html.py:38 +#: templates/abonapp/modal_additional_telephones.html:5 +msgid "Additional telephones" +msgstr "Дополнительные телефоны" + +#: templates/abonapp/addAbon.html:7 templates/abonapp/addGroup.html.py:7 +#: templates/abonapp/addInvoice.html:7 templates/abonapp/buy_tariff.html:7 +#: templates/abonapp/debtors.html.py:8 templates/abonapp/group_list.html:8 +#: templates/abonapp/group_list.html:11 templates/abonapp/group_list.html:47 +#: templates/abonapp/group_tariffs.html:7 +#: templates/abonapp/invoiceForPayment.html:7 templates/abonapp/log.html:7 +#: templates/abonapp/peoples.html.py:9 templates/abonapp/peoples.html:134 +#: templates/abonapp/service.html.py:103 templates/abonapp/service.html:111 msgid "User groups" msgstr "Группы абонентов" -#: abonapp/templates/abonapp/services.html:44 -msgid "Activate service" -msgstr "Активировать услугу" - -#: abonapp/templates/abonapp/addAbon.html:91 -#: abonapp/templates/abonapp/addGroup.html:29 -#: abonapp/templates/abonapp/addInvoice.html:46 -#: abonapp/templates/abonapp/buy_tariff.html:57 -#: abonapp/templates/abonapp/complete_service.html:49 -#: abonapp/templates/abonapp/editAbon.html:103 -#: abonapp/templates/abonapp/editAbon.html:192 -#: abonapp/templates/abonapp/editAbon.html:238 -#: abonapp/templates/abonapp/group_tariffs.html:29 -#: abonapp/templates/abonapp/modal_dev.html:29 -#: abonapp/templates/abonapp/passport_view.html:49 -msgid "Save" -msgstr "Сохранить" - -#: abonapp/templates/abonapp/addAbon.html:9 -#: abonapp/templates/abonapp/addAbon.html:16 -#: abonapp/templates/abonapp/peoples.html:115 -#: abonapp/templates/abonapp/peoples.html:126 +#: templates/abonapp/addAbon.html:9 templates/abonapp/addAbon.html.py:16 +#: templates/abonapp/peoples.html:119 templates/abonapp/peoples.html.py:131 msgid "Add abon" msgstr "Добавить абонента" -#: abonapp/templates/abonapp/addAbon.html:29 +#: templates/abonapp/addAbon.html:29 msgid "Long name" msgstr "Фамилия и Имя" -#: abonapp/templates/abonapp/addAbon.html:37 -#: abonapp/templates/abonapp/editAbon.html:29 -#: abonapp/templates/abonapp/peoples.html:53 -#: abonapp/templates/abonapp/viewAbon.html:36 -msgid "Telephone" -msgstr "Телефон" - -#: abonapp/templates/abonapp/addAbon.html:45 -#: abonapp/templates/abonapp/editAbon.html:73 -#: abonapp/templates/abonapp/viewAbon.html:16 +#: templates/abonapp/addAbon.html:45 templates/abonapp/editAbon.html.py:87 +#: templates/abonapp/modal_addstreet.html:21 templates/abonapp/viewAbon.html:16 msgid "User group" msgstr "Группа" -#: abonapp/templates/abonapp/addAbon.html:53 -#: abonapp/templates/abonapp/addInvoice.html:40 -#: abonapp/templates/abonapp/debtors.html:22 -#: abonapp/templates/abonapp/editAbon.html:94 -#: abonapp/templates/abonapp/invoiceForPayment.html:23 -#: abonapp/templates/abonapp/log.html:20 -#: abonapp/templates/abonapp/payHistory.html:12 -#: abonapp/templates/abonapp/task_log.html:10 +#: templates/abonapp/addAbon.html:53 templates/abonapp/addInvoice.html.py:40 +#: templates/abonapp/debtors.html:22 templates/abonapp/editAbon.html.py:108 +#: templates/abonapp/invoiceForPayment.html:23 templates/abonapp/log.html:20 +#: templates/abonapp/payHistory.html.py:13 templates/abonapp/task_log.html:10 msgid "Comment" msgstr "Комментарий" -#: abonapp/templates/abonapp/addAbon.html:59 -#: abonapp/templates/abonapp/editAbon.html:50 -#: abonapp/templates/abonapp/peoples.html:43 -#: abonapp/templates/abonapp/viewAbon.html:40 -msgid "Street" -msgstr "Улица" - -#: abonapp/templates/abonapp/addAbon.html:67 -#: abonapp/templates/abonapp/peoples.html:49 +#: templates/abonapp/addAbon.html:67 templates/abonapp/peoples.html.py:50 msgid "Apartment" msgstr "Квартира" -#: abonapp/templates/abonapp/addAbon.html:76 -#: abonapp/templates/abonapp/editAbon.html:80 -#: abonapp/templates/abonapp/viewAbon.html:54 +#: templates/abonapp/addAbon.html:76 templates/abonapp/editAbon.html.py:94 +#: templates/abonapp/viewAbon.html:54 msgid "Password" msgstr "Пароль" -#: abonapp/templates/abonapp/addAbon.html:94 -#: abonapp/templates/abonapp/addGroup.html:32 -#: abonapp/templates/abonapp/addInvoice.html:49 -#: abonapp/templates/abonapp/buy_tariff.html:60 -#: abonapp/templates/abonapp/group_tariffs.html:29 -#: abonapp/templates/abonapp/modal_abonamount.html:25 -#: abonapp/templates/abonapp/modal_dev.html:32 -#: abonapp/templates/abonapp/modal_extra_field.html:40 +#: templates/abonapp/addAbon.html:91 templates/abonapp/addGroup.html.py:29 +#: templates/abonapp/addInvoice.html:46 templates/abonapp/buy_tariff.html:71 +#: templates/abonapp/editAbon.html:117 templates/abonapp/editAbon.html:197 +#: templates/abonapp/editAbon.html:242 templates/abonapp/group_tariffs.html:29 +#: templates/abonapp/modal_dev.html:31 +#: templates/abonapp/modal_editstreet.html:30 +#: templates/abonapp/passport_view.html:49 +msgid "Save" +msgstr "Сохранить" + +#: templates/abonapp/addAbon.html:94 templates/abonapp/addGroup.html.py:32 +#: templates/abonapp/addInvoice.html:49 templates/abonapp/buy_tariff.html:74 +#: templates/abonapp/group_tariffs.html:29 +#: templates/abonapp/modal_abonamount.html:25 +#: templates/abonapp/modal_add_phone.html:30 +#: templates/abonapp/modal_addstreet.html:33 +#: templates/abonapp/modal_dev.html:34 +#: templates/abonapp/modal_editstreet.html:33 +#: templates/abonapp/modal_extra_field.html:40 msgid "Reset" msgstr "Сбросить" -#: abonapp/templates/abonapp/addGroup.html:8 -#: abonapp/templates/abonapp/addGroup.html:15 -#: abonapp/templates/abonapp/group_list.html:63 +#: templates/abonapp/addGroup.html:8 templates/abonapp/addGroup.html.py:15 +#: templates/abonapp/group_list.html:63 msgid "Add group" msgstr "Добавьте группу абонентов" -#: abonapp/templates/abonapp/addGroup.html:20 -#: abonapp/templates/abonapp/group_list.html:22 +#: templates/abonapp/addGroup.html:20 templates/abonapp/group_list.html:22 msgid "Group title" msgstr "Название группы" -#: abonapp/templates/abonapp/addInvoice.html:10 -#: abonapp/templates/abonapp/invoiceForPayment.html:61 +#: templates/abonapp/addInvoice.html:10 +#: templates/abonapp/invoiceForPayment.html:61 msgid "Add debt" msgstr "Добавить квитанцию" -#: abonapp/templates/abonapp/addInvoice.html:17 +#: templates/abonapp/addInvoice.html:17 msgid "Add receipt for" msgstr "Добавьте платёж на оплату для" -#: abonapp/templates/abonapp/addInvoice.html:25 -#: abonapp/templates/abonapp/debtors.html:21 +#: templates/abonapp/addInvoice.html:25 templates/abonapp/debtors.html.py:21 msgid "Sum of pay" msgstr "Сумма для платежа" -#: abonapp/templates/abonapp/addInvoice.html:36 -#: abonapp/templates/abonapp/invoiceForPayment.html:20 +#: templates/abonapp/addInvoice.html:36 +#: templates/abonapp/invoiceForPayment.html:20 msgid "Pay status" msgstr "Статус оплаты" -#: abonapp/templates/abonapp/buy_tariff.html:10 -#: abonapp/templates/abonapp/buy_tariff.html:25 +#: templates/abonapp/buy_tariff.html:10 templates/abonapp/buy_tariff.html:26 +#: templates/abonapp/service.html.py:74 msgid "Pick a service" msgstr "Заказать услугу" -#: abonapp/templates/abonapp/buy_tariff.html:17 +#: templates/abonapp/buy_tariff.html:17 msgid "Pick a service for" msgstr "Купить новую услугу (заказать тариф) для" -#: abonapp/templates/abonapp/buy_tariff.html:18 -#: abonapp/templates/abonapp/debtors.html:20 -#: abonapp/templates/abonapp/log.html:19 -#: abonapp/templates/abonapp/payHistory.html:8 -#: abonapp/templates/abonapp/peoples.html:24 +#: templates/abonapp/buy_tariff.html:18 templates/abonapp/debtors.html.py:20 +#: templates/abonapp/log.html:19 templates/abonapp/payHistory.html.py:9 +#: templates/abonapp/peoples.html:25 msgid "Sub" msgstr "Абонент" -#: abonapp/templates/abonapp/buy_tariff.html:32 -#: abonapp/templates/abonapp/group_tariffs.html:24 +#: templates/abonapp/buy_tariff.html:36 templates/abonapp/group_tariffs.html:24 +#: templates/abonapp/service.html:31 templates/abonapp/service.html.py:96 msgid "currency" msgstr "руб" -#: abonapp/templates/abonapp/charts.html:9 +#: templates/abonapp/buy_tariff.html:61 templates/abonapp/service.html:102 +msgid "This group has no services" +msgstr "У этой группы нет услуг" + +#: templates/abonapp/buy_tariff.html:63 +msgid "Attach serices to groups" +msgstr "Привязать услуги к группам" + +#: templates/abonapp/charts.html:9 msgid "Graph of use" msgstr "График использования" -#: abonapp/templates/abonapp/charts.html:44 -#: abonapp/templates/abonapp/charts.html:56 +#: templates/abonapp/charts.html:44 templates/abonapp/charts.html.py:56 msgid "Static info was Not found" msgstr "Статистика не найдена" -#: abonapp/templates/abonapp/charts.html:51 +#: templates/abonapp/charts.html:51 msgid "Graphs by dates" msgstr "Графики по датам" -#: abonapp/templates/abonapp/complete_service.html:10 -#: abonapp/templates/abonapp/complete_service.html:17 -#: abonapp/templates/abonapp/services.html:72 -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:29 -msgid "" -"Details:
\n" -"You complete tariff" -msgstr "Подробнее:
Вы завершаете тариф" - -#: abonapp/templates/abonapp/complete_service.html:39 -#, 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
\n" -"Cashback: %(cashback)s" -msgstr "" -"Услуга была подключена: %(time_start)s
Сегодня: %(today)s
Время " -"использования: %(time_use)s
Полная стоимость услуги: %(amount)s
Итоговая стоимость: %(tcost)s
\n" -"Средства для возврата: %(cashback)s" - -#: abonapp/templates/abonapp/debtors.html:9 +#: templates/abonapp/debtors.html:9 msgid "Debtors" msgstr "Должники" -#: abonapp/templates/abonapp/debtors.html:14 +#: templates/abonapp/debtors.html:14 msgid "People with debts" msgstr "Народ, у которого есть неоплаченные услуги" -#: abonapp/templates/abonapp/debtors.html:23 -#: abonapp/templates/abonapp/invoiceForPayment.html:24 -#: abonapp/templates/abonapp/task_log.html:13 +#: templates/abonapp/debtors.html:23 +#: templates/abonapp/invoiceForPayment.html:24 +#: templates/abonapp/task_log.html:13 msgid "Date of make" msgstr "Дата создания" -#: abonapp/templates/abonapp/debtors.html:24 -#: abonapp/templates/abonapp/log.html:22 -#: abonapp/templates/abonapp/task_log.html:8 +#: templates/abonapp/debtors.html:24 templates/abonapp/log.html.py:22 +#: templates/abonapp/task_log.html:8 msgid "Author" msgstr "Автор" -#: abonapp/templates/abonapp/debtors.html:42 +#: templates/abonapp/debtors.html:42 msgid "Debts not found" msgstr "Нет должников" -#: abonapp/templates/abonapp/dial_log.html:8 +#: templates/abonapp/dial_log.html:8 msgid "Play" msgstr "Слушать" -#: abonapp/templates/abonapp/dial_log.html:9 +#: templates/abonapp/dial_log.html:9 msgid "calldate" msgstr "дата звонка" -#: abonapp/templates/abonapp/dial_log.html:10 +#: templates/abonapp/dial_log.html:10 msgid "src" msgstr "кто" -#: abonapp/templates/abonapp/dial_log.html:11 +#: templates/abonapp/dial_log.html:11 msgid "dst" msgstr "куда" -#: abonapp/templates/abonapp/dial_log.html:12 +#: templates/abonapp/dial_log.html:12 msgid "duration" msgstr "прод." -#: abonapp/templates/abonapp/dial_log.html:13 +#: templates/abonapp/dial_log.html:13 msgid "start" msgstr "начало" -#: abonapp/templates/abonapp/dial_log.html:14 +#: templates/abonapp/dial_log.html:14 msgid "answer" msgstr "ответ" -#: abonapp/templates/abonapp/dial_log.html:15 +#: templates/abonapp/dial_log.html:15 msgid "end" msgstr "конец" -#: abonapp/templates/abonapp/dial_log.html:16 +#: templates/abonapp/dial_log.html:16 msgid "disposition" msgstr "состояние" -#: abonapp/templates/abonapp/dial_log.html:38 +#: templates/abonapp/dial_log.html:38 msgid "Calls was not found" msgstr "Звонки не найдены" -#: abonapp/templates/abonapp/editAbon.html:9 +#: templates/abonapp/editAbon.html:10 msgid "Change subscriber" msgstr "Изменение абонента" -#: abonapp/templates/abonapp/editAbon.html:45 -#: abonapp/templates/abonapp/editAbon.html:216 -#: abonapp/templates/abonapp/peoples.html:86 -#: abonapp/templates/abonapp/peoples.html:88 -#: abonapp/templates/abonapp/viewAbon.html:18 -#: abonapp/templates/abonapp/viewAbon.html:29 -#: abonapp/templates/abonapp/viewAbon.html:33 -#: abonapp/templates/abonapp/viewAbon.html:37 -#: abonapp/templates/abonapp/viewAbon.html:42 -#: abonapp/templates/abonapp/viewAbon.html:47 -#: abonapp/templates/abonapp/viewAbon.html:51 +#: templates/abonapp/editAbon.html:35 +msgid "Call to" +msgstr "Позвонить" + +#: templates/abonapp/editAbon.html:41 templates/abonapp/modal_add_phone.html:5 +msgid "Add telephone" +msgstr "Добавить номер телефона" + +#: templates/abonapp/editAbon.html:53 templates/abonapp/editAbon.html.py:155 +#: templates/abonapp/editAbon.html:174 templates/abonapp/editAbon.html:220 +#: templates/abonapp/peoples.html.py:90 templates/abonapp/peoples.html:92 +#: templates/abonapp/viewAbon.html.py:18 templates/abonapp/viewAbon.html:29 +#: templates/abonapp/viewAbon.html.py:33 templates/abonapp/viewAbon.html:37 +#: templates/abonapp/viewAbon.html.py:42 templates/abonapp/viewAbon.html:47 +#: templates/abonapp/viewAbon.html.py:51 msgid "Not assigned" msgstr "<Не назначен>" -#: abonapp/templates/abonapp/editAbon.html:58 -#: abonapp/templates/abonapp/viewAbon.html:46 +#: templates/abonapp/editAbon.html:55 +msgid "Reset ip" +msgstr "Сбросить ip" + +#: templates/abonapp/editAbon.html:72 templates/abonapp/viewAbon.html.py:46 msgid "House" msgstr "Дом" -#: abonapp/templates/abonapp/editAbon.html:66 -#: abonapp/templates/abonapp/viewAbon.html:22 +#: templates/abonapp/editAbon.html:80 templates/abonapp/viewAbon.html.py:22 msgid "Is active" msgstr "Активен" -#: abonapp/templates/abonapp/editAbon.html:109 -#: abonapp/templates/abonapp/editAbon.html:110 +#: templates/abonapp/editAbon.html:120 templates/abonapp/editAbon.html:121 #, fuzzy #| msgid "Add debt" msgid "Add new task" msgstr "Добавить квитанцию" -#: abonapp/templates/abonapp/editAbon.html:123 +#: templates/abonapp/editAbon.html:145 templates/abonapp/modal_dev.html:13 +msgid "Select the device" +msgstr "Выберите устройство" + +#: templates/abonapp/editAbon.html:152 +msgid "Device" +msgstr "Устройство" + +#: templates/abonapp/editAbon.html:155 +msgid "Mac Address" +msgstr "Мак" + +#: templates/abonapp/editAbon.html:159 msgid "Remove clutch" msgstr "Удалить муфту" -#: abonapp/templates/abonapp/editAbon.html:127 -#: abonapp/templates/abonapp/modal_dev.html:6 +#: templates/abonapp/editAbon.html:163 templates/abonapp/modal_dev.html.py:6 msgid "Add clutch" msgstr "Добавить муфту" -#: abonapp/templates/abonapp/editAbon.html:170 -msgid "DHCP information" -msgstr "DHCP информация" +#: templates/abonapp/editAbon.html:171 +msgid "Device port" +msgstr "Порт устройства" -#: abonapp/templates/abonapp/editAbon.html:176 -msgid "Mac Address" -msgstr "Мак" +#: templates/abonapp/editAbon.html:182 +msgid "Ports does not exist" +msgstr "Порты не найдены" -#: abonapp/templates/abonapp/editAbon.html:183 -msgid "Port" -msgstr "Порт" +#: templates/abonapp/editAbon.html:190 +msgid "Is dynamic network settings" +msgstr "Динамические настройки по dhcp" -#: abonapp/templates/abonapp/editAbon.html:194 -msgid "Reset option82" -msgstr "Сбросить option82" +#: templates/abonapp/editAbon.html:209 +msgid "Extra fields" +msgstr "Динамические записи" -#: abonapp/templates/abonapp/editAbon.html:195 -#: abonapp/templates/abonapp/editAbon.html:219 +#: templates/abonapp/editAbon.html:223 +#: templates/abonapp/modal_additional_telephones.html:24 msgid "Delete" msgstr "Удалить" -#: abonapp/templates/abonapp/editAbon.html:178 -msgid "Extra fields" -msgstr "Динамические записи" - -#: abonapp/templates/abonapp/editAbon.html:201 abonapp/views.py:824 +#: templates/abonapp/editAbon.html:232 views.py:671 msgid "Extra field does not exist" msgstr "Поле не найдено" -#: abonapp/templates/abonapp/editAbon.html:206 -#: abonapp/templates/abonapp/modal_extra_field.html:6 +#: templates/abonapp/editAbon.html:237 +#: templates/abonapp/modal_extra_field.html:6 msgid "Add extra field" msgstr "Добавить новое динамическое поле" -#: abonapp/templates/abonapp/editAbon.html:207 -#: abonapp/templates/abonapp/modal_extra_field.html:37 +#: templates/abonapp/editAbon.html:238 +#: templates/abonapp/modal_add_phone.html:27 +#: templates/abonapp/modal_addstreet.html:30 +#: templates/abonapp/modal_extra_field.html:37 +#: templates/abonapp/peoples.html:130 templates/abonapp/peoples.html.py:157 msgid "Add" msgstr "Добавить" -#: abonapp/templates/abonapp/group_list.html:27 +#: templates/abonapp/fin_report.html:7 templates/abonapp/group_list.html:78 +msgid "Fin report" +msgstr "Финансовый отчёт" + +#: templates/abonapp/fin_report.html:12 +msgid "Money by days" +msgstr "Сумма денег за сутки" + +#: templates/abonapp/fin_report.html:17 +#: templates/abonapp/invoiceForPayment.html:22 templates/abonapp/log.html:18 +#: templates/abonapp/payHistory.html.py:10 templates/abonapp/service.html:30 +msgid "Sum" +msgstr "Сумма" + +#: templates/abonapp/fin_report.html:18 templates/abonapp/log.html.py:21 +msgid "Date" +msgstr "Время" + +#: templates/abonapp/fin_report.html:29 +#, fuzzy +#| msgid "Tasks not found" +msgid "Pays not found" +msgstr "Нет задач" + +#: templates/abonapp/group_list.html:27 msgid "Number of subscribers" msgstr "Количество абонентов" -#: abonapp/templates/abonapp/group_list.html:54 +#: templates/abonapp/group_list.html:54 msgid "Groups was not found" msgstr "Ещё нет групп" -#: abonapp/templates/abonapp/group_list.html:67 -#: abonapp/templates/abonapp/log.html:8 +#: templates/abonapp/group_list.html:68 templates/abonapp/log.html.py:8 msgid "Subscribers actions" msgstr "История действий абонентов" -#: abonapp/templates/abonapp/group_list.html:70 +#: templates/abonapp/group_list.html:73 msgid "List of debtors" msgstr "Список должников" -#: abonapp/templates/abonapp/group_tariffs.html:9 -#: abonapp/templates/abonapp/group_tariffs.html:14 +#: templates/abonapp/group_tariffs.html:9 +#: templates/abonapp/group_tariffs.html:14 msgid "Belonging services for groups" msgstr "Принадлежность услуг к группам" -#: abonapp/templates/abonapp/invoiceForPayment.html:10 -#: abonapp/templates/abonapp/payHistory.html:39 -msgid "Debts" -msgstr "Квитанции (долги)" - -#: abonapp/templates/abonapp/invoiceForPayment.html:15 +#: templates/abonapp/invoiceForPayment.html:15 msgid "Debtor" msgstr "Должник" -#: abonapp/templates/abonapp/invoiceForPayment.html:21 +#: templates/abonapp/invoiceForPayment.html:21 msgid "Month" msgstr "Месяц" -#: abonapp/templates/abonapp/invoiceForPayment.html:22 -#: abonapp/templates/abonapp/log.html:18 -#: abonapp/templates/abonapp/payHistory.html:9 -#: abonapp/templates/abonapp/services.html:11 -msgid "Sum" -msgstr "Сумма" - -#: abonapp/templates/abonapp/invoiceForPayment.html:25 -#: abonapp/templates/abonapp/payHistory.html:10 +#: templates/abonapp/invoiceForPayment.html:25 +#: templates/abonapp/payHistory.html:11 msgid "Date of payment" msgstr "Дата оплаты" -#: abonapp/templates/abonapp/invoiceForPayment.html:26 -#: abonapp/templates/abonapp/payHistory.html:11 +#: templates/abonapp/invoiceForPayment.html:26 +#: templates/abonapp/payHistory.html:12 msgid "Author of payment" msgstr "Назначил" -#: abonapp/templates/abonapp/invoiceForPayment.html:45 +#: templates/abonapp/invoiceForPayment.html:45 msgid "Created paid,Not yet paid" msgstr "Создан оплаченным,Ещё не оплачено" -#: abonapp/templates/abonapp/invoiceForPayment.html:52 +#: templates/abonapp/invoiceForPayment.html:52 msgid "Receipts not found" msgstr "Назначенные платежи отсутствуют" -#: abonapp/templates/abonapp/log.html:13 +#: templates/abonapp/log.html:13 msgid "History of subscriber" msgstr "История абонента" -#: abonapp/templates/abonapp/log.html:21 -msgid "Date" -msgstr "Время" - -#: abonapp/templates/abonapp/log.html:46 +#: templates/abonapp/log.html:46 msgid "Actions not found" msgstr "Нет событий" -#: abonapp/templates/abonapp/modal_abonamount.html:6 +#: templates/abonapp/modal_abonamount.html:6 msgid "Additional sum" msgstr "Начисление средств на счёт" -#: abonapp/templates/abonapp/modal_abonamount.html:11 +#: templates/abonapp/modal_abonamount.html:11 msgid "Amount of money" msgstr "Количество денег" -#: abonapp/templates/abonapp/modal_abonamount.html:22 +#: templates/abonapp/modal_abonamount.html:22 msgid "Refill" msgstr "Пополнить" -#: abonapp/templates/abonapp/modal_dev.html:13 -msgid "Select the device" -msgstr "Выберите устройство" +#: templates/abonapp/modal_add_phone.html:18 +#: templates/abonapp/modal_additional_telephones.html:13 +#: templates/abonapp/modal_phonebook.html:11 +msgid "Telephone owner" +msgstr "Владелец телефона" + +#: templates/abonapp/modal_additional_telephones.html:31 +msgid "Additional telephones not found" +msgstr "Дополнительные телефоны не найдены" -#: abonapp/templates/abonapp/modal_extra_field.html:11 +#: templates/abonapp/modal_addstreet.html:5 templates/abonapp/peoples.html:156 +msgid "Add street" +msgstr "Добавить улицу" + +#: templates/abonapp/modal_addstreet.html:12 +msgid "Street title" +msgstr "Название улицы" + +#: templates/abonapp/modal_editstreet.html:5 templates/abonapp/peoples.html:159 +msgid "Edit streets" +msgstr "Редактировать улицы" + +#: templates/abonapp/modal_editstreet.html:25 +msgid "Streets has not been found" +msgstr "Улицы не найдены" + +#: templates/abonapp/modal_extra_field.html:11 msgid "Field title" msgstr "Название поля" -#: abonapp/templates/abonapp/modal_extra_field.html:20 +#: templates/abonapp/modal_extra_field.html:20 msgid "Field type" msgstr "Тип динамического поля" -#: abonapp/templates/abonapp/modal_extra_field.html:28 +#: templates/abonapp/modal_extra_field.html:28 msgid "Field content" msgstr "Содержимое динамического поля" -#: abonapp/templates/abonapp/passport_view.html:9 -#: abonapp/templates/abonapp/viewAbon.html:67 +#: templates/abonapp/modal_phonebook.html:4 templates/abonapp/peoples.html:138 +msgid "Phonebook" +msgstr "Телефонная книга" + +#: templates/abonapp/modal_phonebook.html:22 +#, fuzzy +#| msgid "Telephone not found" +msgid "Telephone numbers not found" +msgstr "Телефон не найден" + +#: templates/abonapp/modal_phonebook.html:30 +msgid "Export to csv" +msgstr "Сохранить в csv" + +#: templates/abonapp/passport_view.html:9 templates/abonapp/viewAbon.html:68 msgid "Passport information" msgstr "Паспортные данные" -#: abonapp/templates/abonapp/passport_view.html:15 -#: abonapp/templates/abonapp/viewAbon.html:73 +#: templates/abonapp/passport_view.html:15 templates/abonapp/viewAbon.html:74 msgid "Pasport serial" msgstr "Серия пас." -#: abonapp/templates/abonapp/passport_view.html:21 +#: templates/abonapp/passport_view.html:21 msgid "Pasport number" msgstr "Номер пас." -#: abonapp/templates/abonapp/passport_view.html:27 -#: abonapp/templates/abonapp/viewAbon.html:77 +#: templates/abonapp/passport_view.html:27 templates/abonapp/viewAbon.html:78 msgid "Distributor" msgstr "Кем выдан" -#: abonapp/templates/abonapp/passport_view.html:33 +#: templates/abonapp/passport_view.html:33 msgid "Date of acceptance" msgstr "Дата выдачи" -#: abonapp/templates/abonapp/payHistory.html:26 +#: templates/abonapp/payHistory.html:27 msgid "Payment history is empty" msgstr "История платежей пуста" -#: abonapp/templates/abonapp/payHistory.html:35 +#: templates/abonapp/payHistory.html:36 templates/abonapp/payHistory.html:40 msgid "Fill account" msgstr "Пополнить счёт" -#: abonapp/templates/abonapp/peoples.html:14 +#: templates/abonapp/payHistory.html:39 +msgid "Permission denied" +msgstr "Доступ запрещён" + +#: templates/abonapp/peoples.html:15 msgid "The people in the selected group" msgstr "Народ в выбранной группе" -#: abonapp/templates/abonapp/peoples.html:28 +#: templates/abonapp/peoples.html:29 msgid "Last traffic" msgstr "Траф." -#: abonapp/templates/abonapp/peoples.html:31 +#: templates/abonapp/peoples.html:32 #, fuzzy #| msgid "Ip Address" msgid "Ip address" msgstr "IP Адрес" -#: abonapp/templates/abonapp/peoples.html:54 -#: abonapp/templates/abonapp/services.html:10 +#: templates/abonapp/peoples.html:55 templates/abonapp/service.html.py:16 +#: templates/abonapp/service.html:75 msgid "Service" msgstr "Услуга" -#: abonapp/templates/abonapp/peoples.html:57 +#: templates/abonapp/peoples.html:58 msgid "Ballance" msgstr "Балланс" -#: abonapp/templates/abonapp/peoples.html:113 +#: templates/abonapp/peoples.html:117 msgid "Subscribers not found" msgstr "Абоненты не найдены" -#: abonapp/templates/abonapp/peoples.html:133 +#: templates/abonapp/peoples.html:135 templates/abonapp/service.html.py:104 msgid "Tariffs in groups" msgstr "Тарифы в группах" - -#: abonapp/templates/abonapp/peoples.html:148 +#: templates/abonapp/peoples.html:153 msgid "No streets found for that group" msgstr "Не найдены улицы для группы" -#: abonapp/templates/abonapp/services.html:5 +#: templates/abonapp/peoples.html:160 +msgid "Edit" +msgstr "Редактировать" + +#: templates/abonapp/service.html:10 msgid "Subscriber's service" msgstr "Текущая услуга абонента" -msgid "Add street" -msgstr "Добавить улицу" - -msgid "Edit streets" -msgstr "Редактировать улицы" - -msgid "Street successfully saved" -msgstr "Улица успешно сохранена" - -msgid "Streets has been saved" -msgstr "Улицы сохранены" - -msgid "Street title" -msgstr "Название улицы" - -msgid "One of these streets has not been found" -msgstr "Одна из этих улиц не была найдена" - -msgid "The street has not been found" -msgstr "Улица не найдена" - -msgid "The street successfully deleted" -msgstr "Улица успешно удалена" - -msgid "Streets has not been found" -msgstr "Улицы не найдены" - -#: abonapp/templates/abonapp/services.html:9 -msgid "Priority" -msgstr "Приоритет" +#: templates/abonapp/service.html:27 +msgid "We have a problem in DB: AbonTariff instance has no related to service" +msgstr "У нас проблема с БД: экземпляр AbonTariff не имеет отношения к тарифу" -#: abonapp/templates/abonapp/services.html:12 +#: templates/abonapp/service.html:33 msgid "Input speed" msgstr "Входящая скорость" -#: abonapp/templates/abonapp/services.html:13 +#: templates/abonapp/service.html:36 msgid "Output speed" msgstr "Исходящая скорость" -#: abonapp/templates/abonapp/services.html:14 +#: templates/abonapp/service.html:39 +msgid "Date of start" +msgstr "Дата начала" + +#: templates/abonapp/service.html:42 msgid "Works until" msgstr "Действует до" -#: abonapp/templates/abonapp/services.html:64 -msgid "Delete service" -msgstr "Удалить услугу" - -#: abonapp/templates/abonapp/services.html:79 -msgid "Services of subscribers not found" -msgstr "Нет подключённых абоненту услуг" - -#: abonapp/templates/abonapp/services.html:81 -msgid "Buy" -msgstr "Купить" +#: templates/abonapp/service.html:51 +msgid "Subscriber has no service" +msgstr "У абонента нет услуги" -#: abonapp/templates/abonapp/services.html:92 +#: templates/abonapp/service.html:53 msgid "Buy service" msgstr "Купить услугу" -#: abonapp/templates/abonapp/task_log.html:9 +#: templates/abonapp/service.html:59 +msgid "Finish service" +msgstr "Завершить услугу" + +#: templates/abonapp/service.html:76 +msgid "Price" +msgstr "Сумма" + +#: templates/abonapp/service.html:77 +msgid "Speed In" +msgstr "Входящая скорость" + +#: templates/abonapp/service.html:78 +msgid "Speed Out" +msgstr "Исходящая скорость" + +#: templates/abonapp/service.html:112 +msgid "Attach services to group" +msgstr "Привязать услуги к этой группе" + +#: templates/abonapp/task_log.html:9 msgid "Recipients" msgstr "Исполнители" -#: abonapp/templates/abonapp/task_log.html:11 +#: templates/abonapp/task_log.html:11 msgid "State" msgstr "Состояние" -#: abonapp/templates/abonapp/task_log.html:12 +#: templates/abonapp/task_log.html:12 msgid "Type" msgstr "Тип" -#: abonapp/templates/abonapp/task_log.html:24 +#: templates/abonapp/task_log.html:24 msgid "Recipients not found" msgstr "Нет исполнителей" -#: abonapp/templates/abonapp/task_log.html:34 +#: templates/abonapp/task_log.html:34 msgid "Tasks not found" msgstr "Нет задач" -#: abonapp/templates/abonapp/viewAbon.html:10 +#: templates/abonapp/viewAbon.html:10 msgid "View the subscriber" msgstr "Просмотр абонента" -#: abonapp/templates/abonapp/viewAbon.html:24 +#: templates/abonapp/viewAbon.html:24 msgid "yes,no" msgstr "Да,Нет" -#: abonapp/views.py:75 +#: views.py:83 msgid "create group success msg" msgstr "Группа успешно создана" -#: abonapp/views.py:78 abonapp/views.py:138 abonapp/views.py:284 -#: abonapp/views.py:342 abonapp/views.py:432 abonapp/views.py:648 -#: abonapp/views.py:791 +#: views.py:86 views.py:158 views.py:295 views.py:407 views.py:485 views.py:627 +#: views.py:778 views.py:850 msgid "fix form errors" msgstr "Некоторые поля заполнены не правильно, проверте ещё раз" -#: abonapp/views.py:114 abonapp/views.py:177 +#: views.py:125 msgid "delete group success msg" msgstr "Группа успешно удалена" -#: abonapp/views.py:135 +#: views.py:155 msgid "create abon success msg" msgstr "Абонент успешно создан" -#: abonapp/views.py:149 +#: views.py:169 msgid "Address" msgstr "Адрес" -#: abonapp/views.py:171 +#: views.py:190 msgid "delete abon success msg" msgstr "Абонент успешно удалён" -#: abonapp/views.py:184 +#: views.py:196 #, python-format msgid "NAS says: '%s'" msgstr "NAS сказал: '%s'" -#: abonapp/views.py:201 +#: views.py:213 msgid "fill account through admin side" msgstr "Пополнение счёта через админку" -#: abonapp/views.py:203 +#: views.py:215 #, python-format msgid "Account filled successfully on %.2f" -msgstr "" +msgstr "Счёт пополнен на %.2f" -#: abonapp/views.py:206 +#: views.py:218 msgid "I not know the account id" msgstr "Счёт успешно пополнен на %.2f" -#: abonapp/views.py:282 +#: views.py:293 msgid "edit abon success msg" msgstr "Абонент успешно изменён" -#: abonapp/views.py:297 -msgid "User has not have password, and cannot login" -msgstr "Для абонента не задан пароль, он не сможет войти в учётку" - -#: abonapp/views.py:299 abonapp/views.py:703 +#: views.py:300 msgid "User device was not found" msgstr "Пользовательское устройство не найдено" -#: abonapp/views.py:355 -#, fuzzy -#| msgid "Abon does not exist" -msgid "User does not exist" -msgstr "Абонент не найден" +#: views.py:309 +msgid "User has not have password, and cannot login" +msgstr "Для абонента не задан пароль, он не сможет войти в учётку" -#: abonapp/views.py:388 +#: views.py:362 msgid "Receipt has been created" msgstr "Квитанция на оплату была создана" -#: abonapp/views.py:419 +#: views.py:394 msgid "Tariff has been picked" msgstr "Тариф успешно выбран" -#: abonapp/views.py:427 +#: views.py:402 msgid "Tariff your picked does not exist" msgstr "Тариф, который вы выбрали, не существует" -#: abonapp/views.py:491 -msgid "Refunds for unused resources" -msgstr "Возврат средств за неиспользованные ресурсы" - -#: abonapp/views.py:497 -msgid "Service has been finished successfully" -msgstr "Услуга успешно завершена" - -#: abonapp/views.py:500 abonapp/views.py:533 -msgid "Not confirmed" -msgstr "Действие не подтверждено" - -#: abonapp/views.py:536 -msgid "Service has been activated successfully" -msgstr "Услуга успешно активирована" - -#: abonapp/views.py:562 +#: views.py:424 msgid "User has been detached from service" msgstr "Абонент отвязан от услуги" -#: abonapp/views.py:645 +#: views.py:482 msgid "Passport information has been saved" msgstr "Информация о паспорте сохранена" -#: abonapp/views.py:653 abonapp/views.py:700 abonapp/views.py:720 -#: abonapp/views.py:761 +#: views.py:490 views.py:537 views.py:556 views.py:597 msgid "Abon does not exist" msgstr "Абонент не найден" -#: abonapp/views.py:656 +#: views.py:493 msgid "Passport info for the user does not exist" msgstr "Для абонента не найдены паспортные данные" -#: abonapp/views.py:693 +#: views.py:530 msgid "Device has successfully attached" msgstr "Устройство успешно прикреплено" -#: abonapp/views.py:698 +#: views.py:535 msgid "Device your selected already does not exist" msgstr "Устройство, выбранное вами, уже не существует" -#: abonapp/views.py:718 +#: views.py:554 msgid "Device has successfully unattached" msgstr "Устройство успешно откреплено" -#: abonapp/views.py:764 +#: views.py:600 msgid "Group what you want doesn't exist" msgstr "Указанная вами группа не найдена" -#: abonapp/views.py:789 +#: views.py:625 msgid "Extra field successfully created" msgstr "Динамичесое поле добавлено успешно" -#: abonapp/views.py:819 +#: views.py:655 msgid "Extra fields has been saved" msgstr "Динамические поля сохранены" -#: abonapp/views.py:821 +#: views.py:657 msgid "One or more extra fields has not been saved" msgstr "Поле или одно из полей не найдено" -#: abonapp/views.py:833 +#: views.py:669 msgid "Extra field successfully deleted" msgstr "Динамическое поле успешно удалено" -#: abonapp/views.py:843 +#: views.py:680 msgid "no ping" msgstr "не пингуется" -#: abonapp/views.py:850 abonapp/views.py:860 +#: views.py:683 +msgid "Ip not passed" +msgstr "Ip адрес не передан" + +#: views.py:689 views.py:702 msgid "ping ok" msgstr "пингуется" -#: abonapp/views.py:855 +#: views.py:695 #, python-format -msgid "ok ping, %d/%d loses" -msgstr "пингуется, %d/%d" +msgid "IP Conflict! %(all)d/%(return)d results" +msgstr "IP Конфликт! ping %(all)d из %(return)d" -#: abonapp/views.py:858 +#: views.py:697 #, python-format -msgid "no ping, %d/%d loses" -msgstr "не пингуется, %d/%d" - -#: abonapp/templates/abonapp/ext.html:31 -msgid "Services" -msgstr "Услуги" - -#: abonapp/templates/abonapp/ext.html:43 -msgid "Payments" -msgstr "Финансы" - -#: abonapp/templates/abonapp/ext.html:48 -msgid "History of tasks" -msgstr "История задач" - -#: abonapp/templates/abonapp/ext.html:53 -msgid "Charts" -msgstr "Графики" - -#: abonapp/templates/abonapp/ext.html:26 -msgid "Sub information" -msgstr "Инфо." - -msgid "Streets" -msgstr "Улицы" - -msgid "Dialing" -msgstr "Звонки" - -msgid "Device port" -msgstr "Порт устройства" +msgid "ok ping, %(all)d/%(return)d loses" +msgstr "пингуется, %(all)d/%(return)d" +#: views.py:700 +#, python-format +msgid "no ping, %(all)d/%(return)d loses" +msgstr "не пингуется, %(all)d/%(return)d" -msgid "Ports does not exist" -msgstr "Порты не найдены" +#: views.py:743 +msgid "Method is not POST" +msgstr "Метод не POST" +#: views.py:759 msgid "User port has been saved" msgstr "Порт абонента успешно выбран" +#: views.py:761 msgid "Selected port does not exist" msgstr "Выбранный порт не существует" -msgid "Device" -msgstr "Устройство" - -msgid "Is dynamic network settings" -msgstr "Динамические настройки по dhcp" - -msgid "Method is not POST" -msgstr "Метод не POST" - -msgid "Call to" -msgstr "Позвонить" - -msgid "That service already activated" -msgstr "Эта услуга уже подключена" - -msgid "Service already activated" -msgstr "Услуга уже подключена" - -msgid "We have a problem in DB: AbonTariff instance has no related to service" -msgstr "У нас проблема с БД: экземпляр AbonTariff не имеет отношения к тарифу" - -msgid "Date of start" -msgstr "Дата начала" - -msgid "Subscriber has no service" -msgstr "У абонента нет услуги" - -msgid "This group has no services" -msgstr "У этой группы нет услуг" - -msgid "Attach serices to groups" -msgstr "Привязать услуги к группам" - -msgid "Attach services to group" -msgstr "Привязать услуги к этой группе" - -msgid "User that is no staff can not buy admin services" -msgstr "Пользователь, который не является персоналом не может покупать услуги для внутренних нужд" - -msgid "Ip not passed" -msgstr "Ip адрес не передан" - -msgid "Additional telephone" -msgstr "Дополнительный телефон" - -msgid "Additional telephones" -msgstr "Дополнительные телефоны" - -msgid "Abon group" -msgstr "Группа абонентов" +#: views.py:763 +#, fuzzy +#| msgid "Abon does not exist" +msgid "User does not exist" +msgstr "Абонент не найден" -msgid "Abon groups" -msgstr "Группы абонентов" +#: views.py:775 +msgid "Street successfully saved" +msgstr "Улица успешно сохранена" -msgid "Abon service" -msgstr "Услуга абонента" +#: views.py:799 +msgid "Streets has been saved" +msgstr "Улицы сохранены" -msgid "Abon services" -msgstr "Услуги абонентов" +#: views.py:807 +msgid "One of these streets has not been found" +msgstr "Одна из этих улиц не была найдена" -msgid "Abon" -msgstr "Абонент" +#: views.py:818 +msgid "The street successfully deleted" +msgstr "Улица успешно удалена" -msgid "Abons" -msgstr "Абоненты" +#: views.py:820 +msgid "The street has not been found" +msgstr "Улица не найдена" +#: views.py:847 msgid "New telephone has been saved" msgstr "Новый телефон сохранен" -msgid "Add telephone" -msgstr "Добавить номер телефона" - -msgid "Telephone owner" -msgstr "Владелец телефона" - -msgid "Additional telephones not found" -msgstr "Дополнительные телефоны не найдены" - +#: views.py:867 msgid "Additional telephone successfully deleted" msgstr "Номер телефона успешно удалён" +#: views.py:869 msgid "Telephone not found" msgstr "Телефон не найден" -msgid "Can view subscriber group" -msgstr "Может просматривать группу абонентов" +msgid "Enter a valid integer." +msgstr "Введите верное число" -msgid "Permission denied" -msgstr "Доступ запрещён" +msgid "Enter a valid MAC Address." +msgstr "Введите валидный mac адрес" -msgid "Can view subscriber logs" -msgstr "Может видеть логи абонента" +msgid "Port" +msgstr "Порт" -msgid "Can view invoice for payment" -msgstr "Может видеть назначенные платежи" +msgid "Priority" +msgstr "Приоритет" -msgid "Debt" -msgstr "Квитанция (долг)" +msgid "Delete service" +msgstr "Удалить услугу" -msgid "Passport Info" -msgstr "Паспортные данные" +msgid "Services of subscribers not found" +msgstr "Нет подключённых абоненту услуг" -msgid "Can ping" -msgstr "Может пинговать" +msgid "Buy" +msgstr "Купить" -msgid "Can view additional telephones" -msgstr "Может видеть дополнительные телефоны" +msgid "Not confirmed" +msgstr "Действие не подтверждено" +msgid "Services" +msgstr "Услуги" -#: abonapp/views.py:694 -#, python-format -msgid "IP Conflict! %d/%d results" -msgstr "IP Конфликт! ping %d из %d" +msgid "Payments" +msgstr "Финансы" -msgid "Phonebook" -msgstr "Телефонная книга" +msgid "History of tasks" +msgstr "История задач" -msgid "Reset ip" -msgstr "Сбросить ip" +msgid "Charts" +msgstr "Графики" -msgid "Export to csv" -msgstr "Сохранить в csv" +msgid "Sub information" +msgstr "Инфо." + +msgid "Dialing" +msgstr "Звонки" diff --git a/abonapp/models.py b/abonapp/models.py index 1119b03..e62f389 100644 --- a/abonapp/models.py +++ b/abonapp/models.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- +from datetime import datetime from django.core.exceptions import ValidationError from django.core.validators import RegexValidator from django.db.models.signals import post_save, post_delete, pre_delete, post_init from django.dispatch import receiver from django.utils import timezone -from django.db import models +from django.db import models, connection from django.core import validators from django.utils.translation import ugettext as _ from agent import Transmitter, AbonStruct, TariffStruct, NasFailedResult, NasNetworkError @@ -316,12 +317,28 @@ class InvoiceForPayment(models.Model): verbose_name_plural = _('Debts') +class AllTimePayLogManager(models.Manager): + + def by_days(self): + cur = connection.cursor() + cur.execute(r'SELECT SUM(summ) as alsum, DATE_FORMAT(date_add, "%Y-%m-%d") AS pay_date FROM all_time_pay_log ' + r'GROUP BY DATE_FORMAT(date_add, "%Y-%m-%d")') + while True: + r = cur.fetchone() + if r is None: break + summ, dat = r + print(summ, dat) + yield {'summ': summ, 'pay_date': datetime.strptime(dat, '%Y-%m-%d')} + + # Log for pay system "AllTime" class AllTimePayLog(models.Model): pay_id = models.CharField(max_length=36, unique=True, primary_key=True) date_add = models.DateTimeField(auto_now_add=True) summ = models.FloatField(default=0.0) + objects = AllTimePayLogManager() + def __str__(self): return self.pay_id diff --git a/abonapp/templates/abonapp/fin_report.html b/abonapp/templates/abonapp/fin_report.html new file mode 100644 index 0000000..d7a9ff8 --- /dev/null +++ b/abonapp/templates/abonapp/fin_report.html @@ -0,0 +1,49 @@ +{% extends 'base.html' %} +{% load i18n %} +{% block main %} + + + + {% include 'message_block.html' %} + +

{% trans 'Money by days' %}

+
+ + + + + + + + + {% for l in logs %} + + + + + {% empty %} + + + + {% endfor %} + + + + + + + + +
{% trans 'Sum' %}{% trans 'Date' %}
{{ l.summ }}{{ l.pay_date|date:"d E Y" }}
{% trans 'Pays not found' %}
+ + + +
+
+ + {# {% include 'toolbar_page.html' with pag=logs %} #} + +{% endblock %} \ No newline at end of file diff --git a/abonapp/templates/abonapp/group_list.html b/abonapp/templates/abonapp/group_list.html index 33fcde0..ccf7721 100644 --- a/abonapp/templates/abonapp/group_list.html +++ b/abonapp/templates/abonapp/group_list.html @@ -57,22 +57,27 @@ - + {% if perms.abonapp.add_abongroup %} - - + + {% endif %} - {% if perms.abonapp.can_view_abonlog %} - - - - {% endif %} - {% if perms.abonapp.can_view_invoiceforpayment %} - - - - {% endif %} + {% if perms.abonapp.can_view_abonlog %} + + + + {% endif %} + {% if perms.abonapp.can_view_invoiceforpayment %} + + + + {% endif %} + {% if request.user.is_superuser %} + + + + {% endif %} diff --git a/abonapp/urls.py b/abonapp/urls.py index 048f525..44d792f 100644 --- a/abonapp/urls.py +++ b/abonapp/urls.py @@ -9,6 +9,8 @@ urlpatterns = [ url(r'^addgroup$', views.addgroup, name='add_group'), url(r'^delgroup', views.delgroup, name='del_group'), + url(r'^fin_report$', views.fin_report, name='fin_report'), + url(r'^(?P\d+)/', include('abonapp.urls_abon')), url(r'^log$', views.log_page, name='log'), diff --git a/abonapp/views.py b/abonapp/views.py index 47a9302..d6be42b 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -690,14 +690,14 @@ def abon_ping(request): else: if type(ping_result) is tuple: loses_percent = (ping_result[0] / ping_result[1] if ping_result[1] != 0 else 1) - print(ping_result, loses_percent) + ping_result = {'all':ping_result[0], 'return': ping_result[1]} if loses_percent > 1.0: - text = ' %s' % _('IP Conflict! %d/%d results') % ping_result + text = ' %s' % _('IP Conflict! %(all)d/%(return)d results') % ping_result elif loses_percent > 0.5: - text = ' %s' % _('ok ping, %d/%d loses') % ping_result + text = ' %s' % _('ok ping, %(all)d/%(return)d loses') % ping_result status = True else: - text = ' %s' % _('no ping, %d/%d loses') % ping_result + text = ' %s' % _('no ping, %(all)d/%(return)d loses') % ping_result else: text = ' %s' % _('ping ok') + ' ' + str(ping_result) status = True @@ -907,6 +907,24 @@ def reset_ip(request, gid, uid): +@login_required +@mydefs.only_admins +def fin_report(request): + q = models.AllTimePayLog.objects.by_days() + res_format = request.GET.get('f') + if res_format == 'csv': + import csv + response = HttpResponse(content_type='text/csv') + response['Content-Disposition'] = 'attachment; filename="report.csv"' + writer = csv.writer(response, quoting=csv.QUOTE_NONNUMERIC) + for row in q: + writer.writerow((row['summ'], row['pay_date'].strftime('%Y-%m-%d'))) + return response + return render(request, 'abonapp/fin_report.html', { + 'logs': q + }) + + # API's def abons(request):