diff --git a/abonapp/locale/ru/LC_MESSAGES/django.po b/abonapp/locale/ru/LC_MESSAGES/django.po
index 4a46d07..2d77f35 100644
--- a/abonapp/locale/ru/LC_MESSAGES/django.po
+++ b/abonapp/locale/ru/LC_MESSAGES/django.po
@@ -195,8 +195,8 @@ msgid "Service already activated"
msgstr "Услуга уже подключена"
#: models.py:174
-msgid "not enough money"
-msgstr "Не хватает денег на счету"
+msgid "%s not enough money for service %s"
+msgstr "%s не имеет достаточно средств для %s"
#: models.py:190
msgid "Buy service default log"
@@ -939,8 +939,8 @@ msgstr "Квитанция на оплату была создана"
#: views.py:419
#, python-format
-msgid "Service '%(service_name)s' has connected via admin"
-msgstr "Услуга '%(service_name)s' подключена администратором"
+msgid "Service '%(service_name)s' has connected via admin until %(deadline)s"
+msgstr "Услуга '%(service_name)s' подключена администратором до %(deadline)s"
#: views.py:429
msgid "Tariff has been picked"
diff --git a/abonapp/models.py b/abonapp/models.py
index 3923dc6..3f58cd8 100644
--- a/abonapp/models.py
+++ b/abonapp/models.py
@@ -240,7 +240,9 @@ class Abon(BaseAccount):
# if not enough money
if self.ballance < amount:
- raise LogicError(_('not enough money'))
+ raise LogicError(_('%s not enough money for service %s') % (
+ self.username, tariff.title
+ ))
with transaction.atomic():
new_abtar = AbonTariff.objects.create(
diff --git a/abonapp/templates/abonapp/service.html b/abonapp/templates/abonapp/service.html
index 1a3bc6d..dd1326c 100644
--- a/abonapp/templates/abonapp/service.html
+++ b/abonapp/templates/abonapp/service.html
@@ -23,10 +23,18 @@
{% with can_ch_trf=perms.tariff_app.change_tariff %}
{% for service in services %}
- |
-
- |
+
+ {% if abon_tariff %}
+
+
+
+ {% else %}
+
+
+
+ {% endif %}
+ |
{% if can_ch_trf %}
{{ service.title }}
diff --git a/devapp/dev_types.py b/devapp/dev_types.py
index c57dfde..e4daec4 100644
--- a/devapp/dev_types.py
+++ b/devapp/dev_types.py
@@ -428,15 +428,20 @@ class ZteOnuDevice(OnuDevice):
try:
fiber_num, onu_num = snmp_extra.split('.')
fiber_num, onu_num = int(fiber_num), int(onu_num)
- status = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.1.%d.%d.1' % (fiber_num, onu_num))
- signal = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.10.%d.%d.1' % (fiber_num, onu_num))
- distance = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.18.%d.%d.1' % (fiber_num, onu_num))
- name = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.11.2.1.1.%d.%d' % (fiber_num, onu_num))
+ fiber_addr = '%d.%d' % (fiber_num, onu_num)
+ status = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.1.%s.1' % fiber_addr)
+ signal = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.10.%s.1' % fiber_addr)
+ distance = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.18.%s.1' % fiber_addr)
+ name = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.11.2.1.1.%s' % fiber_addr)
+ ip_addr = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.16.1.1.10.%s' % fiber_addr)
+ vlans = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.15.100.1.1.7.%s.1.1' % fiber_addr)
return {
'status': status,
'signal': conv_signal(safe_int(signal)),
'name': name,
- 'distance': int(distance) / 10 if distance != 'NOSUCHINSTANCE' else 0
+ 'distance': int(distance) / 10 if distance != 'NOSUCHINSTANCE' else 0,
+ 'ip_addr': ip_addr if ip_addr != 'NOSUCHINSTANCE' and ip_addr else None,
+ 'vlans': vlans if vlans != 'NOSUCHINSTANCE' else None
}
except ValueError:
pass
@@ -514,3 +519,18 @@ class ZteOnuDevice(OnuDevice):
snmp_fiber_num = int(bin_snmp_fiber_number, base=2)
device.snmp_extra = "%d.%d" % (snmp_fiber_num, new_onu_port_num)
device.save(update_fields=('snmp_extra',))
+
+ def get_fiber_str(self):
+ dev = self.db_instance
+ if not dev:
+ return
+ dat = dev.snmp_extra
+ if dat and '.' in dat:
+ snmp_fiber_num, onu_port_num = dat.split('.')
+ snmp_fiber_num = int(snmp_fiber_num)
+ bin_snmp_fiber_num = bin(snmp_fiber_num)[2:]
+ rack_num = int(bin_snmp_fiber_num[5:13], 2)
+ fiber_num = int(bin_snmp_fiber_num[13:21], 2)
+ return 'gpon-onu_1/%d/%d:%s' % (
+ rack_num, fiber_num, onu_port_num
+ )
diff --git a/devapp/locale/ru/LC_MESSAGES/django.po b/devapp/locale/ru/LC_MESSAGES/django.po
index 6ab7c45..8719acf 100644
--- a/devapp/locale/ru/LC_MESSAGES/django.po
+++ b/devapp/locale/ru/LC_MESSAGES/django.po
@@ -639,6 +639,9 @@ msgstr "Процесс занят другой задачей, подождит
msgid "You have not info in extra_data field, please fill it in JSON"
msgstr "Не заполнено поле 'Техническая информация', обратитесь к администратору"
+msgid "Fiber"
+msgstr "Интерфейс"
+
#~ msgid "Device %(device_name)s is up"
#~ msgstr "%(device_name)s в сети"
diff --git a/devapp/templates/devapp/custom_dev_page/onu_for_zte.html b/devapp/templates/devapp/custom_dev_page/onu_for_zte.html
index 49317c6..fa01ee6 100644
--- a/devapp/templates/devapp/custom_dev_page/onu_for_zte.html
+++ b/devapp/templates/devapp/custom_dev_page/onu_for_zte.html
@@ -18,6 +18,7 @@
{% trans 'Ip address' %}: {{ dev.ip_address|default:'-' }}
{% trans 'Mac' %}: {{ dev.mac_addr }}
{% trans 'Description' %}: {{ dev.comment }}
+ {% trans 'Fiber' %}: {{ dev_manager.get_fiber_str }}
{% for da in dev_accs %}
{% trans 'Attached user' %}:
{% if da.group %}
@@ -75,6 +76,12 @@
{% trans 'Name on OLT' %}: {{ onu_details.name }}
{% trans 'Distance(m)' %}: {{ onu_details.distance }}
{% trans 'Signal' %}: {{ onu_details.signal }}
+ {% if onu_details.ip_addr %}
+ {% trans 'Ip addr' %}: {{ onu_details.ip_addr }}
+ {% endif %}
+ {% if onu_details.vlans %}
+ {% trans 'VLan list' %}: {{ onu_details.vlans }}
+ {% endif %}
diff --git a/periodic.py b/periodic.py
index c5df4f8..36d2705 100755
--- a/periodic.py
+++ b/periodic.py
@@ -38,7 +38,7 @@ def main():
signals.pre_delete.disconnect(abontariff_pre_delete, sender=AbonTariff)
AbonTariff.objects.filter(abon=None).delete()
now = timezone.now()
- fields = ('id', 'tariff__title', 'abon__id')
+ fields = ('id', 'tariff__title', 'abon__id', 'abon__username')
expired_services = AbonTariff.objects.exclude(abon=None).filter(
deadline__lt=now,
abon__autoconnect_service=False
@@ -52,8 +52,9 @@ def main():
amount=0,
author=None,
date=now,
- comment="Срок действия услуги '%(service_name)s' истёк" % {
- 'service_name': ex_srv['tariff__title']
+ comment="Срок действия услуги '%(service_name)s' для '%(username)s' истёк" % {
+ 'service_name': ex_srv['tariff__title'],
+ 'username': ex_srv['abon__username']
}
)
print(log)
|