bemade_fsm: fix incorrect settings wizard

This commit is contained in:
Marc Durepos 2024-06-03 14:16:01 -04:00
parent 7aa095ba78
commit ddce2423b8
6 changed files with 74 additions and 31 deletions

View file

@ -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',

View file

@ -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

View file

@ -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
)

View file

@ -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()

View file

@ -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

View file

@ -7,14 +7,16 @@
<field name="arch" type="xml">
<setting name="module_industry_fsm_report" position="after">
<setting
name="module_bemade_fsm_separate_time_on_work_orders"
help="Separate blocks for materials and time on work order reports.">
<field name="module_bemade_fsm_separate_time_on_work_orders"/>
name="separate_time_on_work_orders"
help="Separate blocks for materials and time on work order reports."
company_dependent="1">
<field name="separate_time_on_work_orders"/>
</setting>
<setting
name="module_bemade_fsm_create_default_fsm_visit"
help="Create a default FSM visit if a service SO doesn't already contain one at confirmation.">
<field name="module_bemade_fsm_create_default_fsm_visit"/>
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">
<field name="create_default_fsm_visit"/>
</setting>
</setting>
</field>