Skip to content

Commit 83b9348

Browse files
committed
v2: redirect to "canonical" shorter filter URL. #318
1 parent 6ca4ae4 commit 83b9348

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/reader/_app/v2/__init__.py

+5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from flask import current_app
66
from flask import redirect
77
from flask import request
8+
from flask import url_for
89
from jinja2_fragments.flask import render_block
910

1011
from .. import get_reader
@@ -26,6 +27,10 @@ def entries():
2627
# TODO: read time
2728

2829
form = EntryFilter(request.args)
30+
31+
if form.args != request.args.to_dict():
32+
return redirect(url_for('.entries', **form.args))
33+
2934
kwargs = dict(form.data)
3035
del kwargs['search']
3136

src/reader/_app/v2/forms.py

+9
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,15 @@ def presets(self):
6565
def active_presets(self):
6666
return [p for p in self.presets if p.active]
6767

68+
@property
69+
def args(self):
70+
rv = {}
71+
for field in self:
72+
value = get_formdata(field)
73+
if value and (not field.default or value != field.default):
74+
rv[field.name] = value
75+
return rv
76+
6877

6978
@dataclass
7079
class Preset:

0 commit comments

Comments
 (0)