From 6f66bae9465fd64e783c2376dd15c5d9e7d52aa0 Mon Sep 17 00:00:00 2001
From: Romain Courteaud <romain@nexedi.com>
Date: Wed, 14 Mar 2018 16:59:53 +0100
Subject: [PATCH] PreferenceTool: do not return the default _marker

---
 product/ERP5Form/PreferenceTool.py        | 2 ++
 product/ERP5Form/tests/testPreferences.py | 1 +
 2 files changed, 3 insertions(+)

diff --git a/product/ERP5Form/PreferenceTool.py b/product/ERP5Form/PreferenceTool.py
index 50575a8d77..f08bd7b87c 100644
--- a/product/ERP5Form/PreferenceTool.py
+++ b/product/ERP5Form/PreferenceTool.py
@@ -130,6 +130,8 @@ class PreferenceTool(BaseTool):
     method = getattr(self, 'get%s' % convertToUpperCase(pref_name), None)
     if method is not None:
       return method(default)
+    if default is _marker:
+      return None
     return default
 
   security.declareProtected(Permissions.ModifyPortalContent, "setPreference")
diff --git a/product/ERP5Form/tests/testPreferences.py b/product/ERP5Form/tests/testPreferences.py
index c6bf912e12..8b8f18b316 100644
--- a/product/ERP5Form/tests/testPreferences.py
+++ b/product/ERP5Form/tests/testPreferences.py
@@ -225,6 +225,7 @@ class TestPreferences(PropertySheetTestCase):
       'preferred_accounting_transaction_simulation_state_list')),
       list(group.getPreferredAccountingTransactionSimulationStateList()))
 
+    self.assertEqual(None, pref_tool.getPreference('this_does_not_exists'))
     self.assertEqual('default', pref_tool.getPreference(
                                         'this_does_not_exists', 'default'))
 
-- 
2.30.9