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 %}
+
+
+
+
+ | {% trans 'Play' %} |
+ {% trans 'calldate' %} |
+ {% trans 'src' %} |
+ {% trans 'dst' %} |
+ {% trans 'duration' %} |
+ {% trans 'start' %} |
+ {% trans 'answer' %} |
+ {% trans 'end' %} |
+ {% trans 'disposition' %} |
+
+
+
+ {% for log in logs %}
+
+ |
+
+ |
+ {{ 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 }} |
+
+ {% empty %}
+
+ | {% trans 'Calls was not found' %} |
+
+ {% endfor %}
+
+
+
+
+ {% 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):