diff --git a/abonapp/locale/ru/LC_MESSAGES/django.po b/abonapp/locale/ru/LC_MESSAGES/django.po
index aba5fa3..8368e28 100644
--- a/abonapp/locale/ru/LC_MESSAGES/django.po
+++ b/abonapp/locale/ru/LC_MESSAGES/django.po
@@ -403,46 +403,6 @@ msgstr "Автор"
msgid "Debts not found"
msgstr "Нет должников"
-#: templates/abonapp/dial_log.html:8
-msgid "Play"
-msgstr "Слушать"
-
-#: templates/abonapp/dial_log.html:9
-msgid "calldate"
-msgstr "дата звонка"
-
-#: templates/abonapp/dial_log.html:10
-msgid "src"
-msgstr "кто"
-
-#: templates/abonapp/dial_log.html:11
-msgid "dst"
-msgstr "куда"
-
-#: templates/abonapp/dial_log.html:12
-msgid "duration"
-msgstr "прод."
-
-#: templates/abonapp/dial_log.html:13
-msgid "start"
-msgstr "начало"
-
-#: templates/abonapp/dial_log.html:14
-msgid "answer"
-msgstr "ответ"
-
-#: templates/abonapp/dial_log.html:15
-msgid "end"
-msgstr "конец"
-
-#: templates/abonapp/dial_log.html:16
-msgid "disposition"
-msgstr "состояние"
-
-#: templates/abonapp/dial_log.html:38
-msgid "Calls was not found"
-msgstr "Звонки не найдены"
-
#: templates/abonapp/editAbon.html:10
msgid "Change subscriber"
msgstr "Изменение абонента"
diff --git a/abonapp/templates/abonapp/dial_log.html b/abonapp/templates/abonapp/dial_log.html
deleted file mode 100644
index 55ecdca..0000000
--- a/abonapp/templates/abonapp/dial_log.html
+++ /dev/null
@@ -1,45 +0,0 @@
-{% extends request.is_ajax|yesno:'nullcont.htm,abonapp/ext.htm' %}
-{% load i18n %}
-{% block content %}
-
-
diff --git a/abonapp/urls.py b/abonapp/urls.py
index ac1c048..559115f 100644
--- a/abonapp/urls.py
+++ b/abonapp/urls.py
@@ -13,7 +13,6 @@ subscriber_patterns = [
path('addinvoice/', views.add_invoice, name='add_invoice'),
path('pick/', views.pick_tariff, name='pick_tariff'),
path('passport_view/', views.PassportUpdateView.as_view(), name='passport_view'),
- path('dials/', views.DialsListView.as_view(), name='dials'),
# path('reset_ip/', views.reset_ip, name='reset_ip'),
path('unsubscribe_service/
/', views.unsubscribe_service, name='unsubscribe_service'),
path('dev/', views.dev, name='dev'),
diff --git a/abonapp/views.py b/abonapp/views.py
index 2b58da4..55b3b26 100644
--- a/abonapp/views.py
+++ b/abonapp/views.py
@@ -4,7 +4,6 @@ from typing import Dict, Optional
from abonapp.tasks import customer_nas_command, customer_nas_remove
from agent.commands.dhcp import dhcp_commit, dhcp_expiry, dhcp_release
from devapp.models import Device, Port as DevPort
-from dialing_app.models import AsteriskCDR
from django.conf import settings
from django.contrib import messages
from django.contrib.auth.decorators import login_required
@@ -818,60 +817,6 @@ def vcards(r):
return response
-class DialsListView(LoginRequiredMixin, OnlyAdminsMixin, OrderedFilteredList):
- context_object_name = 'logs'
- template_name = 'abonapp/dial_log.html'
-
- def get_queryset(self):
- abon = get_object_or_404(models.Abon,
- username=self.kwargs.get('uname'))
- if not self.request.user.has_perm('group_app.view_group', abon.group):
- raise PermissionDenied
- self.abon = abon
- if abon.telephone is not None and abon.telephone != '':
- tel = abon.telephone.replace('+', '')
- additional_tels = tuple(
- t.telephone for t in
- models.AdditionalTelephone.objects.filter(
- abon=abon
- ).iterator()
- )
- logs = AsteriskCDR.objects.filter(
- Q(src__contains=tel) | Q(dst__contains=tel) |
- Q(src__in=additional_tels) | Q(dst__in=additional_tels)
- )
- return logs
- else:
- return AsteriskCDR.objects.none()
-
- def get_context_data(self, **kwargs):
- context = super(DialsListView, self).get_context_data(**kwargs)
- context['group'] = get_object_or_404(Group, pk=self.kwargs.get('gid'))
- context['abon'] = self.abon
- return context
-
- def render_to_response(self, context, **response_kwargs):
- if hasattr(self.abon.group, 'pk') and self.abon.group.pk != int(
- self.kwargs.get('gid')):
- return redirect(
- 'abonapp:dials', self.abon.group.pk,
- self.abon.username
- )
- return super(DialsListView, self).render_to_response(
- context,
- **response_kwargs
- )
-
- def get(self, request, *args, **kwargs):
- try:
- return super(DialsListView, self).get(request, *args, **kwargs)
- except ProgrammingError as e:
- messages.error(request, e)
- return redirect('abonapp:abon_home',
- self.kwargs.get('gid'),
- self.kwargs.get('uname'))
-
-
@login_required
@only_admins
@permission_required('abonapp.change_abon')
diff --git a/dialing_app/__init__.py b/dialing_app/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/dialing_app/admin.py b/dialing_app/admin.py
deleted file mode 100644
index 8c38f3f..0000000
--- a/dialing_app/admin.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from django.contrib import admin
-
-# Register your models here.
diff --git a/dialing_app/apps.py b/dialing_app/apps.py
deleted file mode 100644
index 42a981b..0000000
--- a/dialing_app/apps.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from django.apps import AppConfig
-
-
-class DialingAppConfig(AppConfig):
- name = 'dialing_app'
diff --git a/dialing_app/forms.py b/dialing_app/forms.py
deleted file mode 100644
index a863bc7..0000000
--- a/dialing_app/forms.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from django import forms
-from .models import SMSOut
-
-
-class SMSOutForm(forms.ModelForm):
- class Meta:
- model = SMSOut
- fields = ('dst', 'text')
diff --git a/dialing_app/locale/ru/LC_MESSAGES/django.po b/dialing_app/locale/ru/LC_MESSAGES/django.po
deleted file mode 100644
index e76d39e..0000000
--- a/dialing_app/locale/ru/LC_MESSAGES/django.po
+++ /dev/null
@@ -1,172 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Dmitry Novikov nerosketch@gmail.com, 2017.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-08-09 14:59+0300\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Dmitry Novikov nerosketch@gmail.com\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
-"%100>=11 && n%100<=14)? 2 : 3);\n"
-
-#: models.py:9 models.py:44
-msgid "No answer"
-msgstr "Не отвечен"
-
-#: models.py:10 models.py:46 models.py:101
-msgid "Failed"
-msgstr "С ошибкой"
-
-#: models.py:11 models.py:48
-msgid "Busy"
-msgstr "Занято"
-
-#: models.py:12 models.py:50
-msgid "Answered"
-msgstr "Отвечен"
-
-#: models.py:13 models.py:52
-msgid "Unknown"
-msgstr "Не определён"
-
-#: models.py:86 models.py:87
-msgid "SMS"
-msgstr "СМС"
-
-#: models.py:95
-msgid "When"
-msgstr "Когда"
-
-#: models.py:96 templates/index.html:25
-msgid "Telephone"
-msgstr "Телефон"
-
-#: models.py:97
-msgid "Text"
-msgstr "Текст"
-
-#: models.py:99
-msgid "New"
-msgstr "Новое"
-
-#: models.py:100
-msgid "Sent"
-msgstr "Отправленное"
-
-#: models.py:103
-msgid "Status"
-msgstr "Статус"
-
-#: models.py:111 models.py:112
-msgid "Out SMS"
-msgstr "Исходящие СМС"
-
-#: templates/ext.html:8 templates/ext.html:25 views.py:45
-msgid "Last calls"
-msgstr "Последние звонки"
-
-#: templates/ext.html:32 views.py:74
-msgid "Voice mail request"
-msgstr "Заявки на подключение"
-
-#: templates/ext.html:39 views.py:83
-msgid "Voice mail report"
-msgstr "Заявки на поломки"
-
-#: templates/ext.html:46 templates/inbox_sms.html:7
-msgid "Inbox sms"
-msgstr "Входящие смс"
-
-#: templates/inbox_sms.html:23
-msgid "Message history is empty"
-msgstr "История сообщений пуста"
-
-#: templates/inbox_sms.html:31 templates/modal_send_sms.html:5
-msgid "Send sms"
-msgstr "Отправить смс"
-
-#: templates/index.html:9 templates/vmail.html:10
-msgid "Play"
-msgstr "Слушать"
-
-#: templates/index.html:10 templates/index.html:36 templates/vmail.html:11
-msgid "calldate"
-msgstr "дата звонка"
-
-#: templates/index.html:11 templates/vmail.html:12
-msgid "src"
-msgstr "кто"
-
-#: templates/index.html:12
-msgid "dst"
-msgstr "куда"
-
-#: templates/index.html:13 templates/vmail.html:13
-msgid "duration"
-msgstr "продолжительность"
-
-#: templates/index.html:14 templates/vmail.html:14
-msgid "start"
-msgstr "начало"
-
-#: templates/index.html:15 templates/vmail.html:15
-msgid "answer"
-msgstr "ответ"
-
-#: templates/index.html:16 templates/vmail.html:16
-msgid "end"
-msgstr "конец"
-
-#: templates/index.html:17 templates/vmail.html:17
-msgid "disposition"
-msgstr "состояние"
-
-#: templates/index.html:23 views.py:94
-msgid "Find dials"
-msgstr "Найти звонки"
-
-#: templates/index.html:34
-msgid "Find by dates"
-msgstr "Найти по дате"
-
-#: templates/index.html:64
-msgid "Download"
-msgstr "Скачать"
-
-#: templates/index.html:80 templates/vmail.html:42
-msgid "Calls was not found"
-msgstr "Звонки не найдены"
-
-#: templates/modal_send_sms.html:19
-msgid "Send"
-msgstr "Отправить"
-
-#: views.py:55
-msgid "Multiple users with the telephone number"
-msgstr "Несколько абонентов с указанным номером телефона"
-
-#: views.py:57
-msgid "User with the telephone number not found"
-msgstr "Абонент с таким номером телефона не найден"
-
-#: views.py:114
-msgid "Make sure that your date format is correct"
-msgstr "Убедитесь что формат времени корректен"
-
-#: views.py:138
-msgid "Message was enqueued for sending"
-msgstr "Сообщение было поставлено в очередь для отправки"
-
-#: views.py:151
-msgid "fix form errors"
-msgstr "Некоторые поля заполнены не правильно, проверте ещё раз"
diff --git a/dialing_app/migrations/0001_initial.py b/dialing_app/migrations/0001_initial.py
deleted file mode 100644
index a5c814a..0000000
--- a/dialing_app/migrations/0001_initial.py
+++ /dev/null
@@ -1,81 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11 on 2018-02-26 00:20
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
- initial = True
-
- dependencies = [
- ]
-
- operations = [
- migrations.CreateModel(
- name='AsteriskCDR',
- fields=[
- ('calldate', models.DateTimeField(default='0000-00-00 00:00:00', primary_key=True, serialize=False)),
- ('clid', models.CharField(default='', max_length=80)),
- ('src', models.CharField(default='', max_length=80)),
- ('dst', models.CharField(default='', max_length=80)),
- ('dcontext', models.CharField(default='', max_length=80)),
- ('channel', models.CharField(default='', max_length=80)),
- ('dstchannel', models.CharField(default='', max_length=80)),
- ('lastapp', models.CharField(default='', max_length=80)),
- ('lastdata', models.CharField(default='', max_length=80)),
- ('duration', models.IntegerField(default=0)),
- ('billsec', models.IntegerField(default=0)),
- ('start', models.DateTimeField(blank=True, default=None, null=True)),
- ('answer', models.DateTimeField(blank=True, default=None, null=True)),
- ('end', models.DateTimeField(blank=True, default=None, null=True)),
- ('disposition', models.CharField(
- choices=[('NO ANSWER', 'No answer'), ('FAILED', 'Failed'), ('BUSY', 'Busy'),
- ('ANSWERED', 'Answered'), ('UNKNOWN', 'Unknown')], default='', max_length=45)),
- ('amaflags', models.IntegerField(default=0)),
- ('accountcode', models.CharField(default='', max_length=20)),
- ('userfield', models.CharField(default='', max_length=255)),
- ('uniqueid', models.CharField(default='', max_length=32)),
- ],
- options={
- 'db_table': 'cdr',
- 'ordering': ['-calldate'],
- 'managed': False,
- },
- ),
- migrations.CreateModel(
- name='SMSModel',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('when', models.DateTimeField(auto_now_add=True)),
- ('who', models.CharField(max_length=32)),
- ('dev', models.CharField(max_length=20)),
- ('text', models.CharField(max_length=255)),
- ],
- options={
- 'verbose_name': 'SMS',
- 'verbose_name_plural': 'SMS',
- 'db_table': 'sms',
- 'ordering': ['-when'],
- 'permissions': (('can_view_sms', 'Can view sms'),),
- },
- ),
- migrations.CreateModel(
- name='SMSOut',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('when', models.DateTimeField(auto_now_add=True, verbose_name='When')),
- ('dst', models.CharField(max_length=16, verbose_name='Telephone')),
- ('text', models.CharField(max_length=255, verbose_name='Text')),
- ('status',
- models.CharField(choices=[('nw', 'New'), ('st', 'Sent'), ('fd', 'Failed')], default='nw', max_length=2,
- verbose_name='Status')),
- ],
- options={
- 'verbose_name': 'Out SMS',
- 'verbose_name_plural': 'Out SMS',
- 'db_table': 'out_sms',
- 'permissions': (('can_view_sms', 'Can view sms'), ('can_send_sms', 'Can send sms')),
- },
- ),
- ]
diff --git a/dialing_app/migrations/0002_auto_20180808_1236.py b/dialing_app/migrations/0002_auto_20180808_1236.py
deleted file mode 100644
index 3de30c6..0000000
--- a/dialing_app/migrations/0002_auto_20180808_1236.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11 on 2018-08-08 12:36
-from __future__ import unicode_literals
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('dialing_app', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterModelOptions(
- name='asteriskcdr',
- options={'managed': False, 'ordering': ('-calldate',)},
- ),
- migrations.AlterModelOptions(
- name='smsmodel',
- options={'ordering': ('-when',), 'permissions': (('can_view_sms', 'Can view sms'),), 'verbose_name': 'SMS', 'verbose_name_plural': 'SMS'},
- ),
- migrations.AlterModelOptions(
- name='smsout',
- options={'ordering': ('-when',), 'permissions': (('can_view_sms', 'Can view sms'), ('can_send_sms', 'Can send sms')), 'verbose_name': 'Out SMS', 'verbose_name_plural': 'Out SMS'},
- ),
- ]
diff --git a/dialing_app/migrations/__init__.py b/dialing_app/migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/dialing_app/models.py b/dialing_app/models.py
deleted file mode 100644
index 2ece5e5..0000000
--- a/dialing_app/models.py
+++ /dev/null
@@ -1,109 +0,0 @@
-from django.db import models
-from datetime import datetime
-from django.utils.translation import gettext_lazy as _
-from django.conf import settings
-
-
-class AsteriskCDR(models.Model):
- DISPOSITION_CHOICES = (
- ('NO ANSWER', _('No answer')),
- ('FAILED', _('Failed')),
- ('BUSY', _('Busy')),
- ('ANSWERED', _('Answered')),
- ('UNKNOWN', _('Unknown'))
- )
- calldate = models.DateTimeField(default='0000-00-00 00:00:00', primary_key=True)
- clid = models.CharField(max_length=80, default='')
- src = models.CharField(max_length=80, default='')
- dst = models.CharField(max_length=80, default='')
- dcontext = models.CharField(max_length=80, default='')
- channel = models.CharField(max_length=80, default='')
- dstchannel = models.CharField(max_length=80, default='')
- lastapp = models.CharField(max_length=80, default='')
- lastdata = models.CharField(max_length=80, default='')
- duration = models.IntegerField(default=0)
- billsec = models.IntegerField(default=0)
- start = models.DateTimeField(null=True, blank=True, default=None)
- answer = models.DateTimeField(null=True, blank=True, default=None)
- end = models.DateTimeField(null=True, blank=True, default=None)
- disposition = models.CharField(max_length=45, choices=DISPOSITION_CHOICES, default='')
- amaflags = models.IntegerField(default=0)
- accountcode = models.CharField(max_length=20, default='')
- userfield = models.CharField(max_length=255, default='')
- uniqueid = models.CharField(max_length=32, default='')
-
- def save(self, *args, **kwargs):
- return
-
- def delete(self, *args, **kwargs):
- return
-
- def locate_disposition(self):
- dsp = self.disposition
- if dsp == 'NO ANSWER':
- return _('No answer')
- elif dsp == 'FAILED':
- return _('Failed')
- elif dsp == 'BUSY':
- return _('Busy')
- elif dsp == 'ANSWERED':
- return _('Answered')
- elif dsp == 'UNKNOWN':
- return _('Unknown')
- return ''
-
- def path_to_media(self):
- path = getattr(settings, 'DIALING_MEDIA', '/media')
- if self.userfield == 'request':
- return "%s/recording/request" % path
- elif self.userfield == 'report':
- return "%s/recording/bug" % path
- return "%s/monitor" % path
-
- def url(self):
- if type(self.calldate) is datetime:
- return "%s/%s-%s-%s.wav" % (
- self.path_to_media(), self.calldate.strftime('%Y/%m/%d/%H_%M'), self.src, self.dst
- )
-
- class Meta:
- db_table = 'cdr'
- managed = False
- ordering = ('-calldate',)
-
-
-class SMSModel(models.Model):
- when = models.DateTimeField(auto_now_add=True)
- who = models.CharField(max_length=32)
- dev = models.CharField(max_length=20)
- text = models.CharField(max_length=255)
-
- class Meta:
- db_table = 'sms'
- verbose_name = _('SMS')
- verbose_name_plural = _('SMS')
- ordering = ('-when',)
-
- def __str__(self):
- return self.text
-
-
-class SMSOut(models.Model):
- when = models.DateTimeField(_('When'), auto_now_add=True)
- dst = models.CharField(_('Telephone'), max_length=16)
- text = models.CharField(_('Text'), max_length=255)
- SMS_OUT_STATUS = (
- ('nw', _('New')),
- ('st', _('Sent')),
- ('fd', _('Failed'))
- )
- status = models.CharField(_('Status'), max_length=2, choices=SMS_OUT_STATUS, default='nw')
-
- class Meta:
- db_table = 'out_sms'
- verbose_name = _('Out SMS')
- verbose_name_plural = _('Out SMS')
- ordering = ('-when',)
-
- def __str__(self):
- return self.text
diff --git a/dialing_app/templates/ext.html b/dialing_app/templates/ext.html
deleted file mode 100644
index e635502..0000000
--- a/dialing_app/templates/ext.html
+++ /dev/null
@@ -1,58 +0,0 @@
-{% extends request.is_ajax|yesno:'bajax.html,base.html' %}
-{% load i18n %}
-
-
-{% block breadcrumb %}
-
-
- - {% trans 'Last calls' %}
-
-{% endblock %}
-
-
-{% block page-header %}
- {{ title }}
-{% endblock %}
-
-
-{% block main %}
-
-
-
-
-
- {% block content %}{% endblock %}
-
-
-
-{% endblock %}
diff --git a/dialing_app/templates/inbox_sms.html b/dialing_app/templates/inbox_sms.html
deleted file mode 100644
index 0b18e67..0000000
--- a/dialing_app/templates/inbox_sms.html
+++ /dev/null
@@ -1,37 +0,0 @@
-{% extends request.is_ajax|yesno:'nullcont.htm,ext.html' %}
-{% load i18n %}
-{% block content %}
-
-
-
-
{% trans 'Inbox sms' %}
-
-
-
-
-
-{% endblock %}
diff --git a/dialing_app/templates/index.html b/dialing_app/templates/index.html
deleted file mode 100644
index 81ec508..0000000
--- a/dialing_app/templates/index.html
+++ /dev/null
@@ -1,78 +0,0 @@
-{% extends request.is_ajax|yesno:'nullcont.htm,ext.html' %}
-{% load i18n telephone_filters %}
-{% block content %}
-
-
-
-
- | {% trans 'Play' %} |
- {% trans 'calldate' %} |
- {% trans 'src' %} |
- {% trans 'dst' %} |
- {% trans 'duration' %} |
- {% trans 'start' %} |
- {% trans 'answer' %} |
- {% trans 'end' %} |
- {% trans 'disposition' %} |
-
-
- |
-
- |
-
-
-
- {% for log in logs %}
-
- {% with lurl=log.url %}
- |
-
-
-
-
- |
- {{ log.calldate|date:'d M, H:i:s' }} |
- {{ log.src|abon_if_telephone|safe }} |
- {{ log.dst|abon_if_telephone|safe }} |
- {{ log.duration }} |
- {{ log.start|date:'d M, H:i:s' }} |
- {{ log.answer|date:'d M, H:i:s' }} |
- {{ log.end|date:'d M, H:i:s' }} |
- {{ log.locate_disposition }} |
- {% endwith %}
-
- {% empty %}
-
- | {% trans 'Calls was not found' %} |
-
- {% endfor %}
-
-
-
-{% endblock %}
diff --git a/dialing_app/templates/modal_send_sms.html b/dialing_app/templates/modal_send_sms.html
deleted file mode 100644
index 0a87dc9..0000000
--- a/dialing_app/templates/modal_send_sms.html
+++ /dev/null
@@ -1,23 +0,0 @@
-{% load i18n bootstrap3 %}
-
diff --git a/dialing_app/templates/vmail.html b/dialing_app/templates/vmail.html
deleted file mode 100644
index e1c3636..0000000
--- a/dialing_app/templates/vmail.html
+++ /dev/null
@@ -1,48 +0,0 @@
-{% extends request.is_ajax|yesno:'nullcont.htm,ext.html' %}
-{% load i18n telephone_filters %}
-{% block content %}
-
-
-
-
-
- | {% trans 'Play' %} |
- {% trans 'calldate' %} |
- {% trans 'src' %} |
- {% trans 'duration' %} |
- {% trans 'start' %} |
- {% trans 'answer' %} |
- {% trans 'end' %} |
- {% trans 'disposition' %} |
-
-
-
- {% for vmail in vmessages %}
-
- |
-
-
-
-
- |
- {{ vmail.calldate|date:'d E Y, H:i:s' }} |
- {{ vmail.src|abon_if_telephone|safe }} |
- {{ vmail.duration }} |
- {{ vmail.start|date:'d E Y, H:i:s' }} |
- {{ vmail.answer|date:'d E Y, H:i:s' }} |
- {{ vmail.end|date:'d E Y, H:i:s' }} |
- {{ vmail.locate_disposition }} |
-
- {% empty %}
-
- | {% trans 'Calls was not found' %} |
-
- {% endfor %}
-
-
-
-
-{% endblock %}
diff --git a/dialing_app/templatetags/__init__.py b/dialing_app/templatetags/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/dialing_app/templatetags/telephone_filters.py b/dialing_app/templatetags/telephone_filters.py
deleted file mode 100644
index 64a6fa6..0000000
--- a/dialing_app/templatetags/telephone_filters.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import re
-from django import template
-from django.shortcuts import resolve_url
-from django.template.defaultfilters import stringfilter
-
-register = template.Library()
-
-
-@register.filter
-@stringfilter
-def abon_if_telephone(value):
- """Возвращаем ссыль на абонента если передали номер телефона"""
- if re.match(r'^\+?\d+$', value):
- if value[0] != '+':
- value = '+' + value
- url = resolve_url('dialapp:to_abon', tel=value)
- a = '%s' % (url, value)
- return a
- else:
- return value
diff --git a/dialing_app/tests.py b/dialing_app/tests.py
deleted file mode 100644
index 7ce503c..0000000
--- a/dialing_app/tests.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from django.test import TestCase
-
-# Create your tests here.
diff --git a/dialing_app/urls.py b/dialing_app/urls.py
deleted file mode 100644
index ba8efa5..0000000
--- a/dialing_app/urls.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from django.urls import path, re_path
-from . import views
-
-app_name = 'dialing_app'
-
-urlpatterns = [
- path('', views.LastCallsListView.as_view(), name='home'),
- path('filter/', views.DialsFilterListView.as_view(), name='vfilter'),
- re_path('^to_abon(?P\+?\d+)/$', views.to_abon, name='to_abon'),
- path('requests/', views.VoiceMailRequestsListView.as_view(), name='vmail_request'),
- path('reports/', views.VoiceMailReportsListView.as_view(), name='vmail_report'),
- path('sms/in/', views.InboxSMSListView.as_view(), name='inbox_sms'),
- path('sms/send/', views.send_sms, name='send_sms'),
- path('api/sms/', views.SmsManager.as_view())
-]
diff --git a/dialing_app/views.py b/dialing_app/views.py
deleted file mode 100644
index 3c06c5f..0000000
--- a/dialing_app/views.py
+++ /dev/null
@@ -1,221 +0,0 @@
-from datetime import datetime
-from subprocess import run
-from django.contrib.auth.decorators import login_required
-from django.contrib import messages
-
-from django.db import ProgrammingError
-from django.shortcuts import redirect, render
-from django.utils.translation import gettext_lazy as _
-from django.utils.decorators import method_decorator
-from django.views.generic import ListView
-from guardian.decorators import permission_required_or_403 as permission_required
-from django.db.models import Q
-from django.conf import settings
-
-from abonapp.models import Abon
-from djing.global_base_views import SecureApiView
-from djing import JSONType
-from djing.lib import safe_int
-from djing.lib.decorators import only_admins, json_view
-from .models import AsteriskCDR, SMSModel, SMSOut
-from .forms import SMSOutForm
-
-
-login_decs = login_required, only_admins
-
-
-class BaseListView(ListView):
- http_method_names = 'get',
- paginate_by = getattr(settings, 'PAGINATION_ITEMS_PER_PAGE', 10)
-
-
-@method_decorator(login_decs, name='dispatch')
-@method_decorator(permission_required('dialing_app.change_asteriskcdr'), name='dispatch')
-class LastCallsListView(BaseListView):
- template_name = 'index.html'
- context_object_name = 'logs'
- queryset = AsteriskCDR.objects.exclude(userfield='request')
-
- def get(self, request, *args, **kwargs):
- try:
- return super(LastCallsListView, self).get(request, *args, **kwargs)
- except ProgrammingError as e:
- messages.error(self.request, e)
- return redirect('abonapp:group_list')
-
- def get_context_data(self, **kwargs):
- context = super(LastCallsListView, self).get_context_data(**kwargs)
- context['title'] = _('Last calls')
- return context
-
-
-@login_required
-@only_admins
-def to_abon(request, tel):
- abon = Abon.objects.filter(
- Q(telephone__icontains=tel) |
- Q(additional_telephones__telephone__icontains=tel)
- )
- abon_count = abon.count()
- if abon_count > 1:
- messages.warning(
- request, _('Multiple users with the telephone number')
- )
- elif abon_count == 0:
- messages.error(request, _('User with the telephone number not found'))
- return redirect('dialapp:home')
- abon = abon[0]
- if abon.group:
- return redirect(
- 'abonapp:abon_home', gid=abon.group.pk,
- uname=abon.username
- )
- else:
- return redirect('abonapp:group_list')
-
-
-@method_decorator(login_decs, name='dispatch')
-class VoiceMailRequestsListView(BaseListView):
- template_name = 'vmail.html'
- context_object_name = 'vmessages'
- queryset = AsteriskCDR.objects.filter(userfield='request')
-
- def get_context_data(self, **kwargs):
- context = super(VoiceMailRequestsListView, self).get_context_data(**kwargs)
- context['title'] = _('Voice mail request')
- return context
-
-
-class VoiceMailReportsListView(VoiceMailRequestsListView):
- queryset = AsteriskCDR.objects.filter(userfield='report')
-
- def get_context_data(self, **kwargs):
- context = super(VoiceMailRequestsListView, self).get_context_data(**kwargs)
- context['title'] = _('Voice mail report')
- return context
-
-
-@method_decorator(login_decs, name='dispatch')
-class DialsFilterListView(BaseListView):
- context_object_name = 'logs'
- template_name = 'index.html'
-
- def get_context_data(self, **kwargs):
- context = super(DialsFilterListView, self).get_context_data(**kwargs)
- context['title'] = _('Find dials')
- context['s'] = self.request.GET.get('s')
- context['sd'] = self.request.GET.get('sd')
- return context
-
- def get_queryset(self):
- s = self.request.GET.get('s')
- sd = self.request.GET.get('sd')
- if isinstance(s, str) and s != '':
- cdr_q = Q(src__icontains=s) | Q(dst__icontains=s)
- else:
- cdr_q = None
- try:
- if isinstance(sd, str) and sd != '':
- sd_date = datetime.strptime(sd, '%Y-%m-%d')
- if cdr_q:
- cdr_q |= Q(calldate__date=sd_date)
- else:
- cdr_q = Q(calldate__date=sd_date)
- except ValueError:
- messages.add_message(self.request, messages.ERROR, _('Make sure that your date format is correct'))
- if cdr_q is None:
- cdr = AsteriskCDR.objects.all()
- else:
- cdr = AsteriskCDR.objects.filter(cdr_q)
- return cdr
-
-
-@method_decorator(login_decs, name='dispatch')
-@method_decorator(permission_required('dialing_app.view_smsmodel'), name='dispatch')
-class InboxSMSListView(BaseListView):
- template_name = 'inbox_sms.html'
- context_object_name = 'sms_messages'
- model = SMSModel
-
-
-@login_required
-@only_admins
-@permission_required('dialing_app.add_smsout')
-def send_sms(request):
- path = request.GET.get('path')
- initial_dst = request.GET.get('dst')
- if request.method == 'POST':
- frm = SMSOutForm(request.POST)
- if frm.is_valid():
- frm.save()
- messages.success(request, _('Message was enqueued for sending'))
- pidfile_name = '/run/dialing.py.pid'
- try:
- with open(pidfile_name, 'r') as f:
- pid = int(f.read())
- run(['/usr/bin/kill', '-SIGUSR1', str(pid)])
- except FileNotFoundError:
- print('Failed sending, %s not found' % pidfile_name)
- if path:
- return redirect(path)
- else:
- return redirect('dialapp:inbox_sms')
- else:
- messages.error(request, _('fix form errors'))
- else:
- frm = SMSOutForm(initial={'dst': initial_dst})
- return render(request, 'modal_send_sms.html', {
- 'form': frm,
- 'path': path
- })
-
-
-class SmsManager(SecureApiView):
- #
- # Api view for management sms from dongle
- #
- http_method_names = ('get',)
-
- @staticmethod
- def bad_cmd() -> JSONType:
- return {'text': 'Command is not allowed'}
-
- @method_decorator(json_view)
- def get(self, request, *args, **kwargs):
- cmd = request.GET.get('cmd')
- data = request.GET.dict()
- handler = getattr(self, cmd.lower(), self.bad_cmd)
- del data['cmd']
- del data['sign']
- return handler(**data)
-
- @staticmethod
- def save_sms(**kwargs) -> JSONType:
- sms = SMSModel.objects.create(
- who=kwargs.get('who'),
- dev=kwargs.get('dev'),
- text=kwargs.get('text')
- )
- return {'status': 'ok', 'sms_id': sms.pk}
-
- @staticmethod
- def update_status(**kwargs) -> JSONType:
- msg_id = safe_int(kwargs.get('mid'))
- if msg_id != 0:
- status = kwargs.get('status')
- update_count = SMSOut.objects.filter(pk=msg_id).update(status=status)
- return {
- 'text': 'Status updated',
- 'update_count': update_count
- }
- return {'text': 'Bad mid parameter'}
-
- @staticmethod
- def get_new() -> JSONType:
- msgs = SMSOut.objects.filter(status='nw').defer('status')
- res = [{
- 'when': round(m.timestamp),
- 'dst': m.dst,
- 'text': m.text
- } for m in msgs]
- return res
diff --git a/djing/settings.py b/djing/settings.py
index 3e008d2..3b354db 100644
--- a/djing/settings.py
+++ b/djing/settings.py
@@ -57,7 +57,6 @@ INSTALLED_APPS = [
'clientsideapp',
'messenger',
'msg_app',
- 'dialing_app',
'group_app',
'guardian',
'pinax_theme_bootstrap',
diff --git a/djing/urls.py b/djing/urls.py
index 31f7dfa..fb8a3f7 100644
--- a/djing/urls.py
+++ b/djing/urls.py
@@ -15,7 +15,6 @@ urlpatterns = [
path('tasks/', include('taskapp.urls', namespace='taskapp')),
path('client/', include('clientsideapp.urls', namespace='client_side')),
path('msg/', include('msg_app.urls', namespace='msg_app')),
- path('dialing/', include('dialing_app.urls', namespace='dialapp')),
path('groups/', include('group_app.urls', namespace='group_app')),
path('ip_pool/', include('ip_pool.urls', namespace='ip_pool')),
path('messenger/', include('messenger.urls', namespace='messenger')),
diff --git a/docs/install.md b/docs/install.md
index e642ff7..5f54a33 100644
--- a/docs/install.md
+++ b/docs/install.md
@@ -241,7 +241,7 @@ __sha256__. то секретное слово должен знать билл
```
$ ./manage.py migrate
Operations to perform:
- Apply all migrations: mapapp, contenttypes, dialing_app, msg_app, taskapp, accounts_app, devapp, statistics, tariff_app, admin, sessions, chatbot, auth, abonapp
+ Apply all migrations: mapapp, contenttypes, msg_app, taskapp, accounts_app, devapp, statistics, tariff_app, admin, sessions, chatbot, auth, abonapp
Running migrations:
Rendering model states... DONE
Applying mapapp.0001_initial... OK
diff --git a/templates/base.html b/templates/base.html
index 1c7b619..c215bdf 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -88,15 +88,6 @@
- {% if perms.dialing_app.change_asteriskcdr %}
- {% url 'dialapp:home' as dialhome %}
-
-
- {% trans 'Dialing' %}
-
-
- {% endif %}
-
{% if perms.traf_stat.statcache_view %}
{% url 'traf_stat:home' as stathome %}