From c3a15f9f3005da2b8558bb33516be9f02cbd1291 Mon Sep 17 00:00:00 2001 From: Nicholas Staples Date: Wed, 16 Mar 2016 16:47:18 +0000 Subject: [PATCH] Fix pagination bug and swapped file name with original file name. --- app/notifications/rest.py | 24 ++++++++++++++---------- app/schemas.py | 4 ++-- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/app/notifications/rest.py b/app/notifications/rest.py index 594ba5613..1c59df0d8 100644 --- a/app/notifications/rest.py +++ b/app/notifications/rest.py @@ -193,13 +193,12 @@ def get_all_notifications(): return jsonify(result="error", message="Invalid page"), 400 all_notifications = notifications_dao.get_notifications_for_service(api_user['client'], page) - return jsonify( notifications=notification_status_schema.dump(all_notifications.items, many=True).data, links=pagination_links( all_notifications, '.get_all_notifications', - request.args + **request.args.to_dict() ) ), 200 @@ -213,13 +212,14 @@ def get_all_notifications_for_service(service_id): return jsonify(result="error", message="Invalid page"), 400 all_notifications = notifications_dao.get_notifications_for_service(service_id, page) - + kwargs = request.args.to_dict() + kwargs['service_id'] = service_id return jsonify( notifications=notification_status_schema.dump(all_notifications.items, many=True).data, links=pagination_links( all_notifications, '.get_all_notifications_for_service', - request.args + **kwargs ) ), 200 @@ -233,13 +233,15 @@ def get_all_notifications_for_service_job(service_id, job_id): return jsonify(result="error", message="Invalid page"), 400 all_notifications = notifications_dao.get_notifications_for_job(service_id, job_id, page) - + kwargs = request.args.to_dict() + kwargs['service_id'] = service_id + kwargs['job_id'] = job_id return jsonify( notifications=notification_status_schema.dump(all_notifications.items, many=True).data, links=pagination_links( all_notifications, '.get_all_notifications_for_service_job', - request.args + **kwargs ) ), 200 @@ -255,13 +257,15 @@ def get_page_from_request(): return 1 -def pagination_links(pagination, endpoint, args): +def pagination_links(pagination, endpoint, **kwargs): + if 'page' in kwargs: + kwargs.pop('page', None) links = dict() if pagination.has_prev: - links['prev'] = url_for(endpoint, **dict(list(args.items()) + [('page', pagination.prev_num)])) + links['prev'] = url_for(endpoint, page=pagination.prev_num, **kwargs) if pagination.has_next: - links['next'] = url_for(endpoint, **dict(list(args.items()) + [('page', pagination.next_num)])) - links['last'] = url_for(endpoint, **dict(list(args.items()) + [('page', pagination.pages)])) + links['next'] = url_for(endpoint, page=pagination.next_num, **kwargs) + links['last'] = url_for(endpoint, page=pagination.pages, **kwargs) return links diff --git a/app/schemas.py b/app/schemas.py index 932fd1990..575b23ea9 100644 --- a/app/schemas.py +++ b/app/schemas.py @@ -171,8 +171,8 @@ class SmsAdminNotificationSchema(SmsNotificationSchema): class NotificationStatusSchema(BaseSchema): - template = fields.Nested(TemplateSchema, only=["id", "name"], dump_only=True) - job = fields.Nested(JobSchema, only=["id", "file_name"], dump_only=True) + template = fields.Nested(TemplateSchema, only=["id", "name", "template_type"], dump_only=True) + job = fields.Nested(JobSchema, only=["id", "original_file_name"], dump_only=True) class Meta: model = models.Notification