From 131d2716ecf03e4b060ad2937137ab36c1f2eef7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jordi=20Puiggen=C3=A9?= Date: Fri, 9 Aug 2019 00:23:45 +0200 Subject: [PATCH 1/3] Subscriber adapters for ClientFolder view was not working The custom ClientFolderView is overriding before_render and folder_item functions, but without calling their respective functions from the base class. Thus, subscriber adapters where not considered. --- bika/lims/browser/clientfolder.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bika/lims/browser/clientfolder.py b/bika/lims/browser/clientfolder.py index ffe8e96c51..7bf0ea0e46 100644 --- a/bika/lims/browser/clientfolder.py +++ b/bika/lims/browser/clientfolder.py @@ -132,6 +132,9 @@ def __init__(self, context, request): def before_render(self): """Before template render hook """ + # Call `before_render` from the base class + BikaListingView.before_render(self) + # Render the Add button if the user has the AddClient permission if check_permission(AddClient, self.context): self.context_actions[_("Add")] = { @@ -168,6 +171,11 @@ def folderitem(self, obj, item, index): :return: the dict representation of the item :rtype: dict """ + # Call the folderitem method from the base class + item = BikaListingView.folderitem(self, obj, item, index) + if not item: + return None + # render a link to the defined start page link_url = "{}/{}".format(item["url"], self.landing_page) item["replace"]["title"] = get_link(link_url, item["title"]) From 7be8524588d489f4293bd8775d1ca2658b6b56e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jordi=20Puiggen=C3=A9?= Date: Fri, 9 Aug 2019 00:26:14 +0200 Subject: [PATCH 2/3] Changelog --- CHANGES.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.rst b/CHANGES.rst index f1bef17961..f68f81cdd5 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -19,6 +19,7 @@ Changelog **Fixed** +- #1418 Subscriber adapters not supported in clients listing - #1414 Occasional "OSError: [Errno 24] Too many open files" in frontpage From f2c7190715d73001f92817820881666f77ee1fa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jordi=20Puiggen=C3=A9?= Date: Fri, 9 Aug 2019 16:36:07 +0200 Subject: [PATCH 3/3] Use super and remove unnecessary call to super in folderitem folderitem function is called by the folder_items function from the base class, that is already in charge of calling the function folderitem from subscriber adapters --- bika/lims/browser/clientfolder.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/bika/lims/browser/clientfolder.py b/bika/lims/browser/clientfolder.py index 7bf0ea0e46..43a0acf4ee 100644 --- a/bika/lims/browser/clientfolder.py +++ b/bika/lims/browser/clientfolder.py @@ -133,7 +133,7 @@ def before_render(self): """Before template render hook """ # Call `before_render` from the base class - BikaListingView.before_render(self) + super(ClientFolderContentsView, self).before_render() # Render the Add button if the user has the AddClient permission if check_permission(AddClient, self.context): @@ -171,11 +171,6 @@ def folderitem(self, obj, item, index): :return: the dict representation of the item :rtype: dict """ - # Call the folderitem method from the base class - item = BikaListingView.folderitem(self, obj, item, index) - if not item: - return None - # render a link to the defined start page link_url = "{}/{}".format(item["url"], self.landing_page) item["replace"]["title"] = get_link(link_url, item["title"]) @@ -189,6 +184,7 @@ def folderitem(self, obj, item, index): phone = obj.getPhone() if phone: item["replace"]["Phone"] = get_link("tel:{}".format(phone), phone) + return item