From db2ad52b25b6927bca357ea213b7787795243599 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Sat, 20 Apr 2024 16:39:20 +0200
Subject: [PATCH] administration: py3

---
 .../erp5_administration/Base_cleanupRolesAndUsersTable.py     | 4 +++-
 .../erp5_administration/ERP5Site_dumpPortalSkinsContent.py    | 4 ++--
 .../erp5_administration/ERP5Site_profileContext.py            | 2 +-
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/Base_cleanupRolesAndUsersTable.py b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/Base_cleanupRolesAndUsersTable.py
index 9440924857..9852a3cd25 100644
--- a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/Base_cleanupRolesAndUsersTable.py
+++ b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/Base_cleanupRolesAndUsersTable.py
@@ -3,7 +3,9 @@ security_uid_field_list = [x + ("_" if x != "" else "") + "security_uid" for x i
 security_uid_set_list = []
 for security_uid_field in security_uid_field_list:
   security_uid_set_list.append({getattr(x, security_uid_field) for x in context.z_get_referenced_security_uid_set_for(security_uid_field=security_uid_field)})
-security_uid_set = reduce(lambda p, v: p.union(v), security_uid_set_list)
+security_uid_set = set()
+for s in security_uid_set_list:
+  security_uid_set = security_uid_set.union(s)
 filtered_set = context.Base_filterSecurityUidDict(
   portal.portal_catalog.getSQLCatalog(catalog_id).security_uid_dict,
   security_uid_set
diff --git a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalSkinsContent.py b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalSkinsContent.py
index a9fbfd8629..7462e2a1be 100644
--- a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalSkinsContent.py
+++ b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_dumpPortalSkinsContent.py
@@ -19,12 +19,12 @@ def getSkinHash(skin, skin_container):
   elif skin.meta_type in ('ERP5 Form', ):
     try:
       content = skin.formXML()
-      if isinstance(content, unicode):
+      if not isinstance(content, bytes):
         content = content.encode('utf8', 'repr')
     except AttributeError as e:
       # This can happen with dead proxy fields.
       content = "broken form %s" % e
-    content = 'ignore'
+    content = b'ignore'
   m = hashlib.md5()
   m.update(content)
   content_hash = m.hexdigest()
diff --git a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_profileContext.py b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_profileContext.py
index 5d77e57fe5..e7889d3f86 100644
--- a/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_profileContext.py
+++ b/bt5/erp5_administration/SkinTemplateItem/portal_skins/erp5_administration/ERP5Site_profileContext.py
@@ -47,4 +47,4 @@ else:
 response.setHeader('content-type', content_type)
 response.setHeader('content-disposition', 'attachment; filename="' + filename + '"')
 response.write(data)
-raise Exception('profiling')
+raise RuntimeError('profiling')
\ No newline at end of file
-- 
2.30.9