[Erp5-report] r11212 - in /erp5/trunk/bt5/erp5_dms: ExtensionTemplateItem/ SkinTemplateItem...
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Nov 8 20:39:07 CET 2006
Author: bartek
Date: Wed Nov 8 20:39:05 2006
New Revision: 11212
URL: http://svn.erp5.org?rev=11212&view=rev
Log:
Assigning properties from document content upon ingestion;
Portal_type extraction from document content if not supplied.
Added:
erp5/trunk/bt5/erp5_dms/ExtensionTemplateItem/documentUtils.py
erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Document_getDoctypeFromContent.xml
Modified:
erp5/trunk/bt5/erp5_dms/ExtensionTemplateItem/mailUtils.py
erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_createObjectFromFile.xml
erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_handleMail.xml
erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_ingestFile.xml
erp5/trunk/bt5/erp5_dms/bt/revision
erp5/trunk/bt5/erp5_dms/bt/template_extension_id_list
Added: erp5/trunk/bt5/erp5_dms/ExtensionTemplateItem/documentUtils.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_dms/ExtensionTemplateItem/documentUtils.py?rev=11212&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_dms/ExtensionTemplateItem/documentUtils.py (added)
+++ erp5/trunk/bt5/erp5_dms/ExtensionTemplateItem/documentUtils.py Wed Nov 8 20:39:05 2006
@@ -1,0 +1,26 @@
+import zipfile, cStringIO, re
+
+rx_atr='([\w]+)###([\w/]+)'
+rx_atr=re.compile(rx_atr)
+
+def extractContent(data):
+ cs=cStringIO.StringIO()
+ cs.write(data)
+ try:
+ z=zipfile.ZipFile(cs)
+ except zipfile.BadZipfile:
+ cs.close()
+ return ''
+ s=z.read('content.xml')
+ cs.close()
+ z.close()
+ return s
+
+def getAttrFromContent(data):
+ return dict(rx_atr.findall(extractContent(data)))
+
+def getDoctypeFromContent(data):
+ atrs=getAttrFromContent(data)
+ return atrs.get('doctype')
+
+# vim: syntax=python shiftwidth=2
Modified: erp5/trunk/bt5/erp5_dms/ExtensionTemplateItem/mailUtils.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_dms/ExtensionTemplateItem/mailUtils.py?rev=11212&r1=11211&r2=11212&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_dms/ExtensionTemplateItem/mailUtils.py (original)
+++ erp5/trunk/bt5/erp5_dms/ExtensionTemplateItem/mailUtils.py Wed Nov 8 20:39:05 2006
@@ -1,7 +1,7 @@
import re
def findAddress(txt):
- validchars='A-Za-z.\-_'
+ validchars='0-9A-Za-z.\-_'
r=re.compile('[%s]+@[%s]+' % (validchars,validchars))
m=r.search(txt)
return m and m.group()
Modified: erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_createObjectFromFile.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_createObjectFromFile.xml?rev=11212&r1=11211&r2=11212&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_createObjectFromFile.xml (original)
+++ erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_createObjectFromFile.xml Wed Nov 8 20:39:05 2006
@@ -68,14 +68,19 @@
</item>
<item>
<key> <string>_body</string> </key>
- <value> <string># determine content type\n
-ctype=context.content_type_registry.findTypeName(fname,None,None)\n
-context.log(fname,ctype)\n
-if ctype is None:\n
+ <value> <string># determine content type if not given\n
+# first try from content\n
+if not doctype:\n
+ doctype=context.Document_getDoctypeFromContent(data)\n
+# then from filename\n
+if not doctype:\n
+ doctype=context.content_type_registry.findTypeName(fname,None,None)\n
+context.log(fname,doctype)\n
+if not doctype:\n
raise Exception("content type for file %s not registered" % fname)\n
\n
# create content\n
-ob=context.document_module.newContent(portal_type=ctype)\n
+ob=context.document_module.newContent(portal_type=doctype)\n
ob.manage_upload(data)\n
ob.DMS_ingestFile(fname,data)\n
return ob\n
@@ -95,7 +100,7 @@
</item>
<item>
<key> <string>_params</string> </key>
- <value> <string>fname,data</string> </value>
+ <value> <string>fname,data, doctype=None</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
@@ -115,7 +120,7 @@
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
- <value> <int>2</int> </value>
+ <value> <int>3</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
@@ -123,10 +128,10 @@
<tuple>
<string>fname</string>
<string>data</string>
+ <string>doctype</string>
<string>_getattr_</string>
<string>context</string>
<string>None</string>
- <string>ctype</string>
<string>Exception</string>
<string>ob</string>
</tuple>
@@ -140,7 +145,9 @@
<item>
<key> <string>func_defaults</string> </key>
<value>
- <none/>
+ <tuple>
+ <none/>
+ </tuple>
</value>
</item>
<item>
Modified: erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_handleMail.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_handleMail.xml?rev=11212&r1=11211&r2=11212&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_handleMail.xml (original)
+++ erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_handleMail.xml Wed Nov 8 20:39:05 2006
@@ -85,6 +85,7 @@
return printed\n
\n
# find sender\n
+context.log(senderemail)\n
r=context.portal_catalog(portal_type=\'Email\',url_string=senderemail)\n
if len(r)==0:\n
print noSenderMsg\n
@@ -99,6 +100,7 @@
try:\n
for fname,data in theMail[\'attachments\'].items():\n
obj=context.DMS_createObjectFromFile(fname,data)\n
+ obj.setGroup(person.getSubordinationValue().getGroup())\n
obj.manage_setLocalRoles(person.getReference(),[\'Owner\',])\n
context.DMS_notifyByEmail(address=senderemail,event=\'ingest\',object=obj)\n
except Exception,e:\n
Modified: erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_ingestFile.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_ingestFile.xml?rev=11212&r1=11211&r2=11212&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_ingestFile.xml (original)
+++ erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_ingestFile.xml Wed Nov 8 20:39:05 2006
@@ -72,10 +72,20 @@
# it can be run any time\n
# is meant to extract metadata from file name and contents\n
\n
+if data is None:\n
+ if hasattr(context,\'oo_data\'):\n
+ data=context.oo_data\n
+ else:\n
+ if hasattr(context,\'data\'):\n
+ data=data\n
+if data is not None:\n
+ context.setPropertyListFromContent(data)\n
+\n
if fname is None:\n
fname=context.getSourceReference()\n
else:\n
context.setSourceReference(fname)\n
+\n
if fname is not None:\n
context.setPropertyListFromFilename(fname)\n
context.guessMimeType(fname)\n
@@ -137,9 +147,9 @@
<string>fname</string>
<string>data</string>
<string>None</string>
+ <string>hasattr</string>
+ <string>context</string>
<string>_getattr_</string>
- <string>context</string>
- <string>hasattr</string>
</tuple>
</value>
</item>
Added: erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Document_getDoctypeFromContent.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Document_getDoctypeFromContent.xml?rev=11212&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Document_getDoctypeFromContent.xml (added)
+++ erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Document_getDoctypeFromContent.xml Wed Nov 8 20:39:05 2006
@@ -1,0 +1,46 @@
+<?xml version="1.0"?>
+<ZopeData>
+ <record id="1" aka="AAAAAAAAAAE=">
+ <pickle>
+ <tuple>
+ <tuple>
+ <string>Products.ExternalMethod.ExternalMethod</string>
+ <string>ExternalMethod</string>
+ </tuple>
+ <none/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>__ac_local_roles__</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>_function</string> </key>
+ <value> <string>getDoctypeFromContent</string> </value>
+ </item>
+ <item>
+ <key> <string>_module</string> </key>
+ <value> <string>documentUtils</string> </value>
+ </item>
+ <item>
+ <key> <string>_owner</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>id</string> </key>
+ <value> <string>Document_getDoctypeFromContent</string> </value>
+ </item>
+ <item>
+ <key> <string>title</string> </key>
+ <value> <string></string> </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+</ZopeData>
Modified: erp5/trunk/bt5/erp5_dms/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_dms/bt/revision?rev=11212&r1=11211&r2=11212&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_dms/bt/revision (original)
+++ erp5/trunk/bt5/erp5_dms/bt/revision Wed Nov 8 20:39:05 2006
@@ -1,1 +1,1 @@
-317
+321
Modified: erp5/trunk/bt5/erp5_dms/bt/template_extension_id_list
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_dms/bt/template_extension_id_list?rev=11212&r1=11211&r2=11212&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_dms/bt/template_extension_id_list (original)
+++ erp5/trunk/bt5/erp5_dms/bt/template_extension_id_list Wed Nov 8 20:39:05 2006
@@ -2,4 +2,5 @@
searchUtils
mailUtils
cutFound
-asSecurityGroupId
+asSecurityGroupId
+documentUtils
More information about the Erp5-report
mailing list