Browse Source

Merge branch 'master' of pbx.tiko82.ru:~/djing

devel
Dmitry Novikov 5 years ago
parent
commit
2fac21d454
  1. 1
      accounts_app/forms.py
  2. 4
      devapp/dev_types.py
  3. 4
      devapp/templates/devapp/custom_dev_page/onu.html
  4. 4
      devapp/templates/devapp/custom_dev_page/onu_for_zte.html
  5. 2
      devapp/views.py
  6. 1
      djing/settings.py
  7. 31
      requirements.txt
  8. 15
      tariff_app/custom_tariffs.py

1
accounts_app/forms.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
from guardian.forms import UserObjectPermissionsForm from guardian.forms import UserObjectPermissionsForm
from guardian.shortcuts import assign_perm, remove_perm from guardian.shortcuts import assign_perm, remove_perm
from django import forms from django import forms

4
devapp/dev_types.py

@ -268,7 +268,7 @@ class OnuDevice(DevBase, SNMPBaseWorker):
distance = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.27.%d' % num) distance = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.27.%d' % num)
mac = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.3.%d' % num) mac = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.3.%d' % num)
if mac is not None: if mac is not None:
mac = ':'.join('%x' % ord(i) for i in mac)
mac = ':'.join('%x' % i for i in mac)
# uptime = self.get_item('.1.3.6.1.2.1.2.2.1.9.%d' % num) # uptime = self.get_item('.1.3.6.1.2.1.2.2.1.9.%d' % num)
if status is not None and status.isdigit(): if status is not None and status.isdigit():
return { return {
@ -276,7 +276,7 @@ class OnuDevice(DevBase, SNMPBaseWorker):
'signal': signal / 10 if signal else '', 'signal': signal / 10 if signal else '',
'name': self.get_item('.1.3.6.1.2.1.2.2.1.2.%d' % num), 'name': self.get_item('.1.3.6.1.2.1.2.2.1.2.%d' % num),
'mac': mac, 'mac': mac,
'distance': int(distance) / 10 if distance.isdigit() else 0
'distance': distance / 10 if distance else 0
} }
except EasySNMPTimeoutError as e: except EasySNMPTimeoutError as e:
return {'err': "%s: %s" % (_('ONU not connected'), e)} return {'err': "%s: %s" % (_('ONU not connected'), e)}

4
devapp/templates/devapp/custom_dev_page/onu.html

@ -59,9 +59,9 @@
{% else %} {% else %}
<div class="media"> <div class="media">
<div class="media-left font-extra-large"> <div class="media-left font-extra-large">
{% if onu_details.status == '3' %}
{% if onu_details.status == 3 %}
<span class="media-object glyphicon glyphicon-ok-sign text-success"></span> <span class="media-object glyphicon glyphicon-ok-sign text-success"></span>
{% elif onu_details.status == '2' %}
{% elif onu_details.status == 2 %}
<span class="media-object glyphicon glyphicon-remove-sign text-danger"></span> <span class="media-object glyphicon glyphicon-remove-sign text-danger"></span>
{% else %} {% else %}
<span class="media-object glyphicon glyphicon-question-sign"></span> <span class="media-object glyphicon glyphicon-question-sign"></span>

4
devapp/templates/devapp/custom_dev_page/onu_for_zte.html

@ -60,9 +60,9 @@
{% else %} {% else %}
<div class="media"> <div class="media">
<div class="media-left font-extra-large"> <div class="media-left font-extra-large">
{% if onu_details.status == '1' %}
{% if onu_details.status == 1 %}
<span class="media-object glyphicon glyphicon-ok-sign text-success"></span> <span class="media-object glyphicon glyphicon-ok-sign text-success"></span>
{% elif onu_details.status == '2' %}
{% elif onu_details.status == 2 %}
<span class="media-object glyphicon glyphicon-remove-sign text-danger"></span> <span class="media-object glyphicon glyphicon-remove-sign text-danger"></span>
{% else %} {% else %}
<span class="media-object glyphicon glyphicon-question-sign"></span> <span class="media-object glyphicon glyphicon-question-sign"></span>

2
devapp/views.py

@ -681,7 +681,7 @@ def fix_onu(request):
}) })
for srcmac, snmpnum in ports: for srcmac, snmpnum in ports:
# convert bytes mac address to str presentation mac address # convert bytes mac address to str presentation mac address
real_mac = ':'.join('%x' % ord(i) for i in srcmac)
real_mac = ':'.join('%x' % i for i in srcmac)
if mac == real_mac: if mac == real_mac:
onu.snmp_extra = str(snmpnum) onu.snmp_extra = str(snmpnum)
onu.save(update_fields=('snmp_extra',)) onu.save(update_fields=('snmp_extra',))

1
djing/settings.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*
import os import os
try: try:

31
requirements.txt

@ -1,31 +1,30 @@
wheel
urllib3
Django>=2
Pillow
urllib3==1.25.10
Django==2.2
Pillow==7.2.0
# for mac address field # for mac address field
netaddr
netaddr==0.8.0
# for testing required xmltodict # for testing required xmltodict
#xmltodict #xmltodict
dicttoxml
dicttoxml==1.7.4
# db client for Mariadb # db client for Mariadb
mysqlclient mysqlclient
-e git://github.com/nerosketch/easysnmp.git#egg=easysnmp
pid
django-guardian
pinax-theme-bootstrap
django-bootstrap3
git+git://github.com/nerosketch/easysnmp.git#egg=easysnmp
pid==3.0.4
django-guardian==2.3.0
pinax-theme-bootstrap==8.0.1
django-bootstrap3==14.1.0
# django-jsonfield # django-jsonfield
-e git://github.com/dmkoch/django-jsonfield.git#egg=django-jsonfield -e git://github.com/dmkoch/django-jsonfield.git#egg=django-jsonfield
requests
webdavclient
transliterate
django-encrypted-model-fields
requests==2.24.0
webdavclient==1.0.8
transliterate==1.10.2
django-encrypted-model-fields==0.5.8
# django-xmlview for pay system allpay # django-xmlview for pay system allpay
-e git://github.com/nerosketch/django-xmlview.git#egg=django-xmlview -e git://github.com/nerosketch/django-xmlview.git#egg=django-xmlview
@ -43,7 +42,7 @@ django-encrypted-model-fields
-e git://github.com/pexpect/pexpect.git#egg=pexpect -e git://github.com/pexpect/pexpect.git#egg=pexpect
Celery Celery
redis
redis==3.5.3
celery[redis] celery[redis]
docxtpl docxtpl

15
tariff_app/custom_tariffs.py

@ -1,12 +1,11 @@
# -*- coding: utf-8 -*-
from datetime import timedelta, datetime
from datetime import timedelta, datetime, date
from calendar import monthrange
from random import uniform
from django.utils import timezone from django.utils import timezone
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from .base_intr import TariffBase, PeriodicPayCalcBase from .base_intr import TariffBase, PeriodicPayCalcBase
from calendar import monthrange
from random import uniform
class TariffDefault(TariffBase): class TariffDefault(TariffBase):
@ -97,8 +96,10 @@ class PeriodicPayCalcDefault(PeriodicPayCalcBase):
return model_object.amount return model_object.amount
def get_next_time_to_pay(self, model_object, last_time_payment) -> datetime: def get_next_time_to_pay(self, model_object, last_time_payment) -> datetime:
# TODO: решить какой будет расёт периодических платежей
return datetime.now() + timedelta(days=30)
today = date.today()
nw = datetime(today.year, today.month, today.day)
days = monthrange(nw.year, nw.month)[1]
return nw + timedelta(days - nw.day + 1)
class PeriodicPayCalcCustom(PeriodicPayCalcDefault): class PeriodicPayCalcCustom(PeriodicPayCalcDefault):

Loading…
Cancel
Save