From 19de91d4b9da23bf27b44b45bca814a5e1ad5405 Mon Sep 17 00:00:00 2001 From: "Mayur Maheshwari (OpenERP)" Date: Wed, 15 Feb 2012 17:33:31 +0530 Subject: [PATCH 001/178] [FIX]purchase: removed wait ad wait_auth which unnecessary lp bug: https://launchpad.net/bugs/932059 fixed bzr revid: mma@tinyerp.com-20120215120331-7uc0ybsv90oayfw2 --- addons/purchase/purchase.py | 1 - addons/purchase/purchase_view.xml | 3 +-- addons/purchase_requisition/purchase_requisition.py | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 5432067191d..b7c757c7468 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -143,7 +143,6 @@ class purchase_order(osv.osv): STATE_SELECTION = [ ('draft', 'Request for Quotation'), - ('wait', 'Waiting'), ('confirmed', 'Waiting Approval'), ('approved', 'Approved'), ('except_picking', 'Shipping Exception'), diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index ec53ae76a7a..c72c985d8fa 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -196,13 +196,12 @@ - - - - + + + + ''')).getroot() @@ -104,15 +105,15 @@ class test_view_validation(unittest2.TestCase): assert not valid_att_in_field(invalid_form) assert valid_att_in_field(valid_form) - assert not valid_field_view(invalid_form) - assert valid_field_view(valid_form) + assert not valid_view(invalid_form) + assert valid_view(valid_form) def test_all_label_validation(self): assert not valid_att_in_label(invalid_form) assert valid_att_in_label(valid_form) - assert not valid_label_view(invalid_form) - assert valid_label_view(valid_form) + assert not valid_view(invalid_form) + assert valid_view(valid_form) def test_form_string_validation(self): assert not valid_att_in_form(invalid_form) @@ -153,15 +154,15 @@ class test_view_validation(unittest2.TestCase): assert not valid_type_in_colspan(invalid_form) assert valid_type_in_colspan(valid_form) - assert not valid_colspan_view(invalid_form) - assert valid_colspan_view(valid_form) + assert not valid_view(invalid_form) + assert valid_view(valid_form) def test_col_datatype_validation(self): assert not valid_type_in_col(invalid_form) assert valid_type_in_col(valid_form) - assert not valid_col_view(invalid_form) - assert valid_col_view(valid_form) + assert not valid_view(invalid_form) + assert valid_view(valid_form) if __name__ == '__main__': diff --git a/openerp/tools/view_validation.py b/openerp/tools/view_validation.py index 4bb47c54551..820d6ae96e5 100644 --- a/openerp/tools/view_validation.py +++ b/openerp/tools/view_validation.py @@ -42,41 +42,17 @@ def valid_type_in_col(arch): return False return True -def valid_colspan_view(arch): - for pred in [valid_type_in_colspan]: - if not pred(arch): - return False - return True - -def valid_col_view(arch): - for pred in [valid_type_in_col]: - if not pred(arch): - return False - return True - -def valid_field_view(arch): - for pred in [valid_att_in_field]: - if not pred(arch): - return False - return True - -def valid_label_view(arch): - for pred in [valid_att_in_label]: - if not pred(arch): - return False - return True - def valid_view(arch): if arch.tag == 'form': - for pred in [valid_page_in_book,valid_att_in_form]: + for pred in [valid_page_in_book,valid_att_in_form,valid_type_in_colspan,valid_type_in_col,valid_att_in_field,valid_att_in_label]: if not pred(arch): return False elif arch.tag == 'graph': - for pred in [valid_field_in_graph]: + for pred in [valid_field_in_graph,valid_type_in_colspan,valid_type_in_col,valid_att_in_field,valid_att_in_label]: if not pred(arch): return False elif arch.tag == 'tree': - for pred in [valid_field_in_tree]: + for pred in [valid_field_in_tree,valid_type_in_colspan,valid_type_in_col,valid_att_in_field,valid_att_in_label]: if not pred(arch): return False return True From b00e6af86c1dba10b94533be94fc4f15759b64ae Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 6 Aug 2012 11:10:08 +0200 Subject: [PATCH 026/178] [FIX] xml validation: removed duplicated tests. bzr revid: vmt@openerp.com-20120806091008-b4ve91aholkm67l4 --- openerp/tests/test_view_validation.py | 36 +++++++-------------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/openerp/tests/test_view_validation.py b/openerp/tests/test_view_validation.py index e5050ead517..548c652c7a6 100644 --- a/openerp/tests/test_view_validation.py +++ b/openerp/tests/test_view_validation.py @@ -98,71 +98,53 @@ class test_view_validation(unittest2.TestCase): assert not valid_page_in_book(invalid_form) assert valid_page_in_book(valid_form) - assert not valid_view(invalid_form) - assert valid_view(valid_form) - def test_all_field_validation(self): assert not valid_att_in_field(invalid_form) assert valid_att_in_field(valid_form) - assert not valid_view(invalid_form) - assert valid_view(valid_form) - def test_all_label_validation(self): assert not valid_att_in_label(invalid_form) assert valid_att_in_label(valid_form) - - assert not valid_view(invalid_form) - assert valid_view(valid_form) def test_form_string_validation(self): assert not valid_att_in_form(invalid_form) assert valid_att_in_form(valid_form) - assert not valid_view(invalid_form) - assert valid_view(valid_form) - def test_graph_field_validation(self): assert not valid_field_in_graph(invalid_graph) assert valid_field_in_graph(valid_graph) - - assert not valid_view(invalid_graph) - assert valid_view(valid_graph) def test_graph_string_validation(self): assert not valid_field_in_graph(invalid_graph) assert valid_field_in_graph(valid_graph) - - assert not valid_view(invalid_graph) - assert valid_view(valid_graph) def test_tree_field_validation(self): assert not valid_field_in_tree(invalid_tree) assert valid_field_in_tree(valid_tree) - assert not valid_view(invalid_tree) - assert valid_view(valid_tree) - def test_tree_string_validation(self): assert not valid_field_in_tree(invalid_tree) assert valid_field_in_tree(valid_tree) - - assert not valid_view(invalid_tree) - assert valid_view(valid_tree) def test_colspan_datatype_validation(self): assert not valid_type_in_colspan(invalid_form) assert valid_type_in_colspan(valid_form) - - assert not valid_view(invalid_form) - assert valid_view(valid_form) def test_col_datatype_validation(self): assert not valid_type_in_col(invalid_form) assert valid_type_in_col(valid_form) + def test_form_view(self): assert not valid_view(invalid_form) assert valid_view(valid_form) + + def test_tree_view(self): + assert not valid_view(invalid_tree) + assert valid_view(valid_tree) + + def test_graph_view(self): + assert not valid_view(invalid_graph) + assert valid_view(valid_graph) if __name__ == '__main__': From 4a8668589aa787e552ae8f15d4bf13a828f81f1a Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 6 Aug 2012 11:11:44 +0200 Subject: [PATCH 027/178] [IMP] xml validation: white spaces. bzr revid: vmt@openerp.com-20120806091144-t5jjnbnyqu6sk8wf --- openerp/tests/test_view_validation.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/openerp/tests/test_view_validation.py b/openerp/tests/test_view_validation.py index 548c652c7a6..4e28bf4d482 100644 --- a/openerp/tests/test_view_validation.py +++ b/openerp/tests/test_view_validation.py @@ -9,7 +9,7 @@ import openerp from openerp.tools.view_validation import * invalid_form = etree.parse(StringIO('''\ -
+
@@ -97,7 +97,7 @@ class test_view_validation(unittest2.TestCase): def test_page_validation(self): assert not valid_page_in_book(invalid_form) assert valid_page_in_book(valid_form) - + def test_all_field_validation(self): assert not valid_att_in_field(invalid_form) assert valid_att_in_field(valid_form) @@ -105,7 +105,7 @@ class test_view_validation(unittest2.TestCase): def test_all_label_validation(self): assert not valid_att_in_label(invalid_form) assert valid_att_in_label(valid_form) - + def test_form_string_validation(self): assert not valid_att_in_form(invalid_form) assert valid_att_in_form(valid_form) @@ -117,7 +117,7 @@ class test_view_validation(unittest2.TestCase): def test_graph_string_validation(self): assert not valid_field_in_graph(invalid_graph) assert valid_field_in_graph(valid_graph) - + def test_tree_field_validation(self): assert not valid_field_in_tree(invalid_tree) assert valid_field_in_tree(valid_tree) @@ -125,19 +125,19 @@ class test_view_validation(unittest2.TestCase): def test_tree_string_validation(self): assert not valid_field_in_tree(invalid_tree) assert valid_field_in_tree(valid_tree) - + def test_colspan_datatype_validation(self): assert not valid_type_in_colspan(invalid_form) assert valid_type_in_colspan(valid_form) - + def test_col_datatype_validation(self): assert not valid_type_in_col(invalid_form) assert valid_type_in_col(valid_form) - + def test_form_view(self): assert not valid_view(invalid_form) assert valid_view(valid_form) - + def test_tree_view(self): assert not valid_view(invalid_tree) assert valid_view(valid_tree) From be06e66caadd54fad0dfc41abcefc79722e5e7be Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 6 Aug 2012 11:18:52 +0200 Subject: [PATCH 028/178] [IMP] xml validation: added logging for invalid input. bzr revid: vmt@openerp.com-20120806091852-yftb14cw1mrvc3hu --- openerp/tools/view_validation.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openerp/tools/view_validation.py b/openerp/tools/view_validation.py index b9fef105579..f6f26840c64 100644 --- a/openerp/tools/view_validation.py +++ b/openerp/tools/view_validation.py @@ -1,5 +1,9 @@ """ View validation code (using assertions, not the RNG schema). """ +import logging + +_logger = logging.getLogger(__name__) + def valid_page_in_book(arch): """A `page` node must be below a `book` node.""" @@ -56,15 +60,18 @@ def valid_view(arch): for pred in [valid_page_in_book,valid_att_in_form,valid_type_in_colspan,\ valid_type_in_col,valid_att_in_field,valid_att_in_label]: if not pred(arch): + _logger.error('Invalid XML: %s', pred.__doc__) return False elif arch.tag == 'graph': for pred in [valid_field_in_graph,valid_type_in_colspan,valid_type_in_col,\ valid_att_in_field,valid_att_in_label]: if not pred(arch): + _logger.error('Invalid XML: %s', pred.__doc__) return False elif arch.tag == 'tree': for pred in [valid_field_in_tree,valid_type_in_colspan,valid_type_in_col,\ valid_att_in_field,valid_att_in_label]: if not pred(arch): + _logger.error('Invalid XML: %s', pred.__doc__) return False return True From 3614cc9aaa8693e79037a74788a371a45868c792 Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Mon, 6 Aug 2012 15:28:54 +0530 Subject: [PATCH 029/178] [FIX] fixed the predicated for tree view must have string and field and button attrib only bzr revid: jam@tinyerp.com-20120806095854-6vwpgzjqtc0qwn5b --- openerp/tools/view_validation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/tools/view_validation.py b/openerp/tools/view_validation.py index f6f26840c64..09155ae3624 100644 --- a/openerp/tools/view_validation.py +++ b/openerp/tools/view_validation.py @@ -17,7 +17,7 @@ def valid_field_in_graph(arch): def valid_field_in_tree(arch): """A `field` and `button` node must be below a `tree` node.""" - return not arch.xpath('//tree[not((field) and (button) and (@string))]') + return not arch.xpath('//tree[not((field) or (button)) and (@string)]') def valid_att_in_field(arch): From 6c48585a91a41d6f7e32d3d6f8d033a5d0a3ee51 Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Mon, 6 Aug 2012 16:06:31 +0530 Subject: [PATCH 030/178] [FIX] impoved the message bzr revid: jam@tinyerp.com-20120806103631-tzmpq4g48urbic5l --- openerp/tools/view_validation.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openerp/tools/view_validation.py b/openerp/tools/view_validation.py index 09155ae3624..40e9e5be1e0 100644 --- a/openerp/tools/view_validation.py +++ b/openerp/tools/view_validation.py @@ -16,7 +16,7 @@ def valid_field_in_graph(arch): def valid_field_in_tree(arch): - """A `field` and `button` node must be below a `tree` node.""" + """A `field` and `button` node must be below a `tree` node. And tree must have `string` attribute.""" return not arch.xpath('//tree[not((field) or (button)) and (@string)]') @@ -26,12 +26,12 @@ def valid_att_in_field(arch): def valid_att_in_label(arch): - """A `for` and `string` attribute must be in a `label` node.""" + """A `for` and `string` attribute must be on a `label` node.""" return not arch.xpath('//label[not ((@for) or (@string))]') def valid_att_in_form(arch): - """A `string` attribute must be in a `form` node.""" + """A `string` attribute must be on a `form` node.""" return not arch.xpath('//form[not (@string)]') From 3d16cbb9a53b44185e9ccc2b3660f5f2efd9f9e0 Mon Sep 17 00:00:00 2001 From: "Twinkle Christian (OpenERP)" Date: Mon, 6 Aug 2012 16:12:13 +0530 Subject: [PATCH 031/178] [IMP]improvr viewa in base bzr revid: tch@tinyerp.com-20120806104213-3xmv2tzk85ilstef --- openerp/addons/base/res/res_config.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/res/res_config.xml b/openerp/addons/base/res/res_config.xml index e043afb0b7e..07b31a1072f 100644 --- a/openerp/addons/base/res/res_config.xml +++ b/openerp/addons/base/res/res_config.xml @@ -5,7 +5,7 @@ res.config form - +
- + ''')).getroot() diff --git a/openerp/tools/view_validation.py b/openerp/tools/view_validation.py index 40e9e5be1e0..e4324d143f1 100644 --- a/openerp/tools/view_validation.py +++ b/openerp/tools/view_validation.py @@ -12,12 +12,22 @@ def valid_page_in_book(arch): def valid_field_in_graph(arch): """A `field` node must be below a `graph` node.""" - return not arch.xpath('//graph[not ((field) and (@string))]') + if arch.xpath('//graph[not (@string)]'): + return False + for child in arch.xpath('/graph/child::*'): + if child.tag != 'field': + return False + return True def valid_field_in_tree(arch): """A `field` and `button` node must be below a `tree` node. And tree must have `string` attribute.""" - return not arch.xpath('//tree[not((field) or (button)) and (@string)]') + if arch.xpath('//tree[not (@string)]'): + return False + for child in arch.xpath('/tree/child::*'): + if child.tag not in ('field', 'button'): + return False + return True def valid_att_in_field(arch): @@ -57,20 +67,18 @@ def valid_type_in_col(arch): def valid_view(arch): if arch.tag == 'form': - for pred in [valid_page_in_book,valid_att_in_form,valid_type_in_colspan,\ - valid_type_in_col,valid_att_in_field,valid_att_in_label]: + for pred in [valid_page_in_book, valid_att_in_form, valid_type_in_colspan,\ + valid_type_in_col, valid_att_in_field, valid_att_in_label]: if not pred(arch): _logger.error('Invalid XML: %s', pred.__doc__) return False elif arch.tag == 'graph': - for pred in [valid_field_in_graph,valid_type_in_colspan,valid_type_in_col,\ - valid_att_in_field,valid_att_in_label]: + for pred in [valid_field_in_graph, valid_att_in_field]: if not pred(arch): _logger.error('Invalid XML: %s', pred.__doc__) return False elif arch.tag == 'tree': - for pred in [valid_field_in_tree,valid_type_in_colspan,valid_type_in_col,\ - valid_att_in_field,valid_att_in_label]: + for pred in [valid_field_in_tree, valid_att_in_field]: if not pred(arch): _logger.error('Invalid XML: %s', pred.__doc__) return False From ce5a49fd4c67db6ae43a163d9b672675c6b09e65 Mon Sep 17 00:00:00 2001 From: "Twinkle Christian (OpenERP)" Date: Tue, 7 Aug 2012 10:30:07 +0530 Subject: [PATCH 037/178] [IMP]improve views in account bzr revid: tch@tinyerp.com-20120807050007-frozee480m1e2ux9 --- .../account_voucher/account_voucher_view.xml | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/addons/account_voucher/account_voucher_view.xml b/addons/account_voucher/account_voucher_view.xml index f58f6b9c33e..5af75e245fa 100644 --- a/addons/account_voucher/account_voucher_view.xml +++ b/addons/account_voucher/account_voucher_view.xml @@ -6,20 +6,18 @@ account.voucher tree - - - - - - - - - - - - - - + + + + + + + + + + + + From ae1304d42d4dd0ea2bf8e82ab8ea5aa18364ef16 Mon Sep 17 00:00:00 2001 From: "Twinkle Christian (OpenERP)" Date: Tue, 7 Aug 2012 11:48:55 +0530 Subject: [PATCH 038/178] [IMP]improve views bzr revid: tch@tinyerp.com-20120807061855-lbq954eh05i4akpi --- addons/hr_holidays/hr_holidays_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index 4469fa73fbe..79fd193afc6 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -92,7 +92,7 @@ form 1 -
+
diff --git a/addons/lunch/lunch_view.xml b/addons/lunch/lunch_view.xml index d953dfbd1a9..a18362df93b 100644 --- a/addons/lunch/lunch_view.xml +++ b/addons/lunch/lunch_view.xml @@ -23,7 +23,7 @@ Order lunch.order - +
+
+
diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index 4469fa73fbe..de9c65fe042 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -340,7 +340,7 @@ Requests Approve hr.holidays form - {'default_type': 'add', 'search_default_approve':1} + {'default_type': 'remove', 'search_default_approve':1} [('type','=','remove')] @@ -507,7 +507,17 @@ - + + Leaves + ir.actions.act_window + hr.holidays + hr.employee + form + tree,form + {'search_default_employee_id': [active_id], 'default_employee_id': active_id} + [('type','=','remove')] + + diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml index 895474e9d7f..b141cef1bb4 100644 --- a/addons/hr_timesheet/hr_timesheet_view.xml +++ b/addons/hr_timesheet/hr_timesheet_view.xml @@ -14,7 +14,7 @@ - + @@ -42,7 +42,7 @@ -