diff --git a/abonapp/locale/ru/LC_MESSAGES/django.po b/abonapp/locale/ru/LC_MESSAGES/django.po index e8625dc..e7ac629 100644 --- a/abonapp/locale/ru/LC_MESSAGES/django.po +++ b/abonapp/locale/ru/LC_MESSAGES/django.po @@ -207,8 +207,8 @@ msgid "Buy service default log" msgstr "Покупка тарифного плана через админку" #: models.py:233 -msgid "Account has no one ips" -msgstr "Учётная запись не имеет ни одного ip адреса" +msgid "Account has no one active ips" +msgstr "Учётная запись не имеет ни одного активного ip адреса" #: models.py:257 msgid "Pasport serial" diff --git a/abonapp/models.py b/abonapp/models.py index 17b1aef..46fedd0 100644 --- a/abonapp/models.py +++ b/abonapp/models.py @@ -225,13 +225,12 @@ class Abon(BaseAccount): agent_trf = TariffStruct(trf.id, trf.speedIn, trf.speedOut) if len(abon_addresses) > 0: return AbonStruct(self.pk, abon_addresses, agent_trf, self.is_access()) + raise LogicError(_('You have not any active leases')) def sync_with_nas(self, created: bool) -> Optional[Exception]: agent_abon = self.build_agent_struct() - if agent_abon is None: - return - if len(agent_abon.ips) < 1: - return _('Account has no one ips') + if agent_abon is None or len(agent_abon.ips) < 1: + return _('Account has no one active ips') try: tm = Transmitter() if created: diff --git a/abonapp/views.py b/abonapp/views.py index 6d6b548..9682887 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -1102,20 +1102,21 @@ def user_session_toggle(request, gid, uname, lease_id, action=None): abon = get_object_or_404(models.Abon, username=uname) lease = abon.ip_addresses.get(pk=lease_id) tm = Transmitter() - abon_nas_obj = abon.build_agent_struct() try: if action == 'free': - if abon.ip_addresses.filter(is_active=True).count() > 1: + try: + abon_nas_obj = abon.build_agent_struct() tm.lease_free(abon_nas_obj, ip_address(lease.ip)) - lease.free() messages.success(request, _('Ip lease has been freed')) - else: + lease.free() + except lib.LogicError: messages.error(request, _('You cannot disable last session')) elif action == 'start': - tm.lease_start(abon_nas_obj, ip_address(lease.ip)) lease.start() + abon_nas_obj = abon.build_agent_struct() + tm.lease_start(abon_nas_obj, ip_address(lease.ip)) messages.success(request, _('Ip lease has been started')) - except NasFailedResult as e: + except (NasFailedResult, lib.LogicError) as e: messages.error(request, e) return redirect('abonapp:abon_home', gid, uname) diff --git a/accounts_app/templates/accounts/login.html b/accounts_app/templates/accounts/login.html index 8555d35..44a8400 100644 --- a/accounts_app/templates/accounts/login.html +++ b/accounts_app/templates/accounts/login.html @@ -1,4 +1,4 @@ -{% load i18n %} +{% load i18n %}{% load acc_tags %}
@@ -15,10 +15,10 @@ margin: 10% auto; position: relative; } - footer{ + footer{ position: absolute; bottom: 0; - } + } @@ -51,13 +51,16 @@ -