Browse Source

Добавил лог звонков в кабинет абонента

devel
bashmak 9 years ago
parent
commit
d62b2839fe
  1. 33
      abonapp/locale/ru/LC_MESSAGES/django.po
  2. 47
      abonapp/templates/abonapp/dial_log.html
  3. 5
      abonapp/templates/abonapp/ext.htm
  4. 1
      abonapp/urls_abon.py
  5. 27
      abonapp/views.py

33
abonapp/locale/ru/LC_MESSAGES/django.po

@ -869,3 +869,36 @@ msgstr "Графики по датам"
msgid "Graph of use" msgid "Graph of use"
msgstr "График использования" 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 "Звонки"

47
abonapp/templates/abonapp/dial_log.html

@ -0,0 +1,47 @@
{% extends request.is_ajax|yesno:'nullcont.htm,abonapp/ext.htm' %}
{% load i18n %}
{% block content %}
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>{% trans 'Play' %}</th>
<th>{% trans 'calldate' %}</th>
<th>{% trans 'src' %}</th>
<th>{% trans 'dst' %}</th>
<th>{% trans 'duration' %}</th>
<th>{% trans 'start' %}</th>
<th>{% trans 'answer' %}</th>
<th>{% trans 'end' %}</th>
<th>{% trans 'disposition' %}</th>
</tr>
</thead>
<tbody>
{% for log in logs %}
<tr>
<td>
<audio preload="metadata" controls>
<source src="{{ log.path_to_media }}/{{ log.calldate|date:"YmdHi" }}-{{ log.src }}-{{ log.dst }}.wav" type="audio/wav"/>
</audio>
</td>
<td>{{ log.calldate|date:'d E Y, H:i:s' }}</td>
<td>{{ log.src }}</td>
<td>{{ log.dst }}</td>
<td>{{ log.duration }}</td>
<td>{{ log.start|date:'d E Y, H:i:s' }}</td>
<td>{{ log.answer|date:'d E Y, H:i:s' }}</td>
<td>{{ log.end|date:'d E Y, H:i:s' }}</td>
<td>{{ log.locate_disposition }}</td>
</tr>
{% empty %}
<tr>
<td colspan="9">{% trans 'Calls was not found' %}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% include 'toolbar_page.html' with pag=logs %}
{% endblock %}

5
abonapp/templates/abonapp/ext.htm

@ -53,6 +53,11 @@
<a href="{{ abtasklog }}">{% trans 'Charts' %}</a> <a href="{{ abtasklog }}">{% trans 'Charts' %}</a>
</li> </li>
{% url 'abonapp:dials' abon_group.pk abon.pk as abdials %}
<li{% if abdials == request.path %} class="active"{% endif %}>
<a href="{{ abdials }}">{% trans 'Dialing' %}</a>
</li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">

1
abonapp/urls_abon.py

@ -21,6 +21,7 @@ urlpatterns = [
url(r'^(?P<uid>\d+)/activate_service(?P<srvid>\d+)$', views.activate_service, name='activate_service'), url(r'^(?P<uid>\d+)/activate_service(?P<srvid>\d+)$', views.activate_service, name='activate_service'),
url(r'^(?P<uid>\d+)/opt82$', views.opt82, name='opt82'), url(r'^(?P<uid>\d+)/opt82$', views.opt82, name='opt82'),
url(r'^(?P<uid>\d+)/chart$', views.charts, name='charts'), url(r'^(?P<uid>\d+)/chart$', views.charts, name='charts'),
url(r'^(?P<uid>\d+)/dials$', views.dials, name='dials'),
url(r'^(?P<uid>\d+)/extra_field$', views.make_extra_field, name='extra_field'), url(r'^(?P<uid>\d+)/extra_field$', views.make_extra_field, name='extra_field'),
url(r'^(?P<uid>\d+)/extra_field/(?P<fid>\d+)/delete$', views.extra_field_delete, name='extra_field_delete'), url(r'^(?P<uid>\d+)/extra_field/(?P<fid>\d+)/delete$', views.extra_field_delete, name='extra_field_delete'),
url(r'^(?P<uid>\d+)/extra_field/edit$', views.extra_field_change, name='extra_field_edit'), url(r'^(?P<uid>\d+)/extra_field/edit$', views.extra_field_change, name='extra_field_edit'),

27
abonapp/views.py

@ -3,7 +3,7 @@ from json import dumps
from django.contrib.gis.shortcuts import render_to_text from django.contrib.gis.shortcuts import render_to_text
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.db import IntegrityError, ProgrammingError 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.shortcuts import render, redirect, get_object_or_404, resolve_url
from django.contrib.auth.decorators import login_required, permission_required from django.contrib.auth.decorators import login_required, permission_required
from django.utils import timezone from django.utils import timezone
@ -20,6 +20,7 @@ import mydefs
from devapp.models import Device from devapp.models import Device
from datetime import datetime, date from datetime import datetime, date
from taskapp.models import Task from taskapp.models import Task
from dialing_app.models import AsteriskCDR
@login_required @login_required
@ -736,7 +737,7 @@ def charts(request, gid, uid):
else: else:
charts_data = StatElem.objects.chart( charts_data = StatElem.objects.chart(
abon.ip_address, abon.ip_address,
count_of_parts=24,
count_of_parts=30,
want_date=wandate 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 # API's
def abons(request): def abons(request):

Loading…
Cancel
Save