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
Попытка интернет биллинга. djing сокращение от **dj**ango-bill**ing**. Это web интерфейс управления абонентами интернет-провайдера. Попытка интернет биллинга. djing сокращение от **dj**ango-bill**ing**. Это web интерфейс управления абонентами интернет-провайдера.
Сейчас идёт тестирвоание работы на Mikrotik, функционал пока минимальный, т.к. пишу в свободное время. Работа планируется в реальных условиях и на реальных абонентах. Сейчас идёт тестирвоание работы на Mikrotik, функционал пока минимальный, т.к. пишу в свободное время. Работа планируется в реальных условиях и на реальных абонентах.
Использовано python 3, django 1.9, bootstrap 3, и другое в файле requirements.txt
Использовано python 3, django 1.11, bootstrap 3, и другое в файле requirements.txt
## Содержание ## Содержание
* [Установка](./docs/install.md) * [Установка](./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.core.exceptions import PermissionDenied
from django.db import IntegrityError, ProgrammingError from django.db import IntegrityError, ProgrammingError
from django.db.models import Count, Q, signals 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.shortcuts import render, redirect, get_object_or_404, resolve_url
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.http import HttpResponse from django.http import HttpResponse
@ -202,7 +202,7 @@ def del_abon(request):
@login_required @login_required
@permission_required('abonapp.can_add_ballance') @permission_required('abonapp.can_add_ballance')
@atomic
@transaction.atomic
def abonamount(request, gid, uid): def abonamount(request, gid, uid):
abon = get_object_or_404(models.Abon, pk=uid) abon = get_object_or_404(models.Abon, pk=uid)
try: try:
@ -330,7 +330,7 @@ def abonhome(request, gid, uid):
}) })
@atomic
@transaction.atomic
def terminal_pay(request): def terminal_pay(request):
from .pay_systems import allpay from .pay_systems import allpay
ret_text = allpay(request) ret_text = allpay(request)
@ -376,7 +376,7 @@ def add_invoice(request, gid, uid):
@login_required @login_required
@permission_required('abonapp.can_buy_tariff') @permission_required('abonapp.can_buy_tariff')
@atomic
@transaction.atomic
def pick_tariff(request, gid, uid): def pick_tariff(request, gid, uid):
grp = get_object_or_404(models.AbonGroup, pk=gid) grp = get_object_or_404(models.AbonGroup, pk=gid)
abon = get_object_or_404(models.Abon, pk=uid) 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.decorators import login_required
from django.contrib.auth import authenticate, login, logout from django.contrib.auth import authenticate, login, logout
from django.core.exceptions import PermissionDenied 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.shortcuts import render, redirect, get_object_or_404
from django.contrib import messages from django.contrib import messages
from django.utils.translation import ugettext as _ 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.contrib.gis.shortcuts import render_to_text
from django.shortcuts import render, get_object_or_404, redirect from django.shortcuts import render, get_object_or_404, redirect
from django.contrib import messages 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 django.utils.translation import gettext_lazy as _
from abonapp.models import AbonLog, InvoiceForPayment, Abon from abonapp.models import AbonLog, InvoiceForPayment, Abon
@ -42,7 +42,7 @@ def services(request):
@login_required @login_required
@atomic
@transaction.atomic
def buy_service(request, srv_id): def buy_service(request, srv_id):
abon = get_object_or_404(Abon, pk=request.user.pk) abon = get_object_or_404(Abon, pk=request.user.pk)
service = get_object_or_404(Tariff, pk=srv_id) service = get_object_or_404(Tariff, pk=srv_id)
@ -73,7 +73,7 @@ def debts_list(request):
@login_required @login_required
@atomic
@transaction.atomic
def debt_buy(request, d_id): def debt_buy(request, d_id):
debt = get_object_or_404(InvoiceForPayment, id=d_id) debt = get_object_or_404(InvoiceForPayment, id=d_id)
abon = get_object_or_404(Abon, id=request.user.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, ...) # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 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 # Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/ # 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.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware', 'django.middleware.common.CommonMiddleware',

8
docs/dev.md

@ -81,7 +81,7 @@ class EltexSwitch(DLinkDevice):
``` ```
Метод **@description** Просто отображает человекопонятное название вашего устройства в биллинге. Метод **@description** Просто отображает человекопонятное название вашего устройства в биллинге.
Заметьте что строка на английском и заключена в процедуру **_** (это ugettext_lazy, см. в импорте вверху файла), Заметьте что строка на английском и заключена в процедуру **_** (это 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** чаще всего редко изменяется по алгоритму, так что вам, в большенстве случаев, достаточно добавить Метод **@get_ports** чаще всего редко изменяется по алгоритму, так что вам, в большенстве случаев, достаточно добавить
нужные SNMP OID в соответствующие места процедуры. Но вы вольны реализовать ваш метод получения портов нужные SNMP OID в соответствующие места процедуры. Но вы вольны реализовать ваш метод получения портов
@ -133,7 +133,9 @@ def my_custom_pay_system(request):
Для примера это будет выглядеть так: Для примера это будет выглядеть так:
```python ```python
@atomic
from django.db import transaction
@transaction.atomic
def terminal_pay(request): def terminal_pay(request):
from .pay_systems import my_custom_pay_system from .pay_systems import my_custom_pay_system
ret_text = my_custom_pay_system(request) 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 Pillow
telepot telepot

Loading…
Cancel
Save