[Erp5-report] r11956 - /erp5/trunk/products/ERP5/Document/Document.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Jan 9 12:41:58 CET 2007


Author: jp
Date: Tue Jan  9 12:41:54 2007
New Revision: 11956

URL: http://svn.erp5.org?rev=11956&view=rev
Log:
Implemlentation example.

Modified:
    erp5/trunk/products/ERP5/Document/Document.py

Modified: erp5/trunk/products/ERP5/Document/Document.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Document.py?rev=11956&r1=11955&r2=11956&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Document.py (original)
+++ erp5/trunk/products/ERP5/Document/Document.py Tue Jan  9 12:41:54 2007
@@ -30,6 +30,7 @@
 from operator import add
 
 from AccessControl import ClassSecurityInfo, getSecurityManager
+from Products.CMFCore.utils import getToolByName
 from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
 from Products.ERP5Type.XMLObject import XMLObject
 from Products.ERP5Type.WebDAVSupport import TextContent
@@ -491,16 +492,27 @@
       Returns a list of documents with same reference, same portal_type
       but different version and given language or any language if not given.
     """
-    # Use portal_catalog
-    pass
+    catalog = getToolByName(self, 'portal_catalog', None)
+    return catalog(portal_type=self.getPortalType(),
+                   reference=self.getReference(),
+                   version=version,
+                   language=language,
+                   group_by=('revision',),
+                   order_by=(('revision', 'descending', 'SIGNED'),)
+                  )
 
   security.declareProtected(Permissions.View, 'isVersionUnique')
   def isVersionUnique(self):
     """
-      Returns true if no other document has the same version and language
-    """
-    # Use portal_catalog
-    pass
+      Returns true if no other document of the same
+      portal_type and reference has the same version and language
+    """
+    catalog = getToolByName(self, 'portal_catalog', None)
+    return catalog.countResults(portal_type=self.getPortalType(),
+                                reference=self.getReference(),
+                                version=self.getVersion(),
+                                language=self.getLanguage(),
+                                ) <= 1
 
   security.declareProtected(Permissions.View, 'getLatestRevisionValue')
   def getLatestRevisionValue(self):
@@ -537,8 +549,13 @@
       Returns a list of languages which this document is available in
       for the current user.
     """
-    # Use portal_catalog
-    pass
+    catalog = getToolByName(self, 'portal_catalog', None)
+    return map(lambda o:o.getLanguage(),
+                   catalog(portal_type=self.getPortalType(),
+                           reference=self.getReference(),
+                           version=version,
+                           group_by=('language',),
+                           ))
 
   security.declareProtected(Permissions.View, 'getOriginalLanguage')
   def getOriginalLanguage(self):




More information about the Erp5-report mailing list