Browse Source

prepare to migrate to Django 1.11

devel
bashmak 8 years ago
parent
commit
aac17dfd95
  1. 2
      README.md
  2. 8
      abonapp/views.py
  3. 2
      accounts_app/views.py
  4. 6
      clientsideapp/views.py
  5. 4
      djing/settings_example.py
  6. 8
      docs/dev.md
  7. 2
      requirements.txt

2
README.md

@ -1,7 +1,7 @@
# djing
Попытка интернет биллинга. djing сокращение от **dj**ango-bill**ing**. Это web интерфейс управления абонентами интернет-провайдера.
Сейчас идёт тестирвоание работы на Mikrotik, функционал пока минимальный, т.к. пишу в свободное время. Работа планируется в реальных условиях и на реальных абонентах.
Использовано python 3, django 1.9, bootstrap 3, и другое в файле requirements.txt
Использовано python 3, django 1.11, bootstrap 3, и другое в файле requirements.txt
## Содержание
* [Установка](./docs/install.md)

8
abonapp/views.py

@ -4,7 +4,7 @@ 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, Q, signals
from django.db.transaction import atomic
from django.db import transaction
from django.shortcuts import render, redirect, get_object_or_404, resolve_url
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
@ -202,7 +202,7 @@ def del_abon(request):
@login_required
@permission_required('abonapp.can_add_ballance')
@atomic
@transaction.atomic
def abonamount(request, gid, uid):
abon = get_object_or_404(models.Abon, pk=uid)
try:
@ -330,7 +330,7 @@ def abonhome(request, gid, uid):
})
@atomic
@transaction.atomic
def terminal_pay(request):
from .pay_systems import allpay
ret_text = allpay(request)
@ -376,7 +376,7 @@ def add_invoice(request, gid, uid):
@login_required
@permission_required('abonapp.can_buy_tariff')
@atomic
@transaction.atomic
def pick_tariff(request, gid, uid):
grp = get_object_or_404(models.AbonGroup, pk=gid)
abon = get_object_or_404(models.Abon, pk=uid)

2
accounts_app/views.py

@ -2,7 +2,7 @@
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import NoReverseMatch
from django.urls import NoReverseMatch
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib import messages
from django.utils.translation import ugettext as _

6
clientsideapp/views.py

@ -3,7 +3,7 @@ from django.contrib.auth.decorators import login_required
from django.contrib.gis.shortcuts import render_to_text
from django.shortcuts import render, get_object_or_404, redirect
from django.contrib import messages
from django.db.transaction import atomic
from django.db import transaction
from django.utils.translation import gettext_lazy as _
from abonapp.models import AbonLog, InvoiceForPayment, Abon
@ -42,7 +42,7 @@ def services(request):
@login_required
@atomic
@transaction.atomic
def buy_service(request, srv_id):
abon = get_object_or_404(Abon, pk=request.user.pk)
service = get_object_or_404(Tariff, pk=srv_id)
@ -73,7 +73,7 @@ def debts_list(request):
@login_required
@atomic
@transaction.atomic
def debt_buy(request, d_id):
debt = get_object_or_404(InvoiceForPayment, id=d_id)
abon = get_object_or_404(Abon, id=request.user.id)

4
djing/settings_example.py

@ -3,7 +3,7 @@ import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
from django.core.urlresolvers import reverse_lazy
from django.urls import reverse_lazy
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/
@ -51,7 +51,7 @@ INSTALLED_APPS = [
]
MIDDLEWARE_CLASSES = [
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',

8
docs/dev.md

@ -81,7 +81,7 @@ class EltexSwitch(DLinkDevice):
```
Метод **@description** Просто отображает человекопонятное название вашего устройства в биллинге.
Заметьте что строка на английском и заключена в процедуру **_** (это ugettext_lazy, см. в импорте вверху файла),
это локализация для текущего языка. Про локализацию можно почитать в соответствующем разделе [django translation](https://docs.djangoproject.com/en/1.9/topics/i18n/translation/).
это локализация для текущего языка. Про локализацию можно почитать в соответствующем разделе [django translation](https://docs.djangoproject.com/en/1.11/topics/i18n/translation/).
Метод **@get_ports** чаще всего редко изменяется по алгоритму, так что вам, в большенстве случаев, достаточно добавить
нужные SNMP OID в соответствующие места процедуры. Но вы вольны реализовать ваш метод получения портов
@ -133,7 +133,9 @@ def my_custom_pay_system(request):
Для примера это будет выглядеть так:
```python
@atomic
from django.db import transaction
@transaction.atomic
def terminal_pay(request):
from .pay_systems import my_custom_pay_system
ret_text = my_custom_pay_system(request)
@ -141,7 +143,7 @@ def terminal_pay(request):
```
Проследите чтоб ваша процедура не вызывала исключений, обрабатывайте всё внутри тела процедуры.
Про декоратор **@atomic** вы можете прочитать в документации к [Django](https://docs.djangoproject.com/en/1.9/topics/db/transactions).
Про декоратор **@atomic** вы можете прочитать в документации к [Django](https://docs.djangoproject.com/en/1.11/topics/db/transactions).
В кратце этот декоратор защищает от незавешённых транзакций, например при высокой нагрузке.

2
requirements.txt

@ -1,4 +1,4 @@
Django==1.9
Django==1.11
Pillow
telepot

Loading…
Cancel
Save