[Erp5-report] r9480 - /erp5/trunk/products/ERP5OOo/Document/DMSFile.py

nobody at svn.erp5.org nobody at svn.erp5.org
Sat Aug 26 23:11:08 CEST 2006


Author: bartek
Date: Sat Aug 26 23:11:05 2006
New Revision: 9480

URL: http://svn.erp5.org?rev=9480&view=rev
Log:
implemented getWikiPredecessor/SuccessorValueList

Modified:
    erp5/trunk/products/ERP5OOo/Document/DMSFile.py

Modified: erp5/trunk/products/ERP5OOo/Document/DMSFile.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/Document/DMSFile.py?rev=9480&r1=9479&r2=9480&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/Document/DMSFile.py (original)
+++ erp5/trunk/products/ERP5OOo/Document/DMSFile.py Sat Aug 26 23:11:05 2006
@@ -208,7 +208,45 @@
     for k,v in m.groupdict().items():
       self.setProperty(k,v)
 
-
+  security.declareProtected(Permissions.View, 'getWikiSuccessorReferenceList')
+  def getWikiSuccessorReferenceList(self):
+    '''
+    find references in text_content, return matches
+    with this we can then find objects
+    '''
+    rx_search=re.compile(self.portal_preferences.getPreferredDmsReferenceRegexp())
+    try:
+      res=rx_search.finditer(self.getTextContent())
+    except AttributeError:
+      return []
+    res=[(r.group(),r.groupdict()) for r in res]
+    return res
+
+  security.declareProtected(Permissions.View, 'getWikiSuccessorValueList')
+  def getWikiSuccessorValueList(self):
+    '''
+    getWikiSuccessorValueList - the way to find objects is on 
+    implementation level
+    '''
+    lst=[]
+    for ref in self.getWikiSuccessorReferenceList():
+      res=self.DMS_findDocument(ref)
+      if len(res)>0:
+        lst.append(res[0].getObject())
+    return lst
+
+  security.declareProtected(Permissions.View, 'getWikiPredecessorValueList')
+  def getWikiPredecessorValueList(self):
+    '''
+    it is mostly implementation level - depends on what parameters we use to identify
+    document, and on how a doc must reference me to be my predecessor (reference only,
+    or with a language, etc
+    '''
+    lst=self.DMS_findPredecessors()
+    lst=[r.getObject() for r in lst]
+    di=dict.fromkeys(lst) # make it unique
+    ref=self.getReference()
+    return [o for o in di.keys() if o.getReference()!=ref] # every object has its own reference in SearchableText
 
   # BG copied from File in case
   index_html = CMFFile.index_html




More information about the Erp5-report mailing list