From b4441a1ca483e2aab8bf7b466b1075ab702cd7d0 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Wed, 12 Sep 2012 02:57:21 +0200 Subject: [PATCH] [IMP] account template loading speedup 1min on runbot check parent_id type constraint before create/write remove parent_id eval 0 bzr revid: al@openerp.com-20120912005721-ofpgkaorlm4zrwgy --- addons/account/account.py | 25 +++++++++++-------- .../data/configurable_account_chart.xml | 1 - addons/account/demo/account_minimal.xml | 1 - addons/l10n_ca/account_chart_en.xml | 1 - addons/l10n_gr/account_chart.xml | 1 - addons/l10n_gt/account_chart.xml | 1 - addons/l10n_hn/account_chart.xml | 1 - addons/l10n_in/l10n_in_private_chart.xml | 3 +-- addons/l10n_in/l10n_in_public_chart.xml | 3 +-- addons/l10n_th/account_data.xml | 1 - addons/l10n_uy/account_chart_template.xml | 1 - 11 files changed, 16 insertions(+), 23 deletions(-) diff --git a/addons/account/account.py b/addons/account/account.py index 57356f7d3ef..e5e29f178a3 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -2516,22 +2516,25 @@ class account_account_template(osv.osv): 'nocreate': False, } - def _check_type(self, cr, uid, ids, context=None): - if context is None: - context = {} - accounts = self.browse(cr, uid, ids, context=context) - for account in accounts: - if account.parent_id and account.parent_id.type != 'view': - return False - return True - _check_recursion = check_cycle _constraints = [ (_check_recursion, 'Error!\nYou cannot create recursive account templates.', ['parent_id']), - (_check_type, 'Configuration Error!\nYou cannot define children to an account that has internal type other than "View".', ['type']), - ] + def create(self, cr, uid, vals, context=None): + if 'parent_id' in vals: + parent = self.read(cr, uid, [vals['parent_id']], ['type']) + if parent and parent[0]['type'] != 'view': + raise osv.except_osv(_('Warning!'), _("You may only select a parent account of type 'View'.")) + return super(account_account_template, self).create(cr, uid, vals, context=context) + + def write(self, cr, uid, ids, vals, context=None): + if 'parent_id' in vals: + parent = self.read(cr, uid, [vals['parent_id']], ['type']) + if parent and parent[0]['type'] != 'view': + raise osv.except_osv(_('Warning!'), _("You may only select a parent account of type 'View'.")) + return super(account_account_template, self).write(cr, uid, ids, vals, context=context) + def name_get(self, cr, uid, ids, context=None): if not ids: return [] diff --git a/addons/account/data/configurable_account_chart.xml b/addons/account/data/configurable_account_chart.xml index 18e22a5e4f2..b8b23344ff3 100644 --- a/addons/account/data/configurable_account_chart.xml +++ b/addons/account/data/configurable_account_chart.xml @@ -45,7 +45,6 @@ 0 Configurable Account Chart - view diff --git a/addons/account/demo/account_minimal.xml b/addons/account/demo/account_minimal.xml index 94b3d2d4085..53f2b54e0ef 100644 --- a/addons/account/demo/account_minimal.xml +++ b/addons/account/demo/account_minimal.xml @@ -19,7 +19,6 @@ X0 Chart For Automated Tests - view diff --git a/addons/l10n_ca/account_chart_en.xml b/addons/l10n_ca/account_chart_en.xml index 0d67e081d08..acb4fa4802b 100644 --- a/addons/l10n_ca/account_chart_en.xml +++ b/addons/l10n_ca/account_chart_en.xml @@ -6,7 +6,6 @@ 0 Account Chart CA EN - view diff --git a/addons/l10n_gr/account_chart.xml b/addons/l10n_gr/account_chart.xml index 0ad5579d867..950d9e7b09c 100644 --- a/addons/l10n_gr/account_chart.xml +++ b/addons/l10n_gr/account_chart.xml @@ -7,7 +7,6 @@ 0 Γενικό Λογιστικό Σχέδιο - view diff --git a/addons/l10n_gt/account_chart.xml b/addons/l10n_gt/account_chart.xml index ffb4177d743..0f9aecfb423 100644 --- a/addons/l10n_gt/account_chart.xml +++ b/addons/l10n_gt/account_chart.xml @@ -7,7 +7,6 @@ - Plan contable de Guatemala (sencillo) - view diff --git a/addons/l10n_hn/account_chart.xml b/addons/l10n_hn/account_chart.xml index 7bd17b0e82d..228c60ef4dc 100644 --- a/addons/l10n_hn/account_chart.xml +++ b/addons/l10n_hn/account_chart.xml @@ -7,7 +7,6 @@ - Plan contable de Honduras (sencillo) - view diff --git a/addons/l10n_in/l10n_in_private_chart.xml b/addons/l10n_in/l10n_in_private_chart.xml index db11d0638c8..f38f95750cf 100644 --- a/addons/l10n_in/l10n_in_private_chart.xml +++ b/addons/l10n_in/l10n_in_private_chart.xml @@ -8,7 +8,6 @@ Partnership/Private Firm Chart of Account 0 view - @@ -520,4 +519,4 @@ - \ No newline at end of file + diff --git a/addons/l10n_in/l10n_in_public_chart.xml b/addons/l10n_in/l10n_in_public_chart.xml index 2c2dda0dd9d..4a4098d56c9 100644 --- a/addons/l10n_in/l10n_in_public_chart.xml +++ b/addons/l10n_in/l10n_in_public_chart.xml @@ -9,7 +9,6 @@ Public Firm Chart of Account 0 view - @@ -673,4 +672,4 @@ - \ No newline at end of file + diff --git a/addons/l10n_th/account_data.xml b/addons/l10n_th/account_data.xml index 48e7b4f33d6..d5885d4b92b 100644 --- a/addons/l10n_th/account_data.xml +++ b/addons/l10n_th/account_data.xml @@ -26,7 +26,6 @@ 0 Simple chart of accounts - view diff --git a/addons/l10n_uy/account_chart_template.xml b/addons/l10n_uy/account_chart_template.xml index 1548d3ee25a..8308263d8b0 100644 --- a/addons/l10n_uy/account_chart_template.xml +++ b/addons/l10n_uy/account_chart_template.xml @@ -4,7 +4,6 @@ 0 view - Uruguay - Plan de Cuentas