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,