diff --git a/src/reader/_app/v2/__init__.py b/src/reader/_app/v2/__init__.py index 2fb999fb..5f4fc8fe 100644 --- a/src/reader/_app/v2/__init__.py +++ b/src/reader/_app/v2/__init__.py @@ -5,6 +5,7 @@ from flask import current_app from flask import redirect from flask import request +from flask import url_for from jinja2_fragments.flask import render_block from .. import get_reader @@ -26,6 +27,10 @@ def entries(): # TODO: read time form = EntryFilter(request.args) + + if form.args != request.args.to_dict(): + return redirect(url_for('.entries', **form.args)) + kwargs = dict(form.data) del kwargs['search'] diff --git a/src/reader/_app/v2/forms.py b/src/reader/_app/v2/forms.py index a91ec1b3..a91a9a0a 100644 --- a/src/reader/_app/v2/forms.py +++ b/src/reader/_app/v2/forms.py @@ -65,6 +65,15 @@ def presets(self): def active_presets(self): return [p for p in self.presets if p.active] + @property + def args(self): + rv = {} + for field in self: + value = get_formdata(field) + if value and (not field.default or value != field.default): + rv[field.name] = value + return rv + @dataclass class Preset: