Browse Source

Merge branch 'devel' of github.com:nerosketch/djing into devel

devel
Dmitry Novikov 7 years ago
parent
commit
5b0b256c90
  1. 5
      abonapp/views.py
  2. 10
      djing/local_settings.py.example
  3. 2
      docs/install_debian.md
  4. 2
      docs/install_fedora.md
  5. 3
      ip_pool/models.py
  6. 12
      messenger/models.py
  7. 4
      tariff_app/models.py
  8. 4
      taskapp/handle.py
  9. 6
      taskapp/models.py
  10. 4
      taskapp/templates/taskapp/add_edit_task.html

5
abonapp/views.py

@ -443,10 +443,7 @@ def pick_tariff(request, gid: int, uname):
}
if deadline:
deadline = datetime.strptime(deadline, '%Y-%m-%dT%H:%M')
abon.pick_tariff(trf, request.user, deadline=deadline,
comment=log_comment)
else:
abon.pick_tariff(trf, request.user, comment=log_comment)
abon.pick_tariff(trf, request.user, deadline=deadline, comment=log_comment)
customer_nas_command.delay(abon.pk, 'sync')
messages.success(request, _('Tariff has been picked'))
return redirect('abonapp:abon_services', gid=gid,

10
djing/local_settings.py.example

@ -31,22 +31,12 @@ DATABASES = {
}
}
# path to asterisk dial records
DIALING_MEDIA = 'path/to/asterisk_records'
DEFAULT_SNMP_PASSWORD = 'public'
TELEGRAM_BOT_TOKEN = 'bot token'
# Telephone or empty
TELEPHONE_REGEXP = r'^(\+[7893]\d{10,11})?$'
ASTERISK_MANAGER_AUTH = {
'username': 'admin',
'password': 'password',
'host': '127.0.0.1'
}
# Secret word for auth to api views by hash
API_AUTH_SECRET = 'your api secret'

2
docs/install_debian.md

@ -248,8 +248,6 @@ __sha256__. Секретное слово должен знать биллинг
**COMPANY_NAME** — Название вашей компании, будет отображаться в шапке сайта в административной части
и в личном кабинете абонента.
**TELEGRAM_BOT_TOKEN** — Когда вы включите оповещение через телеграм то вам сюда.
#### Создание БД
Подразумевается что сервер баз данных у вас уже есть, или вы его можете установить сами.

2
docs/install_fedora.md

@ -221,8 +221,6 @@ __sha256__. то секретное слово должен знать билл
**COMPANY_NAME** — Название вашей компании, будет отображаться в шапке сайта в административной части
и в личном кабинете абонента.
**TELEGRAM_BOT_TOKEN** — Когда вы включите оповещение через телеграм то вам сюда.
#### Создание БД
Подразумевается что сервер баз данных у вас уже есть, или вы его можете установить сами.

3
ip_pool/models.py

@ -146,7 +146,10 @@ class NetworkModel(models.Model):
continue
elif ip > work_range_end_ip:
break # Not found
try:
used_ip = next(employed_ips)
except StopIteration:
return ip
if used_ip is None:
return ip
used_ip = ip_address(used_ip)

12
messenger/models.py

@ -32,11 +32,11 @@ class Messenger(models.Model):
if self.bot_type == 1:
return resolve_url('messenger:update_viber_messenger', self.slug)
def get_next_url(self):
if self.bot_type == 1: # Viber
return resolve_url('messenger:update_viber_messenger', self.slug)
else:
return resolve_url('messenger:messengers_list')
# def get_next_url(self):
# if self.bot_type == 1: # Viber
# return resolve_url('messenger:update_viber_messenger', self.slug)
# else:
# return resolve_url('messenger:messengers_list')
class ViberMessenger(Messenger):
@ -106,7 +106,7 @@ class ViberMessage(models.Model):
msg = models.TextField(_('Message'))
date = models.DateTimeField(_('Date'), auto_now_add=True)
sender = models.CharField(_('Sender'), max_length=32)
messenger = models.ForeignKey(ViberMessenger, verbose_name=_('messenger'), on_delete=models.CASCADE)
messenger = models.ForeignKey(ViberMessenger, verbose_name=_('Messenger'), on_delete=models.CASCADE)
subscriber = models.ForeignKey('ViberSubscriber', on_delete=models.SET_NULL, verbose_name=_('Subscriber'), null=True)
def __str__(self):

4
tariff_app/models.py

@ -2,6 +2,7 @@ from datetime import datetime
from django.db import models, IntegrityError
from django.utils.translation import gettext_lazy as _
from django.dispatch import receiver
from django.shortcuts import resolve_url
from .base_intr import TariffBase, PeriodicPayCalcBase
from .custom_tariffs import TARIFF_CHOICES, PERIODIC_PAY_CHOICES
from group_app.models import Group
@ -49,6 +50,9 @@ class Tariff(models.Model):
def __str__(self):
return "%s (%.2f)" % (self.title, self.amount)
def get_absolute_url(self):
return resolve_url('tarifs:edit', self.pk)
class Meta:
db_table = 'tariffs'
ordering = ('title',)

4
taskapp/handle.py

@ -23,7 +23,7 @@ def handle(task, author, recipients):
task_status = _('Task')
# If task completed or failed
if task.state == 'F' or task.state == 'C':
if task.state in ('F', 'C'):
task_status = _('Task completed')
fulltext = render_to_string('taskapp/notification.html', {
@ -33,7 +33,7 @@ def handle(task, author, recipients):
})
try:
if task.state == 'F' or task.state == 'C':
if task.state in ('F', 'C'):
# If task completed or failed than send one message to author
send_email_notify.delay(fulltext, author.pk)
send_viber_message.delay(None, author.pk, fulltext)

6
taskapp/models.py

@ -1,11 +1,10 @@
# coding=utf-8
from datetime import timedelta
import os
from django.db import models
from django.conf import settings
from django.shortcuts import resolve_url
from django.utils import timezone
from django.utils.translation import ugettext as _
from django.utils.translation import gettext_lazy as _
from abonapp.models import Abon
from .handle import handle as task_handle
@ -137,9 +136,6 @@ class Task(models.Model):
self.recipients.filter(is_active=True)
)
def get_attachment_fname(self):
return os.path.basename(self.attachment.name)
def is_relevant(self):
return self.out_date < timezone.now().date() or self.state == 'F'

4
taskapp/templates/taskapp/add_edit_task.html

@ -24,9 +24,9 @@
<div class="panel panel-default">
<div class="panel-heading">
{% if task.id %}
<h3 class="panel-title">{% trans 'Add new task' %}</h3>
{% else %}
<h3 class="panel-title">{% trans 'Edit task' %}</h3>
{% else %}
<h3 class="panel-title">{% trans 'Add new task' %}</h3>
{% endif %}
</div>
<div class="panel-body">

Loading…
Cancel
Save