Browse Source

Merge branch 'devel' into fin

devel
Dmitry Novikov 7 years ago
parent
commit
8ef66a8855
  1. 8
      abonapp/locale/ru/LC_MESSAGES/django.po
  2. 4
      abonapp/models.py
  3. 14
      abonapp/templates/abonapp/service.html
  4. 30
      devapp/dev_types.py
  5. 3
      devapp/locale/ru/LC_MESSAGES/django.po
  6. 7
      devapp/templates/devapp/custom_dev_page/onu_for_zte.html
  7. 7
      periodic.py

8
abonapp/locale/ru/LC_MESSAGES/django.po

@ -195,8 +195,8 @@ msgid "Service already activated"
msgstr "Услуга уже подключена" msgstr "Услуга уже подключена"
#: models.py:174 #: models.py:174
msgid "not enough money"
msgstr "Не хватает денег на счету"
msgid "%s not enough money for service %s"
msgstr "%s не имеет достаточно средств для %s"
#: models.py:190 #: models.py:190
msgid "Buy service default log" msgid "Buy service default log"
@ -939,8 +939,8 @@ msgstr "Квитанция на оплату была создана"
#: views.py:419 #: views.py:419
#, python-format #, 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 #: views.py:429
msgid "Tariff has been picked" msgid "Tariff has been picked"

4
abonapp/models.py

@ -240,7 +240,9 @@ class Abon(BaseAccount):
# if not enough money # if not enough money
if self.ballance < amount: 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(): with transaction.atomic():
new_abtar = AbonTariff.objects.create( new_abtar = AbonTariff.objects.create(

14
abonapp/templates/abonapp/service.html

@ -23,10 +23,18 @@
{% with can_ch_trf=perms.tariff_app.change_tariff %} {% with can_ch_trf=perms.tariff_app.change_tariff %}
{% for service in services %} {% for service in services %}
<tr> <tr>
<td><a href="{% url 'abonapp:pick_tariff' group.pk abon.username %}?selected_tariff={{ service.pk }}"
class="btn btn-sm btn-default" title="{{ service.get_calc_type_display }}" data-toggle="tooltip"{% if abon_tariff %} disabled{% endif %}>
<td>
{% if abon_tariff %}
<a href="#" class="btn btn-sm btn-default disabled">
<span class="glyphicon glyphicon-shopping-cart"></span>
</a>
{% else %}
<a href="{% url 'abonapp:pick_tariff' group.pk abon.username %}?selected_tariff={{ service.pk }}"
class="btn btn-sm btn-default" title="{{ service.get_calc_type_display }}" data-toggle="tooltip">
<span class="glyphicon glyphicon-shopping-cart"></span> <span class="glyphicon glyphicon-shopping-cart"></span>
</a></td>
</a>
{% endif %}
</td>
<td> <td>
{% if can_ch_trf %} {% if can_ch_trf %}
<a href="{% url 'tarifs:edit' service.pk %}" title="{{ service.descr }}" data-toggle="tooltip"><b>{{ service.title }}</b></a> <a href="{% url 'tarifs:edit' service.pk %}" title="{{ service.descr }}" data-toggle="tooltip"><b>{{ service.title }}</b></a>

30
devapp/dev_types.py

@ -428,15 +428,20 @@ class ZteOnuDevice(OnuDevice):
try: try:
fiber_num, onu_num = snmp_extra.split('.') fiber_num, onu_num = snmp_extra.split('.')
fiber_num, onu_num = int(fiber_num), int(onu_num) 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 { return {
'status': status, 'status': status,
'signal': conv_signal(safe_int(signal)), 'signal': conv_signal(safe_int(signal)),
'name': name, '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: except ValueError:
pass pass
@ -514,3 +519,18 @@ class ZteOnuDevice(OnuDevice):
snmp_fiber_num = int(bin_snmp_fiber_number, base=2) snmp_fiber_num = int(bin_snmp_fiber_number, base=2)
device.snmp_extra = "%d.%d" % (snmp_fiber_num, new_onu_port_num) device.snmp_extra = "%d.%d" % (snmp_fiber_num, new_onu_port_num)
device.save(update_fields=('snmp_extra',)) 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
)

3
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" msgid "You have not info in extra_data field, please fill it in JSON"
msgstr "Не заполнено поле 'Техническая информация', обратитесь к администратору" msgstr "Не заполнено поле 'Техническая информация', обратитесь к администратору"
msgid "Fiber"
msgstr "Интерфейс"
#~ msgid "Device %(device_name)s is up" #~ msgid "Device %(device_name)s is up"
#~ msgstr "%(device_name)s в сети" #~ msgstr "%(device_name)s в сети"

7
devapp/templates/devapp/custom_dev_page/onu_for_zte.html

@ -18,6 +18,7 @@
<li class="list-group-item">{% trans 'Ip address' %}: {{ dev.ip_address|default:'-' }}</li> <li class="list-group-item">{% trans 'Ip address' %}: {{ dev.ip_address|default:'-' }}</li>
<li class="list-group-item">{% trans 'Mac' %}: {{ dev.mac_addr }}</li> <li class="list-group-item">{% trans 'Mac' %}: {{ dev.mac_addr }}</li>
<li class="list-group-item">{% trans 'Description' %}: {{ dev.comment }}</li> <li class="list-group-item">{% trans 'Description' %}: {{ dev.comment }}</li>
<li class="list-group-item">{% trans 'Fiber' %}: {{ dev_manager.get_fiber_str }}</li>
{% for da in dev_accs %} {% for da in dev_accs %}
<li class="list-group-item">{% trans 'Attached user' %}: <li class="list-group-item">{% trans 'Attached user' %}:
{% if da.group %} {% if da.group %}
@ -75,6 +76,12 @@
<b>{% trans 'Name on OLT' %}</b>: {{ onu_details.name }}<br> <b>{% trans 'Name on OLT' %}</b>: {{ onu_details.name }}<br>
<b>{% trans 'Distance(m)' %}</b>: {{ onu_details.distance }}<br> <b>{% trans 'Distance(m)' %}</b>: {{ onu_details.distance }}<br>
<b>{% trans 'Signal' %}</b>: {{ onu_details.signal }}<br> <b>{% trans 'Signal' %}</b>: {{ onu_details.signal }}<br>
{% if onu_details.ip_addr %}
<b>{% trans 'Ip addr' %}</b>: {{ onu_details.ip_addr }}<br>
{% endif %}
{% if onu_details.vlans %}
<b>{% trans 'VLan list' %}</b>: {{ onu_details.vlans }}
{% endif %}
</div> </div>
</div> </div>

7
periodic.py

@ -38,7 +38,7 @@ def main():
signals.pre_delete.disconnect(abontariff_pre_delete, sender=AbonTariff) signals.pre_delete.disconnect(abontariff_pre_delete, sender=AbonTariff)
AbonTariff.objects.filter(abon=None).delete() AbonTariff.objects.filter(abon=None).delete()
now = timezone.now() 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( expired_services = AbonTariff.objects.exclude(abon=None).filter(
deadline__lt=now, deadline__lt=now,
abon__autoconnect_service=False abon__autoconnect_service=False
@ -52,8 +52,9 @@ def main():
amount=0, amount=0,
author=None, author=None,
date=now, 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) print(log)

Loading…
Cancel
Save