diff --git a/abonapp/locale/ru/LC_MESSAGES/django.po b/abonapp/locale/ru/LC_MESSAGES/django.po index da0f109..3b79bff 100644 --- a/abonapp/locale/ru/LC_MESSAGES/django.po +++ b/abonapp/locale/ru/LC_MESSAGES/django.po @@ -6,8 +6,8 @@ #, fuzzy msgid "" msgstr "" -"Report-Msgid-Bugs-To: nerosketch@gmail.com\n" -"POT-Creation-Date: 2018-01-22 17:58+0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-26 19:22+0300\n" "Last-Translator: Dmitry Novikov nerosketch@gmail.com\n" "Language: ru\n" "MIME-Version: 1.0\n" @@ -17,960 +17,1063 @@ 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" -#: forms.py:45 templates/abonapp/addAbon.html:21 -#: templates/abonapp/viewAbon.html:28 +#: abonapp/forms.py:46 abonapp/templates/abonapp/addAbon.html:21 +#: abonapp/templates/abonapp/viewAbon.html:28 msgid "login" msgstr "Логин" -#: forms.py:58 templates/abonapp/peoples.html:38 -#: templates/abonapp/viewAbon.html:32 +#: abonapp/forms.py:60 abonapp/forms.py:165 +#: abonapp/templates/abonapp/peoples.html:37 +#: abonapp/templates/abonapp/viewAbon.html:32 msgid "fio" msgstr "ФИО" -#: forms.py:63 forms.py:146 +#: abonapp/forms.py:65 abonapp/forms.py:147 msgid "telephone placeholder" msgstr "+[7,8,9,3] и 10,11 цифр" -#: models.py:29 +#: abonapp/forms.py:164 +msgid "profile username" +msgstr "" + +#: abonapp/forms.py:166 abonapp/models.py:106 +#: abonapp/templates/abonapp/editAbon.html:39 +#: abonapp/templates/abonapp/viewAbon.html:50 +msgid "Ip Address" +msgstr "IP Адрес" + +#: abonapp/forms.py:167 abonapp/models.py:154 +#: abonapp/templates/abonapp/addAbon.html:53 +#: abonapp/templates/abonapp/addInvoice.html:40 +#: abonapp/templates/abonapp/debtors.html:22 +#: 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 +msgid "Comment" +msgstr "Комментарий" + +#: abonapp/forms.py:168 abonapp/models.py:96 abonapp/models.py:155 +#: abonapp/templates/abonapp/addAbon.html:59 +#: abonapp/templates/abonapp/peoples.html:43 +#: abonapp/templates/abonapp/viewAbon.html:40 +msgid "Street" +msgstr "Улица" + +#: abonapp/forms.py:169 abonapp/models.py:156 +#: abonapp/templates/abonapp/viewAbon.html:46 +msgid "House" +msgstr "Дом" + +#: abonapp/forms.py:170 +msgid "birth day" +msgstr "" + +#: abonapp/forms.py:171 abonapp/templates/abonapp/viewAbon.html:22 +msgid "Is active" +msgstr "Активен" + +#: abonapp/forms.py:172 abonapp/models.py:384 +#: abonapp/templates/abonapp/addAbon.html:37 +#: abonapp/templates/abonapp/editAbon.html:19 +#: abonapp/templates/abonapp/modal_add_phone.html:10 +#: abonapp/templates/abonapp/modal_additional_telephones.html:14 +#: abonapp/templates/abonapp/modal_phonebook.html:10 +#: abonapp/templates/abonapp/peoples.html:53 +#: abonapp/templates/abonapp/viewAbon.html:36 +msgid "Telephone" +msgstr "Телефон" + +#: abonapp/forms.py:173 +msgid "Service title" +msgstr "Название тарифа" + +#: abonapp/forms.py:174 abonapp/templates/abonapp/peoples.html:57 +msgid "Ballance" +msgstr "Балланс" + +#: abonapp/forms.py:175 abonapp/templates/abonapp/editAbon.html:122 +msgid "Device" +msgstr "Устройство" + +#: abonapp/forms.py:176 abonapp/templates/abonapp/editAbon.html:141 +msgid "Device port" +msgstr "Порт устройства" + +#: abonapp/forms.py:177 +msgid "Is dynamic ip" +msgstr "Динамический ip" + +#: abonapp/forms.py:181 +msgid "Fields" +msgstr "Поля" + +#: abonapp/models.py:28 msgid "Can view subscriber group" msgstr "Может просматривать группу абонентов" -#: models.py:31 +#: abonapp/models.py:30 msgid "Abon group" msgstr "Группа абонентов" -#: models.py:32 +#: abonapp/models.py:31 msgid "Abon groups" msgstr "Группы абонентов" -#: models.py:49 +#: abonapp/models.py:48 msgid "Can view subscriber logs" msgstr "Может видеть логи абонента" -#: models.py:83 +#: abonapp/models.py:80 msgid "finish service perm" msgstr "Снятие со счёта средств" -#: models.py:85 +#: abonapp/models.py:82 msgid "Abon service" msgstr "Услуга абонента" -#: models.py:86 +#: abonapp/models.py:83 msgid "Abon services" msgstr "Услуги абонентов" -#: models.py:99 models.py:159 templates/abonapp/addAbon.html:59 -#: templates/abonapp/peoples.html:44 templates/abonapp/viewAbon.html:40 -msgid "Street" -msgstr "Улица" - -#: models.py:100 templates/abonapp/peoples.html:148 +#: abonapp/models.py:97 abonapp/templates/abonapp/peoples.html:150 msgid "Streets" msgstr "Улицы" -#: models.py:106 +#: abonapp/models.py:103 msgid "Digital field" msgstr "Цифровое поле" -#: models.py:107 +#: abonapp/models.py:104 msgid "Text field" msgstr "Текстовое поле" -#: models.py:108 +#: abonapp/models.py:105 msgid "Floating field" msgstr "Дробное с плавающей точкой" -#: models.py:109 templates/abonapp/editAbon.html:39 -#: templates/abonapp/viewAbon.html:50 -msgid "Ip Address" -msgstr "IP Адрес" - -#: models.py:134 +#: abonapp/models.py:131 msgid "Double invalid value" msgstr "Введите число с плавающей запятой" -#: models.py:155 templates/abonapp/addAbon.html:45 -#: templates/abonapp/modal_addstreet.html:21 templates/abonapp/viewAbon.html:16 +#: abonapp/models.py:151 abonapp/templates/abonapp/addAbon.html:45 +#: abonapp/templates/abonapp/modal_addstreet.html:21 +#: abonapp/templates/abonapp/viewAbon.html:16 msgid "User group" msgstr "Группа" -#: models.py:158 templates/abonapp/addAbon.html:53 -#: templates/abonapp/addInvoice.html:40 templates/abonapp/debtors.html:22 -#: templates/abonapp/invoiceForPayment.html:23 templates/abonapp/log.html:20 -#: templates/abonapp/payHistory.html:13 templates/abonapp/task_log.html:10 -msgid "Comment" -msgstr "Комментарий" - -#: models.py:160 templates/abonapp/viewAbon.html:46 -msgid "House" -msgstr "Дом" - -#: models.py:175 +#: abonapp/models.py:170 msgid "Buy service perm" msgstr "Покупка тарифа абоненту" -#: models.py:176 +#: abonapp/models.py:171 msgid "Can view passport" msgstr "Может просматривать паспортные данные" -#: models.py:177 +#: abonapp/models.py:172 msgid "fill account" msgstr "Пополнение счёта" -#: models.py:178 +#: abonapp/models.py:173 msgid "Can ping" msgstr "Может пинговать" -#: models.py:182 +#: abonapp/models.py:177 msgid "Abon" msgstr "Абонент" -#: models.py:183 +#: abonapp/models.py:178 msgid "Abons" msgstr "Абоненты" -#: models.py:211 +#: abonapp/models.py:204 msgid "User that is no staff can not buy admin services" msgstr "" "Пользователь, который не является персоналом не может покупать услуги для " "внутренних нужд" -#: models.py:216 +#: abonapp/models.py:209 msgid "That service already activated" msgstr "Эта услуга уже подключена" -#: models.py:219 +#: abonapp/models.py:212 msgid "Service already activated" msgstr "Услуга уже подключена" -#: models.py:223 +#: abonapp/models.py:216 msgid "not enough money" msgstr "Не хватает денег на счету" -#: models.py:238 +#: abonapp/models.py:231 msgid "Buy service default log" msgstr "Покупка тарифного плана через админку" -#: models.py:279 +#: abonapp/models.py:272 msgid "Ip address already exist" msgstr "Такой ip уже у кого-то есть" -#: models.py:292 models.py:293 +#: abonapp/models.py:285 abonapp/models.py:286 msgid "Passport Info" msgstr "Паспортные данные" -#: models.py:322 +#: abonapp/models.py:315 msgid "Can view invoice for payment" msgstr "Может видеть назначенные платежи" -#: models.py:324 +#: abonapp/models.py:317 msgid "Debt" msgstr "Квитанция (долг)" -#: models.py:325 templates/abonapp/invoiceForPayment.html:10 -#: templates/abonapp/payHistory.html:50 +#: abonapp/models.py:318 abonapp/templates/abonapp/invoiceForPayment.html:10 +#: abonapp/templates/abonapp/payHistory.html:48 msgid "Debts" msgstr "Квитанции (долги)" -#: models.py:348 +#: abonapp/models.py:341 msgid "Trade point" msgstr "Терминал" -#: models.py:349 +#: abonapp/models.py:342 msgid "Receipt number" msgstr "Номер пас." -#: models.py:391 templates/abonapp/addAbon.html:37 -#: templates/abonapp/editAbon.html:19 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:36 -msgid "Telephone" -msgstr "Телефон" - -#: models.py:404 +#: abonapp/models.py:397 msgid "Can view additional telephones" msgstr "Может видеть дополнительные телефоны" -#: models.py:406 +#: abonapp/models.py:399 msgid "Additional telephone" msgstr "Дополнительный телефон" -#: models.py:407 templates/abonapp/editAbon.html:27 -#: templates/abonapp/modal_additional_telephones.html:5 +#: abonapp/models.py:400 abonapp/templates/abonapp/editAbon.html:27 +#: abonapp/templates/abonapp/modal_additional_telephones.html:5 msgid "Additional telephones" msgstr "Дополнительные телефоны" -#: models.py:411 templates/abonapp/service.html:122 +#: abonapp/models.py:404 abonapp/templates/abonapp/service.html:122 msgid "Periodic pay" msgstr "Периодический платёж" -#: models.py:412 +#: abonapp/models.py:405 msgid "Last pay time" msgstr "Последний платёж" -#: models.py:413 +#: abonapp/models.py:406 abonapp/templates/abonapp/service.html:131 msgid "Next time to pay" msgstr "Следующий платёж" -#: models.py:414 +#: abonapp/models.py:407 msgid "Account" msgstr "Учётная запись" -#: models.py:432 +#: abonapp/models.py:424 #, python-format msgid "Charge for \"%(service)s\"" msgstr "Плата за \"%(service)s\"" -#: templates/abonapp/addAbon.html:7 templates/abonapp/addGroup.html:7 -#: templates/abonapp/addInvoice.html:7 templates/abonapp/buy_tariff.html:7 -#: templates/abonapp/debtors.html: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:9 templates/abonapp/peoples.html:134 -#: templates/abonapp/service.html:103 templates/abonapp/service.html:111 +#: 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/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:133 +#: abonapp/templates/abonapp/service.html:103 +#: abonapp/templates/abonapp/service.html:111 msgid "User groups" msgstr "Группы абонентов" -#: templates/abonapp/addAbon.html:9 templates/abonapp/addAbon.html:16 -#: templates/abonapp/peoples.html:119 templates/abonapp/peoples.html:131 +#: abonapp/templates/abonapp/addAbon.html:9 +#: abonapp/templates/abonapp/addAbon.html:16 +#: abonapp/templates/abonapp/peoples.html:118 +#: abonapp/templates/abonapp/peoples.html:130 msgid "Add abon" msgstr "Добавить абонента" -#: templates/abonapp/addAbon.html:29 +#: abonapp/templates/abonapp/addAbon.html:29 msgid "Long name" msgstr "Фамилия и Имя" -#: templates/abonapp/addAbon.html:67 templates/abonapp/peoples.html:50 +#: abonapp/templates/abonapp/addAbon.html:67 +#: abonapp/templates/abonapp/peoples.html:49 msgid "Apartment" msgstr "Квартира" -#: templates/abonapp/addAbon.html:76 templates/abonapp/editAbon.html:58 -#: templates/abonapp/viewAbon.html:54 +#: abonapp/templates/abonapp/addAbon.html:76 +#: abonapp/templates/abonapp/editAbon.html:58 +#: abonapp/templates/abonapp/viewAbon.html:54 msgid "Password" msgstr "Пароль" -#: templates/abonapp/addAbon.html:91 templates/abonapp/addGroup.html:29 -#: templates/abonapp/addInvoice.html:46 templates/abonapp/buy_tariff.html:71 -#: templates/abonapp/editAbon.html:76 templates/abonapp/editAbon.html:165 -#: templates/abonapp/editAbon.html:210 templates/abonapp/group_tariffs.html:29 -#: templates/abonapp/modal_dev.html:31 -#: templates/abonapp/modal_editstreet.html:30 -#: templates/abonapp/passport_view.html:49 +#: abonapp/templates/abonapp/addAbon.html:91 +#: abonapp/templates/abonapp/addGroup.html:29 +#: abonapp/templates/abonapp/addInvoice.html:46 +#: abonapp/templates/abonapp/buy_tariff.html:71 +#: abonapp/templates/abonapp/editAbon.html:76 +#: abonapp/templates/abonapp/editAbon.html:165 +#: abonapp/templates/abonapp/editAbon.html:210 +#: abonapp/templates/abonapp/group_tariffs.html:29 +#: abonapp/templates/abonapp/modal_dev.html:31 +#: abonapp/templates/abonapp/modal_editstreet.html:30 +#: abonapp/templates/abonapp/passport_view.html:49 msgid "Save" msgstr "Сохранить" -#: templates/abonapp/addAbon.html:94 templates/abonapp/addGroup.html: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 -#: templates/abonapp/modal_periodic_pay.html:30 +#: abonapp/templates/abonapp/addAbon.html:94 +#: abonapp/templates/abonapp/addGroup.html:32 +#: abonapp/templates/abonapp/addInvoice.html:49 +#: abonapp/templates/abonapp/buy_tariff.html:74 +#: abonapp/templates/abonapp/group_tariffs.html:29 +#: abonapp/templates/abonapp/modal_abonamount.html:25 +#: abonapp/templates/abonapp/modal_add_phone.html:30 +#: abonapp/templates/abonapp/modal_addstreet.html:33 +#: abonapp/templates/abonapp/modal_dev.html:34 +#: abonapp/templates/abonapp/modal_editstreet.html:33 +#: abonapp/templates/abonapp/modal_extra_field.html:40 +#: abonapp/templates/abonapp/modal_periodic_pay.html:31 msgid "Reset" msgstr "Сбросить" -#: templates/abonapp/addGroup.html:8 templates/abonapp/addGroup.html:15 -#: templates/abonapp/group_list.html:63 +#: abonapp/templates/abonapp/addGroup.html:8 +#: abonapp/templates/abonapp/addGroup.html:15 +#: abonapp/templates/abonapp/group_list.html:63 msgid "Add group" msgstr "Добавьте группу абонентов" -#: templates/abonapp/addGroup.html:20 templates/abonapp/group_list.html:22 +#: abonapp/templates/abonapp/addGroup.html:20 +#: abonapp/templates/abonapp/group_list.html:22 msgid "Group title" msgstr "Название группы" -#: templates/abonapp/addInvoice.html:10 -#: templates/abonapp/invoiceForPayment.html:61 +#: abonapp/templates/abonapp/addInvoice.html:10 +#: abonapp/templates/abonapp/invoiceForPayment.html:61 msgid "Add debt" msgstr "Добавить квитанцию" -#: templates/abonapp/addInvoice.html:17 +#: abonapp/templates/abonapp/addInvoice.html:17 msgid "Add receipt for" msgstr "Добавьте платёж на оплату для" -#: templates/abonapp/addInvoice.html:25 templates/abonapp/debtors.html:21 +#: abonapp/templates/abonapp/addInvoice.html:25 +#: abonapp/templates/abonapp/debtors.html:21 msgid "Sum of pay" msgstr "Сумма для платежа" -#: templates/abonapp/addInvoice.html:36 -#: templates/abonapp/invoiceForPayment.html:20 +#: abonapp/templates/abonapp/addInvoice.html:36 +#: abonapp/templates/abonapp/invoiceForPayment.html:20 msgid "Pay status" msgstr "Статус оплаты" -#: templates/abonapp/buy_tariff.html:10 templates/abonapp/buy_tariff.html:26 -#: templates/abonapp/service.html:74 +#: abonapp/templates/abonapp/buy_tariff.html:10 +#: abonapp/templates/abonapp/buy_tariff.html:26 +#: abonapp/templates/abonapp/service.html:74 msgid "Pick a service" msgstr "Заказать услугу" -#: templates/abonapp/buy_tariff.html:17 +#: abonapp/templates/abonapp/buy_tariff.html:17 msgid "Pick a service for" msgstr "Купить новую услугу (заказать тариф) для" -#: templates/abonapp/buy_tariff.html:18 templates/abonapp/debtors.html:20 -#: templates/abonapp/log.html:19 templates/abonapp/payHistory.html:9 -#: templates/abonapp/peoples.html:25 +#: abonapp/templates/abonapp/buy_tariff.html:18 +#: abonapp/templates/abonapp/debtors.html:20 +#: abonapp/templates/abonapp/log.html:19 +#: abonapp/templates/abonapp/peoples.html:24 msgid "Sub" msgstr "Абонент" -#: templates/abonapp/buy_tariff.html:36 templates/abonapp/group_tariffs.html:24 -#: templates/abonapp/service.html:31 templates/abonapp/service.html:96 +#: abonapp/templates/abonapp/buy_tariff.html:36 +#: abonapp/templates/abonapp/group_tariffs.html:24 +#: abonapp/templates/abonapp/service.html:31 +#: abonapp/templates/abonapp/service.html:96 msgid "currency" msgstr "руб" -#: templates/abonapp/buy_tariff.html:61 templates/abonapp/service.html:102 +#: abonapp/templates/abonapp/buy_tariff.html:61 +#: abonapp/templates/abonapp/service.html:102 msgid "This group has no services" msgstr "У этой группы нет услуг" -#: templates/abonapp/buy_tariff.html:63 +#: abonapp/templates/abonapp/buy_tariff.html:63 msgid "Attach serices to groups" msgstr "Привязать услуги к группам" -#: templates/abonapp/charts.html:9 +#: abonapp/templates/abonapp/charts.html:9 #, python-format msgid "Graph of use by %(wantdate_d)s" msgstr "График использования за %(wantdate_d)s" -#: templates/abonapp/charts.html:17 +#: abonapp/templates/abonapp/charts.html:17 msgid "Show graph by date" msgstr "Показать график по дате" -#: templates/abonapp/charts.html:20 +#: abonapp/templates/abonapp/charts.html:20 msgid "Choose a date" msgstr "Выберите дату" -#: templates/abonapp/charts.html:55 +#: abonapp/templates/abonapp/charts.html:55 msgid "Static info was Not found" msgstr "Статистика не найдена" -#: templates/abonapp/debtors.html:9 +#: abonapp/templates/abonapp/debtors.html:9 msgid "Debtors" msgstr "Должники" -#: templates/abonapp/debtors.html:14 +#: abonapp/templates/abonapp/debtors.html:14 msgid "People with debts" msgstr "Народ, у которого есть неоплаченные услуги" -#: templates/abonapp/debtors.html:23 -#: templates/abonapp/invoiceForPayment.html:24 -#: templates/abonapp/task_log.html:13 +#: abonapp/templates/abonapp/debtors.html:23 +#: abonapp/templates/abonapp/invoiceForPayment.html:24 +#: abonapp/templates/abonapp/task_log.html:13 msgid "Date of make" msgstr "Дата создания" -#: templates/abonapp/debtors.html:24 templates/abonapp/log.html:22 -#: templates/abonapp/task_log.html:8 +#: abonapp/templates/abonapp/debtors.html:24 +#: abonapp/templates/abonapp/log.html:22 +#: abonapp/templates/abonapp/task_log.html:8 msgid "Author" msgstr "Автор" -#: templates/abonapp/debtors.html:42 +#: abonapp/templates/abonapp/debtors.html:42 msgid "Debts not found" msgstr "Нет должников" -#: templates/abonapp/dial_log.html:8 +#: abonapp/templates/abonapp/dial_log.html:8 msgid "Play" msgstr "Слушать" -#: templates/abonapp/dial_log.html:9 +#: abonapp/templates/abonapp/dial_log.html:9 msgid "calldate" msgstr "дата звонка" -#: templates/abonapp/dial_log.html:10 +#: abonapp/templates/abonapp/dial_log.html:10 msgid "src" msgstr "кто" -#: templates/abonapp/dial_log.html:11 +#: abonapp/templates/abonapp/dial_log.html:11 msgid "dst" msgstr "куда" -#: templates/abonapp/dial_log.html:12 +#: abonapp/templates/abonapp/dial_log.html:12 msgid "duration" msgstr "прод." -#: templates/abonapp/dial_log.html:13 +#: abonapp/templates/abonapp/dial_log.html:13 msgid "start" msgstr "начало" -#: templates/abonapp/dial_log.html:14 +#: abonapp/templates/abonapp/dial_log.html:14 msgid "answer" msgstr "ответ" -#: templates/abonapp/dial_log.html:15 +#: abonapp/templates/abonapp/dial_log.html:15 msgid "end" msgstr "конец" -#: templates/abonapp/dial_log.html:16 +#: abonapp/templates/abonapp/dial_log.html:16 msgid "disposition" msgstr "состояние" -#: templates/abonapp/dial_log.html:38 +#: abonapp/templates/abonapp/dial_log.html:38 msgid "Calls was not found" msgstr "Звонки не найдены" -#: templates/abonapp/editAbon.html:10 +#: abonapp/templates/abonapp/editAbon.html:10 msgid "Change subscriber" msgstr "Изменение абонента" -#: templates/abonapp/editAbon.html:24 +#: abonapp/templates/abonapp/editAbon.html:24 msgid "Call to" msgstr "Позвонить" -#: templates/abonapp/editAbon.html:30 templates/abonapp/modal_add_phone.html:5 +#: abonapp/templates/abonapp/editAbon.html:30 +#: abonapp/templates/abonapp/modal_add_phone.html:5 msgid "Add telephone" msgstr "Добавить номер телефона" -#: templates/abonapp/editAbon.html:42 templates/abonapp/editAbon.html:125 -#: templates/abonapp/editAbon.html:144 templates/abonapp/editAbon.html:188 -#: templates/abonapp/peoples.html:90 templates/abonapp/peoples.html:92 -#: templates/abonapp/viewAbon.html:18 templates/abonapp/viewAbon.html:29 -#: templates/abonapp/viewAbon.html:33 templates/abonapp/viewAbon.html:37 -#: templates/abonapp/viewAbon.html:42 templates/abonapp/viewAbon.html:47 -#: templates/abonapp/viewAbon.html:51 +#: abonapp/templates/abonapp/editAbon.html:42 +#: abonapp/templates/abonapp/editAbon.html:125 +#: abonapp/templates/abonapp/editAbon.html:144 +#: abonapp/templates/abonapp/editAbon.html:188 +#: abonapp/templates/abonapp/peoples.html:89 +#: abonapp/templates/abonapp/peoples.html:91 +#: 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 msgid "Not assigned" msgstr "<Не назначен>" -#: templates/abonapp/editAbon.html:44 +#: abonapp/templates/abonapp/editAbon.html:44 msgid "Reset ip" msgstr "Сбросить ip" -#: templates/abonapp/editAbon.html:80 templates/abonapp/editAbon.html:81 +#: abonapp/templates/abonapp/editAbon.html:80 +#: abonapp/templates/abonapp/editAbon.html:81 msgid "Add new task" msgstr "Добавить задачу" -#: templates/abonapp/editAbon.html:95 +#: abonapp/templates/abonapp/editAbon.html:95 msgid "No have ip" msgstr "Нет ip адреса" -#: templates/abonapp/editAbon.html:101 +#: abonapp/templates/abonapp/editAbon.html:101 msgid "Send sms" msgstr "Отправить смс" -#: templates/abonapp/editAbon.html:115 templates/abonapp/modal_dev.html:13 +#: abonapp/templates/abonapp/editAbon.html:115 +#: abonapp/templates/abonapp/modal_dev.html:13 msgid "Select the device" msgstr "Выберите устройство" -#: templates/abonapp/editAbon.html:122 -msgid "Device" -msgstr "Устройство" - -#: templates/abonapp/editAbon.html:125 +#: abonapp/templates/abonapp/editAbon.html:125 msgid "Mac Address" msgstr "Мак" -#: templates/abonapp/editAbon.html:129 +#: abonapp/templates/abonapp/editAbon.html:129 msgid "Remove clutch" msgstr "Удалить муфту" -#: templates/abonapp/editAbon.html:133 templates/abonapp/modal_dev.html:6 +#: abonapp/templates/abonapp/editAbon.html:133 +#: abonapp/templates/abonapp/modal_dev.html:6 msgid "Add clutch" msgstr "Добавить муфту" -#: templates/abonapp/editAbon.html:141 -msgid "Device port" -msgstr "Порт устройства" - -#: templates/abonapp/editAbon.html:158 +#: abonapp/templates/abonapp/editAbon.html:158 msgid "Is dynamic network settings" msgstr "Динамические настройки по dhcp" -#: templates/abonapp/editAbon.html:177 +#: abonapp/templates/abonapp/editAbon.html:177 msgid "Extra fields" msgstr "Динамические записи" -#: templates/abonapp/editAbon.html:191 -#: templates/abonapp/modal_additional_telephones.html:24 +#: abonapp/templates/abonapp/editAbon.html:191 +#: abonapp/templates/abonapp/modal_additional_telephones.html:24 msgid "Delete" msgstr "Удалить" -#: templates/abonapp/editAbon.html:200 views.py:681 +#: abonapp/templates/abonapp/editAbon.html:200 abonapp/views.py:683 msgid "Extra field does not exist" msgstr "Поле не найдено" -#: templates/abonapp/editAbon.html:205 -#: templates/abonapp/modal_extra_field.html:6 +#: abonapp/templates/abonapp/editAbon.html:205 +#: abonapp/templates/abonapp/modal_extra_field.html:6 msgid "Add extra field" msgstr "Добавить новое динамическое поле" -#: templates/abonapp/editAbon.html:206 -#: templates/abonapp/modal_add_phone.html:27 -#: templates/abonapp/modal_addstreet.html:30 -#: templates/abonapp/modal_extra_field.html:37 -#: templates/abonapp/modal_periodic_pay.html:27 -#: templates/abonapp/peoples.html:130 templates/abonapp/peoples.html:157 +#: abonapp/templates/abonapp/editAbon.html:206 +#: abonapp/templates/abonapp/modal_add_phone.html:27 +#: abonapp/templates/abonapp/modal_addstreet.html:30 +#: abonapp/templates/abonapp/modal_extra_field.html:37 +#: abonapp/templates/abonapp/modal_periodic_pay.html:28 +#: abonapp/templates/abonapp/peoples.html:129 +#: abonapp/templates/abonapp/peoples.html:159 msgid "Add" msgstr "Добавить" -#: templates/abonapp/fin_report.html:7 templates/abonapp/group_list.html:78 +#: abonapp/templates/abonapp/fin_report.html:7 +#: abonapp/templates/abonapp/group_list.html:78 msgid "Fin report" msgstr "Финансовый отчёт" -#: templates/abonapp/fin_report.html:12 +#: abonapp/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:10 templates/abonapp/service.html:30 +#: abonapp/templates/abonapp/fin_report.html:17 +#: abonapp/templates/abonapp/invoiceForPayment.html:22 +#: abonapp/templates/abonapp/log.html:18 +#: abonapp/templates/abonapp/payHistory.html:9 +#: abonapp/templates/abonapp/service.html:30 msgid "Sum" msgstr "Сумма" -#: templates/abonapp/fin_report.html:18 templates/abonapp/log.html:21 +#: abonapp/templates/abonapp/fin_report.html:18 +#: abonapp/templates/abonapp/log.html:21 msgid "Date" msgstr "Время" -#: templates/abonapp/fin_report.html:29 +#: abonapp/templates/abonapp/fin_report.html:29 msgid "Pays not found" msgstr "Нет платежей" -#: templates/abonapp/fin_report.html:38 -#: templates/abonapp/modal_phonebook.html:30 +#: abonapp/templates/abonapp/fin_report.html:38 +#: abonapp/templates/abonapp/modal_phonebook.html:30 msgid "Export to csv" msgstr "Сохранить в csv" -#: templates/abonapp/group_list.html:27 +#: abonapp/templates/abonapp/group_list.html:27 msgid "Number of subscribers" msgstr "Количество абонентов" -#: templates/abonapp/group_list.html:54 +#: abonapp/templates/abonapp/group_list.html:54 msgid "Groups was not found" msgstr "Ещё нет групп" -#: templates/abonapp/group_list.html:68 templates/abonapp/log.html:8 +#: abonapp/templates/abonapp/group_list.html:68 +#: abonapp/templates/abonapp/log.html:8 msgid "Subscribers actions" msgstr "История действий абонентов" -#: templates/abonapp/group_list.html:73 +#: abonapp/templates/abonapp/group_list.html:73 msgid "List of debtors" msgstr "Список должников" -#: templates/abonapp/group_tariffs.html:9 -#: templates/abonapp/group_tariffs.html:14 +#: abonapp/templates/abonapp/group_tariffs.html:9 +#: abonapp/templates/abonapp/group_tariffs.html:14 msgid "Belonging services for groups" msgstr "Принадлежность услуг к группам" -#: templates/abonapp/invoiceForPayment.html:15 +#: abonapp/templates/abonapp/invoiceForPayment.html:15 msgid "Debtor" msgstr "Должник" -#: templates/abonapp/invoiceForPayment.html:21 +#: abonapp/templates/abonapp/invoiceForPayment.html:21 msgid "Month" msgstr "Месяц" -#: templates/abonapp/invoiceForPayment.html:25 -#: templates/abonapp/payHistory.html:11 +#: abonapp/templates/abonapp/invoiceForPayment.html:25 +#: abonapp/templates/abonapp/payHistory.html:10 msgid "Date of payment" msgstr "Дата оплаты" -#: templates/abonapp/invoiceForPayment.html:26 -#: templates/abonapp/payHistory.html:12 +#: abonapp/templates/abonapp/invoiceForPayment.html:26 +#: abonapp/templates/abonapp/payHistory.html:11 msgid "Author of payment" msgstr "Назначил" -#: templates/abonapp/invoiceForPayment.html:45 +#: abonapp/templates/abonapp/invoiceForPayment.html:45 msgid "Created paid,Not yet paid" msgstr "Создан оплаченным,Ещё не оплачено" -#: templates/abonapp/invoiceForPayment.html:52 +#: abonapp/templates/abonapp/invoiceForPayment.html:52 msgid "Receipts not found" msgstr "Назначенные платежи отсутствуют" -#: templates/abonapp/log.html:13 +#: abonapp/templates/abonapp/log.html:13 msgid "History of subscriber" msgstr "История абонента" -#: templates/abonapp/log.html:46 +#: abonapp/templates/abonapp/log.html:46 msgid "Actions not found" msgstr "Нет событий" -#: templates/abonapp/modal_abonamount.html:6 +#: abonapp/templates/abonapp/modal_abonamount.html:6 msgid "Additional sum" msgstr "Начисление средств на счёт" -#: templates/abonapp/modal_abonamount.html:11 +#: abonapp/templates/abonapp/modal_abonamount.html:11 msgid "Amount of money" msgstr "Количество денег" -#: templates/abonapp/modal_abonamount.html:22 +#: abonapp/templates/abonapp/modal_abonamount.html:22 msgid "Refill" msgstr "Пополнить" -#: templates/abonapp/modal_add_phone.html:18 -#: templates/abonapp/modal_additional_telephones.html:13 -#: templates/abonapp/modal_phonebook.html:11 +#: abonapp/templates/abonapp/modal_add_phone.html:18 +#: abonapp/templates/abonapp/modal_additional_telephones.html:13 +#: abonapp/templates/abonapp/modal_phonebook.html:11 msgid "Telephone owner" msgstr "Владелец телефона" -#: templates/abonapp/modal_additional_telephones.html:31 +#: abonapp/templates/abonapp/modal_additional_telephones.html:31 msgid "Additional telephones not found" msgstr "Дополнительные телефоны не найдены" -#: templates/abonapp/modal_addstreet.html:5 templates/abonapp/peoples.html:156 +#: abonapp/templates/abonapp/modal_addstreet.html:5 +#: abonapp/templates/abonapp/peoples.html:158 msgid "Add street" msgstr "Добавить улицу" -#: templates/abonapp/modal_addstreet.html:12 +#: abonapp/templates/abonapp/modal_addstreet.html:12 msgid "Street title" msgstr "Название улицы" -#: templates/abonapp/modal_editstreet.html:5 templates/abonapp/peoples.html:159 +#: abonapp/templates/abonapp/modal_editstreet.html:5 +#: abonapp/templates/abonapp/peoples.html:161 msgid "Edit streets" msgstr "Редактировать улицы" -#: templates/abonapp/modal_editstreet.html:25 +#: abonapp/templates/abonapp/modal_editstreet.html:25 msgid "Streets has not been found" msgstr "Улицы не найдены" -#: templates/abonapp/modal_extra_field.html:11 +#: abonapp/templates/abonapp/modal_export.html:6 +msgid "Select the fields" +msgstr "Выберите поля" + +#: abonapp/templates/abonapp/modal_export.html:11 +msgid "Export" +msgstr "Экспорт" + +#: abonapp/templates/abonapp/modal_extra_field.html:11 msgid "Field title" msgstr "Название поля" -#: templates/abonapp/modal_extra_field.html:20 +#: abonapp/templates/abonapp/modal_extra_field.html:20 msgid "Field type" msgstr "Тип динамического поля" -#: templates/abonapp/modal_extra_field.html:28 +#: abonapp/templates/abonapp/modal_extra_field.html:28 msgid "Field content" msgstr "Содержимое динамического поля" -#: templates/abonapp/modal_periodic_pay.html:5 -#: templates/abonapp/service.html:139 +#: abonapp/templates/abonapp/modal_periodic_pay.html:6 +#: abonapp/templates/abonapp/service.html:139 msgid "Add periodic pay" msgstr "Добавить периодический платёж" -#: templates/abonapp/modal_phonebook.html:4 templates/abonapp/peoples.html:138 +#: abonapp/templates/abonapp/modal_phonebook.html:4 +#: abonapp/templates/abonapp/peoples.html:137 msgid "Phonebook" msgstr "Телефонная книга" -#: templates/abonapp/modal_phonebook.html:22 +#: abonapp/templates/abonapp/modal_phonebook.html:22 msgid "Telephone numbers not found" msgstr "Номера телефонов не найдены" -#: templates/abonapp/passport_view.html:9 templates/abonapp/viewAbon.html:68 +#: abonapp/templates/abonapp/passport_view.html:9 +#: abonapp/templates/abonapp/viewAbon.html:68 msgid "Passport information" msgstr "Паспортные данные" -#: templates/abonapp/passport_view.html:15 templates/abonapp/viewAbon.html:74 +#: abonapp/templates/abonapp/passport_view.html:15 +#: abonapp/templates/abonapp/viewAbon.html:74 msgid "Pasport serial" msgstr "Серия пас." -#: templates/abonapp/passport_view.html:21 +#: abonapp/templates/abonapp/passport_view.html:21 msgid "Pasport number" msgstr "Номер пас." -#: templates/abonapp/passport_view.html:27 templates/abonapp/viewAbon.html:78 +#: abonapp/templates/abonapp/passport_view.html:27 +#: abonapp/templates/abonapp/viewAbon.html:78 msgid "Distributor" msgstr "Кем выдан" -#: templates/abonapp/passport_view.html:33 +#: abonapp/templates/abonapp/passport_view.html:33 msgid "Date of acceptance" msgstr "Дата выдачи" -#: templates/abonapp/payHistory.html:26 +#: abonapp/templates/abonapp/payHistory.html:24 msgid "System" msgstr "Система" -#: templates/abonapp/payHistory.html:33 +#: abonapp/templates/abonapp/payHistory.html:31 msgid "Payment history is empty" msgstr "История платежей пуста" -#: templates/abonapp/payHistory.html:42 templates/abonapp/payHistory.html:46 +#: abonapp/templates/abonapp/payHistory.html:40 +#: abonapp/templates/abonapp/payHistory.html:44 msgid "Fill account" msgstr "Пополнить счёт" -#: templates/abonapp/payHistory.html:45 +#: abonapp/templates/abonapp/payHistory.html:43 msgid "Permission denied" msgstr "Доступ запрещён" -#: templates/abonapp/peoples.html:15 +#: abonapp/templates/abonapp/peoples.html:14 msgid "The people in the selected group" msgstr "Народ в выбранной группе" -#: templates/abonapp/peoples.html:29 +#: abonapp/templates/abonapp/peoples.html:28 msgid "Last traffic" msgstr "Траф." -#: templates/abonapp/peoples.html:32 +#: abonapp/templates/abonapp/peoples.html:31 msgid "Ip address" msgstr "IP Адрес" -#: templates/abonapp/peoples.html:55 templates/abonapp/service.html:16 -#: templates/abonapp/service.html:75 +#: abonapp/templates/abonapp/peoples.html:54 +#: abonapp/templates/abonapp/service.html:16 +#: abonapp/templates/abonapp/service.html:75 msgid "Service" msgstr "Услуга" -#: templates/abonapp/peoples.html:58 -msgid "Ballance" -msgstr "Балланс" - -#: templates/abonapp/peoples.html:117 +#: abonapp/templates/abonapp/peoples.html:116 msgid "Subscribers not found" msgstr "Абоненты не найдены" -#: templates/abonapp/peoples.html:135 templates/abonapp/service.html:104 +#: abonapp/templates/abonapp/peoples.html:134 +#: abonapp/templates/abonapp/service.html:104 msgid "Tariffs in groups" msgstr "Тарифы в группах" -#: templates/abonapp/peoples.html:153 +#: abonapp/templates/abonapp/peoples.html:140 +msgid "Export users" +msgstr "Экспорт абонентов" + +#: abonapp/templates/abonapp/peoples.html:155 msgid "No streets found for that group" msgstr "Не найдены улицы для группы" -#: templates/abonapp/peoples.html:160 +#: abonapp/templates/abonapp/peoples.html:162 msgid "Edit" msgstr "Редактировать" -#: templates/abonapp/service.html:10 +#: abonapp/templates/abonapp/service.html:10 msgid "Subscriber's service" msgstr "Текущая услуга абонента" -#: templates/abonapp/service.html:27 +#: abonapp/templates/abonapp/service.html:27 msgid "We have a problem in DB: AbonTariff instance has no related to service" msgstr "У нас проблема с БД: экземпляр AbonTariff не имеет отношения к тарифу" -#: templates/abonapp/service.html:33 +#: abonapp/templates/abonapp/service.html:33 msgid "Input speed" msgstr "Входящая скорость" -#: templates/abonapp/service.html:36 +#: abonapp/templates/abonapp/service.html:36 msgid "Output speed" msgstr "Исходящая скорость" -#: templates/abonapp/service.html:39 +#: abonapp/templates/abonapp/service.html:39 msgid "Date of start" msgstr "Дата начала" -#: templates/abonapp/service.html:42 +#: abonapp/templates/abonapp/service.html:42 msgid "Works until" msgstr "Действует до" -#: templates/abonapp/service.html:51 +#: abonapp/templates/abonapp/service.html:51 msgid "Subscriber has no service" msgstr "У абонента нет услуги" -#: templates/abonapp/service.html:53 +#: abonapp/templates/abonapp/service.html:53 msgid "Buy service" msgstr "Купить услугу" -#: templates/abonapp/service.html:59 +#: abonapp/templates/abonapp/service.html:59 msgid "Finish service" msgstr "Завершить услугу" -#: templates/abonapp/service.html:68 +#: abonapp/templates/abonapp/service.html:68 msgid "Services for buy" msgstr "Услуги для заказа" -#: templates/abonapp/service.html:76 +#: abonapp/templates/abonapp/service.html:76 msgid "Price" msgstr "Сумма" -#: templates/abonapp/service.html:77 +#: abonapp/templates/abonapp/service.html:77 msgid "Speed In" msgstr "Входящая скорость" -#: templates/abonapp/service.html:78 +#: abonapp/templates/abonapp/service.html:78 msgid "Speed Out" msgstr "Исходящая скорость" -#: templates/abonapp/service.html:112 +#: abonapp/templates/abonapp/service.html:112 msgid "Attach services to group" msgstr "Привязать услуги к этой группе" -#: templates/abonapp/service.html:127 +#: abonapp/templates/abonapp/service.html:127 msgid "Pay logic" msgstr "Алгоритм платежа" -#: templates/abonapp/service.html:129 +#: abonapp/templates/abonapp/service.html:129 msgid "Last pay" msgstr "Последний платёж" -#: templates/abonapp/service.html:135 +#: abonapp/templates/abonapp/service.html:135 msgid "Remove periodic pay" msgstr "Удалить периодический платёж" -#: templates/abonapp/task_log.html:9 +#: abonapp/templates/abonapp/task_log.html:9 msgid "Recipients" msgstr "Исполнители" -#: templates/abonapp/task_log.html:11 +#: abonapp/templates/abonapp/task_log.html:11 msgid "State" msgstr "Состояние" -#: templates/abonapp/task_log.html:12 +#: abonapp/templates/abonapp/task_log.html:12 msgid "Type" msgstr "Тип" -#: templates/abonapp/task_log.html:24 +#: abonapp/templates/abonapp/task_log.html:24 msgid "Recipients not found" msgstr "Нет исполнителей" -#: templates/abonapp/task_log.html:34 +#: abonapp/templates/abonapp/task_log.html:34 msgid "Tasks not found" msgstr "Нет задач" -#: templates/abonapp/viewAbon.html:10 +#: abonapp/templates/abonapp/viewAbon.html:10 msgid "View the subscriber" msgstr "Просмотр абонента" -#: templates/abonapp/viewAbon.html:22 -msgid "Is active" -msgstr "Активен" - -#: templates/abonapp/viewAbon.html:24 +#: abonapp/templates/abonapp/viewAbon.html:24 msgid "yes,no" msgstr "Да,Нет" -#: views.py:83 +#: abonapp/views.py:83 msgid "create group success msg" msgstr "Группа успешно создана" -#: views.py:86 views.py:158 views.py:305 views.py:417 views.py:495 views.py:637 -#: views.py:800 views.py:872 +#: abonapp/views.py:86 abonapp/views.py:158 abonapp/views.py:305 +#: abonapp/views.py:420 abonapp/views.py:497 abonapp/views.py:639 +#: abonapp/views.py:806 abonapp/views.py:878 abonapp/views.py:947 msgid "fix form errors" msgstr "Некоторые поля заполнены не правильно, проверте ещё раз" -#: views.py:125 +#: abonapp/views.py:125 msgid "delete group success msg" msgstr "Группа успешно удалена" -#: views.py:155 +#: abonapp/views.py:155 msgid "create abon success msg" msgstr "Абонент успешно создан" -#: views.py:169 +#: abonapp/views.py:169 msgid "Address" msgstr "Адрес" -#: views.py:190 +#: abonapp/views.py:190 msgid "delete abon success msg" msgstr "Абонент успешно удалён" -#: views.py:196 +#: abonapp/views.py:196 #, python-format msgid "NAS says: '%s'" msgstr "NAS сказал: '%s'" -#: views.py:213 +#: abonapp/views.py:213 msgid "fill account through admin side" msgstr "Пополнение счёта через админку" -#: views.py:215 +#: abonapp/views.py:215 #, python-format msgid "Account filled successfully on %.2f" msgstr "Счёт пополнен на %.2f" -#: views.py:218 +#: abonapp/views.py:218 msgid "I not know the account id" msgstr "Счёт успешно пополнен на %.2f" -#: views.py:267 +#: abonapp/views.py:267 msgid "User group id is not matches with group in url" msgstr "Группа абонента не совпадает с группой указанной в url" -#: views.py:303 +#: abonapp/views.py:303 msgid "edit abon success msg" msgstr "Абонент успешно изменён" -#: views.py:310 +#: abonapp/views.py:310 msgid "User device was not found" msgstr "Пользовательское устройство не найдено" -#: views.py:319 +#: abonapp/views.py:319 msgid "User has not have password, and cannot login" msgstr "Для абонента не задан пароль, он не сможет войти в учётку" -#: views.py:372 +#: abonapp/views.py:372 msgid "Receipt has been created" msgstr "Квитанция на оплату была создана" -#: views.py:404 +#: abonapp/views.py:398 +#, python-format +msgid "Service '%(service_name)s' has connected via admin" +msgstr "Услуга '%(service_name)s' подключена администратором" + +#: abonapp/views.py:407 msgid "Tariff has been picked" msgstr "Тариф успешно выбран" -#: views.py:412 +#: abonapp/views.py:415 msgid "Tariff your picked does not exist" msgstr "Тариф, который вы выбрали, не существует" -#: views.py:434 +#: abonapp/views.py:436 msgid "User has been detached from service" msgstr "Абонент отвязан от услуги" -#: views.py:492 +#: abonapp/views.py:494 msgid "Passport information has been saved" msgstr "Информация о паспорте сохранена" -#: views.py:500 views.py:547 views.py:566 views.py:607 +#: abonapp/views.py:502 abonapp/views.py:549 abonapp/views.py:568 +#: abonapp/views.py:609 msgid "Abon does not exist" msgstr "Абонент не найден" -#: views.py:503 +#: abonapp/views.py:505 msgid "Passport info for the user does not exist" msgstr "Для абонента не найдены паспортные данные" -#: views.py:540 +#: abonapp/views.py:542 msgid "Device has successfully attached" msgstr "Устройство успешно прикреплено" -#: views.py:545 +#: abonapp/views.py:547 msgid "Device your selected already does not exist" msgstr "Устройство, выбранное вами, уже не существует" -#: views.py:564 +#: abonapp/views.py:566 msgid "Device has successfully unattached" msgstr "Устройство успешно откреплено" -#: views.py:610 +#: abonapp/views.py:612 msgid "Group what you want doesn't exist" msgstr "Указанная вами группа не найдена" -#: views.py:635 +#: abonapp/views.py:637 msgid "Extra field successfully created" msgstr "Динамичесое поле добавлено успешно" -#: views.py:665 +#: abonapp/views.py:667 msgid "Extra fields has been saved" msgstr "Динамические поля сохранены" -#: views.py:667 +#: abonapp/views.py:669 msgid "One or more extra fields has not been saved" msgstr "Поле или одно из полей не найдено" -#: views.py:679 +#: abonapp/views.py:681 msgid "Extra field successfully deleted" msgstr "Динамическое поле успешно удалено" -#: views.py:690 +#: abonapp/views.py:692 msgid "no ping" msgstr "не пингуется" -#: views.py:693 +#: abonapp/views.py:695 msgid "Ip not passed" msgstr "Ip адрес не передан" -#: views.py:699 views.py:712 +#: abonapp/views.py:701 abonapp/views.py:714 msgid "ping ok" msgstr "пингуется" -#: views.py:705 +#: abonapp/views.py:707 #, python-format msgid "IP Conflict! %(all)d/%(return)d results" msgstr "IP Конфликт! ping %(all)d из %(return)d" -#: views.py:707 +#: abonapp/views.py:709 #, python-format msgid "ok ping, %(all)d/%(return)d loses" msgstr "пингуется, %(all)d/%(return)d" -#: views.py:710 +#: abonapp/views.py:712 #, python-format msgid "no ping, %(all)d/%(return)d loses" msgstr "не пингуется, %(all)d/%(return)d" -#: views.py:753 +#: abonapp/views.py:755 msgid "Method is not POST" msgstr "Метод не POST" -#: views.py:767 +#: abonapp/views.py:770 #, python-format msgid "" "%(user_name)s already pinned to this port on this " @@ -979,82 +1082,87 @@ msgstr "" "%(user_name)s уже привязан к этому порту на этом " "устройстве" -#: views.py:781 +#: abonapp/views.py:787 msgid "User port has been saved" msgstr "Порт абонента успешно выбран" -#: views.py:783 +#: abonapp/views.py:789 msgid "Selected port does not exist" msgstr "Выбранный порт не существует" -#: views.py:785 +#: abonapp/views.py:791 msgid "User does not exist" msgstr "Абонент не найден" -#: views.py:797 +#: abonapp/views.py:803 msgid "Street successfully saved" msgstr "Улица успешно сохранена" -#: views.py:821 +#: abonapp/views.py:827 msgid "Streets has been saved" msgstr "Улицы сохранены" -#: views.py:829 +#: abonapp/views.py:835 msgid "One of these streets has not been found" msgstr "Одна из этих улиц не была найдена" -#: views.py:840 +#: abonapp/views.py:846 msgid "The street successfully deleted" msgstr "Улица успешно удалена" -#: views.py:842 +#: abonapp/views.py:848 msgid "The street has not been found" msgstr "Улица не найдена" -#: views.py:869 +#: abonapp/views.py:875 msgid "New telephone has been saved" msgstr "Новый телефон сохранен" -#: views.py:889 +#: abonapp/views.py:895 msgid "Additional telephone successfully deleted" msgstr "Номер телефона успешно удалён" -#: views.py:891 +#: abonapp/views.py:897 msgid "Telephone not found" msgstr "Телефон не найден" -#: views.py:967 +#: abonapp/views.py:944 +#, python-format +msgid "Unexpected format %(export_format)s" +msgstr "Нежиданный формат %(export_format)s" + +#: abonapp/views.py:1008 msgid "Periodic pays has been designated" msgstr "Периодический платёж назначен" -#: views.py:969 +#: abonapp/views.py:1010 msgid "Something wrong in form" msgstr "Что-то не так в форме" -#: views.py:988 +#: abonapp/views.py:1029 msgid "Periodic pay successfully deleted" msgstr "Периодический платёж успешно удалён" -#~ msgid "Graph of use" -#~ msgstr "График использования" +msgid "Graph of use" +msgstr "График использования" -#~ msgid "Enter a valid integer." -#~ msgstr "Введите верное число" +msgid "Enter a valid integer." +msgstr "Введите верное число" -#~ msgid "Enter a valid MAC Address." -#~ msgstr "Введите валидный mac адрес" +msgid "Enter a valid MAC Address." +msgstr "Введите валидный mac адрес" -#~ msgid "Port" -#~ msgstr "Порт" +msgid "Port" +msgstr "Порт" -#~ msgid "Priority" -#~ msgstr "Приоритет" +msgid "Priority" +msgstr "Приоритет" -#~ msgid "Services of subscribers not found" -#~ msgstr "Нет подключённых абоненту услуг" +msgid "Services of subscribers not found" +msgstr "Нет подключённых абоненту услуг" -#~ msgid "Buy" -#~ msgstr "Купить" +msgid "Buy" +msgstr "Купить" msgid "Not confirmed" msgstr "Действие не подтверждено" @@ -1076,24 +1184,3 @@ msgstr "Инфо." msgid "Dialing" msgstr "Звонки" - -msgid "Export" -msgstr "Экспорт" - -msgid "Export users" -msgstr "Экспорт абонентов" - -msgid "Fields" -msgstr "Поля" - -msgid "Select the fields" -msgstr "Выберите поля" - -msgid "Service title" -msgstr "Название тарифа" - -msgid "Is dynamic ip" -msgstr "Динамический ip" - -msgid "Unexpected format %(export_format)s" -msgstr "Нежиданный формат %(export_format)s" diff --git a/abonapp/views.py b/abonapp/views.py index 9ab948d..ec18a38 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -395,12 +395,15 @@ def pick_tariff(request, gid, uid): if request.method == 'POST': trf = Tariff.objects.get(pk=request.POST.get('tariff')) deadline = request.POST.get('deadline') + log_comment = _("Service '%(service_name)s' has connected via admin") % { + 'service_name': trf.title + } if deadline == '' or deadline is None: - abon.pick_tariff(trf, request.user) + abon.pick_tariff(trf, request.user, comment=log_comment) else: deadline = datetime.strptime(deadline, '%Y-%m-%d') deadline += timedelta(hours=23, minutes=59, seconds=59) - abon.pick_tariff(trf, request.user, deadline=deadline) + abon.pick_tariff(trf, request.user, deadline=deadline, comment=log_comment) messages.success(request, _('Tariff has been picked')) return redirect('abonapp:abon_services', gid=gid, uid=abon.id) except (mydefs.LogicError, NasFailedResult) as e: @@ -426,7 +429,6 @@ def pick_tariff(request, gid, uid): @login_required @permission_required('abonapp.delete_abontariff') -@permission_required('abonapp.can_view_abongroup', (models.AbonGroup, 'pk', 'gid')) def unsubscribe_service(request, gid, uid, abon_tariff_id): try: abon_tariff = get_object_or_404(models.AbonTariff, pk=int(abon_tariff_id)) diff --git a/cron.py b/cron.py index 70c8d8b..89e1960 100755 --- a/cron.py +++ b/cron.py @@ -4,22 +4,44 @@ import django os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djing.settings") django.setup() from django.utils import timezone +from django.db import transaction from django.db.models import signals -from abonapp.models import Abon, AbonTariff, abontariff_pre_delete, PeriodicPayForId +from django.utils.translation import ugettext_lazy as _ +from abonapp.models import Abon, AbonTariff, abontariff_pre_delete, PeriodicPayForId, AbonLog from agent import Transmitter, NasNetworkError, NasFailedResult from mydefs import LogicError def main(): signals.pre_delete.disconnect(abontariff_pre_delete, sender=AbonTariff) - AbonTariff.objects.filter(deadline__lt=timezone.now()).delete() + # AbonTariff.objects.filter(abon=None).delete() + now = timezone.now() + fields = ('id', 'tariff__title', 'abon__id') + expired_services = AbonTariff.objects.filter(deadline__lt=now).exclude(abon=None) + + # finishing expires services + with transaction.atomic(): + for ex_srv in expired_services.only(*fields).values(*fields): + AbonLog.objects.create( + abon_id=ex_srv['abon__id'], + amount=0, + author=None, + date=now, + comment=_("Service '%(service_name)s' has expired") % { + 'service_name': ex_srv['tariff__title'] + } + ) + expired_services.delete() + signals.pre_delete.connect(abontariff_pre_delete, sender=AbonTariff) + + # sync subscribers on NAS tm = Transmitter() users = Abon.objects.filter(is_dynamic_ip=False, is_active=True).exclude(current_tariff=None) tm.sync_nas(users) - signals.pre_delete.connect(abontariff_pre_delete, sender=AbonTariff) # manage periodic pays - ppays = PeriodicPayForId.objects.filter(next_pay__lt=timezone.now()).prefetch_related('account', 'periodic_pay') + ppays = PeriodicPayForId.objects.filter(next_pay__lt=timezone.now())\ + .prefetch_related('account', 'periodic_pay') for pay in ppays: pay.payment_for_service() diff --git a/locale/ru/LC_MESSAGES/django.po b/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 0000000..6349f62 --- /dev/null +++ b/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,69 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Dmitry Novikov nerosketch@gmail.com, 2018. +# +#, fuzzy +msgid "" +msgstr "" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-26 19:22+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Dmitry Novikov nerosketch@gmail.com\n" +"Language-Team: LANGUAGE \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%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" + +#: agent/commands/dhcp.py:19 +msgid "User settings is not dynamic" +msgstr "" + +#: agent/commands/dhcp.py:29 +#, python-format +msgid "User with device '%s' does not exist" +msgstr "" + +#: agent/commands/dhcp.py:31 +#, python-format +msgid "Device with mac %s not found" +msgstr "" + +#: agent/commands/dhcp.py:33 +#, python-format +msgid "Port %d on device with mac %s does not exist" +msgstr "" + +#: cron.py:30 +#, python-format +msgid "Service '%(service_name)s' has expired" +msgstr "Срок действия услуги '%(service_name)s' истёк" + +#: djing/formfields.py:13 +msgid "Enter a valid integer." +msgstr "" + +#: djing/formfields.py:22 +msgid "Enter a valid MAC Address." +msgstr "" + +#: templates/403.html:5 +msgid "Permission denied" +msgstr "Доступ запрещён" + +#: templates/403.html:39 templates/403_for_modal.html:4 +#: templates/403_for_modal.html:7 +msgid "403 - Permission denied" +msgstr "403 - Доступ запрещён" + +#: templates/403.html:40 templates/403_for_modal.html:8 +msgid "You have no permissions for that page" +msgstr "У вас нет прав просматривать эту страницу" + +#: templates/403_for_modal.html:11 +msgid "Close" +msgstr "Закрыть"