From 385c4c301f15cc3c7dc5157313e6ac8923a24e57 Mon Sep 17 00:00:00 2001
From: Nicolas Wavrant <nicolas.wavrant@nexedi.com>
Date: Mon, 7 May 2018 11:02:04 +0200
Subject: [PATCH] Category: use new preference about whitespace to indent
 category item list

---
 product/CMFCategory/Category.py              |  5 ++++-
 product/CMFCategory/tests/testCMFCategory.py | 10 ++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/product/CMFCategory/Category.py b/product/CMFCategory/Category.py
index ec124db8d5..681ccee964 100644
--- a/product/CMFCategory/Category.py
+++ b/product/CMFCategory/Category.py
@@ -217,7 +217,10 @@ class Category(Folder):
       logical_title_list = []
 
       if path_len >= 2:
-        logical_title_list.append(NBSP_UTF8 * 4 * (path_len - 1))
+        logical_title_list.append(
+          NBSP_UTF8 * \
+          self.portal_preferences.getPreferredWhitespaceNumberForChildItemIndentation(4) * \
+          (path_len - 1))
 
       logical_title = getattr(self, item_method)()
       if logical_title in [None, '']:
diff --git a/product/CMFCategory/tests/testCMFCategory.py b/product/CMFCategory/tests/testCMFCategory.py
index c0685f0605..7ac91f3a85 100644
--- a/product/CMFCategory/tests/testCMFCategory.py
+++ b/product/CMFCategory/tests/testCMFCategory.py
@@ -30,6 +30,7 @@ from collections import deque
 import unittest
 
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
+from Products.CMFCategory.Category import NBSP_UTF8
 from Testing.ZopeTestCase.PortalTestCase import PortalTestCase
 from AccessControl.SecurityManagement import newSecurityManager
 from AccessControl.SecurityManagement import noSecurityManager
@@ -731,6 +732,15 @@ class TestCMFCategory(ERP5TypeTestCase):
                           strict_membership=1,
                           portal_type='Organisation')], [organisation])
 
+  def test_20_CategoryChildIndentedTitle(self):
+    base_cat = self.getCategoryTool().newContent(portal_type='Base Category')
+    cat = base_cat.newContent(portal_type='Category',
+                              id='the_id', title='The Title')
+    sub_cat = cat.newContent(portal_type='Category',
+                             id='the_sub_id', title='The Sub Title')
+    whitespace_number = self.portal.portal_preferences.getPreferredWhitespaceNumberForChildItemIndentation()
+    self.assertEqual(NBSP_UTF8 * whitespace_number + 'The Sub Title', sub_cat.getIndentedTitle())
+
   def test_20_CategoryChildTitleAndIdItemList(self):
     """Tests getCategoryChildTitleAndIdItemList."""
     base_cat = self.getCategoryTool().newContent(portal_type='Base Category')
-- 
2.30.9