| # |
@@ -56,7 +56,7 @@
{{ dev.ip_address }} |
{{ dev.comment }} |
{{ dev.mac_addr|default:_('Not assigned') }} |
- {{ dev.mon.plugin_output|default:'–' }} |
+ {{ dev.mon.plugin_output|default:'–' }} |
{{ dev.get_devtype_display }} |
{% if can_del_dev %}
diff --git a/devapp/urls.py b/devapp/urls.py
index 8b31ece..d4647ef 100644
--- a/devapp/urls.py
+++ b/devapp/urls.py
@@ -6,6 +6,7 @@ from . import views
urlpatterns = [
url(r'^$', views.group_list, name='group_list'),
url(r'^devices_without_groups$', views.devices_null_group, name='devices_null_group'),
+ url(r'^fix_onu/$', views.fix_onu, name='fix_onu'),
url(r'^(?P\d+)$', views.devices, name='devs'),
url(r'^(?P\d+)/add$', views.dev, name='add'),
url(r'^(\d+)/(?P\d+)$', views.devview, name='view'),
diff --git a/devapp/views.py b/devapp/views.py
index 81cc10a..90ce85b 100644
--- a/devapp/views.py
+++ b/devapp/views.py
@@ -93,6 +93,7 @@ def dev(request, grp, devid=0):
frm = DeviceForm(request.POST, instance=devinst)
if frm.is_valid():
ndev = frm.save()
+ ndev.update_dhcp()
messages.success(request, _('Device info has been saved'))
return redirect('devapp:edit', ndev.user_group.pk, ndev.pk)
else:
@@ -415,3 +416,33 @@ def fix_device_group(request, did):
'dev': dev,
'selected_parent_dev': dev.parent_dev
})
+
+
+@login_required
+def fix_onu(request):
+ mac = request.GET.get('cmd_param')
+ status = 1
+ text = ''
+ try:
+ onu = Device.objects.get(mac_addr=mac, devtype='On')
+ parent = onu.parent_dev
+ if parent is not None:
+ manobj = parent.get_manager_object()
+ ports = manobj.get_list_keyval('.1.3.6.1.4.1.3320.101.10.1.1.3')
+ for srcmac, snmpnum in ports:
+ real_mac = ':'.join(['%x' % ord(i) for i in srcmac])
+ if mac == real_mac:
+ onu.snmp_item_num = snmpnum
+ onu.save(update_fields=['snmp_item_num'])
+ status = 0
+ text = ' %s' % _('Fixed')
+ break
+ else:
+ text = text + ' %s' % _('Parent device not found')
+ except Device.DoesNotExist:
+ pass
+ return HttpResponse(dumps({
+ 'status': status,
+ 'dat': text
+ }))
+
diff --git a/dialing_app/models.py b/dialing_app/models.py
index e448e91..307cd8c 100644
--- a/dialing_app/models.py
+++ b/dialing_app/models.py
@@ -59,5 +59,8 @@ class AsteriskCDR(models.Model):
return "%s/recording/bug" % path
return "%s/monitor" % path
+ def url(self):
+ return "%s/%s-%s-%s.wav" % ( self.path_to_media(), self.calldate.strftime('%Y/%m/%d/%H_%M'), self.src, self.dst )
+
class Meta:
db_table = 'cdr'
diff --git a/dialing_app/templates/index.html b/dialing_app/templates/index.html
index 68fadb2..d8a9a92 100644
--- a/dialing_app/templates/index.html
+++ b/dialing_app/templates/index.html
@@ -20,13 +20,14 @@
|