Commit 4d70b829 authored by wenjie.zheng's avatar wenjie.zheng

Merge branch 'master' into erp5_workflow

parents d7008186 f3c81817
......@@ -139,16 +139,50 @@ account_type_to_group_by_payment = [ \'account_type/asset/cash/bank\' ]\n
account_type_payable_receivable = [\n
\'account_type/asset/receivable\',\n
\'account_type/liability/payable\', ]\n
\n
\n
# For initial balance of third party accounts, we want the same bottom line figure for initial\n
# debit and initial debit wether or not we expand accounts.\n
#\n
# For example if we have this balance when enabling the detailed breakdown\n
# by third party for payable & recievable accounts:\n
#\n
# Account | Third Party | Initial Debit Balance | Initial Credit Balance |\n
# --------+-------------+-----------------------+------------------------|\n
# A1 | P1 | 100 | |\n
# A1 | P2 | | 30 |\n
#\n
# When the breakdown is disabled, we still want to have:\n
#\n
# Account | Initial Debit Balance | Initial Credit Balance |\n
# --------+-----------------------+------------------------|\n
# A1 | 100 | 30 |\n
#\n
# and not an initial debit balance of 70.\n
# This behaviour applies to initial balances, not movements in the period.\n
#\n
# Inventory API does not provide such feature of a getInventory(omit_input/output=True) that\n
# does a sum of getInventoryList(omit_input/output=True, group_by_node=True), so we sum this up\n
# in python, which becomes heavy when there are a lot of third parties (even if we do not\n
# enable the break down).\n
# If user does not enable detailed columns, then there is only one column for initial balance,\n
# so the complexity described above does not apply.\n
if expand_accounts:\n
account_type_to_group_by_mirror_section = account_type_payable_receivable\n
account_type_to_group_by_mirror_section_previous_period = account_type_payable_receivable\n
else:\n
account_type_to_group_by_mirror_section = []\n
account_type_to_group_by_mirror_section_previous_period = []\n
if show_detailed_balance_columns:\n
account_type_to_group_by_mirror_section_previous_period = account_type_payable_receivable\n
\n
\n
account_type_to_group_by_node = [at for at in balance_sheet_account_type_list\n
if at not in account_type_to_group_by_payment\n
and at not in account_type_to_group_by_mirror_section]\n
\n
account_type_to_group_by_node_previous_period = [at for at in account_type_to_group_by_node if at not in account_type_payable_receivable]\n
account_type_to_group_by_node_previous_period = [at for at in account_type_to_group_by_node\n
if at not in account_type_to_group_by_mirror_section_previous_period]\n
\n
\n
total_debit = 0\n
......@@ -468,7 +502,7 @@ for node in getInventoryList(\n
# payable / receivable accounts {{{\n
# initial balance\n
for node in getInventoryList(\n
node_category_strict_membership=account_type_payable_receivable,\n
node_category_strict_membership=account_type_to_group_by_mirror_section_previous_period,\n
group_by_mirror_section=1,\n
group_by_node=1,\n
to_date=period_start_date,\n
......@@ -478,7 +512,7 @@ for node in getInventoryList(\n
mirror_section_key = MARKER\n
if expand_accounts:\n
mirror_section_key = node[\'mirror_section_uid\']\n
\n
\n
account_props = line_per_account.setdefault(\n
getKey(node, mirror_section=mirror_section_key),\n
dict(debit=0, credit=0))\n
......@@ -491,7 +525,7 @@ for node in getInventoryList(\n
found_balance=False\n
# Balance Transactions\n
for node in getInventoryList(\n
node_category_strict_membership=account_type_payable_receivable,\n
node_category_strict_membership=account_type_to_group_by_mirror_section_previous_period,\n
group_by_mirror_section=1,\n
group_by_node=1,\n
from_date=from_date,\n
......@@ -801,7 +835,7 @@ return new_line_list\n
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>show_empty_accounts, expand_accounts, at_date, from_date, period_start_date, section_uid, simulation_state, precision, node_uid, gap_root=None, per_account_class_summary=0, portal_type=None, function=None, funding=None, project=None, group_analytic=[], mirror_section_category=None, **kw</string> </value>
<value> <string>show_empty_accounts, expand_accounts, at_date, from_date, period_start_date, section_uid, simulation_state, precision, node_uid, gap_root=None, per_account_class_summary=0, portal_type=None, function=None, funding=None, project=None, group_analytic=[], mirror_section_category=None, show_detailed_balance_columns=False, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -181,7 +181,8 @@ return [ ReportSection(\n
mirror_section_category,\n
per_account_class_summary=\n
per_account_class_summary,\n
gap_root=gap_root,), )]\n
gap_root=gap_root,\n
show_detailed_balance_columns=show_detailed_balance_columns), )]\n
</string> </value>
</item>
<item>
......
......@@ -63,7 +63,7 @@ sort_dict = { \'income\': 0,\n
def getAccountingTransactionLineSortKey(line):\n
return sort_dict.get(line.getId(), line.getIntIndex() or line.getIntId())\n
\n
return sorted(context.contentValues(portal_type=portal_type), key=getAccountingTransactionLineSortKey)\n
return sorted(context.contentValues(portal_type=portal_type, checked_permission="View"), key=getAccountingTransactionLineSortKey)\n
</string> </value>
</item>
<item>
......
......@@ -60,6 +60,10 @@ portal = period.getPortalObject()\n
\n
period.Base_checkConsistency()\n
\n
# This tag is used in AccountingPeriod_createBalanceTransaction\n
if portal.portal_activities.countMessageWithTag(\'BalanceTransactionCreation\'):\n
raise ValidationFailed(translateString("Balance transaction creation already in progress. Please try again later."))\n
\n
valid_simulation_state_list = [\'cancelled\', \'delivered\', \'deleted\', \'rejected\']\n
all_state_list = [x[1] for x in\n
portal.Base_getTranslatedWorkflowStateItemList(wf_id=\'accounting_workflow\')]\n
......
......@@ -53,6 +53,7 @@
<value> <string>from Products.ERP5Type.Utils import UpperCase\n
from ZODB.POSException import ConflictError\n
from zExceptions import Unauthorized\n
from Products.ERP5.Document.Document import NotConvertedError\n
\n
method = context.z_catalog_fulltext_list\n
property_list = method.arguments_src.split()\n
......@@ -78,6 +79,8 @@ for path in path_list:\n
raise\n
except Unauthorized: # should happen in tricky testERP5Catalog tests only \n
continue\n
except NotConvertedError:\n
continue\n
except Exception, e:\n
exception = e\n
failed_path_list.append(path)\n
......
......@@ -2,7 +2,7 @@
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5Form" module="Products.ERP5Form.Form"/>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
......@@ -88,7 +88,9 @@
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
<list>
<string>listbox_link</string>
</list>
</value>
</item>
<item>
......
......@@ -48,7 +48,6 @@
<string>View</string>
<string>Add portal content</string>
<string>Modify portal content</string>
<string>Delete objects</string>
</tuple>
</value>
</item>
......
......@@ -14,6 +14,12 @@
<key> <string>id</string> </key>
<value> <string>acknowledged</string> </value>
</item>
<item>
<key> <string>permission_roles</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Acknowledged</string> </value>
......@@ -33,4 +39,60 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>Access contents information</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>Add portal content</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>Modify portal content</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>View</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -14,6 +14,12 @@
<key> <string>id</string> </key>
<value> <string>confirmed</string> </value>
</item>
<item>
<key> <string>permission_roles</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Submitted</string> </value>
......@@ -37,4 +43,60 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>Access contents information</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>Add portal content</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>Modify portal content</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>View</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -14,6 +14,12 @@
<key> <string>id</string> </key>
<value> <string>draft</string> </value>
</item>
<item>
<key> <string>permission_roles</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Draft</string> </value>
......@@ -36,4 +42,61 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>Access contents information</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>Add portal content</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>Modify portal content</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>View</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -14,6 +14,12 @@
<key> <string>id</string> </key>
<value> <string>expired</string> </value>
</item>
<item>
<key> <string>permission_roles</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Expired</string> </value>
......@@ -33,4 +39,60 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>Access contents information</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>Add portal content</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>Modify portal content</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>View</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -25,9 +25,14 @@
<item>Task</item>
</portal_type>
<portal_type id="Test Result Line">
<item>CommandLineResult</item>
<item>SortIndex</item>
<item>Task</item>
</portal_type>
<portal_type id="Test Result Node">
<item>CommandLineResult</item>
<item>Task</item>
</portal_type>
<portal_type id="Test Suite">
<item>Arrow</item>
<item>Reference</item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Property Sheet" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>CommandLineResult</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Sheet</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>cmdline_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>stderr_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>stdout_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </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>"""\n
Web API intended for listing, one per line, the report URL (typically present\n
in node\'s stdout) of all nodes involved in a Test Result.\n
Multiline stdout values behaviour is undefined.\n
"""\n
for test_result_node in context.objectValues(portal_type=\'Test Result Node\'):\n
if test_result_node.getCmdline() == \'LOG url\':\n
print test_result_node.getStdout()\n
return printed\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>TestResult_viewTestResultLineStdoutSet</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -8,8 +8,11 @@ Scalability Test Suite | ScalabilityTestSuite
Scalability Test Suite | TestSuite
Test Node | DublinCore
Test Node | TestNode
Test Result Line | CommandLineResult
Test Result Line | SortIndex
Test Result Line | Task
Test Result Node | CommandLineResult
Test Result Node | Task
Test Result | Comment
Test Result | SortIndex
Test Result | Task
......
TestSuite
CommandLineResult
TestSuiteRepository
TestSuiteRepositoryConstraint
TestSuiteConstraint
......
......@@ -196,7 +196,6 @@
<string>my_dialog_mode_order</string>
<string>my_dialog_mode_section_category</string>
<string>my_dialog_mode_order_simulation_state</string>
<string>my_dialog_mode_use_selection</string>
<string>my_dialog_mode_spreadsheet_format</string>
<string>my_dialog_mode_reference_as_prefix</string>
<string>my_dialog_mode_international_form</string>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_dialog_mode_use_selection</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_checkbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Use Current Selection</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -50,52 +50,45 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string encoding="cdata"><![CDATA[
"""\n
<value> <string>"""\n
Run upgrader\n
"""\n
portal = context.getPortalObject()\n
portal_alarms = portal.portal_alarms\n
\n
def launchUpgraderAlarm(alarm_id, after_method_id=[]):\n
def launchUpgraderAlarm(alarm_id, after_tag=None):\n
""" Get the alarm and use sense and solve """\n
if after_tag is None:\n
after_tag = []\n
upgrader_alarm = getattr(portal_alarms, alarm_id, None)\n
if upgrader_alarm is not None and upgrader_alarm.sense():\n
if upgrader_alarm is not None and (force or upgrader_alarm.sense()):\n
# call solve method\n
kw = dict(tag=alarm_id)\n
if len(after_method_id) > 0:\n
kw["after_method_id"] = after_method_id\n
tag = alarm_id\n
activate_kw = dict(tag=tag)\n
activate_kw["after_tag"] = after_tag\n
method_id = upgrader_alarm.getSolveMethodId()\n
if method_id not in (None, \'\'):\n
method = getattr(upgrader_alarm.activate(**kw), method_id)\n
method()\n
return [method_id] + after_method_id\n
return after_method_id\n
\n
previous_method_id = launchUpgraderAlarm(\'upgrader_check_pre_upgrade\')\n
method = getattr(upgrader_alarm.activate(**activate_kw), method_id)\n
method(force=force, activate_kw=activate_kw)\n
return [tag] + after_tag\n
return after_tag\n
\n
previous_method_id.extend([\'recursiveImmediateReindexObject\',\n
\'immediateReindexObject\',\n
\'Base_postCheckConsistencyResult\'])\n
previous_tag = launchUpgraderAlarm(\'upgrader_check_pre_upgrade\')\n
\n
previous_method_id = launchUpgraderAlarm(\'upgrader_check_upgrader\',\n
after_method_id=previous_method_id)\n
previous_tag = launchUpgraderAlarm(\'upgrader_check_upgrader\',\n
after_tag=previous_tag)\n
\n
previous_method_id.append(\'updateBusinessTemplateFromUrl\')\n
previous_method_id = launchUpgraderAlarm(\'upgrader_check_post_upgrade\',\n
after_method_id=previous_method_id)\n
previous_tag = launchUpgraderAlarm(\'upgrader_check_post_upgrade\',\n
after_tag=previous_tag)\n
\n
# Nothing else to do, so we can disable.\n
context.setEnabled(False)\n
return\n
]]></string> </value>
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**kw</string> </value>
<value> <string>force=0, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -58,7 +58,7 @@ active_process = context.newActiveProcess()\n
\n
# We should not run post upgrade if upgrader was not solved or never executed\n
alarm = getattr(portal_alarms, \'upgrader_check_upgrader\')\n
if alarm.sense() in (None, True):\n
if not(force) and alarm.sense() in (None, True):\n
active_process.postActiveResult(summary=context.getTitle(),\n
severity=1,\n
detail="Is required run upgrade before solve it. " +\\\n
......@@ -66,6 +66,7 @@ if alarm.sense() in (None, True):\n
return\n
\n
context.ERP5Site_checkUpgraderConsistency(fixit=True,\n
activate_kw=activate_kw,\n
active_process=active_process,\n
filter_dict={"constraint_type": "post_upgrade"})\n
\n
......@@ -75,7 +76,7 @@ return\n
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**kw</string> </value>
<value> <string>force=0, activate_kw={}, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -54,6 +54,7 @@
Run Pre upgrade\n
"""\n
context.ERP5Site_checkUpgraderConsistency(fixit=True,\n
activate_kw=activate_kw,\n
active_process=context.newActiveProcess(),\n
filter_dict={"constraint_type": "pre_upgrade"})\n
\n
......@@ -63,7 +64,7 @@ return\n
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**kw</string> </value>
<value> <string>force=0, activate_kw={}, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -67,7 +67,7 @@ active_process = context.newActiveProcess()\n
\n
# We should not run upgrader if pre upgrade was not solved or never executed \n
alarm = getattr(portal_alarms, \'upgrader_check_pre_upgrade\')\n
if alarm.sense() in (None, True):\n
if not(force) and alarm.sense() in (None, True):\n
active_process.postActiveResult(summary=context.getTitle(),\n
severity=1,\n
detail="Is required solve Pre Upgrade first. " +\\\n
......@@ -90,6 +90,7 @@ for portal_type in portal_type_list:\n
if portal.portal_catalog.countResults(\n
portal_type=portal_type_list)[0][0] > REINDEX_SPLIT_COUNT:\n
portal.portal_catalog.searchAndActivate(\'Base_postCheckConsistencyResult\',\n
activate_kw=activate_kw,\n
portal_type=portal_type,\n
method_kw=method_kw)\n
else:\n
......@@ -104,7 +105,7 @@ return\n
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**kw</string> </value>
<value> <string>force=0, activate_kw={}, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -64,6 +64,7 @@ for portal_type, constraint_type_list in constraint_type_per_type.iteritems():\n
if portal_type_list:\n
context.getPortalObject().portal_catalog.searchAndActivate(\n
\'Base_postCheckConsistencyResult\',\n
activate_kw=activate_kw,\n
portal_type=portal_type_list,\n
method_kw={\n
\'fixit\': fixit,\n
......@@ -75,7 +76,7 @@ if portal_type_list:\n
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>active_process, fixit=False, filter_dict={}</string> </value>
<value> <string>active_process, activate_kw={}, fixit=False, filter_dict={}</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -82,7 +82,10 @@ for _, bt5_id in resolved_list:\n
workflow_id = group_dict[\'workflow_id\']\n
workflow_id_list = portal_type_dict.setdefault("%s" % portal_type, [])\n
if workflow_id.startswith(\'-\'):\n
workflow_id_list.remove(workflow_id.replace(\'-\', \'\'))\n
try:\n
workflow_id_list.remove(workflow_id.replace(\'-\', \'\'))\n
except ValueError:\n
pass\n
continue\n
elif workflow_id in workflow_id_list:\n
continue\n
......
......@@ -108,6 +108,7 @@
</tr>\n
\n
<!-- Initialize -->\n
<!-- DISABLE FOR NOW\n
<tr>\n
<td>open</td>\n
<td>${base_url}/web_site_module/e5g_ecommerce/</td>\n
......@@ -128,7 +129,6 @@
<td>5000</td>\n
<td></td>\n
</tr>\n
<!-- DEBUG \n
<tr>\n
<td>storeEval</td>\n
<td>function x(el){var n,a=[],w=document.createTreeWalker(el,NodeFilter.SHOW_TEXT,{acceptNode:function(m){if(!/^\\\\s*$/.test(m.data)){return NodeFilter.FILTER_ACCEPT;}}},false);while(n=w.nextNode())a.push(n);return a;}var i,len,t="",list=x(document.getElementById("selenium_myiframe").contentDocument.querySelector("body div"));for(i=0,len=list.length;i&lt;len;i++){t+=list[i].nodeValue+" "}</td>\n
......@@ -139,7 +139,6 @@
<td>${my_global_text}</td>\n
<td></td>\n
</tr>\n
-->\n
<tr>\n
<td>waitForTextPresent</td>\n
<td>Super Product</td>\n
......@@ -150,7 +149,7 @@
<td>//h2</td>\n
<td>Super Product 0</td>\n
</tr>\n
\n
-->\n
\n
</tbody>\n
</table>\n
......
......@@ -108,6 +108,8 @@
</tr>\n
\n
<!-- Initialize -->\n
<!-- DISABLE FOR NOW -->\n
<!--\n
<tr>\n
<td>open</td>\n
<td>${base_url}/web_site_module/e5g_ecrm/</td>\n
......@@ -133,6 +135,7 @@
<td>//a[@href="#jio_key=bug_module%2Fbug_0&amp;view=view"]</td>\n
<td>Super Bug 0</td>\n
</tr>\n
-->\n
\n
\n
</tbody>\n
......
......@@ -109,6 +109,8 @@
\n
\n
<!-- Initialize -->\n
<!-- DISABLE FOR NOW -->\n
<!--\n
<tr>\n
<td>open</td>\n
<td>${base_url}/web_site_module/e5g_ehr/</td>\n
......@@ -154,7 +156,7 @@
<td>//a[@href="#jio_key=position_module%2Fposition_0&amp;view=view"]</td>\n
<td>Super Position 0</td>\n
</tr>\n
\n
-->\n
\n
</tbody>\n
</table>\n
......
......@@ -109,6 +109,8 @@
\n
\n
<!-- Initialize -->\n
<!-- DISABLE FOR NOW -->\n
<!--\n
<tr>\n
<td>open</td>\n
<td>${base_url}/web_site_module/e5g_eproject/</td>\n
......@@ -139,7 +141,7 @@
<td>//a[@href="#jio_key=task_module%2Ftask_0&amp;view=view"]</td>\n
<td>Super Task 0</td>\n
</tr>\n
\n
-->\n
\n
</tbody>\n
</table>\n
......
......@@ -115,7 +115,7 @@
<link rel="stylesheet" href="gadget_bin.css">\n
<script src="rsvp.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
<script src="jquery/core/jquery-2.1.min.js" type="text/javascript"></script>\n
<script src="jquery.js" type="text/javascript"></script>\n
<script src="jquerymobile.js"> type="text/javascript"></script>\n
<script src="handlebars.js" type="text/javascript"></script>\n
<script src="gadget_bin.js" type="text/javascript"></script>\n
......@@ -322,7 +322,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>944.23995.20237.27067</string> </value>
<value> <string>944.36243.1568.23552</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -340,8 +340,8 @@
</tuple>
<state>
<tuple>
<float>1436852011.35</float>
<string>GMT+9</string>
<float>1437641133.89</float>
<string>GMT</string>
</tuple>
</state>
</object>
......
......@@ -125,7 +125,7 @@
<script src="rsvp.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
<script src="URI.js" type="text/javascript"></script>\n
<script src="jquery/core/jquery-2.1.min.js" type="text/javascript"></script>\n
<script src="jquery.js" type="text/javascript"></script>\n
<script src="jquerymobile.js" type="text/javascript"></script>\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_erp5.js" type="text/javascript"></script>\n
......@@ -293,7 +293,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>944.23995.20237.27067</string> </value>
<value> <string>944.36243.11855.44902</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -311,8 +311,8 @@
</tuple>
<state>
<tuple>
<float>1436852011.45</float>
<string>GMT+9</string>
<float>1437641105.38</float>
<string>GMT</string>
</tuple>
</state>
</object>
......
......@@ -117,7 +117,7 @@
<script src="renderjs.js" type="text/javascript"></script>\n
<script src="handlebars.js" type="text/javascript"></script>\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="jquery/core/jquery-2.1.min.js" type="text/javascript"></script>\n
<script src="jquery.js" type="text/javascript"></script>\n
<script src="jquerymobile.js" type="text/javascript"></script>\n
\n
<script id="panel-template-header" type="text/x-handlebars-template">\n
......@@ -319,7 +319,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>944.23995.20237.27067</string> </value>
<value> <string>944.36243.6132.18568</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -337,8 +337,8 @@
</tuple>
<state>
<tuple>
<float>1436852011.47</float>
<string>GMT+9</string>
<float>1437641090.96</float>
<string>GMT</string>
</tuple>
</state>
</object>
......
<registered_skin_selection>
<skin_folder_selection>
<skin_folder>erp5_jquery</skin_folder>
<skin_selection>RJS</skin_selection>
</skin_folder_selection>
<skin_folder_selection>
<skin_folder>erp5_web_renderjs_ui</skin_folder>
<skin_selection>RJS</skin_selection>
......
erp5_jquery | RJS
erp5_web_renderjs_ui | RJS
\ No newline at end of file
......@@ -232,10 +232,12 @@ extends = %(temp_dir)s/testnode/foo/rep0/software.cfg
[rep1]
repository = %(temp_dir)s/testnode/foo/rep1
branch = master
develop = false
[rep2]
repository = %(temp_dir)s/testnode/foo/rep2
branch = foo
develop = false
""" % {'temp_dir': self._temp_dir}
else:
revision1 = "azerty"
......
......@@ -106,7 +106,7 @@ def killCommand(pid, log):
everyone at the same time
"""
process = psutil.Process(pid)
new_child_set = set([x.pid for x in process.get_children(recursive=True)])
new_child_set = set([x.pid for x in process.children(recursive=True)])
child_set = None
os.kill(pid, signal.SIGSTOP)
while new_child_set != child_set:
......@@ -117,7 +117,7 @@ def killCommand(pid, log):
os.kill(child_pid, signal.SIGSTOP)
time.sleep(1)
child_set = new_child_set
new_child_set = set([x.pid for x in process.get_children(recursive=True)])
new_child_set = set([x.pid for x in process.children(recursive=True)])
log("killCommand, finishing, child_set : %r" % (child_set,))
for child_pid in child_set:
os.kill(child_pid, signal.SIGKILL)
......
......@@ -339,7 +339,7 @@ develop = false
except:
log("testnode, error during requesting getTestType() method \
from the distributor.")
raise NotImplementedError
raise
# Select runner according to the test type
if my_test_type == 'UnitTest':
runner = UnitTestRunner(self)
......
......@@ -2499,6 +2499,40 @@ class TestClosingPeriod(AccountingTestCase):
section_uid=self.section.getUid(),
node_uid=self.account_module.receivable.getUid()))
def test_ParrallelClosingRefused(self):
organisation_module = self.organisation_module
stool = self.portal.portal_simulation
period = self.section.newContent(portal_type='Accounting Period')
period.setStartDate(DateTime(2006, 1, 1))
period.setStopDate(DateTime(2006, 12, 31))
period.start()
period2 = self.section.newContent(portal_type='Accounting Period')
period2.setStartDate(DateTime(2007, 1, 1))
period2.setStopDate(DateTime(2007, 12, 31))
period2.start()
pl = self.portal.account_module.newContent(
portal_type='Account',
account_type='equity')
transaction1 = self._makeOne(
start_date=DateTime(2006, 1, 1),
destination_section_value=organisation_module.client_1,
portal_type='Sale Invoice Transaction',
simulation_state='delivered',
lines=(dict(source_value=self.account_module.goods_sales,
source_credit=100),
dict(source_value=self.account_module.receivable,
source_debit=100)))
self.portal.portal_workflow.doActionFor(
period, 'stop_action',
profit_and_loss_account=pl.getRelativeUrl())
self.assertRaises(ValidationFailed,
self.getPortal().portal_workflow.doActionFor,
period2, 'stop_action' )
class TestAccountingExport(AccountingTestCase):
......
......@@ -132,6 +132,7 @@ class Browser:
def run(self, url, display):
self.clean()
self.environ = os.environ.copy()
self._setEnviron()
self._setDisplay(display)
self._run(url)
......@@ -151,21 +152,25 @@ class Browser:
def _setDisplay(self, display):
if display:
os.environ["DISPLAY"] = display
self.environ["DISPLAY"] = display
else:
xauth = os.path.expanduser('~/.Xauthority')
if os.path.exists(xauth):
self.environ["XAUTHORITY"] = xauth
def _runCommand(self, *args):
print " ".join(args)
self.process = subprocess.Popen(args, close_fds=True)
self.process = subprocess.Popen(args, close_fds=True, env=self.environ)
class Firefox(Browser):
""" Use firefox to open run all the tests"""
def _setEnviron(self):
os.environ['MOZ_NO_REMOTE'] = '1'
os.environ['HOME'] = self.profile_dir
os.environ['LC_ALL'] = 'C'
os.environ["MOZ_CRASHREPORTER_DISABLE"] = "1"
os.environ["NO_EM_RESTART"] = "1"
self.environ['MOZ_NO_REMOTE'] = '1'
self.environ['HOME'] = self.profile_dir
self.environ['LC_ALL'] = 'C'
self.environ["MOZ_CRASHREPORTER_DISABLE"] = "1"
self.environ["NO_EM_RESTART"] = "1"
# This disables unwanted SCIM as it fails with Xvfb, at least on Mandriva
# 2010.0, because Firefox tries to start scim-bridge which SIGSEGV and
......@@ -174,7 +179,7 @@ class Firefox(Browser):
'XIM_PROGRAM',
'XMODIFIERS',
'QT_IM_MODULE'):
os.environ.pop(remove_environment_variable, None)
self.environ.pop(remove_environment_variable, None)
def _run(self, url):
# Prepare to run
......@@ -183,8 +188,6 @@ class Firefox(Browser):
self._runCommand(firefox_bin, "-no-remote",
"-profile", self.profile_dir, url)
os.environ['MOZ_NO_REMOTE'] = '0'
def getPrefJs(self):
from App.config import getConfiguration
return """
......
......@@ -276,7 +276,7 @@ class MessageCatalog(LanguageManager, ObjectManager, SimpleItem):
as a translation for unknown messages.
"""
if not isinstance(message, basestring):
raise TypeError, 'only strings can be translated.'
raise TypeError('only strings can be translated, not: %r' % (message,))
if default is None:
default = message
......
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