Skip to content

Commit 8d37975

Browse files
author
Lukas
committed
previous values fix
1 parent 47a5b9a commit 8d37975

File tree

6 files changed

+37
-27
lines changed

6 files changed

+37
-27
lines changed

admin_numeric_filter/admin.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@
66

77

88
class SingleNumericFilter(admin.FieldListFilter):
9+
request = None
910
parameter_name = None
1011
template = 'admin/filter_numeric_single.html'
1112

1213
def __init__(self, field, request, params, model, model_admin, field_path):
1314
super().__init__(field, request, params, model, model_admin, field_path)
14-
15+
16+
self.request = request
17+
1518
if self.parameter_name is None:
1619
self.parameter_name = self.field.name
1720

@@ -31,17 +34,21 @@ def expected_parameters(self):
3134

3235
def choices(self, changelist):
3336
return ({
37+
'request': self.request,
3438
'form': SingleNumericForm(name=self.parameter_name, data={self.parameter_name: self.value()}),
3539
}, )
3640

3741

3842
class RangeNumericFilter(admin.FieldListFilter):
43+
request = None
3944
parameter_name = None
4045
template = 'admin/filter_numeric_range.html'
4146

42-
def __init__(self, field, request, params, model, model_admin, field_path):
47+
def __init__(self, field, request, params, model, model_admin, field_path):
4348
super().__init__(field, request, params, model, model_admin, field_path)
44-
49+
50+
self.request = request
51+
4552
if self.parameter_name is None:
4653
self.parameter_name = self.field.name
4754

@@ -78,6 +85,7 @@ def expected_parameters(self):
7885

7986
def choices(self, changelist):
8087
return ({
88+
'request': self.request,
8189
'form': RangeNumericForm(name=self.parameter_name, data={
8290
self.parameter_name + '_from': self.used_parameters.get(self.parameter_name + '_from', None),
8391
self.parameter_name + '_to': self.used_parameters.get(self.parameter_name + '_to', None),
@@ -103,6 +111,7 @@ def choices(self, changelist):
103111
max = self.q.all().aggregate(max=Max(self.parameter_name)).get('max', 0)
104112

105113
return ({
114+
'request': self.request,
106115
'min': min,
107116
'max': max,
108117
'value_from': self.used_parameters.get(self.parameter_name + '_from', min),

admin_numeric_filter/static/js/admin-numeric-filter.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ for (var i = 0; i < sliders.length; i++) {
88
}
99

1010
if (slider) {
11-
var from = parseInt(slider.closest('.admin-numeric-filter-wrapper').querySelectorAll('input')[0].value);
12-
var to = parseInt(slider.closest('.admin-numeric-filter-wrapper').querySelectorAll('input')[1].value);
11+
var from = parseInt(slider.closest('.admin-numeric-filter-wrapper').querySelectorAll('.admin-numeric-filter-wrapper-group input')[0].value);
12+
var to = parseInt(slider.closest('.admin-numeric-filter-wrapper').querySelectorAll('.admin-numeric-filter-wrapper-group input')[1].value);
1313

1414
var min = parseInt(slider.getAttribute('data-min'));
1515
var max = parseInt(slider.getAttribute('data-max'));
@@ -29,8 +29,8 @@ for (var i = 0; i < sliders.length; i++) {
2929

3030
slider.noUiSlider.on('update', function(values, handle) {
3131
var parent = this.target.closest('.admin-numeric-filter-wrapper');
32-
var from = parent.querySelectorAll('input')[0];
33-
var to = parent.querySelectorAll('input')[1];
32+
var from = parent.querySelectorAll('.admin-numeric-filter-wrapper-group input')[0];
33+
var to = parent.querySelectorAll('.admin-numeric-filter-wrapper-group input')[1];
3434

3535
parent.querySelectorAll('.admin-numeric-filter-slider-tooltip-from')[0].innerHTML = values[0];
3636
parent.querySelectorAll('.admin-numeric-filter-slider-tooltip-to')[0].innerHTML = values[1];

admin_numeric_filter/templates/admin/filter_numeric_range.html

+7-7
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
{% with choices.0 as choice %}
44
<form method="get" class="admin-numeric-filter-wrapper">
5-
<h3>{% blocktrans with filter_title=title %} By {{ filter_title }} {% endblocktrans %}</h3>
6-
7-
<div class="admin-numeric-filter-wrapper-group">
8-
{{ choice.form.as_p }}
9-
</div><!-- /.filter-numeric-filter-wrapper-group -->
10-
11-
{% for k, v in choice.get_query.items %}
5+
{% for k, v in choice.request.GET.items %}
126
{% if not k == choice.parameter_name|add:'_from' and not k == choice.parameter_name|add:'_to' %}
137
<input type="hidden" name="{{ k }}" value="{{ v }}">
148
{% endif %}
159
{% endfor %}
1610

11+
<h3>{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
12+
13+
<div class="admin-numeric-filter-wrapper-group">
14+
{{ choice.form.as_p }}
15+
</div><!-- /.filter-numeric-filter-wrapper-group -->
16+
1717
<button type="submit" class="submit">{% trans 'Apply' %}</button>
1818

1919
{{ choice.form.media }}

admin_numeric_filter/templates/admin/filter_numeric_single.html

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
{% with choices.0 as choice %}
44
<form method="get" class="admin-numeric-filter-wrapper">
5-
<h3>{% blocktrans with filter_title=title %} By {{ filter_title }} {% endblocktrans %}</h3>
6-
7-
{{ choice.form.as_p }}
8-
9-
{% for k, v in choice.get_query.items %}
5+
{% for k, v in choice.request.GET.items %}
106
{% if not k == choice.parameter_name %}
117
<input type="hidden" name="{{ k }}" value="{{ v }}">
128
{% endif %}
139
{% endfor %}
1410

11+
<h3>{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
12+
13+
{{ choice.form.as_p }}
14+
1515
<button type="submit" class="submit">{% trans 'Apply' %}</button>
1616
</form>
1717
{% endwith %}

admin_numeric_filter/templates/admin/filter_numeric_slider.html

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
{% load i18n %}
22

33
{% with choices.0 as choice %}
4+
45
<form method="get" class="admin-numeric-filter-wrapper">
5-
<h3>{% blocktrans with filter_title=title %} By {{ filter_title }} {% endblocktrans %}</h3>
6+
{% for k, v in choice.request.GET.items %}
7+
{% if not k == choice.parameter_name|add:'_from' and not k == choice.parameter_name|add:'_to' %}
8+
<input type="hidden" name="{{ k }}" value="{{ v }}">
9+
{% endif %}
10+
{% endfor %}
11+
12+
<h3>{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
613

714
<div class="admin-numeric-filter-slider-tooltips">
815
<span class="admin-numeric-filter-slider-tooltip-from">{{ choice.value_from }}</span>
@@ -16,12 +23,6 @@ <h3>{% blocktrans with filter_title=title %} By {{ filter_title }} {% endblocktr
1623
{{ choice.form.as_p }}
1724
</div><!-- /.filter-numeric-filter-wrapper-group -->
1825

19-
{% for k, v in choice.get_query.items %}
20-
{% if not k == choice.parameter_name|add:'_from' and not k == choice.parameter_name|add:'_to' %}
21-
<input type="hidden" name="{{ k }}" value="{{ v }}">
22-
{% endif %}
23-
{% endfor %}
24-
2526
<button type="submit" class="submit">{% trans 'Apply' %}</button>
2627

2728
{{ choice.form.media }}

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
short_description='Numeric filters for Django admin',
1111
long_description=long_description,
1212
long_description_content_type='text/markdown',
13-
version='0.1.0',
13+
version='0.1.1',
1414
packages=[
1515
'admin_numeric_filter',
1616
],

0 commit comments

Comments
 (0)