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"
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>
</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>
<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+)/opt82$', views.opt82, name='opt82'),
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/(?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'),

27
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):

Loading…
Cancel
Save