diff --git a/abonapp/templates/abonapp/buy_tariff.html b/abonapp/templates/abonapp/buy_tariff.html index 67ed5ba..ecc8d5c 100644 --- a/abonapp/templates/abonapp/buy_tariff.html +++ b/abonapp/templates/abonapp/buy_tariff.html @@ -1,7 +1,7 @@ {% extends request.is_ajax|yesno:'bajax.html,base.html' %} {% load i18n %} -{% block main %} +{% block breadcrumb %} +{% endblock %} - {% include 'message_block.html' %} +{% block page-header %}{% trans 'Pick a service' %}{% endblock %} + +{% block main %}
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 %}