diff --git a/abonapp/templates/abonapp/group_list.html b/abonapp/templates/abonapp/group_list.html
index d550ec0..082329d 100644
--- a/abonapp/templates/abonapp/group_list.html
+++ b/abonapp/templates/abonapp/group_list.html
@@ -1,5 +1,6 @@
{% extends 'base.html' %}
{% load i18n %}
+{% load dpagination %}
{% block main %}
@@ -17,7 +18,7 @@
| # |
-
+
{% trans 'Group title' %}
{% if order_by == 'title' %}{% endif %}
diff --git a/abonapp/templates/abonapp/peoples.html b/abonapp/templates/abonapp/peoples.html
index 93e8e46..8e38f16 100644
--- a/abonapp/templates/abonapp/peoples.html
+++ b/abonapp/templates/abonapp/peoples.html
@@ -23,32 +23,32 @@
|
| # |
-
+
{% trans 'Sub' %}
{% if order_by == 'username' %}{% endif %}
|
{% trans 'Last traffic' %} |
-
+
{% trans 'Ip address' %}
{% if order_by == 'ip_address' %}{% endif %}
|
-
+
{% trans 'fio' %}
{% if order_by == 'fio' %}{% endif %}
|
-
+
{% trans 'Street' %}
{% if order_by == 'street' %}{% endif %}
|
-
+
{% trans 'Apartment' %}
{% if order_by == 'house' %}{% endif %}
@@ -56,7 +56,7 @@
| {% trans 'Telephone' %} |
{% trans 'Service' %} |
-
+
{% trans 'Balance' %}
{% if order_by == 'ballance' %}{% endif %}
diff --git a/abonapp/templatetags/__init__.py b/abonapp/templatetags/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/abonapp/views.py b/abonapp/views.py
index 4dc5db4..44cec78 100644
--- a/abonapp/views.py
+++ b/abonapp/views.py
@@ -30,10 +30,10 @@ from guardian.shortcuts import get_objects_for_user, assign_perm
from guardian.decorators import permission_required_or_403 as permission_required
from djing import ping
from djing import lib
-from djing.global_base_views import OrderingMixin, BaseListWithFiltering, SecureApiView
+from djing.global_base_views import OrderedFilteredList, SecureApiView
-class BaseAbonListView(OrderingMixin, BaseListWithFiltering):
+class BaseAbonListView(OrderedFilteredList):
paginate_by = getattr(settings, 'PAGINATION_ITEMS_PER_PAGE', 10)
http_method_names = ('get',)
diff --git a/devapp/templates/devapp/devices.html b/devapp/templates/devapp/devices.html
index eeaee62..50ab582 100644
--- a/devapp/templates/devapp/devices.html
+++ b/devapp/templates/devapp/devices.html
@@ -18,20 +18,20 @@
|
| # |
-
+
{% trans 'Ip address' %}
{% if order_by == 'ip_address' %}{% endif %}
|
-
+
{% trans 'Comment' %}
{% if order_by == 'comment' %}{% endif %}
|
{% trans 'Mac address' %} |
-
+
{% trans 'Device type' %}
{% if order_by == 'devtype' %}{% endif %}
diff --git a/devapp/templates/devapp/devices_null_group.html b/devapp/templates/devapp/devices_null_group.html
index 3eeaaf0..bca1bef 100644
--- a/devapp/templates/devapp/devices_null_group.html
+++ b/devapp/templates/devapp/devices_null_group.html
@@ -1,5 +1,6 @@
{% extends request.is_ajax|yesno:'bajax.html,base.html' %}
{% load i18n %}
+{% load dpagination %}
{% block main %}
@@ -16,19 +17,19 @@
|
-
+
{% trans 'Ip address' %}
{% if order_by == 'ip_address' %}{% endif %}
|
-
+
{% trans 'Comment' %}
{% if order_by == 'comment' %}{% endif %}
|
-
+
{% trans 'Device type' %}
{% if order_by == 'devtype' %}{% endif %}
diff --git a/devapp/views.py b/devapp/views.py
index 289c3e0..46e5a1d 100644
--- a/devapp/views.py
+++ b/devapp/views.py
@@ -30,13 +30,8 @@ from .models import Device, Port, DeviceDBException, DeviceMonitoringException
from .forms import DeviceForm, PortForm, DeviceExtraDataForm
-class BaseDeviceListView(global_base_views.BaseListWithFiltering):
- http_method_names = ('get',)
- paginate_by = getattr(settings, 'PAGINATION_ITEMS_PER_PAGE', 10)
-
-
@method_decorator((login_required, only_admins), name='dispatch')
-class DevicesListView(global_base_views.OrderingMixin, BaseDeviceListView):
+class DevicesListView(global_base_views.OrderedFilteredList):
context_object_name = 'devices'
template_name = 'devapp/devices.html'
@@ -63,7 +58,7 @@ class DevicesListView(global_base_views.OrderingMixin, BaseDeviceListView):
@method_decorator((login_required, only_admins), name='dispatch')
-class DevicesWithoutGroupsListView(global_base_views.OrderingMixin, BaseDeviceListView):
+class DevicesWithoutGroupsListView(global_base_views.OrderedFilteredList):
context_object_name = 'devices'
template_name = 'devapp/devices_null_group.html'
queryset = Device.objects.filter(group=None).only('comment', 'devtype', 'pk', 'ip_address')
@@ -516,7 +511,7 @@ def toggle_port(request, device_id: int, portid: int, status=0):
@method_decorator((login_required, only_admins), name='dispatch')
-class GroupsListView(BaseDeviceListView):
+class GroupsListView(global_base_views.OrderedFilteredList):
context_object_name = 'groups'
template_name = 'devapp/group_list.html'
model = Group
diff --git a/djing/global_base_views.py b/djing/global_base_views.py
index 6896bf9..ae4878e 100644
--- a/djing/global_base_views.py
+++ b/djing/global_base_views.py
@@ -80,14 +80,6 @@ class OrderingMixin(object):
def get_context_data(self, **kwargs):
context = super(OrderingMixin, self).get_context_data(**kwargs)
context['order_by'] = self.request.GET.get('order_by')
- direction = self.request.GET.get('dir')
- if direction == 'down':
- direction = 'up'
- elif direction == 'up':
- direction = 'down'
- else:
- direction = ''
- context['dir'] = direction
return context
def get_ordering(self):
@@ -147,3 +139,7 @@ class BaseListWithFiltering(RedirectWhenErrorMixin, ListView):
'page_number': page_number,
'message': str(e)
})
+
+
+class OrderedFilteredList(OrderingMixin, BaseListWithFiltering):
+ paginate_by = getattr(settings, 'PAGINATION_ITEMS_PER_PAGE', 10)
diff --git a/djing/settings.py b/djing/settings.py
index d8bbed9..02a8a5e 100644
--- a/djing/settings.py
+++ b/djing/settings.py
@@ -89,6 +89,7 @@ TEMPLATES = [
],
'libraries': {
'globaltags': 'djing.templatetags.globaltags',
+ 'dpagination': 'djing.templatetags.dpagination'
}
},
},
diff --git a/abonapp/templatetags/dpagination.py b/djing/templatetags/dpagination.py
similarity index 51%
rename from abonapp/templatetags/dpagination.py
rename to djing/templatetags/dpagination.py
index e8232c7..2490c94 100644
--- a/abonapp/templatetags/dpagination.py
+++ b/djing/templatetags/dpagination.py
@@ -11,8 +11,18 @@ def url_page_replace(request, field, value):
@register.simple_tag
-def url_replace(request, *args, **kwargs):
+def url_order_by(request, **kwargs):
dict_ = request.GET.copy()
for k, v in kwargs.items():
dict_[k] = v
+ direction = dict_.get('dir')
+ if direction is None:
+ direction = dict_.get('default_direction', 'up')
+ if direction == 'down':
+ direction = 'up'
+ elif direction == 'up':
+ direction = 'down'
+ else:
+ direction = ''
+ dict_['dir'] = direction
return dict_.urlencode()
diff --git a/group_app/templates/group_app/group_list.html b/group_app/templates/group_app/group_list.html
index cc86158..8327014 100644
--- a/group_app/templates/group_app/group_list.html
+++ b/group_app/templates/group_app/group_list.html
@@ -1,5 +1,6 @@
{% extends 'base.html' %}
{% load i18n %}
+{% load dpagination %}
{% block main %}
@@ -18,7 +19,7 @@
| # |
{% trans 'TeCo' %} |
-
+
{% trans 'Title' %}
{% if order_by == 'title' %}{% endif %}
diff --git a/group_app/views.py b/group_app/views.py
index ebeb28d..5aaa5de 100644
--- a/group_app/views.py
+++ b/group_app/views.py
@@ -1,6 +1,6 @@
from django.db.models import Count
from django.http import HttpResponseRedirect
-from django.views.generic import ListView, UpdateView, CreateView, DeleteView
+from django.views.generic import UpdateView, CreateView, DeleteView
from django.contrib.auth.decorators import login_required
from django.utils.translation import gettext_lazy as _
from django.utils.decorators import method_decorator
@@ -8,12 +8,14 @@ from django.urls import reverse_lazy
from django.contrib import messages
from django.conf import settings
from guardian.decorators import permission_required_or_403 as permission_required
+
+from djing.global_base_views import OrderedFilteredList
from . import models
from . import forms
@method_decorator(login_required, name='dispatch')
-class GroupListView(ListView):
+class GroupListView(OrderedFilteredList):
http_method_names = ('get',)
paginate_by = getattr(settings, 'PAGINATION_ITEMS_PER_PAGE', 10)
template_name = 'group_app/group_list.html'
diff --git a/tariff_app/templates/tariff_app/tarifs.html b/tariff_app/templates/tariff_app/tarifs.html
index 9512271..6201187 100644
--- a/tariff_app/templates/tariff_app/tarifs.html
+++ b/tariff_app/templates/tariff_app/tarifs.html
@@ -1,5 +1,6 @@
{% extends request.is_ajax|yesno:'nullcont.htm,tariff_app/ext.html' %}
{% load i18n %}
+{% load dpagination %}
{% block content %}
@@ -7,25 +8,25 @@
|
-
+
{% trans 'tariff' %}
{% if order_by == 'title' %}{% endif %}
|
-
+
{% trans 'Speed In' %}
{% if order_by == 'speedIn' %}{% endif %}
|
-
+
{% trans 'Speed Out' %}
{% if order_by == 'speedOut' %}{% endif %}
|
-
+
{% trans 'Price' %}
{% if order_by == 'amount' %}{% endif %}
diff --git a/tariff_app/views.py b/tariff_app/views.py
index 13e5aaa..c9dd800 100644
--- a/tariff_app/views.py
+++ b/tariff_app/views.py
@@ -1,28 +1,21 @@
from django.contrib.auth.decorators import login_required
-from django.contrib.gis.shortcuts import render_to_text
from django.urls import reverse_lazy
from django.utils.decorators import method_decorator
from django.utils.translation import ugettext as _
from django.shortcuts import render, get_object_or_404, redirect
from django.contrib import messages
from django.core.exceptions import PermissionDenied
-from django.views.generic import ListView, DeleteView
-from django.conf import settings
+from django.views.generic import DeleteView
from guardian.decorators import permission_required_or_403 as permission_required
-from djing.global_base_views import OrderingMixin
+from djing.global_base_views import OrderedFilteredList
from .models import Tariff, PeriodicPay
from djing import lib
from . import forms
-class BaseServiceListView(ListView):
- http_method_names = ('get',)
- paginate_by = getattr(settings, 'PAGINATION_ITEMS_PER_PAGE', 10)
-
-
@method_decorator((login_required, lib.decorators.only_admins), name='dispatch')
-class TariffsListView(BaseServiceListView, OrderingMixin):
+class TariffsListView(OrderedFilteredList):
"""
Show Services(Tariffs) list
"""
@@ -80,7 +73,7 @@ class TariffDeleteView(DeleteView):
@method_decorator(login_required, name='dispatch')
@method_decorator(permission_required('tariff_app.delete_tariff'), name='dispatch')
-class PeriodicPaysListView(BaseServiceListView):
+class PeriodicPaysListView(OrderedFilteredList):
context_object_name = 'pays'
model = PeriodicPay
template_name = 'tariff_app/periodic_pays/list.html'
| | | |