From 4da92f170a89ebc0f8b995ce60439e684c558192 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Wed, 13 Apr 2016 12:47:24 +0100 Subject: [PATCH] Properly parse comma-separated query string params --- app/main/views/jobs.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/main/views/jobs.py b/app/main/views/jobs.py index 032653432..5eb4a44fb 100644 --- a/app/main/views/jobs.py +++ b/app/main/views/jobs.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import time +import itertools from flask import ( render_template, @@ -26,14 +27,18 @@ from app.utils import ( def _parse_filter_args(filter_dict): + if not isinstance(filter_dict, MultiDict): filter_dict = MultiDict(filter_dict) - out_dict = MultiDict() - if 'type' in filter_dict: - out_dict.setlist('template_type', filter_dict.getlist('type')) - if 'status' in filter_dict: - out_dict.setlist('status', filter_dict.getlist('status')) - return out_dict + + return MultiDict( + ( + key, + (','.join(filter_dict.getlist(key))).split(',') + ) + for key in filter_dict.keys() + if ''.join(filter_dict.getlist(key)) + ) @main.route("/services//jobs") @@ -144,7 +149,8 @@ def view_notifications(service_id): notifications=notifications['notifications'], page=page, prev_page=prev_page, - next_page=next_page + next_page=next_page, + request_args=request.args )