Commit fd340567 authored by Julien Muchembled's avatar Julien Muchembled

BT: simplify some code related to RegisteredSkinSelectionTemplateItem

parent 88552f9f
...@@ -279,21 +279,15 @@ def createSkinSelection(skin_tool, skin_name): ...@@ -279,21 +279,15 @@ def createSkinSelection(skin_tool, skin_name):
def deleteSkinSelection(skin_tool, skin_name): def deleteSkinSelection(skin_tool, skin_name):
# Do not delete default skin # Do not delete default skin
if skin_tool.getDefaultSkin() != skin_name: if skin_tool.getDefaultSkin() != skin_name:
skin_selection_registered = False
for skin_folder in skin_tool.objectValues(): for skin_folder in skin_tool.objectValues():
try: try:
skin_selection_list = skin_folder.getProperty( if skin_name in skin_folder.getProperty(
'business_template_registered_skin_selections', ()) 'business_template_registered_skin_selections', ()):
if skin_name in skin_selection_list:
skin_selection_registered = True
break break
except AttributeError: except AttributeError:
pass pass
else:
if (not skin_selection_registered): skin_tool.manage_skinLayers(chosen=[skin_name], del_skin=1)
skin_tool.manage_skinLayers(chosen=[skin_name],
del_skin=1)
skin_tool.getPortalObject().changeSkin(None) skin_tool.getPortalObject().changeSkin(None)
def unregisterSkinFolderId(skin_tool, skin_folder_id, skin_selection_list): def unregisterSkinFolderId(skin_tool, skin_folder_id, skin_selection_list):
...@@ -1708,44 +1702,30 @@ class RegisteredSkinSelectionTemplateItem(BaseTemplateItem): ...@@ -1708,44 +1702,30 @@ class RegisteredSkinSelectionTemplateItem(BaseTemplateItem):
def uninstall(self, context, **kw): def uninstall(self, context, **kw):
portal = context.getPortalObject() portal = context.getPortalObject()
skin_tool = getToolByName(portal, 'portal_skins') skin_tool = getToolByName(portal, 'portal_skins')
object_path = kw.get('object_path')
object_path = kw.get('object_path', None) for skin_folder_id in (object_path,) if object_path else self._objects:
if object_path is not None:
object_keys = [object_path]
else:
object_keys = self._objects.keys()
for skin_folder_id in object_keys:
current_selection_list = []
skin_folder = skin_tool.get(skin_folder_id, None)
if skin_folder is not None:
current_selection_list = skin_folder.getProperty(
'business_template_registered_skin_selections', [])
current_selection_set = set(current_selection_list)
skin_selection_list = self._objects[skin_folder_id] skin_selection_list = self._objects[skin_folder_id]
if isinstance(skin_selection_list, str): if isinstance(skin_selection_list, str):
skin_selection_list = skin_selection_list.replace(',', ' ').split(' ') skin_selection_list = skin_selection_list.replace(',', ' ').split(' ')
for skin_selection in skin_selection_list: skin_folder = skin_tool.get(skin_folder_id)
current_selection_set.discard(skin_selection) if skin_folder is not None:
current_selection_set = set(skin_folder.getProperty(
current_selection_list = list(current_selection_set) 'business_template_registered_skin_selections', ()))
if current_selection_list: current_selection_set.difference_update(skin_selection_list)
skin_folder._updateProperty( if current_selection_set:
skin_folder._updateProperty(
'business_template_registered_skin_selections', 'business_template_registered_skin_selections',
current_selection_list) list(current_selection_set))
# Unregister skin folder from skin selection
# Unregister skin folder from skin selection unregisterSkinFolderId(skin_tool, skin_folder_id, skin_selection_list)
unregisterSkinFolderId(skin_tool, skin_folder_id, skin_selection_list) continue
else: # Delete all skin selection
# Delete all skin selection for skin_selection in skin_selection_list:
for skin_selection in skin_selection_list: deleteSkinSelection(skin_tool, skin_selection)
deleteSkinSelection(skin_tool, skin_selection) if skin_folder is not None:
if skin_folder is not None: del skin_folder.business_template_registered_skin_selections
delattr(skin_folder, 'business_template_registered_skin_selections') # Register to all other skin selection
# Register to all other skin selection registerSkinFolder(skin_tool, skin_folder)
registerSkinFolder(skin_tool, skin_folder)
def preinstall(self, context, installed_item, **kw): def preinstall(self, context, installed_item, **kw):
modified_object_list = {} modified_object_list = {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment