From 2d7d937103dcca6884023bd4c9eb88a9dd1925d3 Mon Sep 17 00:00:00 2001
From: Ivan Tyagov <ivan@nexedi.com>
Date: Fri, 28 May 2010 10:36:05 +0000
Subject: [PATCH] Use user_login in meta data discovery in both synchronous &
 asynchronous mode. Implement Document_getPropertyDictFromUserLogin in a way
 so that properties can be extracted from Person's assignment definitions.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@35712 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../erp5_ingestion/Base_contribute.xml            | 15 +++++++++++----
 .../Document_getPropertyDictFromUserLogin.xml     |  6 +++++-
 bt5/erp5_ingestion/bt/revision                    |  2 +-
 3 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/bt5/erp5_ingestion/SkinTemplateItem/portal_skins/erp5_ingestion/Base_contribute.xml b/bt5/erp5_ingestion/SkinTemplateItem/portal_skins/erp5_ingestion/Base_contribute.xml
index 132ece502b..458a3981e4 100644
--- a/bt5/erp5_ingestion/SkinTemplateItem/portal_skins/erp5_ingestion/Base_contribute.xml
+++ b/bt5/erp5_ingestion/SkinTemplateItem/portal_skins/erp5_ingestion/Base_contribute.xml
@@ -67,7 +67,12 @@ if synchronous_metadata_discovery is None:\n
 if redirect_to_document is None:\n
   redirect_to_document = portal.portal_preferences.isPreferredRedirectToDocument(False)\n
 \n
+if user_login is None:\n
+  # get current authenticated user\n
+  user_login = str(portal.portal_membership.getAuthenticatedMember())\n
+  \n
 document_kw = {}\n
+document_kw[\'user_login\'] = user_login\n
 if use_context_for_container:\n
   document_kw[\'container_path\'] = context.getRelativeUrl()\n
 if portal_type not in MARKER:\n
@@ -99,7 +104,7 @@ if synchronous_metadata_discovery:\n
     document.processFile()\n
   merged_document = document.Document_convertToBaseFormatAndDiscoverMetadata(\n
                                file_name=file_name,\n
-                               user_login=str(portal.portal_membership.getAuthenticatedMember()))\n
+                               user_login=user_login)\n
   is_existing_document_updated = (merged_document!=document)\n
   document = merged_document\n
 # introspect document and find editable properties\n
@@ -156,7 +161,7 @@ return document\n
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string>file=None, url=None, portal_type=None, classification=None, synchronous_metadata_discovery=None, redirect_to_document=None, attach_document_to_context=False, use_context_for_container=False, redirect_url=None, editable_mode = 1, follow_up_list=None, **kw</string> </value>
+            <value> <string>file=None, url=None, portal_type=None, classification=None, synchronous_metadata_discovery=None, redirect_to_document=None, attach_document_to_context=False, use_context_for_container=False, redirect_url=None, editable_mode = 1, follow_up_list=None, user_login=None, **kw</string> </value>
         </item>
         <item>
             <key> <string>errors</string> </key>
@@ -176,7 +181,7 @@ return document\n
                   <dictionary>
                     <item>
                         <key> <string>co_argcount</string> </key>
-                        <value> <int>11</int> </value>
+                        <value> <int>12</int> </value>
                     </item>
                     <item>
                         <key> <string>co_varnames</string> </key>
@@ -193,6 +198,7 @@ return document\n
                             <string>redirect_url</string>
                             <string>editable_mode</string>
                             <string>follow_up_list</string>
+                            <string>user_login</string>
                             <string>kw</string>
                             <string>Products.ERP5Type.Message</string>
                             <string>translateString</string>
@@ -203,6 +209,7 @@ return document\n
                             <string>portal</string>
                             <string>portal_contributions</string>
                             <string>False</string>
+                            <string>str</string>
                             <string>document_kw</string>
                             <string>_write_</string>
                             <string>_apply_</string>
@@ -211,7 +218,6 @@ return document\n
                             <string>message</string>
                             <string>getattr</string>
                             <string>is_existing_document_updated</string>
-                            <string>str</string>
                             <string>merged_document</string>
                             <string>document_edit_kw</string>
                             <string>property_id_list</string>
@@ -248,6 +254,7 @@ return document\n
                 <none/>
                 <int>1</int>
                 <none/>
+                <none/>
               </tuple>
             </value>
         </item>
diff --git a/bt5/erp5_ingestion/SkinTemplateItem/portal_skins/erp5_ingestion/Document_getPropertyDictFromUserLogin.xml b/bt5/erp5_ingestion/SkinTemplateItem/portal_skins/erp5_ingestion/Document_getPropertyDictFromUserLogin.xml
index 156aa3b6c4..9b2090f0e4 100644
--- a/bt5/erp5_ingestion/SkinTemplateItem/portal_skins/erp5_ingestion/Document_getPropertyDictFromUserLogin.xml
+++ b/bt5/erp5_ingestion/SkinTemplateItem/portal_skins/erp5_ingestion/Document_getPropertyDictFromUserLogin.xml
@@ -58,7 +58,8 @@ Gets document properties discovered from the user who contributes / owns the doc
 User would be usually the current user, but sometimes the name has to be given explicitly\n
 if e.g. the doc is contributed by email, and the script is run by zope user.\n
 """\n
-return {}\n
+assignment_dict = context.ERP5Site_getPersonAssignmentDict(user_name=user_name)\n
+return assignment_dict\n
 </string> </value>
         </item>
         <item>
@@ -96,6 +97,9 @@ return {}\n
                         <value>
                           <tuple>
                             <string>user_name</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>assignment_dict</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_ingestion/bt/revision b/bt5/erp5_ingestion/bt/revision
index 56749c830e..c4fbb1cfac 100644
--- a/bt5/erp5_ingestion/bt/revision
+++ b/bt5/erp5_ingestion/bt/revision
@@ -1 +1 @@
-96
\ No newline at end of file
+97
\ No newline at end of file
-- 
2.30.9