Browse Source

Добавил возможность указывать статичный ip для абонента

devel
Dmitry 9 years ago
parent
commit
f0a47e9c12
  1. 24
      abonapp/views.py

24
abonapp/views.py

@ -15,6 +15,7 @@ from tariff_app.models import Tariff
from agent import NasFailedResult, AbonStruct, Transmitter, TariffStruct, NasNetworkError from agent import NasFailedResult, AbonStruct, Transmitter, TariffStruct, NasNetworkError
from . import forms from . import forms
from . import models from . import models
from ip_pool.models import IpPoolItem
import mydefs import mydefs
@ -85,6 +86,7 @@ def delgroup(request):
try: try:
agd = mydefs.safe_int(request.GET.get('id')) agd = mydefs.safe_int(request.GET.get('id'))
get_object_or_404(models.AbonGroup, id=agd).delete() get_object_or_404(models.AbonGroup, id=agd).delete()
messages.success(request, 'Группа успешно удалена')
return mydefs.res_success(request, 'abonapp:group_list') return mydefs.res_success(request, 'abonapp:group_list')
except NasFailedResult as e: except NasFailedResult as e:
messages.error(request, e) messages.error(request, e)
@ -104,6 +106,7 @@ def addabon(request, gid):
frm = forms.AbonForm(request.POST, initial={'group': group}) frm = forms.AbonForm(request.POST, initial={'group': group})
if frm.is_valid(): if frm.is_valid():
frm.save() frm.save()
messages.success(request, 'Абонент создан')
return redirect('abonapp:people_list', group.id) return redirect('abonapp:people_list', group.id)
else: else:
messages.error(request, 'Некоторые поля заполнены не правильно, проверте ещё раз') messages.error(request, 'Некоторые поля заполнены не правильно, проверте ещё раз')
@ -135,7 +138,6 @@ def addabon(request, gid):
def delentity(request): def delentity(request):
typ = request.GET.get('t') typ = request.GET.get('t')
uid = request.GET.get('id') uid = request.GET.get('id')
try: try:
if typ == 'a': if typ == 'a':
if not request.user.has_perm('abonapp.delete_abon'): if not request.user.has_perm('abonapp.delete_abon'):
@ -233,15 +235,16 @@ def abonhome(request, gid, uid):
abon = get_object_or_404(models.Abon, id=uid) abon = get_object_or_404(models.Abon, id=uid)
abon_group = get_object_or_404(models.AbonGroup, id=gid) abon_group = get_object_or_404(models.AbonGroup, id=gid)
frm = None frm = None
try: try:
if request.method == 'POST': if request.method == 'POST':
frm = forms.AbonForm(request.POST, instance=abon) frm = forms.AbonForm(request.POST, instance=abon)
if frm.is_valid(): if frm.is_valid():
abon.save()
ip_str = request.POST.get('ip')
ip = IpPoolItem.objects.get(ip=ip_str)
print('Ip:', ip)
abon.ip_address = ip
frm.save()
messages.success(request, 'Абонент успешно сохранён') messages.success(request, 'Абонент успешно сохранён')
# return redirect('abonapp:abon_home', gid, uid)
else: else:
messages.warning(request, 'Не правильные значения, проверте поля и попробуйте ещё') messages.warning(request, 'Не правильные значения, проверте поля и попробуйте ещё')
else: else:
@ -258,11 +261,14 @@ def abonhome(request, gid, uid):
messages.error(request, e) messages.error(request, e)
except NasNetworkError as e: except NasNetworkError as e:
messages.error(request, e) messages.error(request, e)
except IpPoolItem.DoesNotExist:
messages.error(request, 'Указанный вами ip отсутствует в ip pool')
return render(request, 'abonapp/editAbon.html', { return render(request, 'abonapp/editAbon.html', {
'form': frm or forms.AbonForm(instance=abon), 'form': frm or forms.AbonForm(instance=abon),
'abon': abon, 'abon': abon,
'abon_group': abon_group
'abon_group': abon_group,
'ip': abon.ip_address
}) })
@ -301,6 +307,7 @@ def add_invoice(request, gid, uid):
newinv.author = request.user newinv.author = request.user
newinv.save() newinv.save()
messages.success(request, 'Необходимый платёж создан')
return redirect('abonapp:abon_home', gid=gid, uid=uid) return redirect('abonapp:abon_home', gid=gid, uid=uid)
except NasNetworkError as e: except NasNetworkError as e:
@ -327,6 +334,7 @@ def buy_tariff(request, gid, uid):
cd = frm.cleaned_data cd = frm.cleaned_data
abon.buy_tariff(cd['tariff'], request.user) abon.buy_tariff(cd['tariff'], request.user)
abon.save() abon.save()
messages.success(request, 'Тариф успешно выбран')
return redirect('abonapp:abon_services', gid=gid, uid=abon.id) return redirect('abonapp:abon_services', gid=gid, uid=abon.id)
else: else:
messages.error(request, 'Что-то не так при покупке услуги, проверьте и попробуйте ещё') messages.error(request, 'Что-то не так при покупке услуги, проверьте и попробуйте ещё')
@ -415,9 +423,10 @@ def activate_service(request, gid, uid, srvid):
try: try:
if request.method == 'POST': if request.method == 'POST':
if request.POST.get('finish_confirm') != 'yes': if request.POST.get('finish_confirm') != 'yes':
return HttpResponse('<h1>Request not confirmed</h1>')
return HttpResponse('<h1>Запрос не подтверждён</h1>')
abtar.activate(request.user) abtar.activate(request.user)
messages.success(request, 'Услуга активирована')
return redirect('abonapp:abon_home', gid, uid) return redirect('abonapp:abon_home', gid, uid)
except NasFailedResult as e: except NasFailedResult as e:
@ -440,6 +449,7 @@ def activate_service(request, gid, uid, srvid):
def unsubscribe_service(request, gid, uid, srvid): def unsubscribe_service(request, gid, uid, srvid):
try: try:
get_object_or_404(models.AbonTariff, id=int(srvid)).delete() get_object_or_404(models.AbonTariff, id=int(srvid)).delete()
messages.success(request, 'Абонент отвязан от услуги')
except NasFailedResult as e: except NasFailedResult as e:
messages.error(request, e) messages.error(request, e)
except NasNetworkError as e: except NasNetworkError as e:

Loading…
Cancel
Save