web_kbn upd

This commit is contained in:
Evgeny Sorokin 2024-06-25 22:43:09 +03:00
parent d816689f7d
commit 275d138436
3 changed files with 23 additions and 7 deletions

View File

@ -282,7 +282,8 @@ async def index(req: web.Request):
async def modems(req: web.Request):
return await render(req, 'modems',
title=lang('modem_statuses'),
context=dict(modems=ModemsConfig()))
context=dict(modems=ModemsConfig(),
modems_js_list=[key for key, value in ModemsConfig().items() if value['type'] == 'e3372']))
@routes.get('/modems_info.ajx')
@ -293,6 +294,9 @@ async def modems_ajx(req: web.Request):
raise ValueError('invalid modem id')
modem_cfg = mc.get(modem)
if modem_cfg['type'] != 'e3372':
raise ValueError('invalid modem type')
loop = asyncio.get_event_loop()
modem_data = await loop.run_in_executor(None, lambda: get_modem_data(modem_cfg))
@ -311,6 +315,9 @@ async def modems_verbose(req: web.Request):
raise ValueError('invalid modem id')
modem_cfg = ModemsConfig().get(modem)
if modem_cfg['type'] != 'e3372':
raise ValueError('invalid modem type')
loop = asyncio.get_event_loop()
signal, status, traffic, device, dialup_conn = await loop.run_in_executor(None, lambda: get_modem_data(modem_cfg, True))
data = [

View File

@ -1,5 +1,11 @@
from ..config import ConfigUnit, Translation
from typing import Optional
from enum import Enum
class ModemType(Enum):
E3372 = 'e3372'
GPON = 'gpon'
class ModemsConfig(ConfigUnit):
@ -18,7 +24,8 @@ class ModemsConfig(ConfigUnit):
'schema': {
'ip': cls._addr_schema(required=True, only_ip=True),
'gateway_ip': cls._addr_schema(required=False, only_ip=True),
'legacy_auth': {'type': 'boolean', 'required': True}
'legacy_auth': {'type': 'boolean', 'required': True},
'type': {'type': 'string', 'allowed': [t.value for t in ModemType], 'required': True}
}
}

View File

@ -3,14 +3,16 @@
{% block content %}
{{ breadcrumbs([{'text': 'modems'|lang}]) }}
{% for modem in modems %}
<h6 class="text-primary{% if not loop.first %} mt-4{% endif %}">{{ (modem|lang('modems'))['full'] }}</h6>
<div id="modem_data_{{ modem }}">
{% for modem, mdata in modems.items() %}
{% if mdata['type'] == 'e3372' %}
<h6 class="text-primary{% if not loop.first %} mt-4{% endif %}">{{ (modem|lang('modems'))['full'] }}</h6>
<div id="modem_data_{{ modem }}">
{% include "loading.j2" %}
{% endif %}
</div>
{% endfor %}
{% endblock %}
{% block js %}
ModemStatus.init({{ modems.keys()|tojson }});
ModemStatus.init({{ modems_js_list|tojson }});
{% endblock %}