diff --git a/CHANGES.rst b/CHANGES.rst index 271fe5d77f..21e57c4010 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -28,6 +28,7 @@ Changelog **Fixed** +- #1493 jsonapi.read omits `include_methods` when a single parameter is used - #1494 Fix KeyError in Sample Type Listing - #1477 Sample edit form - some selection widgets empty - #1478 Clients default CC E-Mails missing in Add Sample diff --git a/bika/lims/jsonapi/__init__.py b/bika/lims/jsonapi/__init__.py index a702cc2f53..28a3744e5d 100644 --- a/bika/lims/jsonapi/__init__.py +++ b/bika/lims/jsonapi/__init__.py @@ -25,6 +25,7 @@ import json import Missing +import six import sys, traceback @@ -129,10 +130,15 @@ def load_field_values(instance, include_fields): def get_include_methods(request): """Retrieve include_methods values from the request """ - methods = request.get("include_methods", "") - include_methods = [ - x.strip() for x in methods.split(",") if x.strip()] - return include_methods + include_methods = request.get("include_methods[]") + if not include_methods: + include_methods = request.get("include_methods", []) + + if isinstance(include_methods, six.string_types): + include_methods = include_methods.split(",") + include_methods = map(lambda me: me.strip(), include_methods) + + return filter(None, include_methods) def load_method_values(instance, include_methods):