diff --git a/abonapp/locale/ru/LC_MESSAGES/django.po b/abonapp/locale/ru/LC_MESSAGES/django.po
index 577483b..fe6cb94 100644
--- a/abonapp/locale/ru/LC_MESSAGES/django.po
+++ b/abonapp/locale/ru/LC_MESSAGES/django.po
@@ -783,3 +783,12 @@ msgstr "Динамические поля сохранены"
msgid "One or more extra fields has not been saved"
msgstr "Поле или одно из полей не найдено"
+
+msgid "ok ping, %d/%d loses"
+msgstr "пингуется, потери:%d/%d"
+
+msgid "no ping"
+msgstr "не пингуется"
+
+msgid "ping ok"
+msgstr "пингуется"
diff --git a/abonapp/views.py b/abonapp/views.py
index 1548ca1..ebda7d5 100644
--- a/abonapp/views.py
+++ b/abonapp/views.py
@@ -826,14 +826,35 @@ def extra_field_delete(request, gid, uid, fid):
@login_required
-def abon_ping(request, uid):
+def abon_ping(request):
ip = request.GET.get('cmd_param')
- if mydefs.ping(ip, 10):
+ status = False
+ text = _('no ping')
+ try:
+ tm = Transmitter()
+ r = tm.ping(ip)
+ if r is None:
+ if mydefs.ping(ip, 10):
+ status = True
+ text = _('ping ok')
+ else:
+ if type(r) is tuple:
+ text = _('ok ping, %d/%d loses') % r
+ else:
+ text = _('ping ok') + ' ' + str(r)
+ status = True
+
+ except NasFailedResult as e:
+ messages.error(request, e)
+ except NasNetworkError as e:
+ messages.warning(request, e)
+
+ if status:
status = 0
- res = ' Ok Ping'
+ res = ' %s' % text
else:
status = 1
- res = ' No Ping'
+ res = ' %s' % text
return HttpResponse(dumps({
'status': status,