From df164b5d4deddac0351de5958e70a22c34deed75 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Apr 07 2016 07:29:59 +0000 Subject: [view] Nicer handling of url args --- diff --git a/koschei/views.py b/koschei/views.py index ab36758..c2f2a44 100644 --- a/koschei/views.py +++ b/koschei/views.py @@ -36,7 +36,7 @@ def create_backend(): 'secondary': koji_session}) -def page_args(**kwargs): +def page_args(clear=False, **kwargs): def proc_order(order): new_order = [] for item in order: @@ -46,10 +46,15 @@ def page_args(**kwargs): return ','.join(new_order) if 'order_by' in kwargs: kwargs['order_by'] = proc_order(kwargs['order_by']) + if kwargs.get('collection') == g.default_collection.name: + kwargs.pop('collection') # the supposedly unnecessary call to items() is needed - args = {k: v for k, v in dict(request.args.items(), **kwargs).items() - if v is not None} - return urllib.urlencode(args) + unfiltered = kwargs if clear else dict(request.args.items(), **kwargs) + args = {k: v for k, v in unfiltered.items() if v is not None} + encoded = urllib.urlencode(args).replace('...', "' + this.value + '") + if encoded: + return '?' + encoded + return '' def format_evr(epoch, version, release): @@ -228,6 +233,7 @@ def get_collections(): .all() if not g.collections: abort(500, "No collections setup") + g.default_collection = g.collections[0] if collection_name: for collection in g.collections: if collection.name == collection_name: @@ -236,7 +242,7 @@ def get_collections(): else: abort(404, "Collection not found") else: - g.current_collection = g.collections[0] + g.current_collection = g.default_collection @app.route('/') diff --git a/templates/base.html b/templates/base.html index dd23605..ea746bc 100644 --- a/templates/base.html +++ b/templates/base.html @@ -88,9 +88,9 @@
+