From c9f5feb8c6547456dfb40e86b197be93a48c379f Mon Sep 17 00:00:00 2001 From: Dmitry Novikov Date: Mon, 29 Oct 2018 12:12:39 +0300 Subject: [PATCH] rename nas_app to gw_app --- Doc.txt | 2 +- abonapp/forms.py | 2 +- abonapp/locale/ru/LC_MESSAGES/django.po | 4 +- abonapp/migrations/0003_abon_nas.py | 4 +- abonapp/models.py | 12 +- abonapp/templates/abonapp/editAbon.html | 2 +- abonapp/views.py | 8 +- clientsideapp/views.py | 2 +- djing/settings.py | 2 +- djing/urls.py | 2 +- docs/dev.md | 6 +- gw_app/__init__.py | 1 + {nas_app => gw_app}/admin.py | 0 gw_app/apps.py | 5 + {nas_app => gw_app}/forms.py | 2 +- .../locale/ru/LC_MESSAGES/django.po | 109 ++++++++---------- .../migrations/0001_initial.py | 0 {nas_app => gw_app/migrations}/__init__.py | 0 {nas_app => gw_app}/models.py | 4 +- gw_app/nas_managers/__init__.py | 9 ++ {nas_app => gw_app}/nas_managers/core.py | 10 +- .../nas_managers/mod_mikrotik.py | 4 +- {nas_app => gw_app}/nas_managers/structs.py | 0 .../templates/gw_app}/nasmodel_add.html | 4 +- .../gw_app}/nasmodel_confirm_delete.html | 2 +- .../templates/gw_app}/nasmodel_list.html | 4 +- .../templates/gw_app}/nasmodel_update.html | 8 +- {nas_app => gw_app}/tests.py | 20 ++-- {nas_app => gw_app}/urls.py | 4 +- {nas_app => gw_app}/views.py | 28 ++--- nas_app/apps.py | 5 - nas_app/migrations/__init__.py | 0 nas_app/nas_managers/__init__.py | 9 -- periodic.py | 6 +- templates/base.html | 6 +- 35 files changed, 138 insertions(+), 148 deletions(-) create mode 100644 gw_app/__init__.py rename {nas_app => gw_app}/admin.py (100%) create mode 100644 gw_app/apps.py rename {nas_app => gw_app}/forms.py (96%) rename {nas_app => gw_app}/locale/ru/LC_MESSAGES/django.po (62%) rename {nas_app => gw_app}/migrations/0001_initial.py (100%) rename {nas_app => gw_app/migrations}/__init__.py (100%) rename {nas_app => gw_app}/models.py (95%) create mode 100644 gw_app/nas_managers/__init__.py rename {nas_app => gw_app}/nas_managers/core.py (91%) rename {nas_app => gw_app}/nas_managers/mod_mikrotik.py (99%) rename {nas_app => gw_app}/nas_managers/structs.py (100%) rename {nas_app/templates/nas_app => gw_app/templates/gw_app}/nasmodel_add.html (82%) rename {nas_app/templates/nas_app => gw_app/templates/gw_app}/nasmodel_confirm_delete.html (88%) rename {nas_app/templates/nas_app => gw_app/templates/gw_app}/nasmodel_list.html (93%) rename {nas_app/templates/nas_app => gw_app/templates/gw_app}/nasmodel_update.html (78%) rename {nas_app => gw_app}/tests.py (92%) rename {nas_app => gw_app}/urls.py (87%) rename {nas_app => gw_app}/views.py (73%) delete mode 100644 nas_app/apps.py delete mode 100644 nas_app/migrations/__init__.py delete mode 100644 nas_app/nas_managers/__init__.py diff --git a/Doc.txt b/Doc.txt index 0b24ce0..275d815 100644 --- a/Doc.txt +++ b/Doc.txt @@ -12,7 +12,7 @@ код из 2х букв, сочетание должно быть уникальным и ваш класс для своей логики расчёта тарифа -ВАЖНО! Для отработки своевременного выключения услуги, время на сервере биллинга и NAS должно быть настроено точно. +ВАЖНО! Для отработки своевременного выключения услуги, время на сервере биллинга и шлюза должно быть настроено точно. Таблицу кеша статистики лучше сделать в памяти т.к. будет часто обновляться ALTER TABLE flowcache ENGINE=MEMORY; diff --git a/abonapp/forms.py b/abonapp/forms.py index e91bf26..11b319f 100644 --- a/abonapp/forms.py +++ b/abonapp/forms.py @@ -6,7 +6,7 @@ from string import digits, ascii_lowercase from djing.lib import LogicError from ip_pool.models import NetworkModel -from nas_app.models import NASModel +from gw_app.models import NASModel from . import models from django.conf import settings diff --git a/abonapp/locale/ru/LC_MESSAGES/django.po b/abonapp/locale/ru/LC_MESSAGES/django.po index 91b5b7a..5425e07 100644 --- a/abonapp/locale/ru/LC_MESSAGES/django.po +++ b/abonapp/locale/ru/LC_MESSAGES/django.po @@ -204,8 +204,8 @@ msgstr "Покупка тарифного плана через админку" #: models.py:238 models.py:255 models.py:272 views.py:684 views.py:1132 #: views.py:1175 -msgid "NAS required" -msgstr "Необходимо выбрать NAS" +msgid "gateway required" +msgstr "Необходимо выбрать шлюз" #: models.py:296 msgid "Pasport serial" diff --git a/abonapp/migrations/0003_abon_nas.py b/abonapp/migrations/0003_abon_nas.py index 5d11f1d..b135d89 100644 --- a/abonapp/migrations/0003_abon_nas.py +++ b/abonapp/migrations/0003_abon_nas.py @@ -9,7 +9,7 @@ import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ - ('nas_app', '0001_initial'), + ('gw_app', '0001_initial'), ('abonapp', '0002_auto_20180808_1448'), ] @@ -17,6 +17,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='abon', name='nas', - field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='nas_app.NASModel', verbose_name='Network access server'), + field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='gw_app.NASModel', verbose_name='Network access server'), ), ] diff --git a/abonapp/models.py b/abonapp/models.py index f2a3626..15eaf4d 100644 --- a/abonapp/models.py +++ b/abonapp/models.py @@ -12,7 +12,7 @@ from django.utils import timezone from django.utils.translation import ugettext_lazy as _, gettext from accounts_app.models import UserProfile, MyUserManager, BaseAccount -from nas_app.nas_managers import SubnetQueue, NasFailedResult, NasNetworkError +from gw_app.nas_managers import SubnetQueue, NasFailedResult, NasNetworkError from group_app.models import Group from djing.lib import LogicError from ip_pool.models import NetworkModel @@ -96,7 +96,7 @@ class Abon(BaseAccount): device = models.ForeignKey('devapp.Device', null=True, blank=True, on_delete=models.SET_NULL) dev_port = models.ForeignKey('devapp.Port', null=True, blank=True, on_delete=models.SET_NULL) is_dynamic_ip = models.BooleanField(_('Is dynamic ip'), default=False) - nas = models.ForeignKey('nas_app.NASModel', null=True, blank=True, on_delete=models.SET_NULL, + nas = models.ForeignKey('gw_app.NASModel', null=True, blank=True, on_delete=models.SET_NULL, verbose_name=_('Network access server'), default=None) autoconnect_service = models.BooleanField(_('Automatically connect next service'), default=False) @@ -243,11 +243,11 @@ class Abon(BaseAccount): def nas_sync_self(self) -> Optional[Exception]: """ - Synchronize user with gateway(NAS) + Synchronize user with gateway :return: """ if self.nas is None: - raise LogicError(_('NAS required')) + raise LogicError(_('gateway required')) try: agent_abon = self.build_agent_struct() if agent_abon is not None: @@ -265,7 +265,7 @@ class Abon(BaseAccount): :return: """ if self.nas is None: - raise LogicError(_('NAS required')) + raise LogicError(_('gateway required')) try: agent_abon = self.build_agent_struct() if agent_abon is not None: @@ -283,7 +283,7 @@ class Abon(BaseAccount): :return: """ if self.nas is None: - raise LogicError(_('NAS required')) + raise LogicError(_('gateway required')) try: agent_abon = self.build_agent_struct() if agent_abon is not None: diff --git a/abonapp/templates/abonapp/editAbon.html b/abonapp/templates/abonapp/editAbon.html index d2821e1..685c246 100644 --- a/abonapp/templates/abonapp/editAbon.html +++ b/abonapp/templates/abonapp/editAbon.html @@ -54,7 +54,7 @@ }); - {% if perms.nas_app.change_nasmodel %} + {% if perms.gw_app.change_nasmodel %} {% bootstrap_field form.nas form_group_class='form-group-sm' %} {% endif %} {% bootstrap_field form.description form_group_class='form-group-sm' %} diff --git a/abonapp/views.py b/abonapp/views.py index d1de8e6..f9ee1c1 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -16,9 +16,9 @@ from django.views.generic import ListView, UpdateView, CreateView, DeleteView from django.conf import settings from agent.commands.dhcp import dhcp_commit, dhcp_expiry, dhcp_release -from nas_app.models import NASModel +from gw_app.models import NASModel from tariff_app.models import Tariff -from nas_app.nas_managers import NasFailedResult, NasNetworkError +from gw_app.nas_managers import NasFailedResult, NasNetworkError from . import forms from . import models from devapp.models import Device, Port as DevPort @@ -719,7 +719,7 @@ def abon_ping(request, gid: int, uname): if abon.nas is None: return { 'status': 1, - 'dat': ' %s' % _('NAS required') + 'dat': ' %s' % _('gateway required') } mngr = abon.nas.get_nas_manager() ping_result = mngr.ping(ip) @@ -1181,7 +1181,7 @@ class EditSibscriberMarkers(AbonappPermissionMixin, UpdateView): def user_session_free(request, gid: int, uname): abon = get_object_or_404(models.Abon, username=uname) if abon.nas is None: - messages.error(request, _('NAS required')) + messages.error(request, _('gateway required')) return redirect('abonapp:abon_home', gid, uname) if abon.ip_address: abon.free_ip_addr() diff --git a/clientsideapp/views.py b/clientsideapp/views.py index 367e53b..0a5c166 100644 --- a/clientsideapp/views.py +++ b/clientsideapp/views.py @@ -9,7 +9,7 @@ from djing.lib.decorators import json_view from tariff_app.models import Tariff from taskapp.models import Task from djing.lib import LogicError -from nas_app.nas_managers import NasFailedResult, NasNetworkError +from gw_app.nas_managers import NasFailedResult, NasNetworkError @login_required diff --git a/djing/settings.py b/djing/settings.py index bc045b2..bd79b72 100644 --- a/djing/settings.py +++ b/djing/settings.py @@ -43,7 +43,7 @@ INSTALLED_APPS = [ 'django.contrib.staticfiles', 'ip_pool', 'accounts_app', - 'nas_app', + 'gw_app', 'abonapp', 'tariff_app', 'searchapp', diff --git a/djing/urls.py b/djing/urls.py index 2c18a6e..d24bd1a 100644 --- a/djing/urls.py +++ b/djing/urls.py @@ -18,7 +18,7 @@ urlpatterns = [ path('dialing/', include('dialing_app.urls', namespace='dialapp')), path('groups/', include('group_app.urls', namespace='group_app')), path('ip_pool/', include('ip_pool.urls', namespace='ip_pool')), - path('nas/', include('nas_app.urls', namespace='nas_app')) + path('gw/', include('gw_app.urls', namespace='gw_app')) # Switch language #path(r'i18n/', include('django.conf.urls.i18n')), diff --git a/docs/dev.md b/docs/dev.md index d338d59..5d427d8 100644 --- a/docs/dev.md +++ b/docs/dev.md @@ -150,7 +150,7 @@ def terminal_pay(request): Сейчас биллинг работает с Mikrotik в роли устройства для доступа абонентов в интернет. Как можно реализовать такой-же для вашего роутера, например на GNU/Linux. -Создадим файл *nas_app/nas_managers/mod_linux.py* и реализуем потомка для интерфейса *BaseTransmitter*. +Создадим файл *gw_app/nas_managers/mod_linux.py* и реализуем потомка для интерфейса *BaseTransmitter*. Методы вашего класса будут вызываться биллингом для взаимодействия с сервером доступа абонентов в интернет(NAS). ```python @@ -229,7 +229,7 @@ class LinuxTransmitter(BaseTransmitter): """ ``` -Для того чтоб биллинг знал о вашем классе надо указать его в *nas_app/nas_managers/\_\_init\_\_.py*. +Для того чтоб биллинг знал о вашем классе надо указать его в *gw_app/nas_managers/\_\_init\_\_.py*. Замените >from .mod_mikrotik import MikrotikTransmitter @@ -249,7 +249,7 @@ from .structs import TariffStruct, AbonStruct Transmitter = LinuxTransmitter ``` -Для примера, как вы наверное уже догадались, можно посмотреть реализацию для Mikrotik в файле *nas_app/nas_managers/mod_mikrotik.py* +Для примера, как вы наверное уже догадались, можно посмотреть реализацию для Mikrotik в файле *gw_app/nas_managers/mod_mikrotik.py* Чтобы выводить в биллинге различные сообщения об ошибках есть 2 типа исключений: *NasFailedResult* и *NasNetworkError*. NasNetworkError, как понятно из названия, вызывается при проблемах в сети. А NasFailedResult при ошибочных кодах возврата из модуля на сервере NAS. diff --git a/gw_app/__init__.py b/gw_app/__init__.py new file mode 100644 index 0000000..977b4d3 --- /dev/null +++ b/gw_app/__init__.py @@ -0,0 +1 @@ +default_app_config = 'gw_app.apps.GatewaysAppConfig' diff --git a/nas_app/admin.py b/gw_app/admin.py similarity index 100% rename from nas_app/admin.py rename to gw_app/admin.py diff --git a/gw_app/apps.py b/gw_app/apps.py new file mode 100644 index 0000000..067ec50 --- /dev/null +++ b/gw_app/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class GatewaysAppConfig(AppConfig): + name = 'gw_app' diff --git a/nas_app/forms.py b/gw_app/forms.py similarity index 96% rename from nas_app/forms.py rename to gw_app/forms.py index 7ece187..9c67ec1 100644 --- a/nas_app/forms.py +++ b/gw_app/forms.py @@ -1,7 +1,7 @@ from django import forms from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ -from nas_app.models import NASModel +from gw_app.models import NASModel from djing import IP_ADDR_REGEX diff --git a/nas_app/locale/ru/LC_MESSAGES/django.po b/gw_app/locale/ru/LC_MESSAGES/django.po similarity index 62% rename from nas_app/locale/ru/LC_MESSAGES/django.po rename to gw_app/locale/ru/LC_MESSAGES/django.po index f53755f..f6f3689 100644 --- a/nas_app/locale/ru/LC_MESSAGES/django.po +++ b/gw_app/locale/ru/LC_MESSAGES/django.po @@ -1,18 +1,15 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Dmitry Novikov nerosketch@gmail.com, 2018. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-18 13:53+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" +"POT-Creation-Date: 2018-10-29 11:52+0300\n" +"Last-Translator: Dmitry Novikov nerosketch@gmail.com\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -20,27 +17,35 @@ 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:16 tests.py:119 +#: forms.py:19 msgid "Can be only one default gateway" msgstr "Может быть только один сервер доступа по умолчанию" -#: models.py:12 templates/nas_app/nasmodel_list.html:25 +#: models.py:12 templates/gw_app/nasmodel_list.html:25 msgid "Title" msgstr "Название" -#: models.py:13 templates/nas_app/nasmodel_list.html:26 +#: models.py:13 templates/gw_app/nasmodel_list.html:26 msgid "Ip address" msgstr "IP адрес" -#: models.py:14 templates/nas_app/nasmodel_list.html:27 +#: models.py:14 templates/gw_app/nasmodel_list.html:27 msgid "Port" msgstr "Порт" +#: models.py:15 templates/gw_app/nasmodel_list.html:28 +msgid "Auth login" +msgstr "Логин для входа" + +#: models.py:16 templates/gw_app/nasmodel_list.html:29 +msgid "Auth password" +msgstr "Пароль для входа" + #: models.py:17 msgid "Type" msgstr "Тип" -#: models.py:18 templates/nas_app/nasmodel_list.html:31 +#: models.py:18 templates/gw_app/nasmodel_list.html:31 msgid "Is default" msgstr "По умолчанию" @@ -48,49 +53,45 @@ msgstr "По умолчанию" msgid "One of nas types implementation is not found" msgstr "Не найден тип реализации NAS" -#: models.py:49 +#: models.py:48 msgid "Network access server. Gateway" msgstr "Сервер доступа в интернет(NAS, Шлюз)" -#: models.py:50 +#: models.py:49 msgid "Network access servers. Gateways" msgstr "Серверы доступа в интернет" -#: models.py:63 tests.py:194 +#: models.py:59 msgid "You cannot remove default server" msgstr "Вы не можете удалить шлюз по умолчанию" -#: nas_managers/mod_mikrotik.py:166 +#: nas_managers/mod_mikrotik.py:171 msgid "Mikrotik NAS" msgstr "" -#: nas_managers/mod_mikrotik.py:491 -msgid "You cannot disable last session" -msgstr "Вы не можете выключить последнюю сессию" - -#: templates/nas_app/nasmodel_add.html:8 templates/nas_app/nasmodel_list.html:7 -#: templates/nas_app/nasmodel_update.html:8 +#: templates/gw_app/nasmodel_add.html:7 templates/gw_app/nasmodel_list.html:7 +#: templates/gw_app/nasmodel_update.html:7 msgid "Network access servers" msgstr "Серверы доступа в интернет(NAS)" -#: templates/nas_app/nasmodel_add.html:9 templates/nas_app/nasmodel_add.html:20 +#: templates/gw_app/nasmodel_add.html:8 templates/gw_app/nasmodel_add.html:19 msgid "Add gateway" msgstr "Добавить шлюз" -#: templates/nas_app/nasmodel_add.html:14 +#: templates/gw_app/nasmodel_add.html:13 msgid "Add new gateway" msgstr "Добавить новый шлюз" -#: templates/nas_app/nasmodel_add.html:26 -#: templates/nas_app/nasmodel_update.html:27 +#: templates/gw_app/nasmodel_add.html:25 +#: templates/gw_app/nasmodel_update.html:26 msgid "Save" msgstr "Сохранить" -#: templates/nas_app/nasmodel_confirm_delete.html:9 +#: templates/gw_app/nasmodel_confirm_delete.html:9 msgid "Remove NAS" msgstr "Удалить NAS" -#: templates/nas_app/nasmodel_confirm_delete.html:14 +#: templates/gw_app/nasmodel_confirm_delete.html:14 msgid "" "If you remove this server, then all users than has been attached to them " "will lost parent NAS server." @@ -98,73 +99,61 @@ msgstr "" "Если вы удалите этот сервер, тогда все пользователи которые его используют " "потеряют интернет от этого сервера" -#: templates/nas_app/nasmodel_list.html:12 +#: templates/gw_app/nasmodel_list.html:12 msgid "Gateways" msgstr "Шлюзы" -#: templates/nas_app/nasmodel_list.html:28 -msgid "Auth login" -msgstr "Логин для входа" - -#: templates/nas_app/nasmodel_list.html:29 -msgid "Auth password" -msgstr "Пароль для входа" - -#: templates/nas_app/nasmodel_list.html:30 +#: templates/gw_app/nasmodel_list.html:30 msgid "NAS type" msgstr "Тип NAS" -#: templates/nas_app/nasmodel_list.html:41 +#: templates/gw_app/nasmodel_list.html:41 msgid "View" msgstr "Посмотреть" -#: templates/nas_app/nasmodel_list.html:49 +#: templates/gw_app/nasmodel_list.html:49 msgid "You don't have gateways" msgstr "У вас нет шлюзов" -#: templates/nas_app/nasmodel_list.html:55 +#: templates/gw_app/nasmodel_list.html:55 msgid "Add" msgstr "Добавить" -#: templates/nas_app/nasmodel_update.html:9 +#: templates/gw_app/nasmodel_update.html:8 msgid "Edit gateway" msgstr "Редактировать шлюз" -#: templates/nas_app/nasmodel_update.html:14 +#: templates/gw_app/nasmodel_update.html:13 msgid "Change gateways" msgstr "Изменить шлюзы" -#: templates/nas_app/nasmodel_update.html:20 +#: templates/gw_app/nasmodel_update.html:19 msgid "Change gateway" msgstr "Изменить шлюз" -#: templates/nas_app/nasmodel_update.html:31 -#: templates/nas_app/nasmodel_update.html:35 +#: templates/gw_app/nasmodel_update.html:30 +#: templates/gw_app/nasmodel_update.html:34 msgid "Delete" msgstr "Удалить" -#: templates/nas_app/nasmodel_update.html:34 +#: templates/gw_app/nasmodel_update.html:33 msgid "Permission denied" msgstr "Не достаточно прав" -#: tests.py:72 views.py:33 +#: views.py:44 msgid "New NAS has been created" msgstr "Новый NAS добавлен" -#: tests.py:86 -#, python-format +#: views.py:63 +msgid "Server successfully removed" +msgstr "Информация о сервере успешно удалена" + +#: views.py:81 +msgid "Update successfully" +msgstr "Обновлено успешно" + msgid "Ensure this value is less than or equal to %(limit_value)s." msgstr "Убедитесь что значение меньше или равно %(limit_value)s." -#: tests.py:104 tests.py:131 -#, python-format msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s с таким %(field_label)s уже существует." - -#: tests.py:154 views.py:65 -msgid "Update successfully" -msgstr "Обновлено успешно" - -#: tests.py:182 views.py:47 -msgid "Server successfully removed" -msgstr "Информация о сервере успешно удалена" diff --git a/nas_app/migrations/0001_initial.py b/gw_app/migrations/0001_initial.py similarity index 100% rename from nas_app/migrations/0001_initial.py rename to gw_app/migrations/0001_initial.py diff --git a/nas_app/__init__.py b/gw_app/migrations/__init__.py similarity index 100% rename from nas_app/__init__.py rename to gw_app/migrations/__init__.py diff --git a/nas_app/models.py b/gw_app/models.py similarity index 95% rename from nas_app/models.py rename to gw_app/models.py index 4512695..78793d3 100644 --- a/nas_app/models.py +++ b/gw_app/models.py @@ -5,7 +5,7 @@ from django.shortcuts import resolve_url from django.utils.translation import gettext_lazy as _ from django.db import models from djing.lib import MyChoicesAdapter -from nas_app.nas_managers import NAS_TYPES +from gw_app.nas_managers import NAS_TYPES class NASModel(models.Model): @@ -38,7 +38,7 @@ class NASModel(models.Model): return o def get_absolute_url(self): - return resolve_url('nas_app:edit', self.pk) + return resolve_url('gw_app:edit', self.pk) def __str__(self): return self.title diff --git a/gw_app/nas_managers/__init__.py b/gw_app/nas_managers/__init__.py new file mode 100644 index 0000000..3fe5d7f --- /dev/null +++ b/gw_app/nas_managers/__init__.py @@ -0,0 +1,9 @@ +from gw_app.nas_managers.mod_mikrotik import MikrotikTransmitter +from gw_app.nas_managers.core import NasNetworkError, NasFailedResult +from gw_app.nas_managers.structs import SubnetQueue + +# Указываем какие реализации шлюзов у нас есть, это будет использоваться в +# web интерфейсе +NAS_TYPES = ( + ('mktk', MikrotikTransmitter), +) diff --git a/nas_app/nas_managers/core.py b/gw_app/nas_managers/core.py similarity index 91% rename from nas_app/nas_managers/core.py rename to gw_app/nas_managers/core.py index 7563447..d50e9d2 100644 --- a/nas_app/nas_managers/core.py +++ b/gw_app/nas_managers/core.py @@ -1,20 +1,20 @@ from abc import ABC, abstractmethod, abstractproperty from typing import Iterator, Tuple, Optional from djing import ping -from nas_app.nas_managers.structs import SubnetQueue, VectorQueue +from gw_app.nas_managers.structs import SubnetQueue, VectorQueue -# Raised if NAS has returned failed result +# Raised if gw has returned failed result class NasFailedResult(Exception): pass -# Raised when is no connection to the NAS +# Raised when is no connection to the gw class NasNetworkError(Exception): pass -# Communicate with NAS +# Communicate with gw class BaseTransmitter(ABC): @abstractproperty def description(self): @@ -34,7 +34,7 @@ class BaseTransmitter(ABC): @abstractmethod def add_user_range(self, queue_list: VectorQueue): - """add subscribers list to NAS + """add subscribers list to gateway :param queue_list: Vector of instances of subscribers """ diff --git a/nas_app/nas_managers/mod_mikrotik.py b/gw_app/nas_managers/mod_mikrotik.py similarity index 99% rename from nas_app/nas_managers/mod_mikrotik.py rename to gw_app/nas_managers/mod_mikrotik.py index b761863..30e13a0 100644 --- a/nas_app/nas_managers/mod_mikrotik.py +++ b/gw_app/nas_managers/mod_mikrotik.py @@ -9,8 +9,8 @@ from typing import Iterable, Optional, Tuple, Generator, Dict, Iterator from django.conf import settings from django.utils.translation import ugettext_lazy as _ from djing.lib.decorators import LazyInitMetaclass -from nas_app.nas_managers import core -from nas_app.nas_managers import structs as i_structs +from gw_app.nas_managers import core +from gw_app.nas_managers import structs as i_structs DEBUG = getattr(settings, 'DEBUG', False) diff --git a/nas_app/nas_managers/structs.py b/gw_app/nas_managers/structs.py similarity index 100% rename from nas_app/nas_managers/structs.py rename to gw_app/nas_managers/structs.py diff --git a/nas_app/templates/nas_app/nasmodel_add.html b/gw_app/templates/gw_app/nasmodel_add.html similarity index 82% rename from nas_app/templates/nas_app/nasmodel_add.html rename to gw_app/templates/gw_app/nasmodel_add.html index 3a72f37..08396d1 100644 --- a/nas_app/templates/nas_app/nasmodel_add.html +++ b/gw_app/templates/gw_app/nasmodel_add.html @@ -4,7 +4,7 @@ {% block breadcrumb %} {% endblock %} @@ -19,7 +19,7 @@

{% trans 'Add gateway' %}

-
{% csrf_token %} + {% csrf_token %} {% bootstrap_form form %}