diff --git a/bemade_fsm/__manifest__.py b/bemade_fsm/__manifest__.py index 02e8490..b758b07 100644 --- a/bemade_fsm/__manifest__.py +++ b/bemade_fsm/__manifest__.py @@ -20,7 +20,7 @@ ######################################################################################## { 'name': 'Improved Field Service Management', - 'version': '17.0.0.2.0', + 'version': '17.0.0.2.1', 'summary': 'Adds functionality necessary for managing field service operations at Durpro.', 'description': 'Adds functionality necessary for managing field service operations at Durpro.', 'category': 'Services/Field Service', diff --git a/bemade_fsm/tests/__init__.py b/bemade_fsm/tests/__init__.py index 538909c..4aa75a5 100644 --- a/bemade_fsm/tests/__init__.py +++ b/bemade_fsm/tests/__init__.py @@ -6,3 +6,4 @@ from . import test_fsm_contact_setting from . import test_fsm_visit from . import test_task from . import test_task_report +from . import test_settings diff --git a/bemade_fsm/tests/test_settings.py b/bemade_fsm/tests/test_settings.py new file mode 100644 index 0000000..e07a8d0 --- /dev/null +++ b/bemade_fsm/tests/test_settings.py @@ -0,0 +1,54 @@ +from odoo.tests import TransactionCase, Form, tagged + +@tagged("-at_install", "post_install") +class TestSettings(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.test_partner_co = cls.env['res.partner'].create({ + 'name': 'Test Co', + }) + cls.test_co = cls.env['res.company'].create({ + 'name': 'Test Co', + 'country_id': cls.env.ref('base.ca').id, + + }) + cls.env.user.company_id = cls.test_co + + def test_enabling_separate_time_on_work_orders(self): + wizard = self.env['res.config.settings'].create({}) + self.assertFalse( + self.test_co.split_time_from_materials_on_service_work_orders + ) + with Form(wizard) as form: + form.separate_time_on_work_orders = True + self.assertTrue( + self.test_co.split_time_from_materials_on_service_work_orders + ) + + def test_disabling_separate_time_on_work_orders(self): + wizard = self.env['res.config.settings'].create({}) + self.test_co.split_time_from_materials_on_service_work_orders = True + with Form(wizard) as form: + form.separate_time_on_work_orders = False + self.assertFalse( + self.test_co.split_time_from_materials_on_service_work_orders + ) + + def test_enabling_create_default_fsm_visit(self): + wizard = self.env['res.config.settings'].create({}) + self.test_co.create_default_fsm_visit = False + with Form(wizard) as form: + form.create_default_fsm_visit = True + self.assertTrue( + self.test_co.create_default_fsm_visit + ) + + def test_disabling_create_default_fsm_visit(self): + wizard = self.env['res.config.settings'].create({}) + self.test_co.create_default_fsm_visit = True + with Form(wizard) as form: + form.create_default_fsm_visit = False + self.assertFalse( + self.test_co.create_default_fsm_visit + ) diff --git a/bemade_fsm/tests/test_task_report.py b/bemade_fsm/tests/test_task_report.py index 48705ff..c12295f 100644 --- a/bemade_fsm/tests/test_task_report.py +++ b/bemade_fsm/tests/test_task_report.py @@ -5,10 +5,10 @@ from odoo.tests import Form class TestTaskReport(BemadeFSMBaseTest): def test_split_time_materials_setting(self): with Form(self.env['res.config.settings']) as settings: - settings.module_bemade_fsm_separate_time_on_work_orders = True + settings.separate_time_on_work_orders = True with Form(self.env['res.config.settings']) as new_settings: - self.assertTrue(settings.module_bemade_fsm_separate_time_on_work_orders) + self.assertTrue(settings.separate_time_on_work_orders) so = self._generate_sale_order() service_product = self._generate_product() diff --git a/bemade_fsm/wizard/res_config_settings.py b/bemade_fsm/wizard/res_config_settings.py index 767c06e..458c9b9 100644 --- a/bemade_fsm/wizard/res_config_settings.py +++ b/bemade_fsm/wizard/res_config_settings.py @@ -4,33 +4,19 @@ from odoo import models, fields, api class ResConfigSettings(models.TransientModel): _inherit = "res.config.settings" - module_bemade_fsm_separate_time_on_work_orders = fields.Boolean( + company_id = fields.Many2one( + 'res.company', + default=lambda self: self.env.company or self.env.user.company_id, + ) + separate_time_on_work_orders = fields.Boolean( "Separate Time from Materials on Work Order", - config_parameter="bemade_fsm_separate_time_on_work_orders", related="company_id.split_time_from_materials_on_service_work_orders", - company_dependent=True, + check_company=True, readonly=False, ) - module_bemade_fsm_create_default_fsm_visit = fields.Boolean( + create_default_fsm_visit = fields.Boolean( "Create Default Visit for FSM Sales Orders", - config_parameter="bemade_fsm_create_default_fsm_visit", related="company_id.create_default_fsm_visit", - company_dependent=True, + check_company=True, readonly=False, ) - - @api.model - def get_values(self): - res = super().get_values() - res.update({ - 'module_bemade_fsm_separate_time_on_work_orders': - self.env.company.split_time_from_materials_on_service_work_orders, - 'module_bemade_fsm_create_default_fsm_visit': self.env.company.create_default_fsm_visit, - }) - return res - - def set_values(self): - super().set_values() - self.env.company.split_time_from_materials_on_service_work_orders = \ - self.module_bemade_fsm_separate_time_on_work_orders - self.env.company.create_default_fsm_visit = self. module_bemade_fsm_create_default_fsm_visit diff --git a/bemade_fsm/wizard/res_config_settings.xml b/bemade_fsm/wizard/res_config_settings.xml index 2779b1a..08d4216 100644 --- a/bemade_fsm/wizard/res_config_settings.xml +++ b/bemade_fsm/wizard/res_config_settings.xml @@ -7,14 +7,16 @@ - + name="separate_time_on_work_orders" + help="Separate blocks for materials and time on work order reports." + company_dependent="1"> + - + name="create_default_fsm_visit" + help="Create a default FSM visit if a service SO doesn't already contain one at confirmation." + company_dependent="1"> +