[MERGE] res.currency: default to global currencies in multi-company setup + add proper ir.rule, courtesy of Alexandre Fayolle (Camptocamp)
lp bug: https://launchpad.net/bugs/1111298 fixed bzr revid: odo@openerp.com-20130517170414-zx9v1x3noqnce4h0
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -73,6 +73,7 @@ class res_currency(osv.osv):
|
||||
'position' : 'after',
|
||||
'rounding': 0.01,
|
||||
'accuracy': 4,
|
||||
'company_id': False,
|
||||
}
|
||||
_sql_constraints = [
|
||||
# this constraint does not cover all cases due to SQL NULL handling for company_id,
|
||||
|
||||
@@ -87,6 +87,12 @@
|
||||
<field name="domain_force">['|','|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
|
||||
</record>
|
||||
|
||||
<record id="res_currency_rule" model="ir.rule">
|
||||
<field name="name">multi-company currency rule</field>
|
||||
<field model="ir.model" name="model_id" ref="model_res_currency"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
|
||||
@@ -291,22 +291,22 @@
|
||||
assert res_101 == [], 'res_101: expected %r, got %r' % ([], res_101)
|
||||
assert res_102 == company_ids, 'res_102: expected %r, got %r' % (company_ids, res_102)
|
||||
-
|
||||
Property of the query (one2many != False).
|
||||
Verify domain evaluation for `one2many != False`
|
||||
-
|
||||
!python {model: res.currency }: |
|
||||
ids = self.search(cr, uid, [])
|
||||
referenced_companies = set([x.company_id.id for x in self.browse(cr, uid, ids)])
|
||||
companies = set(self.pool.get('res.company').search(cr, uid, [('currency_ids', '!=', False)]))
|
||||
assert referenced_companies == companies
|
||||
!python {model: res.partner.category }: |
|
||||
all_ids = self.search(cr, uid, [])
|
||||
parent_categs = set([c.parent_id.id for c in self.browse(cr, uid, all_ids) if c.parent_id])
|
||||
result = set(self.search(cr, uid, [('child_ids', '!=', False)]))
|
||||
assert result and result == parent_categs, "Got %r, expected %r" % (result, parent_categs)
|
||||
-
|
||||
Property of the query (one2many = False).
|
||||
Verify domain evaluation for `one2many == False`
|
||||
-
|
||||
!python {model: res.currency }: |
|
||||
ids = self.search(cr, uid, [])
|
||||
referenced_companies = set([x.company_id.id for x in self.browse(cr, uid, ids)])
|
||||
unreferenced_companies = set(self.pool.get('res.company').search(cr, uid, [])).difference(referenced_companies)
|
||||
companies = set(self.pool.get('res.company').search(cr, uid, [('currency_ids', '=', False)]))
|
||||
assert unreferenced_companies == companies
|
||||
!python {model: res.partner.category }: |
|
||||
all_ids = self.search(cr, uid, [])
|
||||
parent_categs = set([c.parent_id.id for c in self.browse(cr, uid, all_ids) if c.parent_id])
|
||||
leaf_categs = set(all_ids) - parent_categs
|
||||
result = set(self.search(cr, uid, [('child_ids', '=', False)]))
|
||||
assert result and result == leaf_categs, "Got %r, expected %r" % (result, leaf_categs)
|
||||
-
|
||||
Equivalent queries.
|
||||
-
|
||||
|
||||
Reference in New Issue
Block a user