From ba90e6841c2ec3f7b4abef3fcbe50d4709c956a9 Mon Sep 17 00:00:00 2001 From: "qdp-launchpad@tinyerp.com" <> Date: Thu, 23 Dec 2010 16:16:39 +0100 Subject: [PATCH] [FIX] account: display in the widget selection of companies, only the companies that haven't been configured yet (but don't care about the demo chart of accounts) bzr revid: qdp-launchpad@tinyerp.com-20101223151639-pmqdohf0y03kh8zm --- addons/account/account.py | 18 ++++++++++++++++++ addons/account/installer.py | 11 +++++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/addons/account/account.py b/addons/account/account.py index a33cb52aa87..470282fadcd 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -2601,6 +2601,24 @@ class wizard_multi_charts_accounts(osv.osv_memory): 'seq_journal': True } + def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): + res = super(wizard_multi_charts_accounts, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False) + configured_cmp = [] + unconfigured_cmp = [] + cmp_select = [] + company_ids = self.pool.get('res.company').search(cr, uid, [], context=context) + #display in the widget selection of companies, only the companies that haven't been configured yet (but don't care about the demo chart of accounts) + cr.execute("SELECT company_id FROM account_account WHERE active = 't' AND account_account.parent_id IS NULL AND name != %s", ("Chart For Automated Tests",)) + configured_cmp = [r[0] for r in cr.fetchall()] + unconfigured_cmp = list(set(company_ids)-set(configured_cmp)) + if unconfigured_cmp: + cmp_select = [(line.id, line.name) for line in self.pool.get('res.company').browse(cr, uid, unconfigured_cmp)] + for field in res['fields']: + if field == 'company_id': + res['fields'][field]['domain'] = unconfigured_cmp + res['fields'][field]['selection'] = cmp_select + return res + def execute(self, cr, uid, ids, context=None): obj_multi = self.browse(cr, uid, ids[0]) obj_acc = self.pool.get('account.account') diff --git a/addons/account/installer.py b/addons/account/installer.py index 5f66354c5f6..4a0f3255d96 100644 --- a/addons/account/installer.py +++ b/addons/account/installer.py @@ -63,7 +63,7 @@ class account_installer(osv.osv_memory): 'bank_accounts_id': fields.one2many('account.bank.accounts.wizard', 'bank_account_id', 'Your Bank and Cash Accounts'), 'sale_tax': fields.float('Sale Tax(%)'), 'purchase_tax': fields.float('Purchase Tax(%)'), - 'company_id': fields.many2one('res.company', 'Company'), + 'company_id': fields.many2one('res.company', 'Company', required=True), } def _default_company(self, cr, uid, context=None): @@ -102,13 +102,12 @@ class account_installer(osv.osv_memory): unconfigured_cmp = [] cmp_select = [] company_ids = self.pool.get('res.company').search(cr, uid, [], context=context) - cr.execute("SELECT company_id FROM account_account WHERE account_account.parent_id IS NULL") - for r in cr.fetchall(): - configured_cmp.append(r[0]) + #display in the widget selection of companies, only the companies that haven't been configured yet (but don't care about the demo chart of accounts) + cr.execute("SELECT company_id FROM account_account WHERE active = 't' AND account_account.parent_id IS NULL AND name != %s", ("Chart For Automated Tests",)) + configured_cmp = [r[0] for r in cr.fetchall()] unconfigured_cmp = list(set(company_ids)-set(configured_cmp)) if unconfigured_cmp: - for line in self.pool.get('res.company').browse(cr, uid, unconfigured_cmp): - cmp_select.append((line.id,line.name)) + cmp_select = [(line.id, line.name) for line in self.pool.get('res.company').browse(cr, uid, unconfigured_cmp)] for field in res['fields']: if field == 'company_id': res['fields'][field]['domain'] = unconfigured_cmp