r13338 - in MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget: browser tests

"Thomas Desvenain" <[email protected]>
Newsgroups gmane.comp.web.zope.plone.archetypes.cvs
Message-ID <[email protected]>
Author: thomasdesvenain
Date: Wed Dec  8 00:37:37 2010
New Revision: 13338

Modified:
   MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/browser/view.py
   MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/tests/test_product.py
Log:
when browser is restricted, all items from startup directory are interesting...
browsing was broken

Modified: MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/browser/view.py
==============================================================================
--- MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/browser/view.py	(original)
+++ MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/browser/view.py	Wed Dec  8 00:37:37 2010
@@ -250,11 +250,10 @@
 
     def breadcrumbs(self, startup_directory=None):
         assert self._updated
-
         context = aq_inner(self.context)
         portal_state = getMultiAdapter((context, self.request),
                                        name=u'plone_portal_state')
-        bc_view = context.restrictedTraverse('@@breadcrumbs_view')
+        bc_view = aq_inner(context).restrictedTraverse('@@breadcrumbs_view')
         crumbs = bc_view.breadcrumbs()
 
         if not self.widget.restrict_browsing_to_startup_directory:
@@ -262,14 +261,18 @@
                           'absolute_url': self.genRefBrowserUrl(
                                 portal_state.navigation_root_url())}]
         else:
-            # browsing is restricted, so only the last item is
-            # interesting
-            crumbs = crumbs[-1:]
+            # display only crumbs into startup directory
+            startup_dir_url = startup_directory or \
+                utils.getStartupDirectory(context,
+                        self.widget.getStartupDirectory(context, self.field))
             newcrumbs = []
+            crumbs = [c for c in crumbs \
+                             if c['absolute_url'].startswith(startup_dir_url)]
+
         for c in crumbs:
             c['absolute_url'] = self.genRefBrowserUrl(c['absolute_url'])
             newcrumbs.append(c)
-            
+
         return newcrumbs
 
     def genRefBrowserUrl(self, urlbase):

Modified: MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/tests/test_product.py
==============================================================================
--- MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/tests/test_product.py	(original)
+++ MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/tests/test_product.py	Wed Dec  8 00:37:37 2010
@@ -339,7 +339,8 @@
         widget.restrict_browsing_to_startup_directory = 1
 
         popup = self._getPopup(obj=self.portal.layer1.layer2)
-        bc = popup.breadcrumbs(widget)
+        widget.startup_directory = 'layer1/layer2'
+        bc = popup.breadcrumbs()
         self.assertEqual(len(bc), 1)
         self.assertEqual(bc[0]['Title'], 'Layer2')
 

------------------------------------------------------------------------------
What happens now with your Lotus Notes apps - do you make another costly 
upgrade, or settle for being marooned without product support? Time to move
off Lotus Notes and onto the cloud with Force.com, apps are easier to build,
use, and manage than apps on traditional platforms. Sign up for the Lotus 
Notes Migration Kit to learn more. http://p.sf.net/sfu/salesforce-d2d
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.