diff --git a/agent/__init__.py b/agent/__init__.py
index 5e790d0..5f1b1bd 100644
--- a/agent/__init__.py
+++ b/agent/__init__.py
@@ -6,4 +6,5 @@ from .structs import TariffStruct, AbonStruct
# Transmitter мы будем импортировать в других местах
# Тут надо указать какой у нас будет NAS
# т.е. какой класс будет управлять доступом в интернет
+# TODO: Transmitter can be lazy init
Transmitter = MikrotikTransmitter
diff --git a/agent/core.py b/agent/core.py
index 3505597..81db91f 100644
--- a/agent/core.py
+++ b/agent/core.py
@@ -82,7 +82,7 @@ class BaseTransmitter(metaclass=ABCMeta):
:param users_from_db: QuerySet of all subscribers that can have service
:return: Tuple of 2 lists that contain list to add users and list to remove users
"""
- users_struct_list = [ab.build_agent_struct() for ab in users_from_db if ab.is_access()]
+ users_struct_list = (ab.build_agent_struct() for ab in users_from_db if ab.is_access())
users_struct_set = set([ab for ab in users_struct_list if ab is not None and ab.tariff is not None])
users_from_nas = set(self.read_users())
list_for_del = (users_struct_set ^ users_from_nas) - users_struct_set
diff --git a/djing/global_base_views.py b/djing/global_base_views.py
index 958fa36..7d38b6e 100644
--- a/djing/global_base_views.py
+++ b/djing/global_base_views.py
@@ -1,3 +1,4 @@
+from ipaddress import ip_address, ip_network
from json import dumps
from django.utils.decorators import method_decorator
@@ -6,7 +7,6 @@ from django.http.response import HttpResponseForbidden, Http404, HttpResponseRed
from django.utils.translation import gettext_lazy as _
from django.conf import settings
from django.views.generic import ListView
-from netaddr import IPNetwork, IPAddress
from django.core.paginator import InvalidPage, EmptyPage
from djing.lib.decorators import hash_auth_view
@@ -50,17 +50,17 @@ class AllowedSubnetMixin(object):
Check if user ip in allowed subnet.
Return 403 denied otherwise.
"""
- ip = IPAddress(request.META.get('REMOTE_ADDR'))
+ ip = ip_address(request.META.get('REMOTE_ADDR'))
api_auth_subnet = getattr(settings, 'API_AUTH_SUBNET')
if type(api_auth_subnet) is str:
- if ip in IPNetwork(api_auth_subnet):
+ if ip in ip_network(api_auth_subnet):
return super(AllowedSubnetMixin, self).dispatch(request, *args, **kwargs)
try:
for subnet in api_auth_subnet:
- if ip in IPNetwork(subnet):
+ if ip in ip_network(subnet):
return super(AllowedSubnetMixin, self).dispatch(request, *args, **kwargs)
except TypeError:
- if ip in IPNetwork(str(api_auth_subnet)):
+ if ip in ip_network(str(api_auth_subnet)):
return super(AllowedSubnetMixin, self).dispatch(request, *args, **kwargs)
return HttpResponseForbidden('Access Denied')
diff --git a/ip_pool/views.py b/ip_pool/views.py
index a2beb04..3b2cba2 100644
--- a/ip_pool/views.py
+++ b/ip_pool/views.py
@@ -39,9 +39,9 @@ class NetworkUpdateView(UpdateView):
@method_decorator(login_required, name='dispatch')
-class IpEmployedListView(BaseOrderedFilteringList):
- template_name = 'ip_pool/employed_ip_list.html'
- model = models.EmployedIpModel
+class IpLeasesListView(BaseOrderedFilteringList):
+ template_name = 'ip_pool/ip_leases_list.html'
+ model = models.IpLeaseModel
def get_context_data(self, **kwargs):
net_id = self.kwargs.get('net_id')
diff --git a/searchapp/templates/searchapp/index.html b/searchapp/templates/searchapp/index.html
index 9038947..d51a5ae 100644
--- a/searchapp/templates/searchapp/index.html
+++ b/searchapp/templates/searchapp/index.html
@@ -8,6 +8,7 @@
{% endblock %}
+{% block page-header %}{% trans 'Search' %}{% endblock %}
{% block main %}