From 15347ad5f6e0c15e4674b7ab7ab9e010de44b823 Mon Sep 17 00:00:00 2001 From: Thomas NOEL Date: Mon, 31 Aug 2015 17:00:19 +0200 Subject: [PATCH 1/2] remove inefficient json.loads(json.dumps()) in listing API --- wcs/backoffice/management.py | 2 +- wcs/formdata.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/wcs/backoffice/management.py b/wcs/backoffice/management.py index f9bb0db..6ba08bf 100644 --- a/wcs/backoffice/management.py +++ b/wcs/backoffice/management.py @@ -865,7 +865,7 @@ class FormPage(Directory): selected_filter, user=user, query=query, criterias=criterias, order_by=order_by) if get_request().form.get('full') == 'on': - output = [json.loads(filled.export_to_json(include_files=False)) for filled in items] + output = [filled.get_json_export_dict(include_files=False) for filled in items] else: output = [{'id': filled.id, 'url': filled.get_url(), diff --git a/wcs/formdata.py b/wcs/formdata.py index 1a7d0bb..02a6c0a 100644 --- a/wcs/formdata.py +++ b/wcs/formdata.py @@ -545,7 +545,7 @@ class FormData(StorableObject): evo.parts = None self.store() - def export_to_json(self, include_files=True): + def get_json_export_dict(self, include_files=True): data = {} data['id'] = '%s/%s' % (self.formdef.url_name, self.id) data['display_id'] = self.get_display_id() @@ -581,6 +581,10 @@ class FormData(StorableObject): if self.workflow_data: data['workflow']['data'] = self.workflow_data + return data + + def export_to_json(self, include_files=True): + data = self.get_json_export_dict(include_files=include_files) return json.dumps(data, cls=qommon.misc.JSONEncoder, encoding=get_publisher().site_charset) -- 2.5.0