Commit 06f6208d authored by Bartek Górny's avatar Bartek Górny

tidied up ingestion API and interaction workflows; automatic convertion after...

tidied up ingestion API and interaction workflows; automatic convertion after upload via activities; status message in OOo types;

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@10364 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent d248a75c
...@@ -68,26 +68,18 @@ ...@@ -68,26 +68,18 @@
</item> </item>
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string encoding="cdata"><![CDATA[ <value> <string># determine content type\n
# determine content type\n
ctype=context.content_type_registry.findTypeName(fname,None,None)\n ctype=context.content_type_registry.findTypeName(fname,None,None)\n
context.log(fname,ctype)\n context.log(fname,ctype)\n
if ctype is None:\n if ctype is None:\n
raise Exception("content type for file %s not registered" % fname)\n raise Exception("content type for file %s not registered" % fname)\n
\n \n
# create content\n # create content\n
ob=context.document_module.newContent(portal_type=ctype,file=data)\n ob=context.document_module.newContent(portal_type=ctype)\n
ob.setSourceReference(fname)\n ob.Base_edit(file=data) # XXX to nie jest dobrze\n
ob.setPropertyListFromFilename(fname)\n ob.DMS_ingestFile(fname,data)\n
ob.guessMimeType(fname)\n
code,msg=ob.convert()\n
if code>0:\n
raise Exception(msg)\n
return ob\n return ob\n
</string> </value>
]]></string> </value>
</item> </item>
<item> <item>
<key> <string>_code</string> </key> <key> <string>_code</string> </key>
...@@ -132,14 +124,11 @@ return ob\n ...@@ -132,14 +124,11 @@ return ob\n
<string>fname</string> <string>fname</string>
<string>data</string> <string>data</string>
<string>_getattr_</string> <string>_getattr_</string>
<string>context</string> <string>context</string>
<string>None</string> <string>None</string>
<string>ctype</string> <string>ctype</string>
<string>Exception</string> <string>Exception</string>
<string>ob</string> <string>ob</string>
<string>_getiter_</string>
<string>code</string>
<string>msg</string>
</tuple> </tuple>
</value> </value>
</item> </item>
...@@ -156,7 +145,7 @@ return ob\n ...@@ -156,7 +145,7 @@ return ob\n
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>DMS_createObjectFromMail</string> </value> <value> <string>DMS_createObjectFromFile</string> </value>
</item> </item>
<item> <item>
<key> <string>warnings</string> </key> <key> <string>warnings</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PythonScripts.PythonScript</string>
<string>PythonScript</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Python_magic</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string># this script does not save file data in a document\n
# it can be run any time\n
# is meant to extract metadata from file name and contents\n
\n
if fname is None:\n
fname=context.getSourceReference()\n
else:\n
context.setSourceReference(fname)\n
if fname is not None:\n
context.setPropertyListFromFilename(fname)\n
context.guessMimeType(fname)\n
if not context.getTitle():\n
context.setTitle(fname)\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>fname=None,data=None</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>fname</string>
<string>data</string>
<string>None</string>
<string>_getattr_</string>
<string>context</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<tuple>
<none/>
<none/>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>DMS_ingestFile</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -108,6 +108,7 @@ ...@@ -108,6 +108,7 @@
<string>my_translated_simulation_state_title</string> <string>my_translated_simulation_state_title</string>
<string>my_file</string> <string>my_file</string>
<string>my_source_reference</string> <string>my_source_reference</string>
<string>my_status_message</string>
<string>my_contributor_title_list</string> <string>my_contributor_title_list</string>
</list> </list>
</value> </value>
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<list> <list>
<string>AssignCategories</string> <string>AssignCategories</string>
<string>ClearCacheUponUpload</string> <string>ClearCacheUponUpload</string>
<string>SetReferenceFromFilename</string> <string>IngestAfterUpload</string>
</list> </list>
</value> </value>
</item> </item>
...@@ -85,7 +85,9 @@ ...@@ -85,7 +85,9 @@
<item> <item>
<key> <string>script_name</string> </key> <key> <string>script_name</string> </key>
<value> <value>
<tuple/> <list>
<string>CreateNewOnUpload</string>
</list>
</value> </value>
</item> </item>
<item> <item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PythonScripts.PythonScript</string>
<string>PythonScript</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Python_magic</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>o=state_change.object\n
mod=o.aq_parent\n
return context.REQUEST.RESPONSE.redirect(mod.absolute_url())\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>state_change</string>
<string>_getattr_</string>
<string>o</string>
<string>mod</string>
<string>context</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>CreateNewOnUpload</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PythonScripts.PythonScript</string>
<string>PythonScript</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Python_magic</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>ob=state_change.object\n
kw=ob.REQUEST\n
f=kw.get(\'my_file\',None)\n
\n
if f is not None and f:\n
# if file uploaded, then:\n
ob.DMS_ingestFile()\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>state_change</string>
<string>_getattr_</string>
<string>ob</string>
<string>kw</string>
<string>None</string>
<string>f</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>IngestAfterUpload</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -70,17 +70,13 @@ ...@@ -70,17 +70,13 @@
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>ob=state_change.object\n <value> <string>ob=state_change.object\n
kw=ob.REQUEST\n kw=ob.REQUEST\n
ob.log(\'interaction\',\'edit\')\n
f=kw.get(\'my_file\',None)\n f=kw.get(\'my_file\',None)\n
ob.log(\'f\',f)\n
\n \n
if f is not None and f:\n if f is not None and f:\n
# if file uploaded, then:\n # if file uploaded, then:\n
ob.log(\'file\',f)\n
fname=f.filename\n fname=f.filename\n
# we check for appropriate file type (by extension, using content_type_registry)\n # we check for appropriate file type (by extension, using content_type_registry)\n
ctype=context.content_type_registry.findTypeName(fname,None,None)\n ctype=context.content_type_registry.findTypeName(fname,None,None)\n
context.log(context.getPortalType(),ctype)\n
if ctype is None:\n if ctype is None:\n
raise Exception(\'This file should be created as DMS File\')\n raise Exception(\'This file should be created as DMS File\')\n
if ctype!=ob.getPortalType():\n if ctype!=ob.getPortalType():\n
......
...@@ -30,6 +30,16 @@ ...@@ -30,6 +30,16 @@
<none/> <none/>
</value> </value>
</item> </item>
<item>
<key> <string>creation_guard</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>AUC KM</string> </value>
</item>
<item> <item>
<key> <string>groups</string> </key> <key> <string>groups</string> </key>
<value> <value>
...@@ -40,6 +50,14 @@ ...@@ -40,6 +50,14 @@
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>ooo_interaction_workflow</string> </value> <value> <string>ooo_interaction_workflow</string> </value>
</item> </item>
<item>
<key> <string>manager_bypass</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OpenOffice document interaction workflow</string> </value>
</item>
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
......
...@@ -33,7 +33,9 @@ ...@@ -33,7 +33,9 @@
<item> <item>
<key> <string>activate_script_name</string> </key> <key> <string>activate_script_name</string> </key>
<value> <value>
<tuple/> <list>
<string>Convert_after</string>
</list>
</value> </value>
</item> </item>
<item> <item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PythonScripts.PythonScript</string>
<string>PythonScript</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Python_magic</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>ob=state_change.object\n
ob.log(ob.getRelativeUrl())\n
ob.log(ob.hasFile())\n
ob.log(ob.hasOOfile())\n
if ob.hasFile() and not ob.hasOOfile():\n
res=ob.convert()\n
ob.log(res)\n
ob.setStatusMessage(str(res[1]))\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>state_change</string>
<string>_getattr_</string>
<string>ob</string>
<string>res</string>
<string>str</string>
<string>_getitem_</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Convert_after</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -85,6 +85,7 @@ if ob.hasOOfile():\n ...@@ -85,6 +85,7 @@ if ob.hasOOfile():\n
ob.editMetadata(newmeta)\n ob.editMetadata(newmeta)\n
if f is not None and f:\n if f is not None and f:\n
# if file uploaded, then:\n # if file uploaded, then:\n
context.log(f)\n
fname=f.filename\n fname=f.filename\n
# we check for appropriate file type (by extension, using content_type_registry)\n # we check for appropriate file type (by extension, using content_type_registry)\n
ctype=context.content_type_registry.findTypeName(fname,None,None)\n ctype=context.content_type_registry.findTypeName(fname,None,None)\n
...@@ -92,10 +93,7 @@ if f is not None and f:\n ...@@ -92,10 +93,7 @@ if f is not None and f:\n
raise Exception(\'File type of \'+fname+\' is not registered\')\n raise Exception(\'File type of \'+fname+\' is not registered\')\n
if ctype!=ob.getPortalType():\n if ctype!=ob.getPortalType():\n
raise Exception(\'This file should be created as \'+ctype)\n raise Exception(\'This file should be created as \'+ctype)\n
ob.setSourceReference(fname)\n ob.reset()\n
ob.setTitle(fname)\n
ob.oo_data=None # we clear it\n
#ob.setLastUploadTime(DateTime())\n
</string> </value> </string> </value>
</item> </item>
<item> <item>
...@@ -151,11 +149,10 @@ if f is not None and f:\n ...@@ -151,11 +149,10 @@ if f is not None and f:\n
<string>keymf</string> <string>keymf</string>
<string>_getitem_</string> <string>_getitem_</string>
<string>_write_</string> <string>_write_</string>
<string>fname</string>
<string>context</string> <string>context</string>
<string>fname</string>
<string>ctype</string> <string>ctype</string>
<string>Exception</string> <string>Exception</string>
<string>oo_data</string>
</tuple> </tuple>
</value> </value>
</item> </item>
......
201 203
\ No newline at end of file \ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment