diff --git a/mis_builder/README.rst b/mis_builder/README.rst index 656c63f11..81912fb86 100644 --- a/mis_builder/README.rst +++ b/mis_builder/README.rst @@ -102,6 +102,7 @@ Contributors * Martronic SA * nicomacr * Juan Jose Scarafia +* Richard deMeester Maintainer ---------- diff --git a/mis_builder/models/mis_report_instance.py b/mis_builder/models/mis_report_instance.py index b765822be..ce02594c8 100644 --- a/mis_builder/models/mis_report_instance.py +++ b/mis_builder/models/mis_report_instance.py @@ -338,10 +338,10 @@ def _compute_pivot_date(self): record.pivot_date = fields.Date.context_today(record) @api.model - def _default_company_ids(self): + def _default_company_id(self): default_company_id = self.env['res.company'].\ _company_default_get('mis.report.instance').id - return [(6, 0, [default_company_id])] + return default_company_id _name = 'mis.report.instance' @@ -367,11 +367,22 @@ def _default_company_ids(self): string='Target Moves', required=True, default='posted') + company_id = fields.Many2one( + comodel_name='res.company', + string='Company', + default=_default_company_id, + required=True, + ) + multi_company = fields.Boolean( + string='Multiple', + help="Check if you wish to specify " + "children companies to be searched for data.", + default=False, + ) company_ids = fields.Many2many( comodel_name='res.company', string='Companies', - help="Select companies for which data will be searched.", - default=_default_company_ids, + help="Select companies for which data will be searched.", required=True, ) currency_id = fields.Many2one( @@ -392,6 +403,17 @@ def _default_company_ids(self): date_to = fields.Date(string="To") temporary = fields.Boolean(default=False) + @api.onchange('company_id', 'multi_company') + def _onchange_company(self): + if self.company_id and self.multi_company: + self.company_ids = self.env['res.company'].search( + ['|', ('id', '=', self.company_id.id), + ('parent_id', 'child_of', self.company_id.id) + ] + ) + else: + self.company_ids = self.company_id + @api.multi def save_report(self): self.ensure_one() diff --git a/mis_builder/security/mis_builder_security.xml b/mis_builder/security/mis_builder_security.xml index 389e47574..227a3b6f0 100644 --- a/mis_builder/security/mis_builder_security.xml +++ b/mis_builder/security/mis_builder_security.xml @@ -1,11 +1,11 @@ - - Mis Builder multi company - - - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] - + + Mis Report Instance multi company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + diff --git a/mis_builder/tests/test_mis_report_instance.py b/mis_builder/tests/test_mis_report_instance.py index a37113e04..2dfa22ccb 100644 --- a/mis_builder/tests/test_mis_report_instance.py +++ b/mis_builder/tests/test_mis_report_instance.py @@ -126,6 +126,7 @@ def setUp(self): self.report_instance = self.env['mis.report.instance'].create(dict( name='test instance', report_id=self.report.id, + company_id=self.env.ref('base.main_company').id, company_ids=[(6, 0, [self.env.ref('base.main_company').id])], period_ids=[(0, 0, dict( name='p1', diff --git a/mis_builder/views/mis_report_instance.xml b/mis_builder/views/mis_report_instance.xml index c53566126..bb6a77d0d 100644 --- a/mis_builder/views/mis_report_instance.xml +++ b/mis_builder/views/mis_report_instance.xml @@ -29,7 +29,8 @@