From e8d51e8be445303a67936997fe99f479f6692176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com> Date: Mon, 19 Dec 2005 09:12:40 +0000 Subject: [PATCH] Validate with period. Translate portal status messages here. FIXME: it will be translated again in form_view. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@4750 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../scripts/validateBalanceTransaction.xml | 6 - .../scripts/validateTransaction.xml | 122 +++++++----- .../scripts/validateTransactionLines.xml | 183 ++++++++++-------- 3 files changed, 178 insertions(+), 133 deletions(-) diff --git a/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateBalanceTransaction.xml b/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateBalanceTransaction.xml index 3cae45748c..083b1c7b1f 100755 --- a/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateBalanceTransaction.xml +++ b/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateBalanceTransaction.xml @@ -138,12 +138,6 @@ AAAAU2NyaXB0IChQeXRob24pcwgAAAA8bW9kdWxlPgEAAABzAAAAAA==</string> </value> <key> <string>_filepath</string> </key> <value> <string>Script (Python):/nexedi/portal_workflow/accounting_workflow/scripts/validateBalanceTransaction</string> </value> </item> - <item> - <key> <string>_owner</string> </key> - <value> - <none/> - </value> - </item> <item> <key> <string>_params</string> </key> <value> <string>state_change</string> </value> diff --git a/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateTransaction.xml b/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateTransaction.xml index 6c32097822..20481269fc 100755 --- a/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateTransaction.xml +++ b/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateTransaction.xml @@ -73,22 +73,30 @@ from Products.DCWorkflow.DCWorkflow import ValidationFailed\n error_message = \'\'\n \n # Purchase Invoice Transaction or Sale Invoice Transaction.\n -transaction = state_change.object\n +transaction = state_change[\'object\']\n +skip_period_validation = state_change[\'kwargs\'].get(\'skip_period_validation\', 0)\n \n if transaction.getStopDate() in (None, \'\') : \n error_message = \'date is not defined\'\n else: \n - # check the date is not in a closed period\n - for apd in context.portal_catalog(\n - portal_type="Accounting Period Delimiter", \n - simulation_state="delivered") : \n - apd = apd.getObject()\n - if apd.getStartDate() < transaction.getStopDate() < apd.getStopDate():\n - error_message = \'date is in a closed period\'\n + if not skip_period_validation :\n + valid_date = 0\n + # check the date is in an opened period\n + transaction_date = DateTime( transaction.getStopDate().year(),\n + transaction.getStopDate().month(),\n + transaction.getStopDate().day() ) # we don\'t care about hour:minutes\n + for apd in context.portal_catalog(\n + portal_type = "Accounting Period", \n + simulation_state = "planned") : \n + apd = apd.getObject()\n + if apd.getStartDate() <= transaction_date <= apd.getStopDate():\n + valid_date = 1\n + if not valid_date :\n + error_message = "Date is not in an openned Accounting Period" \n \n # Get sections and a currency.\n -source_section = transaction.getSourceSection(portal_type = [\'Organisation\'])\n -destination_section = transaction.getDestinationSection(portal_type = [\'Organisation\', \'Person\'])\n +source_section = transaction.getSourceSection()\n +destination_section = transaction.getDestinationSection()\n currency = transaction.getResource()\n \n if source_section in (None, \'\'):\n @@ -96,51 +104,54 @@ if source_section in (None, \'\'):\n elif transaction.getPortalType() not in (\'Balance Transaction\', \'Accounting Transaction\'):\n if destination_section in (None, \'\'):\n error_message = \'destination_section is not defined\'\n - if transaction.getDestinationSection() not in (None, \'\'):\n - error_message = \'destination_section is not an Organisation or a Person\'\n elif currency in (None, \'\'):\n error_message = \'currency is not defined\'\n \n if error_message != \'\':\n - raise ValidationFailed, \'Action impossible : \' + error_message\n + raise ValidationFailed, \'Action impossible : \'+error_message\n ]]></string> </value> </item> <item> <key> <string>_code</string> </key> - <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAQAAAA0AAAASAAAAQwAA -AHPoAQAAZAEAawAAbAEAfQIAAWQCAH0DAHQDAHwAAGQDAIMCAH0FAHQDAHwFAGQEAIMCAIMAAHQG -AGQCAGYCAGoGAG8KAAFkBQB9AwBujgABeIoAdAcAdAMAdAgAZAYAgwIAZAcAZAgAZAkAZAoAgwAC -gwEARF1kAH0JAHQDAHwJAGQLAIMCAIMAAH0JAHQDAHwJAGQMAIMCAIMAAHQDAHwFAGQEAIMCAIMA -AAQDagAAbxYAAXQDAHwJAGQEAIMCAIMAAGoAAG4CAAIBbwoAAWQNAH0DAHFwAAFxcABXdAMAfAUA -ZA4AgwIAZAcAZA8AZwEAgwABfQoAdAMAfAUAZBAAgwIAZAcAZA8AZBEAZwIAgwABfQsAdAMAfAUA -ZBIAgwIAgwAAfQwAfAoAdAYAZAIAZgIAagYAbwoAAWQTAH0DAG6HAAF0AwB8BQBkFACDAgCDAABk -FQBkFgBmAgBqBwBvZwABfAsAdAYAZAIAZgIAagYAbzMAAWQXAH0DAHQDAHwFAGQQAIMCAIMAAHQG -AGQCAGYCAGoHAG8KAAFkGAB9AwBxwgEBccYBAXwMAHQGAGQCAGYCAGoGAG8KAAFkGQB9AwBxxgEB -bgEAAXwDAGQCAGoDAG8RAAF8AgBkGgB8AwAXggIAbgEAAWQAAFMoGwAAAE4oAQAAAHMQAAAAVmFs -aWRhdGlvbkZhaWxlZHMAAAAAcwYAAABvYmplY3RzCwAAAGdldFN0b3BEYXRlcxMAAABkYXRlIGlz -IG5vdCBkZWZpbmVkcw4AAABwb3J0YWxfY2F0YWxvZ3MLAAAAcG9ydGFsX3R5cGVzGwAAAEFjY291 -bnRpbmcgUGVyaW9kIERlbGltaXRlcnMQAAAAc2ltdWxhdGlvbl9zdGF0ZXMJAAAAZGVsaXZlcmVk -cwkAAABnZXRPYmplY3RzDAAAAGdldFN0YXJ0RGF0ZXMaAAAAZGF0ZSBpcyBpbiBhIGNsb3NlZCBw -ZXJpb2RzEAAAAGdldFNvdXJjZVNlY3Rpb25zDAAAAE9yZ2FuaXNhdGlvbnMVAAAAZ2V0RGVzdGlu -YXRpb25TZWN0aW9ucwYAAABQZXJzb25zCwAAAGdldFJlc291cmNlcx0AAABzb3VyY2Vfc2VjdGlv -biBpcyBub3QgZGVmaW5lZHMNAAAAZ2V0UG9ydGFsVHlwZXMTAAAAQmFsYW5jZSBUcmFuc2FjdGlv -bnMWAAAAQWNjb3VudGluZyBUcmFuc2FjdGlvbnMiAAAAZGVzdGluYXRpb25fc2VjdGlvbiBpcyBu -b3QgZGVmaW5lZHM2AAAAZGVzdGluYXRpb25fc2VjdGlvbiBpcyBub3QgYW4gT3JnYW5pc2F0aW9u -IG9yIGEgUGVyc29ucxcAAABjdXJyZW5jeSBpcyBub3QgZGVmaW5lZHMUAAAAQWN0aW9uIGltcG9z -c2libGUgOiAoDQAAAHMeAAAAUHJvZHVjdHMuRENXb3JrZmxvdy5EQ1dvcmtmbG93cxAAAABWYWxp -ZGF0aW9uRmFpbGVkcw0AAABlcnJvcl9tZXNzYWdlcwkAAABfZ2V0YXR0cl9zDAAAAHN0YXRlX2No -YW5nZXMLAAAAdHJhbnNhY3Rpb25zBAAAAE5vbmVzCQAAAF9nZXRpdGVyX3MHAAAAY29udGV4dHMD -AAAAYXBkcw4AAABzb3VyY2Vfc2VjdGlvbnMTAAAAZGVzdGluYXRpb25fc2VjdGlvbnMIAAAAY3Vy -cmVuY3koDQAAAHMMAAAAc3RhdGVfY2hhbmdlcx4AAABQcm9kdWN0cy5EQ1dvcmtmbG93LkRDV29y -a2Zsb3dzEAAAAFZhbGlkYXRpb25GYWlsZWRzDQAAAGVycm9yX21lc3NhZ2VzCQAAAF9nZXRhdHRy -X3MLAAAAdHJhbnNhY3Rpb25zBAAAAE5vbmVzCQAAAF9nZXRpdGVyX3MHAAAAY29udGV4dHMDAAAA -YXBkcw4AAABzb3VyY2Vfc2VjdGlvbnMTAAAAZGVzdGluYXRpb25fc2VjdGlvbnMIAAAAY3VycmVu -Y3koAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzEwAAAHZhbGlkYXRlVHJhbnNhY3Rpb24B -AAAAcy4AAAANAgYDDwIfAQoDJQAGAxIBQgEOAxsBHgESAhMBCgEfARMBBgEfAQ4BEwEOAg0BKAEA -AABzEwAAAHZhbGlkYXRlVHJhbnNhY3Rpb24oAQAAAHMTAAAAdmFsaWRhdGVUcmFuc2FjdGlvbigA -AAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1vZHVsZT4BAAAAcwAAAAA=</string> </value> + <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAQAAABIAAAAPAAAAQwAA +AHM9AgAAZAEAawAAbAEAfQIAAWQCAH0DAHQDAHwAAGQDAIMCAH0FAHQGAHQDAHwAAGQEAIMCAGQF +AIMCAGQGAGQHAIMCAH0HAHQGAHwFAGQIAIMCAIMAAHQIAGQCAGYCAGoGAG8KAAFkCQB9AwBuAAEB +fAcADG/3AAFkBwB9CQB0CgB0BgB0BgB8BQBkCACDAgCDAABkCgCDAgCDAAB0BgB0BgB8BQBkCACD +AgCDAABkCwCDAgCDAAB0BgB0BgB8BQBkCACDAgCDAABkDACDAgCDAACDAwB9CwB4fgB0DAB0BgB0 +DQBkDQCDAgBkDgBkDwBkEABkEQCDAAKDAQBEXVgAfQ4AdAYAfA4AZBIAgwIAgwAAfQ4AdAYAfA4A +ZBMAgwIAgwAAfAsABANqAQBvFgABdAYAfA4AZAgAgwIAgwAAagEAbgIAAgFvCgABZBQAfQkAcfkA +AXH5AFd8CQAMbwoAAWQVAH0DAHFrAQFuAQABdAYAfAUAZBYAgwIAgwAAfQ8AdAYAfAUAZBcAgwIA +gwAAfRAAdAYAfAUAZBgAgwIAgwAAfREAfA8AdAgAZAIAZgIAagYAbwoAAWQZAH0DAG5eAAF0BgB8 +BQBkGgCDAgCDAABkGwBkHABmAgBqBwBvPgABfBAAdAgAZAIAZgIAagYAbwoAAWQdAH0DAHEbAgF8 +EQB0CABkAgBmAgBqBgBvCgABZB4AfQMAcRsCAW4BAAF8AwBkAgBqAwBvEQABfAIAZB8AfAMAF4IC +AG4BAAFkAABTKCAAAABOKAEAAABzEAAAAFZhbGlkYXRpb25GYWlsZWRzAAAAAHMGAAAAb2JqZWN0 +cwYAAABrd2FyZ3NzAwAAAGdldHMWAAAAc2tpcF9wZXJpb2RfdmFsaWRhdGlvbmkAAAAAcwsAAABn +ZXRTdG9wRGF0ZXMTAAAAZGF0ZSBpcyBub3QgZGVmaW5lZHMEAAAAeWVhcnMFAAAAbW9udGhzAwAA +AGRheXMOAAAAcG9ydGFsX2NhdGFsb2dzCwAAAHBvcnRhbF90eXBlcxEAAABBY2NvdW50aW5nIFBl +cmlvZHMQAAAAc2ltdWxhdGlvbl9zdGF0ZXMHAAAAcGxhbm5lZHMJAAAAZ2V0T2JqZWN0cwwAAABn +ZXRTdGFydERhdGVpAQAAAHMrAAAARGF0ZSBpcyBub3QgaW4gYW4gb3Blbm5lZCBBY2NvdW50aW5n +IFBlcmlvZHMQAAAAZ2V0U291cmNlU2VjdGlvbnMVAAAAZ2V0RGVzdGluYXRpb25TZWN0aW9ucwsA +AABnZXRSZXNvdXJjZXMdAAAAc291cmNlX3NlY3Rpb24gaXMgbm90IGRlZmluZWRzDQAAAGdldFBv +cnRhbFR5cGVzEwAAAEJhbGFuY2UgVHJhbnNhY3Rpb25zFgAAAEFjY291bnRpbmcgVHJhbnNhY3Rp +b25zIgAAAGRlc3RpbmF0aW9uX3NlY3Rpb24gaXMgbm90IGRlZmluZWRzFwAAAGN1cnJlbmN5IGlz +IG5vdCBkZWZpbmVkcxQAAABBY3Rpb24gaW1wb3NzaWJsZSA6ICgSAAAAcx4AAABQcm9kdWN0cy5E +Q1dvcmtmbG93LkRDV29ya2Zsb3dzEAAAAFZhbGlkYXRpb25GYWlsZWRzDQAAAGVycm9yX21lc3Nh +Z2VzCQAAAF9nZXRpdGVtX3MMAAAAc3RhdGVfY2hhbmdlcwsAAAB0cmFuc2FjdGlvbnMJAAAAX2dl +dGF0dHJfcxYAAABza2lwX3BlcmlvZF92YWxpZGF0aW9ucwQAAABOb25lcwoAAAB2YWxpZF9kYXRl +cwgAAABEYXRlVGltZXMQAAAAdHJhbnNhY3Rpb25fZGF0ZXMJAAAAX2dldGl0ZXJfcwcAAABjb250 +ZXh0cwMAAABhcGRzDgAAAHNvdXJjZV9zZWN0aW9ucxMAAABkZXN0aW5hdGlvbl9zZWN0aW9ucwgA +AABjdXJyZW5jeSgSAAAAcwwAAABzdGF0ZV9jaGFuZ2VzHgAAAFByb2R1Y3RzLkRDV29ya2Zsb3cu +RENXb3JrZmxvd3MQAAAAVmFsaWRhdGlvbkZhaWxlZHMNAAAAZXJyb3JfbWVzc2FnZXMJAAAAX2dl +dGl0ZW1fcwsAAAB0cmFuc2FjdGlvbnMJAAAAX2dldGF0dHJfcxYAAABza2lwX3BlcmlvZF92YWxp +ZGF0aW9ucwQAAABOb25lcwoAAAB2YWxpZF9kYXRlcwgAAABEYXRlVGltZXMQAAAAdHJhbnNhY3Rp +b25fZGF0ZXMJAAAAX2dldGl0ZXJfcwcAAABjb250ZXh0cwMAAABhcGRzDgAAAHNvdXJjZV9zZWN0 +aW9ucxMAAABkZXN0aW5hdGlvbl9zZWN0aW9ucwgAAABjdXJyZW5jeSgAAAAAKAAAAABzDwAAAFNj +cmlwdCAoUHl0aG9uKXMTAAAAdmFsaWRhdGVUcmFuc2FjdGlvbgEAAABzOgAAAA0CBgMPASECHwEK +AggBBgIkARsBGwElAAYDEgE2AQ4BCAEOAxIBEgESAhMBCgEfARMBCgETAQ4CDQEoAQAAAHMTAAAA +dmFsaWRhdGVUcmFuc2FjdGlvbigBAAAAcxMAAAB2YWxpZGF0ZVRyYW5zYWN0aW9uKAAAAAAoAAAA +AHMPAAAAU2NyaXB0IChQeXRob24pcwgAAAA8bW9kdWxlPgEAAABzAAAAAA==</string> </value> </item> <item> <key> <string>_dav_writelocks</string> </key> @@ -159,7 +170,19 @@ AAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1vZHVsZT4BAAAAcwAAAAA=</string> </ <item> <key> <string>_proxy_roles</string> </key> <value> - <tuple/> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Authenticated</string> + <string>Author</string> + <string>Manager</string> + <string>Member</string> + <string>Owner</string> + <string>Reviewer</string> + </tuple> </value> </item> <item> @@ -190,9 +213,14 @@ AAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1vZHVsZT4BAAAAcwAAAAA=</string> </ <string>Products.DCWorkflow.DCWorkflow</string> <string>ValidationFailed</string> <string>error_message</string> - <string>_getattr_</string> + <string>_getitem_</string> <string>transaction</string> + <string>_getattr_</string> + <string>skip_period_validation</string> <string>None</string> + <string>valid_date</string> + <string>DateTime</string> + <string>transaction_date</string> <string>_getiter_</string> <string>context</string> <string>apd</string> diff --git a/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateTransactionLines.xml b/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateTransactionLines.xml index 688fb50dcd..00dd1169a8 100755 --- a/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateTransactionLines.xml +++ b/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/validateTransactionLines.xml @@ -71,15 +71,15 @@ from Products.DCWorkflow.DCWorkflow import ValidationFailed\n \n error_message = \'\'\n -transaction = state_change.object\n -portal = state_change.getPortal()\n +transaction = state_change[\'object\']\n +N_ = transaction.Base_TranslateString\n \n # first of all, validate the transaction it self\n container.validateTransaction(state_change)\n \n # Get sections.\n -source_section = transaction.getSourceSection()\n -destination_section = transaction.getDestinationSection()\n +source_section = transaction.getSourceSection(portal_type = [\'Person\', \'Organisation\'])\n +destination_section = transaction.getDestinationSection(portal_type = [\'Person\', \'Organisation\'])\n \n # Check transaction lines.\n if transaction.getPortalType() not in (\'Balance Transaction\',) :\n @@ -96,85 +96,101 @@ if transaction.getPortalType() not in (\'Balance Transaction\',) :\n quantity = transaction_line.getSourceDebit() - transaction_line.getSourceCredit() + \\\n transaction_line.getDestinationDebit() - transaction_line.getDestinationCredit()\n sum += int(round(quantity * 100))\n +\n if transaction_line.getSourceValue() is None : continue\n +\n + if transaction_line.getSourceValue().getValidationState() != \'validated\' :\n + raise ValidationFailed, N_(\'Action impossible : Account ${account_title} is ${state}\',\n + mapping = {\'account_title\': unicode(transaction_line.getSourceValue().getTranslatedTitle(), \'utf8\'),\n + \'state\': unicode(transaction_line.getSourceValue().\n + getTranslatedValidationStateTitle(), \'utf8\')})\n + \n if transaction_line.getSourceValue().getAccountTypeId() in ("receivable", "payable") \\\n - and transaction_line.getSourceSection() in (None, "") :\n - raise ValidationFailed, \'Action impossible : no source section defined for line %s where account type is "%s"\'%\\\n - (transaction_line.getId(), transaction_line.getSource().getAccountTypeId())\n - if transaction_line.getSourceValue().getAccountTypeId() == "bank" \\\n + and transaction_line.getDestinationSection() in (None, "") :\n + raise ValidationFailed, N_(\n + \'Action impossible : no Third Party defined for line ${line} where Account Type is ${account_type}.\',\n + mapping = { \'line\': transaction_line.getId(),\n + \'account_type\' : unicode(transaction_line.getSourceValue()\n + .getAccountTypeValue().getTranslatedLogicalPath(), \'utf8\')})\n + \n + if transaction_line.getSourceValue().isMemberOf("account_type/asset/bank") \\\n and transaction_line.getSourcePayment() in (None, "") :\n - raise ValidationFailed, \'Action impossible : no source payment defined for line %s where account type is "bank"\'%transaction_line.getId()\n + raise ValidationFailed, N_(\n + \'Action impossible : no Bank Account defined for line ${line} where Account Type is ${account_type}.\',\n + mapping = { \'line\': transaction_line.getId(),\n + \'account_type\' : unicode(transaction_line.getSourceValue()\n + .getAccountTypeValue().getTranslatedLogicalPath(), \'utf8\')})\n \n if sum > 0:\n - raise ValidationFailed, \'Action impossible : credit is greater than debit\' #: sum = %.2f\' % (sum/100.0)\n + raise ValidationFailed, N_(\'Action impossible : credit is greater than debit\')\n elif sum < 0:\n - raise ValidationFailed, \'Action impossible : credit is smaller than debit\' #: sum = %.2f\' % (sum/100.0)\n -\n -if portal.portal_templates.getInstalledBusinessTemplate(\'erp5_budget\') is not None :\n - container.validateBudget(state_change)\n + raise ValidationFailed, N_(\'Action impossible : credit is smaller than debit\')\n \n -# delete empty transaction lines.\n -DISABLED = 1\n -if not DISABLED and not transaction.isSimulated() \\\n - and transaction.getSimulationState() in ("stopped", ) :\n - transaction.AccountingTransaction_deleteEmptyLines(redirect=0)\n +transaction.AccountingTransaction_deleteEmptyLines(redirect=0)\n ]]></string> </value> </item> <item> <key> <string>_code</string> </key> - <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAQAAABMAAAAhAAAAQwAA -AHMtAwAAZAEAawAAbAEAfQIAAWQCAH0DAHQDAHwAAGQDAIMCAH0FAHQDAHwAAGQEAIMCAIMAAH0G -AHQDAHQHAGQFAIMCAHwAAIMBAAF0AwB8BQBkBgCDAgCDAAB9CAB0AwB8BQBkBwCDAgCDAAB9CQB0 -AwB8BQBkCACDAgCDAABkCQBmAQBqBwBvDgIBdAMAfAUAZAoAgwIAZAsAaAAABGQMAGQNAGQOAGQP -AGQQAGYEAAM8gwABfQoAZBEAfQsAeKABdAwAfAoAgwEARF2SAX0NAHwIAHwJAGoDAG8dAAF0AwB8 -DQBkEgCDAgCDAABwBAABZBMAfQ4AbkMAAXQDAHwNAGQUAIMCAIMAAHQDAHwNAGQVAIMCAIMAABh0 -AwB8DQBkFgCDAgCDAAAXdAMAfA0AZBcAgwIAgwAAGH0OAHwLAHQPAHQQAHwOAGQYABSDAQCDAQA3 -fQsAdAMAfA0AZBkAgwIAgwAAdBEAaggAbwcAAXHHAG4BAAF0AwB0AwB8DQBkGQCDAgCDAABkGgCD -AgCDAABkGwBkHABmAgBqBgBvHAABdAMAfA0AZAYAgwIAgwAAdBEAZAIAZgIAagYAbzsAAXwCAGQd -AHQDAHwNAGQeAIMCAIMAAHQDAHQDAHwNAGQfAIMCAIMAAGQaAIMCAIMAAGYCABaCAgBuAQABdAMA -dAMAfA0AZBkAgwIAgwAAZBoAgwIAgwAAZCAAagIAbxwAAXQDAHwNAGQhAIMCAIMAAHQRAGQCAGYC -AGoGAG8dAAF8AgBkIgB0AwB8DQBkHgCDAgCDAAAWggIAcccAAXHHAFd8CwBkEQBqBABvDQABfAIA -ZCMAggIAcZUCAXwLAGQRAGoAAG8NAAF8AgBkJACCAgBxlQIBbgEAAXQDAHQDAHwGAGQlAIMCAGQm -AIMCAGQnAIMBAHQRAGoJAG8XAAF0AwB0BwBkKACDAgB8AACDAQABbgEAAWQpAH0SAHwSAAxvLQAB -dAMAfAUAZCoAgwIAgwAADG8ZAAF0AwB8BQBkKwCDAgCDAABkLABmAQBqBgBvGgABdAMAfAUAZC0A -gwIAZC4AZBEAgwABAW4BAAFkAABTKC8AAABOKAEAAABzEAAAAFZhbGlkYXRpb25GYWlsZWRzAAAA -AHMGAAAAb2JqZWN0cwkAAABnZXRQb3J0YWxzEwAAAHZhbGlkYXRlVHJhbnNhY3Rpb25zEAAAAGdl -dFNvdXJjZVNlY3Rpb25zFQAAAGdldERlc3RpbmF0aW9uU2VjdGlvbnMNAAAAZ2V0UG9ydGFsVHlw -ZXMTAAAAQmFsYW5jZSBUcmFuc2FjdGlvbnMNAAAAY29udGVudFZhbHVlc3MGAAAAZmlsdGVycwsA -AABwb3J0YWxfdHlwZXMbAAAAQWNjb3VudGluZyBUcmFuc2FjdGlvbiBMaW5lcx0AAABTYWxlIElu -dm9pY2UgVHJhbnNhY3Rpb24gTGluZXMaAAAAUGF5IFNoZWV0IFRyYW5zYWN0aW9uIExpbmVzIQAA -AFB1cmNoYXNlIEludm9pY2UgVHJhbnNhY3Rpb24gTGluZWkAAAAAcwsAAABnZXRRdWFudGl0eWYD -MC4wcw4AAABnZXRTb3VyY2VEZWJpdHMPAAAAZ2V0U291cmNlQ3JlZGl0cxMAAABnZXREZXN0aW5h -dGlvbkRlYml0cxQAAABnZXREZXN0aW5hdGlvbkNyZWRpdGlkAAAAcw4AAABnZXRTb3VyY2VWYWx1 -ZXMQAAAAZ2V0QWNjb3VudFR5cGVJZHMKAAAAcmVjZWl2YWJsZXMHAAAAcGF5YWJsZXNUAAAAQWN0 -aW9uIGltcG9zc2libGUgOiBubyBzb3VyY2Ugc2VjdGlvbiBkZWZpbmVkIGZvciBsaW5lICVzIHdo -ZXJlIGFjY291bnQgdHlwZSBpcyAiJXMicwUAAABnZXRJZHMJAAAAZ2V0U291cmNlcwQAAABiYW5r -cxAAAABnZXRTb3VyY2VQYXltZW50c1YAAABBY3Rpb24gaW1wb3NzaWJsZSA6IG5vIHNvdXJjZSBw -YXltZW50IGRlZmluZWQgZm9yIGxpbmUgJXMgd2hlcmUgYWNjb3VudCB0eXBlIGlzICJiYW5rInMw -AAAAQWN0aW9uIGltcG9zc2libGUgOiBjcmVkaXQgaXMgZ3JlYXRlciB0aGFuIGRlYml0czAAAABB -Y3Rpb24gaW1wb3NzaWJsZSA6IGNyZWRpdCBpcyBzbWFsbGVyIHRoYW4gZGViaXRzEAAAAHBvcnRh -bF90ZW1wbGF0ZXNzHAAAAGdldEluc3RhbGxlZEJ1c2luZXNzVGVtcGxhdGVzCwAAAGVycDVfYnVk -Z2V0cw4AAAB2YWxpZGF0ZUJ1ZGdldGkBAAAAcwsAAABpc1NpbXVsYXRlZHMSAAAAZ2V0U2ltdWxh -dGlvblN0YXRlcwcAAABzdG9wcGVkcyYAAABBY2NvdW50aW5nVHJhbnNhY3Rpb25fZGVsZXRlRW1w -dHlMaW5lc3MIAAAAcmVkaXJlY3QoEwAAAHMeAAAAUHJvZHVjdHMuRENXb3JrZmxvdy5EQ1dvcmtm -bG93cxAAAABWYWxpZGF0aW9uRmFpbGVkcw0AAABlcnJvcl9tZXNzYWdlcwkAAABfZ2V0YXR0cl9z -DAAAAHN0YXRlX2NoYW5nZXMLAAAAdHJhbnNhY3Rpb25zBgAAAHBvcnRhbHMJAAAAY29udGFpbmVy -cw4AAABzb3VyY2Vfc2VjdGlvbnMTAAAAZGVzdGluYXRpb25fc2VjdGlvbnMdAAAAYWNjb3VudGlu -Z1RyYW5zYWN0aW9uTGluZUxpc3RzAwAAAHN1bXMJAAAAX2dldGl0ZXJfcxAAAAB0cmFuc2FjdGlv -bl9saW5lcwgAAABxdWFudGl0eXMDAAAAaW50cwUAAAByb3VuZHMEAAAATm9uZXMIAAAARElTQUJM -RUQoEwAAAHMMAAAAc3RhdGVfY2hhbmdlcx4AAABQcm9kdWN0cy5EQ1dvcmtmbG93LkRDV29ya2Zs -b3dzEAAAAFZhbGlkYXRpb25GYWlsZWRzDQAAAGVycm9yX21lc3NhZ2VzCQAAAF9nZXRhdHRyX3ML -AAAAdHJhbnNhY3Rpb25zBgAAAHBvcnRhbHMJAAAAY29udGFpbmVycw4AAABzb3VyY2Vfc2VjdGlv -bnMTAAAAZGVzdGluYXRpb25fc2VjdGlvbnMdAAAAYWNjb3VudGluZ1RyYW5zYWN0aW9uTGluZUxp -c3RzAwAAAHN1bXMJAAAAX2dldGl0ZXJfcxAAAAB0cmFuc2FjdGlvbl9saW5lcwgAAABxdWFudGl0 -eXMDAAAAaW50cwUAAAByb3VuZHMEAAAATm9uZXMIAAAARElTQUJMRUQoAAAAACgAAAAAcw8AAABT -Y3JpcHQgKFB5dGhvbilzGAAAAHZhbGlkYXRlVHJhbnNhY3Rpb25MaW5lcwEAAABzRgAAAA0CBgEP -ARUDEAMSARIDHAEPAR4EBgENAAYBDQEdAiIBIAEaASYBKAEcAQYBOwEiARwBIQINAQ0BDQERAigB -FAMGAR8BHAEoAQAAAHMYAAAAdmFsaWRhdGVUcmFuc2FjdGlvbkxpbmVzKAEAAABzGAAAAHZhbGlk -YXRlVHJhbnNhY3Rpb25MaW5lcygAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1v -ZHVsZT4BAAAAcwAAAAA=</string> </value> + <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAQAAABQAAAAuAAAAQwAA +AHPPAwAAZAEAawAAbAEAfQIAAWQCAH0DAHQDAHwAAGQDAIMCAH0FAHQGAHwFAGQEAIMCAH0HAHQG +AHQIAGQFAIMCAHwAAIMBAAF0BgB8BQBkBgCDAgBkBwBkCABkCQBnAgCDAAF9CQB0BgB8BQBkCgCD +AgBkBwBkCABkCQBnAgCDAAF9CgB0BgB8BQBkCwCDAgCDAABkDABmAQBqBwBvGQMBdAYAfAUAZA0A +gwIAZA4AaAAABGQHAGQPAGQQAGQRAGQSAGYEAAM8gwABfQsAZBMAfQwAeJ8CdA0AfAsAgwEARF2R +An0OAHwJAHwKAGoDAG8dAAF0BgB8DgBkFACDAgCDAABwBAABZBUAfQ8AbkMAAXQGAHwOAGQWAIMC +AIMAAHQGAHwOAGQXAIMCAIMAABh0BgB8DgBkGACDAgCDAAAXdAYAfA4AZBkAgwIAgwAAGH0PAHwM +AHQQAHQRAHwPAGQaABSDAQCDAQA3fQwAdAYAfA4AZBsAgwIAgwAAdBIAaggAbwcAAXHcAG4BAAF0 +BgB0BgB8DgBkGwCDAgCDAABkHACDAgCDAABkHQBqAwBvbQABfAIAfAcAZB4AZB8AaAAABGQgAHQT +AHQGAHQGAHwOAGQbAIMCAIMAAGQhAIMCAIMAAGQiAIMCAAM8BGQjAHQTAHQGAHQGAHwOAGQbAIMC +AIMAAGQkAIMCAIMAAGQiAIMCAAM8gwEBggIAbgEAAXQGAHQGAHwOAGQbAIMCAIMAAGQlAIMCAIMA +AGQmAGQnAGYCAGoGAG8cAAF0BgB8DgBkCgCDAgCDAAB0EgBkAgBmAgBqBgBvZAABfAIAfAcAZCgA +ZB8AaAAABGQpAHQGAHwOAGQqAIMCAIMAAAM8BGQrAHQTAHQGAHQGAHQGAHwOAGQbAIMCAIMAAGQs +AIMCAIMAAGQtAIMCAIMAAGQiAIMCAAM8gwEBggIAbgEAAXQGAHQGAHwOAGQbAIMCAIMAAGQuAIMC +AGQvAIMBAG8cAAF0BgB8DgBkMACDAgCDAAB0EgBkAgBmAgBqBgBvZAABfAIAfAcAZDEAZB8AaAAA +BGQpAHQGAHwOAGQqAIMCAIMAAAM8BGQrAHQTAHQGAHQGAHQGAHwOAGQbAIMCAIMAAGQsAIMCAIMA +AGQtAIMCAIMAAGQiAIMCAAM8gwEBggIAcdwAAXHcAFd8DABkEwBqBABvEwABfAIAfAcAZDIAgwEA +ggIAcbUDAXwMAGQTAGoAAG8TAAF8AgB8BwBkMwCDAQCCAgBxtQMBbgEAAXQGAHwFAGQ0AIMCAGQ1 +AGQTAIMAAQFkAABTKDYAAABOKAEAAABzEAAAAFZhbGlkYXRpb25GYWlsZWRzAAAAAHMGAAAAb2Jq +ZWN0cxQAAABCYXNlX1RyYW5zbGF0ZVN0cmluZ3MTAAAAdmFsaWRhdGVUcmFuc2FjdGlvbnMQAAAA +Z2V0U291cmNlU2VjdGlvbnMLAAAAcG9ydGFsX3R5cGVzBgAAAFBlcnNvbnMMAAAAT3JnYW5pc2F0 +aW9ucxUAAABnZXREZXN0aW5hdGlvblNlY3Rpb25zDQAAAGdldFBvcnRhbFR5cGVzEwAAAEJhbGFu +Y2UgVHJhbnNhY3Rpb25zDQAAAGNvbnRlbnRWYWx1ZXNzBgAAAGZpbHRlcnMbAAAAQWNjb3VudGlu +ZyBUcmFuc2FjdGlvbiBMaW5lcx0AAABTYWxlIEludm9pY2UgVHJhbnNhY3Rpb24gTGluZXMaAAAA +UGF5IFNoZWV0IFRyYW5zYWN0aW9uIExpbmVzIQAAAFB1cmNoYXNlIEludm9pY2UgVHJhbnNhY3Rp +b24gTGluZWkAAAAAcwsAAABnZXRRdWFudGl0eWYDMC4wcw4AAABnZXRTb3VyY2VEZWJpdHMPAAAA +Z2V0U291cmNlQ3JlZGl0cxMAAABnZXREZXN0aW5hdGlvbkRlYml0cxQAAABnZXREZXN0aW5hdGlv +bkNyZWRpdGlkAAAAcw4AAABnZXRTb3VyY2VWYWx1ZXMSAAAAZ2V0VmFsaWRhdGlvblN0YXRlcwkA +AAB2YWxpZGF0ZWRzOAAAAEFjdGlvbiBpbXBvc3NpYmxlIDogQWNjb3VudCAke2FjY291bnRfdGl0 +bGV9IGlzICR7c3RhdGV9cwcAAABtYXBwaW5ncw0AAABhY2NvdW50X3RpdGxlcxIAAABnZXRUcmFu +c2xhdGVkVGl0bGVzBAAAAHV0ZjhzBQAAAHN0YXRlcyEAAABnZXRUcmFuc2xhdGVkVmFsaWRhdGlv +blN0YXRlVGl0bGVzEAAAAGdldEFjY291bnRUeXBlSWRzCgAAAHJlY2VpdmFibGVzBwAAAHBheWFi +bGVzYgAAAEFjdGlvbiBpbXBvc3NpYmxlIDogbm8gVGhpcmQgUGFydHkgZGVmaW5lZCBmb3IgbGlu +ZSAke2xpbmV9IHdoZXJlIEFjY291bnQgVHlwZSBpcyAke2FjY291bnRfdHlwZX0ucwQAAABsaW5l +cwUAAABnZXRJZHMMAAAAYWNjb3VudF90eXBlcxMAAABnZXRBY2NvdW50VHlwZVZhbHVlcxgAAABn +ZXRUcmFuc2xhdGVkTG9naWNhbFBhdGhzCgAAAGlzTWVtYmVyT2ZzFwAAAGFjY291bnRfdHlwZS9h +c3NldC9iYW5rcxAAAABnZXRTb3VyY2VQYXltZW50c2MAAABBY3Rpb24gaW1wb3NzaWJsZSA6IG5v +IEJhbmsgQWNjb3VudCBkZWZpbmVkIGZvciBsaW5lICR7bGluZX0gd2hlcmUgQWNjb3VudCBUeXBl +IGlzICR7YWNjb3VudF90eXBlfS5zMAAAAEFjdGlvbiBpbXBvc3NpYmxlIDogY3JlZGl0IGlzIGdy +ZWF0ZXIgdGhhbiBkZWJpdHMwAAAAQWN0aW9uIGltcG9zc2libGUgOiBjcmVkaXQgaXMgc21hbGxl +ciB0aGFuIGRlYml0cyYAAABBY2NvdW50aW5nVHJhbnNhY3Rpb25fZGVsZXRlRW1wdHlMaW5lc3MI +AAAAcmVkaXJlY3QoFAAAAHMeAAAAUHJvZHVjdHMuRENXb3JrZmxvdy5EQ1dvcmtmbG93cxAAAABW +YWxpZGF0aW9uRmFpbGVkcw0AAABlcnJvcl9tZXNzYWdlcwkAAABfZ2V0aXRlbV9zDAAAAHN0YXRl +X2NoYW5nZXMLAAAAdHJhbnNhY3Rpb25zCQAAAF9nZXRhdHRyX3MCAAAATl9zCQAAAGNvbnRhaW5l +cnMOAAAAc291cmNlX3NlY3Rpb25zEwAAAGRlc3RpbmF0aW9uX3NlY3Rpb25zHQAAAGFjY291bnRp +bmdUcmFuc2FjdGlvbkxpbmVMaXN0cwMAAABzdW1zCQAAAF9nZXRpdGVyX3MQAAAAdHJhbnNhY3Rp +b25fbGluZXMIAAAAcXVhbnRpdHlzAwAAAGludHMFAAAAcm91bmRzBAAAAE5vbmVzBwAAAHVuaWNv +ZGUoFAAAAHMMAAAAc3RhdGVfY2hhbmdlcx4AAABQcm9kdWN0cy5EQ1dvcmtmbG93LkRDV29ya2Zs +b3dzEAAAAFZhbGlkYXRpb25GYWlsZWRzDQAAAGVycm9yX21lc3NhZ2VzCQAAAF9nZXRpdGVtX3ML +AAAAdHJhbnNhY3Rpb25zCQAAAF9nZXRhdHRyX3MCAAAATl9zCQAAAGNvbnRhaW5lcnMOAAAAc291 +cmNlX3NlY3Rpb25zEwAAAGRlc3RpbmF0aW9uX3NlY3Rpb25zHQAAAGFjY291bnRpbmdUcmFuc2Fj +dGlvbkxpbmVMaXN0cwMAAABzdW1zCQAAAF9nZXRpdGVyX3MQAAAAdHJhbnNhY3Rpb25fbGluZXMI +AAAAcXVhbnRpdHlzAwAAAGludHMFAAAAcm91bmRzBAAAAE5vbmVzBwAAAHVuaWNvZGUoAAAAACgA +AAAAcw8AAABTY3JpcHQgKFB5dGhvbilzGAAAAHZhbGlkYXRlVHJhbnNhY3Rpb25MaW5lcwEAAABz +SgAAAA0CBgEPARIDEAMeAR4DHAEPAR4EBgENAAYBDQEdAiIBIAEaAiACJQEMATEBNgMoARwBDAIc +AUIDHwEcAQwCHAFAAw0BEwENARoCKAEAAABzGAAAAHZhbGlkYXRlVHJhbnNhY3Rpb25MaW5lcygB +AAAAcxgAAAB2YWxpZGF0ZVRyYW5zYWN0aW9uTGluZXMoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5 +dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value> </item> <item> <key> <string>_dav_writelocks</string> </key> @@ -186,12 +202,6 @@ ZHVsZT4BAAAAcwAAAAA=</string> </value> <key> <string>_filepath</string> </key> <value> <string>Script (Python):/nexedi/portal_workflow/accounting_workflow/scripts/validateTransactionLines</string> </value> </item> - <item> - <key> <string>_owner</string> </key> - <value> - <none/> - </value> - </item> <item> <key> <string>_params</string> </key> <value> <string>state_change</string> </value> @@ -199,7 +209,19 @@ ZHVsZT4BAAAAcwAAAAA=</string> </value> <item> <key> <string>_proxy_roles</string> </key> <value> - <tuple/> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Authenticated</string> + <string>Author</string> + <string>Manager</string> + <string>Member</string> + <string>Owner</string> + <string>Reviewer</string> + </tuple> </value> </item> <item> @@ -230,9 +252,10 @@ ZHVsZT4BAAAAcwAAAAA=</string> </value> <string>Products.DCWorkflow.DCWorkflow</string> <string>ValidationFailed</string> <string>error_message</string> - <string>_getattr_</string> + <string>_getitem_</string> <string>transaction</string> - <string>portal</string> + <string>_getattr_</string> + <string>N_</string> <string>container</string> <string>source_section</string> <string>destination_section</string> @@ -244,7 +267,7 @@ ZHVsZT4BAAAAcwAAAAA=</string> </value> <string>int</string> <string>round</string> <string>None</string> - <string>DISABLED</string> + <string>unicode</string> </tuple> </value> </item> -- 2.30.9