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

Reply via email to