r618 - in zope-atrbw/branches/upstream/current: . skins/ATReferenceBrowserWidget

Fabio Tranchitella kobold at alioth.debian.org
Fri Feb 9 14:48:14 CET 2007


Author: kobold
Date: 2007-02-09 14:48:14 +0100 (Fri, 09 Feb 2007)
New Revision: 618

Added:
   zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser_filterBreadCrumbs.py
Modified:
   zope-atrbw/branches/upstream/current/ATReferenceBrowserWidget.py
   zope-atrbw/branches/upstream/current/history.txt
   zope-atrbw/branches/upstream/current/readme.txt
   zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser.pt
   zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser_popup.pt
   zope-atrbw/branches/upstream/current/version.txt
Log:
[svn-upgrade] Integrating new upstream version, zope-atrbw (1.7.1)

Modified: zope-atrbw/branches/upstream/current/ATReferenceBrowserWidget.py
===================================================================
--- zope-atrbw/branches/upstream/current/ATReferenceBrowserWidget.py	2007-02-09 13:47:35 UTC (rev 617)
+++ zope-atrbw/branches/upstream/current/ATReferenceBrowserWidget.py	2007-02-09 13:48:14 UTC (rev 618)
@@ -29,6 +29,7 @@
         'image_portal_types' : (),
         'image_method' : None,
         'history_length' : 0,
+        'restrict_browsing_to_startup_directory' : 0,
         })
 
     # default_search_index: when a user searches in the popup, this index is used by default
@@ -93,6 +94,7 @@
 registerPropertyType('allow_search', 'boolean', ReferenceBrowserWidget)
 registerPropertyType('allow_browse', 'boolean', ReferenceBrowserWidget)
 registerPropertyType('startup_directory', 'string', ReferenceBrowserWidget)
+registerPropertyType('restrict_browsing_to_startup_directory', 'boolean', ReferenceBrowserWidget)
 registerPropertyType('search_catalog', 'string', ReferenceBrowserWidget)
 registerPropertyType('image_portal_types', 'lines', ReferenceBrowserWidget)
 registerPropertyType('image_method', 'string', ReferenceBrowserWidget)

Modified: zope-atrbw/branches/upstream/current/history.txt
===================================================================
--- zope-atrbw/branches/upstream/current/history.txt	2007-02-09 13:47:35 UTC (rev 617)
+++ zope-atrbw/branches/upstream/current/history.txt	2007-02-09 13:48:14 UTC (rev 618)
@@ -1,3 +1,43 @@
+1.7.1 Released January 16, 2006
+===============================
+
+ * No longer show all search results by default when allow_browse is off
+   because it can be very very slow.
+   [alecm]
+
+ * Undid the fix for #5996, because it broke basic functionality.
+   [ajung]
+
+1.7 - Released December 13, 2006
+================================
+
+ * Now the popup also works for multiselect archetypes fields with the id
+   content (see comments in referencebrowser_setReference).
+   http://dev.plone.org/plone/ticket/5996
+   [fRiSi]
+
+ * The widget now tries to sort references on their `order` attribute which
+   only exists for orderablereferencefield references. (therefore the
+   tal:on-error). This solves http://dev.plone.org/plone/ticket/5995 but could
+   be relaced by a condition such as widget/isOrderable as proposed in #5995.
+   [fRiSi]
+
+ * Fixed simple TAL markup bug which prevented show_review_state from working.
+   This closes http://dev.plone.org/plone/ticket/5924.
+   [hannosch]
+
+1.6 - Released November 4, 2006
+===============================
+
+ * listFolderContents requires 'List folder contents' which isn't always
+   available, avoid unauthorized errors in these cases by returning []. This
+   makes the popup marginally less efficient for some combinations of widget
+   parameters.
+   [alecm]
+
+ * added 'restrict_browsing_to_startup_directory' property
+   [ajung]
+
 1.5 - Released September 8, 2006
 ================================
 
@@ -9,12 +49,12 @@
    [hannosch]
 
  * Corrected two little XHTML conformance issues.
-   [hannosch]  
+   [hannosch]
 
  * Fixed some import locations for AT 1.5 compatibility.
    [hannosch]
 
- * added 'history_length' property 
+ * added 'history_length' property
    [ajung]
 
 1.4 - Released June 1, 2006
@@ -38,24 +78,24 @@
    [hannosch]
 
  * skins/.../referencebrowser_popup.pt:
-   - Changed call to ``here.folderlistingFolderContents()`` back to 
+   - Changed call to ``here.folderlistingFolderContents()`` back to
      ``here.listFolderContents()`` because this method is not available on
      the ``Plone Site`` object. (so Home did no longer work)
-     
+
    - Refactored the breadcrumb area to not use REQUEST['PARENTS'] anymore
      and added i18n support (RTL and translation for 'Home')
-     
+
      REQUEST['PARENTS'] was evil because if did not work out for sites
      that switch the skin by url and manipulate SiteRoot
-     
+
      (see http://plone.org/documentation/how-to/select-skin-by-url)
-     
+
    [fRiSi]
-     
+
   * added 'image_portal_types' and 'image_method' properties. This allows
     you to specify a list of image portal types that are display inside
     the popup widget as images using the 'image_method' (e.g. to show
-    images to be referenced as thumbnails)     
+    images to be referenced as thumbnails)
     [ajung]
 
   * added 'show_review_state' property
@@ -63,14 +103,14 @@
 
   * extended functionality of startup_directory property
     [spamsch]
-     
-  * added 'allow_sorting' property to order to allow reordering of multiValued 
+
+  * added 'allow_sorting' property to order to allow reordering of multiValued
     ReferenceFields
     [ajung]
 
   * added 'show_path' property
     [ajung]
- 
+
 1.2
 ================
 
@@ -80,7 +120,7 @@
    [alecm]
 
  * skins/.../referencebrowser_popup.pt:
-   Changed call to 'here.listFolderContents()' to 
+   Changed call to 'here.listFolderContents()' to
    'here.folderlistingFolderContents()' in order to avoid requiring
    the 'List folder contents' permission on the folder to be browsed.
    [raphael]
@@ -117,7 +157,7 @@
 
   * added message in the popup when adding items in multi-select mode. Thanks
     to Limi.
-  
+
   * fixed a bug that occured when setting references on objects located
     in the portal root. Thanks to AlecM.
 
@@ -127,37 +167,37 @@
     mechanism now which allows for proper use of the field property
     allowed_types_method to make the types restrictions dynamic. (alecm)
 
-0.2.1 
+0.2.1
 ================
   * fixed problem with portal_factory
-  
+
   * fixed problem with startup_directory
-  
+
   * removed automatic install of the demo type.
-  
+
   * added startup_directory patch from optilude (thanks)
-  
 
+
 0.2 - 2004-09-09
 ================
 
   * added batched view
-  
+
   * fixed a problem with multiValued
-  
+
   * added view link that opens the object in a new browser
-    window so you can check if that's the object 
+    window so you can check if that's the object
     you are looking for
-    
+
   * added 'back' link that does a javascript:history.back()
     so you can return to the browser mode after you've
     done a search.
-    
+
   * removed possibility to link to the object itself.
-  
+
   * made the popup window a bit wider and higher
 
   * modified the 'close window' link. Now sits next to the 'back' link.
-  
+
   * added startup_directory property for the widget to force another
     startup folder in the portal for the popup window.

Modified: zope-atrbw/branches/upstream/current/readme.txt
===================================================================
--- zope-atrbw/branches/upstream/current/readme.txt	2007-02-09 13:47:35 UTC (rev 617)
+++ zope-atrbw/branches/upstream/current/readme.txt	2007-02-09 13:48:14 UTC (rev 618)
@@ -1,18 +1,18 @@
 Intro
 
-    ATReferenceBrowserWidget is an add-on to Archtetypes. It adds a new reference widget
-that allows you to search or browse the portal when creating references.
-This new widget inherits from the standard reference widget so you can use all it's 
-properties.
+    ATReferenceBrowserWidget is an add-on to Archtetypes. It adds a new
+reference widget that allows you to search or browse the portal when creating
+references.  This new widget inherits from the standard reference widget so you
+can use all it's properties.
 
 When you use this widget, there are two buttons presented for each widget. One
 that opens a popup-window that let's you do the search/browsing and one that
-let's you clear the reference or selected references (will be in effect after the
-form's Save). 
+let's you clear the reference or selected references (will be in effect after
+the form's Save). 
 
-The popop window basically consists of two parts. The top half is a search form and 
-the bottom half is the browser/search results part. Both parts can be turned off or on
-using the widget's properties.
+The popop window basically consists of two parts. The top half is a search form
+and the bottom half is the browser/search results part. Both parts can be
+turned off or on using the widget's properties.
 
 The search part has additional configuration in the widget (see properties below).
 
@@ -20,17 +20,21 @@
 
     The popup window can be configured using the following widget properties:
 
-    * default_search_index: when a user searches in the popup, this index is used by default
+    * default_search_index: when a user searches in the popup, this index is
+      used by default
 
-    * show_indexes: in the popup, when set to True, a drop-down list is shown with the index to be
-used for searching. If set to False, default_search_index will be used.
+    * show_indexes: in the popup, when set to True, a drop-down list is shown
+      with the index to be used for searching. If set to False,
+     default_search_index will be used.
 
-    * size: in case of single-select widget, the default is set to 30. In case of multi-select, default is 8.
+    * size: in case of single-select widget, the default is set to 30. In case
+      of multi-select, default is 8.
 
-    * available_indexes: optional dictionary that lists all the indexes that can be used 
-for searching. Format: {'<catalog index>':'<friendly name'>, ... } The friendly name
-is what the end-users sees to make the indexes more sensible for him. If you do not use this 
-property then all the indexes will be shown (I think nobody should allow this to happen!).
+    * available_indexes: optional dictionary that lists all the indexes that
+      can be used for searching. Format: {'<catalog index>':'<friendly name'>,
+      ... } The friendly name is what the end-users sees to make the indexes more
+      sensible for him. If you do not use this property then all the indexes will be
+      shown (I think nobody should allow this to happen!).
 
     * allow_search: shows the search section in the popup
 
@@ -38,9 +42,10 @@
     
     * allow_browse: shows the browse section in the popup
     
-    * startup_directory: directory where the popup opens. Optional. When omitted, the current folder
-      is used or in the case where a property refwidget_startupdirectories under site_properties is found
-      it is searched for a startup_directory.
+    * startup_directory: directory where the popup opens. Optional. When
+      omitted, the current folder is used or in the case where a property 
+      refwidget_startupdirectories under site_properties is found it is 
+      searched for a startup_directory.
 
       Property is a lines field having the following
       format:
@@ -48,6 +53,11 @@
       path1 is the path where all widgets being under it set startup_directory
       to path2 if no startup_directory is set.
 
+    * restrict_browsing_to_startup_directory: allows you to restrict the
+      breadcrumbs ('allow_browse' property) to contents inside the 
+      'startup_directory' only. So you are not able to walk up in the hierarchy.
+      (default: 0 = disabled)
+
     * image_portal_types: specify a list of image portal_types. Instances of
       these portal types are being previewed within the popup widget
 
@@ -55,55 +65,67 @@
       URL to preview the image in a particular resolution (e.g. 'mini' for
       thumbnails)
 
-    * show_review_state: allows you to display the workflow state for objects (off by default)
+    * show_review_state: allows you to display the workflow state for objects
+      (off by default)
 
-    * show_path: display the relative path (relative to the portal object) of referenced objects 
+    * show_path: display the relative path (relative to the portal object) of
+      referenced objects 
 
-    * only_for_review_states: items are only referencable if their workflow state matches the ones
+    * only_for_review_states: items are only referencable if their workflow
+      state matches the ones
       a specified (default: None = no filtering by workflow state) 
 
-    * history_length: enable a history feature that show the paths of the last N visited folders
-      (default : 0 = no history)
+    * history_length: enable a history feature that show the paths of the last
+      N visited folders (default : 0 = no history)
       
-    * force_close_on_insert: closes the popup when the user choses insert. This overrides the behavior in multiselect mode.
+    * force_close_on_insert: closes the popup when the user choses insert. This
+      overrides the behavior in multiselect mode.
 
-    * base_query: defines query terms that will apply to all searches, mainly useful to create specific restrictions when allow_browse=0.  Can be either a dictonary with query parameters, or the name of a method or callable available in cotext that will return such a dictionary.
+    * base_query: defines query terms that will apply to all searches, mainly
+      useful to create specific restrictions when allow_browse=0.  Can be
+      either a dictonary with query parameters, or the name of a method or
+      callable available in cotext that will return such a dictionary.
     
-This add-on comes with an example content type that uses this widget. You can enable the installation
-of the type by uncommenting the appropriate line in Install.py under Extension. See ATReferenceBrowserDemo.py.
+This add-on comes with an example content type that uses this widget. You can
+enable the installation of the type by uncommenting the appropriate line in
+Install.py under Extension. See ATReferenceBrowserDemo.py.
 
 Installing
 
-    Copy this folder and its subfolders in your products directory and install it using
-the Quickinstaller in your Plone portal.
+    Copy this folder and its subfolders in your products directory and install
+it using the Quickinstaller in your Plone portal.
 
 This product requires Archetypes 1.3+
 
 Design notes
 
-    Both the templates (widget and popup) are prototypes. There are still some inline styles, 
-especially in the popup because I didn't want to tweak with plone's css stuff and I 
-didn't want to do hacking and tricking to incorporate a stylesheet myself. 
-So, that's still a point of interest.
+    Both the templates (widget and popup) are prototypes. There are still some
+inline styles, especially in the popup because I didn't want to tweak with
+plone's css stuff and I didn't want to do hacking and tricking to incorporate a
+stylesheet myself.  So, that's still a point of interest.
 
-Furthermore I made some design decisions. Right now, in the popup window, all objects are shown (when
-browsing) and objects that may be referenced to are bold and the other objects are greyed out.
-I chose to show the non-referenceable objects too because they may be an important 
-part of the context that help the user search for the desired objects to browse to.
-Another thing that I chose for is that in case of a multi-value widget, the popup remains open so that you
-can continue to add references without having to reopen the popup over and over again. Problem is that
-you have to close the window yourself. This may change if it turns out to be an annoyance.
+Furthermore I made some design decisions. Right now, in the popup window, all
+objects are shown (when browsing) and objects that may be referenced to are
+bold and the other objects are greyed out.  I chose to show the
+non-referenceable objects too because they may be an important part of the
+context that help the user search for the desired objects to browse to.
+Another thing that I chose for is that in case of a multi-value widget, the
+popup remains open so that you can continue to add references without having to
+reopen the popup over and over again. Problem is that you have to close the
+window yourself. This may change if it turns out to be an annoyance.
 
-A thing that is more related to forms in general is that the items in the multiselect listbox need to be
-selected before Save is clicked otherwise only the selected items are submitted. That kinda sucks
-usability-wise because now the user basically has to make two selections: first by choosing the items in the
-popup and secondly by selecting them again in the listbox. Right now I made it so that the items are selected
-by default but if the user starts clicking in the list, then there might be an issue. Btw, the inandout widget
-has the same problem.
-Best would be to select all the items in a script just before the form is submitted so that the complete list
-is submitted. But that requires changes in the base_edit form I think. But it's something to think about since
-there are now already two widgets that needs to be prepared like this (inandout and this one, haven't looked
-at picklist though, could have the same problem).
+A thing that is more related to forms in general is that the items in the
+multiselect listbox need to be selected before Save is clicked otherwise only
+the selected items are submitted. That kinda sucks usability-wise because now
+the user basically has to make two selections: first by choosing the items in
+the popup and secondly by selecting them again in the listbox. Right now I made
+it so that the items are selected by default but if the user starts clicking in
+the list, then there might be an issue. Btw, the inandout widget has the same
+problem.  Best would be to select all the items in a script just before the
+form is submitted so that the complete list is submitted. But that requires
+changes in the base_edit form I think. But it's something to think about since
+there are now already two widgets that needs to be prepared like this (inandout
+and this one, haven't looked at picklist though, could have the same problem).
 
 Anyway, have fun with it and if you have suggestions please let me know. If you see problems, please fix
 them when you can.

Modified: zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser.pt
===================================================================
--- zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser.pt	2007-02-09 13:47:35 UTC (rev 617)
+++ zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser.pt	2007-02-09 13:48:14 UTC (rev 618)
@@ -13,7 +13,7 @@
                           image_portal_types field/widget/image_portal_types;
                           image_method       field/widget/image_method|string:;
                           show_path          field/widget/show_path|nothing;
-                          portal_path        python: '/'.join(context.portal_url.getPortalObject().getPhysicalPath());" 
+                          portal_path        python: '/'.join(context.portal_url.getPortalObject().getPhysicalPath());"
                   condition="refs">
 
         <tal:block tal:condition="not:field/multiValued"
@@ -50,6 +50,13 @@
         </tal:block>
 
         <ul tal:condition="field/multiValued">
+          <div tal:omit-tag=""
+               tal:content="nothing"
+               tal:on-error="nothing"
+               tal:define="foo python:refs.sort(lambda x,y: cmp(x.order, y.order))">
+             if we are not using orderablereferencefield we don't have the order attribute
+             we swallow this error silently using tal:on-error
+          </div>
           <li tal:repeat="ref refs">
              <tal:block tal:define="obj ref/getTargetObject;
                                     obj_path python: '/'.join(obj.getPhysicalPath());">
@@ -109,10 +116,10 @@
               <tal:value tal:condition="value">
                   <tal:block tal:define="obj python:here.reference_catalog.lookupObject(value);
                                          obj_path python: '/'.join(obj.getPhysicalPath())" >
-                      <input size="" 
-                             type="text" 
-                             value="" 
-                             id="" 
+                      <input size=""
+                             type="text"
+                             value=""
+                             id=""
                              tal:attributes="value obj/title_or_id;
                                              tabindex tabindex/next;
                                              size python:test(widget.size=='', 30, widget.size);
@@ -126,7 +133,7 @@
                            i18n:translate="label_directory">
                         ( Directory: <span i18n:name="directory" tal:replace="python: obj_path.replace(portal_path + '/', '')">directory</span>)
                       </tal:if>
-                
+
                   </tal:block>
               </tal:value>
               <input id=""
@@ -199,7 +206,7 @@
                   />
               </div>
           </tal:multi>
-          <div style="clear: both" 
+          <div style="clear: both"
                tal:define="startup_directory python:here.referencebrowser_startupDirectory (widget.startup_directory);
                            global at_url at_url|python:'/'.join(here.getPhysicalPath())">
               <input type="button"

Added: zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser_filterBreadCrumbs.py
===================================================================
--- zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser_filterBreadCrumbs.py	2007-02-09 13:47:35 UTC (rev 617)
+++ zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser_filterBreadCrumbs.py	2007-02-09 13:48:14 UTC (rev 618)
@@ -0,0 +1,19 @@
+##parameters=crumbs, startup_directory
+
+# Filter out all breadcrumbs that match folders above
+# the current object as represented by the startup_directory
+
+server_url = context.REQUEST.SERVER_URL
+
+if startup_directory.startswith('/'):
+    startup_directory = startup_directory[1:]
+
+portal = context.portal_url.getPortalObject()
+startup_folder = portal.restrictedTraverse(startup_directory)
+startup_folder_url = startup_folder.absolute_url()
+
+return [c 
+        for c in crumbs 
+        if c['absolute_url'].startswith(startup_folder_url)
+       ]
+

Modified: zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser_popup.pt
===================================================================
--- zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser_popup.pt	2007-02-09 13:47:35 UTC (rev 617)
+++ zope-atrbw/branches/upstream/current/skins/ATReferenceBrowserWidget/referencebrowser_popup.pt	2007-02-09 13:48:14 UTC (rev 618)
@@ -58,6 +58,7 @@
                       show_review_state widget/show_review_state;
                       image_portal_types widget/image_portal_types;
                       image_method widget/image_method|string:;
+                      restrict_browsing_to_startup_directory widget/restrict_browsing_to_startup_directory|python: True;
                       base_query python:widget.getBaseQuery(at_obj, field);
                       allowed_types base_query/portal_type;
                       only_for_review_states widget/only_for_review_states;
@@ -188,7 +189,7 @@
            <span i18n:translate="referencebrowser_text_added_reference">Added reference to:</span>&nbsp;<span id="messageTitle"></span>
         </div>
         <!-- actual list of objects, either searchresults or folder contents -->
-        <tal:block tal:define="query_results python:(search_text or not allow_browse) and [brain.getObject() for brain in here.referencebrowser_queryCatalog(search_catalog=search_catalog)];">
+        <tal:block tal:define="query_results python:search_text and [brain.getObject() for brain in here.referencebrowser_queryCatalog(search_catalog=search_catalog)];">
             <div style="border-top:1px solid black;border-bottom:1px solid black;"
                      tal:attributes="style string:border-top:1px solid ${border_color};;
                                            border-bottom:1px solid ${border_color};;
@@ -206,21 +207,25 @@
                      tal:define=    "portal here/portal_url/getPortalObject;
                                      putils nocall:portal/plone_utils;
                                      crumbs python:putils.createBreadCrumbs(here);
+                                     crumbs python: test(True, context.referencebrowser_filterBreadCrumbs(crumbs, widget.startup_directory), crumbs); 
                                      isRTL python:here.isRightToLeft(domain='plone');
                                      parents request/PARENTS;
                                      nil python: parents.reverse();">
                                      
                 <img tal:attributes="src string:${here/portal_url}/logoIcon.gif"/>
-                <a i18n:translate="tabs_home"
-                   tal:attributes="href string:${portal/absolute_url}/${template/getId}?fieldName=${fieldName}&amp;fieldRealName=${fieldRealName}&amp;at_url=${at_url}">
-                    Home
-                </a>
+                <tal:if condition="not: restrict_browsing_to_startup_directory">
+                    <a i18n:translate="tabs_home"
+                       tal:attributes="href string:${portal/absolute_url}/${template/getId}?fieldName=${fieldName}&amp;fieldRealName=${fieldRealName}&amp;at_url=${at_url}">
+                        Home
+                    </a>
 
-                <span tal:condition="crumbs" class="breadcrumbSeparator">
-                    <tal:ltr condition="not: isRTL">&rarr;</tal:ltr> 
-                    <tal:rtl condition="isRTL">&larr;</tal:rtl> 
-                </span>                
+                    <span tal:condition="crumbs" class="breadcrumbSeparator">
+                        <tal:ltr condition="not: isRTL">&rarr;</tal:ltr> 
+                        <tal:rtl condition="isRTL">&larr;</tal:rtl> 
+                    </span>                
+                </tal:if>
 
+ 
                 <tal:crums tal:repeat="crumb crumbs">            
 
                     <a tal:attributes="href string:${crumb/absolute_url}/${template/getId}?fieldName=${fieldName}&amp;fieldRealName=${fieldRealName}&amp;at_url=${at_url}">
@@ -245,7 +250,8 @@
                <p i18n:translate="referencebrowser_no_items_found">No items found.</p>
            </tal:noresults>
            <tal:list tal:define="checkPermission python: here.portal_membership.checkPermission;
-                                 results python: test(search_text!='' or not allow_browse, query_results, test(allow_browse, [item for item in here.listFolderContents() if checkPermission('View',item)], [])); 
+                                 folder_contents here/listFolderContents|python:[];
+                                 results python: test(search_text!='' or not allow_browse, query_results, test(allow_browse, [item for item in folder_contents if checkPermission('View',item)], [])); 
                                  batch python: Batch(results, b_size, int(b_start), orphan=1);">
                 <table class="group" 
                           width="100%" 
@@ -290,7 +296,7 @@
                                                   tal:attributes="style string:color:${color}" />
                                         </tal:foldercheck>
 
-                                        <div condition="show_review_state">
+                                        <div tal:condition="show_review_state">
                                             <span tal:define="state python: getInfoFor(item, 'review_state', None)"
                                                   tal:attributes="class string:state-$state" 
                                                   i18n:translate="" i18n:domain="plone" tal:content="state" 

Modified: zope-atrbw/branches/upstream/current/version.txt
===================================================================
--- zope-atrbw/branches/upstream/current/version.txt	2007-02-09 13:47:35 UTC (rev 617)
+++ zope-atrbw/branches/upstream/current/version.txt	2007-02-09 13:48:14 UTC (rev 618)
@@ -1 +1 @@
-1.5
+1.7.1




More information about the pkg-zope-commits mailing list