Author: jmorliaguet Date: Fri Jun 30 00:43:28 2006 New Revision: 3571 Modified: cpsskins/branches/paris-sprint-2006/browser/tree/slot.py cpsskins/branches/paris-sprint-2006/browser/tree/views.py cpsskins/branches/paris-sprint-2006/ui/screens/contentauthor/filters/portlet.pt
Log: - fixes to make it possible to move portlets between slots. Modified: cpsskins/branches/paris-sprint-2006/browser/tree/slot.py ============================================================================== --- cpsskins/branches/paris-sprint-2006/browser/tree/slot.py (original) +++ cpsskins/branches/paris-sprint-2006/browser/tree/slot.py Fri Jun 30 00:43:28 2006 @@ -18,11 +18,13 @@ __docformat__ = "reStructuredText" import logging -from zope.component import getMultiAdapter from zope.app.container.browser.adding import Adding +from zope.component import getMultiAdapter +from zope.interface import implements +from zope.location.location import locate from zope.publisher.browser import BrowserView from zope.traversing.api import getName, getParent -from zope.interface import implements +from zope.security.proxy import removeSecurityProxy from cpsskins.browser.negotiation.interfaces import INegotiation from cpsskins.browser.tree.interfaces import INodeAdding, INodeRemoving @@ -124,8 +126,10 @@ def move(self, content): request = self.request + content = removeSecurityProxy(content) src_container = getParent(content) - dest_container = self.context + # FIXME: shouldn't have to removeSecurityProxy() + dest_container = removeSecurityProxy(self.context) if dest_container == src_container: return content @@ -155,7 +159,7 @@ # remove old src_slot -> portlet relations relations.remove(old_relations) # set the portlet's parent explicitly - content.__parent__ = dest_container + locate(object=content, parent=dest_container) return content class SlotRemoving(BrowserView): Modified: cpsskins/branches/paris-sprint-2006/browser/tree/views.py ============================================================================== --- cpsskins/branches/paris-sprint-2006/browser/tree/views.py (original) +++ cpsskins/branches/paris-sprint-2006/browser/tree/views.py Fri Jun 30 00:43:28 2006 @@ -17,12 +17,13 @@ """ __docformat__ = "reStructuredText" -from zope.component import getMultiAdapter -from zope.publisher.browser import BrowserView from zope.app.container.browser.adding import Adding from zope.app.copypastemove.interfaces import IObjectCopier, IObjectMover -from zope.traversing.api import getName, getParent +from zope.component import getMultiAdapter from zope.interface import implements +from zope.publisher.browser import BrowserView +from zope.traversing.api import getName, getParent +from zope.security.proxy import removeSecurityProxy from cpsskins.elements.interfaces import ILeaf from cpsskins.browser.tree.interfaces import INodeAdding, INodeRemoving Modified: cpsskins/branches/paris-sprint-2006/ui/screens/contentauthor/filters/portlet.pt ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/screens/contentauthor/filters/portlet.pt (original) +++ cpsskins/branches/paris-sprint-2006/ui/screens/contentauthor/filters/portlet.pt Fri Jun 30 00:43:28 2006 @@ -2,8 +2,6 @@ tal:define="info options/info; model nocall:context/@@getModelInfo" tal:content="python: model(info)" /> -<tal:block content="python: options['info']" /> - <div class="elementEditable elementMovable elementShiftable portletTarget" tal:attributes="id context/identifier" tal:content="structure options/markup" /> -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins