From f29637b05ef38bb8e5908b34ebb854dff8881b29 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 9 Feb 2017 01:54:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D0=BD=D0=B5=D0=BD=D1=82=D0=B0=D0=BC=20=D0=BF?= =?UTF-8?q?=D0=B0=D1=80=D0=BE=D0=BB=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=B8?= =?UTF-8?q?=D1=85=20=D1=83=D1=87=D1=91=D1=82=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abonapp/views.py | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/abonapp/views.py b/abonapp/views.py index f8edac8..c4df487 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -103,9 +103,9 @@ def addabon(request, gid): if request.method == 'POST': frm = forms.AbonForm(request.POST, initial={'group': group}) if frm.is_valid(): - frm.save() + abon = frm.save() messages.success(request, 'Абонент создан') - return redirect('abonapp:people_list', group.id) + return redirect('abonapp:abon_home', group.id, abon.pk) else: messages.error(request, 'Некоторые поля заполнены не правильно, проверте ещё раз') @@ -232,8 +232,9 @@ def abon_services(request, gid, uid): def abonhome(request, gid, uid): abon = get_object_or_404(models.Abon, id=uid) abon_group = get_object_or_404(models.AbonGroup, id=gid) - frm = None + frm, passw = None, None try: + passw = models.AbonRawPassword.objects.get(account=abon).passw_text if request.method == 'POST': if not request.user.has_perm('abonapp.change_abon'): raise PermissionDenied @@ -250,14 +251,14 @@ def abonhome(request, gid, uid): else: messages.warning(request, 'Не правильные значения, проверте поля и попробуйте ещё') else: - frm = forms.AbonForm(instance=abon) + frm = forms.AbonForm(instance=abon, initial={'password': passw}) except IntegrityError as e: messages.error(request, 'Проверте введённые вами значения, скорее всего такой ip уже у кого-то есть. А вообще: %s' % e) - frm = forms.AbonForm(instance=abon) + frm = forms.AbonForm(instance=abon, initial={'password': passw}) except Http404: messages.error(request, 'Ip адрес не найден в списке IP адресов') - frm = forms.AbonForm(instance=abon) + frm = forms.AbonForm(instance=abon, initial={'password': passw}) except NasFailedResult as e: messages.error(request, e) @@ -265,10 +266,12 @@ def abonhome(request, gid, uid): messages.error(request, e) except IpPoolItem.DoesNotExist: messages.error(request, 'Указанный вами ip отсутствует в ip pool') + except models.AbonRawPassword.DoesNotExist: + messages.warning(request, 'Для абонента не задан пароль, он не сможет войти в учётку') if request.user.has_perm('abonapp.change_abon'): return render(request, 'abonapp/editAbon.html', { - 'form': frm or forms.AbonForm(instance=abon), + 'form': frm or forms.AbonForm(instance=abon, initial={'password': passw}), 'abon': abon, 'abon_group': abon_group, 'ip': abon.ip_address @@ -277,7 +280,8 @@ def abonhome(request, gid, uid): return render(request, 'abonapp/viewAbon.html', { 'abon': abon, 'abon_group': abon_group, - 'ip': abon.ip_address + 'ip': abon.ip_address, + 'passw': passw }) @@ -496,11 +500,12 @@ def update_nas(request, group_id): if not usr.ip_address: continue agent_abon = usr.build_agent_struct() - queue = tm.find_queue('uid%d' % usr.pk) - if queue: - tm.update_user(agent_abon, queue.sid) - else: - tm.add_user(agent_abon) + if agent_abon is not None: + queue = tm.find_queue('uid%d' % usr.pk) + if queue: + tm.update_user(agent_abon, queue.sid) + else: + tm.add_user(agent_abon) except NasFailedResult as e: messages.error(request, e) except NasNetworkError as e: