diff --git a/abonapp/locale/ru/LC_MESSAGES/django.po b/abonapp/locale/ru/LC_MESSAGES/django.po index 12832bc..5be7d30 100644 --- a/abonapp/locale/ru/LC_MESSAGES/django.po +++ b/abonapp/locale/ru/LC_MESSAGES/django.po @@ -869,3 +869,36 @@ msgstr "Графики по датам" msgid "Graph of use" msgstr "График использования" + +msgid "Play" +msgstr "Слушать" + +msgid "calldate" +msgstr "дата звонка" + +msgid "src" +msgstr "кто" + +msgid "dst" +msgstr "куда" + +msgid "duration" +msgstr "продолжительность" + +msgid "start" +msgstr "начало" + +msgid "answer" +msgstr "ответ" + +msgid "end" +msgstr "конец" + +msgid "disposition" +msgstr "состояние" + +msgid "Calls was not found" +msgstr "Звонки не найдены" + +msgid "Dialing" +msgstr "Звонки" diff --git a/abonapp/templates/abonapp/dial_log.html b/abonapp/templates/abonapp/dial_log.html new file mode 100644 index 0000000..695ab3a --- /dev/null +++ b/abonapp/templates/abonapp/dial_log.html @@ -0,0 +1,47 @@ +{% extends request.is_ajax|yesno:'nullcont.htm,abonapp/ext.htm' %} +{% load i18n %} +{% block content %} + + + + + + + + + + + + + + + + + {% for log in logs %} + + + + + + + + + + + + {% empty %} + + + + {% endfor %} + + +
{% trans 'Play' %}{% trans 'calldate' %}{% trans 'src' %}{% trans 'dst' %}{% trans 'duration' %}{% trans 'start' %}{% trans 'answer' %}{% trans 'end' %}{% trans 'disposition' %}
+ + {{ log.calldate|date:'d E Y, H:i:s' }}{{ log.src }}{{ log.dst }}{{ log.duration }}{{ log.start|date:'d E Y, H:i:s' }}{{ log.answer|date:'d E Y, H:i:s' }}{{ log.end|date:'d E Y, H:i:s' }}{{ log.locate_disposition }}
{% trans 'Calls was not found' %}
+ + {% include 'toolbar_page.html' with pag=logs %} + +{% endblock %} diff --git a/abonapp/templates/abonapp/ext.htm b/abonapp/templates/abonapp/ext.htm index 2aaff6f..4d0ca3f 100644 --- a/abonapp/templates/abonapp/ext.htm +++ b/abonapp/templates/abonapp/ext.htm @@ -53,6 +53,11 @@ {% trans 'Charts' %} + {% url 'abonapp:dials' abon_group.pk abon.pk as abdials %} + + {% trans 'Dialing' %} + +
diff --git a/abonapp/urls_abon.py b/abonapp/urls_abon.py index b93c5d3..1de99da 100644 --- a/abonapp/urls_abon.py +++ b/abonapp/urls_abon.py @@ -21,6 +21,7 @@ urlpatterns = [ url(r'^(?P\d+)/activate_service(?P\d+)$', views.activate_service, name='activate_service'), url(r'^(?P\d+)/opt82$', views.opt82, name='opt82'), url(r'^(?P\d+)/chart$', views.charts, name='charts'), + url(r'^(?P\d+)/dials$', views.dials, name='dials'), url(r'^(?P\d+)/extra_field$', views.make_extra_field, name='extra_field'), url(r'^(?P\d+)/extra_field/(?P\d+)/delete$', views.extra_field_delete, name='extra_field_delete'), url(r'^(?P\d+)/extra_field/edit$', views.extra_field_change, name='extra_field_edit'), diff --git a/abonapp/views.py b/abonapp/views.py index 43c3605..db135c9 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -3,7 +3,7 @@ from json import dumps from django.contrib.gis.shortcuts import render_to_text from django.core.exceptions import PermissionDenied from django.db import IntegrityError, ProgrammingError -from django.db.models import Count +from django.db.models import Count, Q from django.shortcuts import render, redirect, get_object_or_404, resolve_url from django.contrib.auth.decorators import login_required, permission_required from django.utils import timezone @@ -20,6 +20,7 @@ import mydefs from devapp.models import Device from datetime import datetime, date from taskapp.models import Task +from dialing_app.models import AsteriskCDR @login_required @@ -736,7 +737,7 @@ def charts(request, gid, uid): else: charts_data = StatElem.objects.chart( abon.ip_address, - count_of_parts=24, + count_of_parts=30, want_date=wandate ) @@ -860,6 +861,28 @@ def abon_ping(request): })) +@login_required +@mydefs.only_admins +def dials(request, gid, uid): + abon = get_object_or_404(models.Abon, pk=uid) + if hasattr(abon.group, 'pk') and abon.group.pk != int(gid): + print(gid, type(gid), abon.group.pk, type(abon.group.pk)) + return redirect('abonapp:dials', abon.group.pk, abon.pk) + if abon.telephone is not None and abon.telephone != '': + tel = abon.telephone.replace('+', '') + logs = AsteriskCDR.objects.filter( + Q(src__contains=tel) | Q(dst__contains=tel) + ) + logs = mydefs.pag_mn(request, logs) + else: + logs = None + return render(request, 'abonapp/dial_log.html', { + 'logs': logs, + 'abon_group': get_object_or_404(models.AbonGroup, pk=gid), + 'abon': abon + }) + + # API's def abons(request):