bemade_fsm: fix incorrect settings wizard
This commit is contained in:
parent
7aa095ba78
commit
ddce2423b8
6 changed files with 74 additions and 31 deletions
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
54
bemade_fsm/tests/test_settings.py
Normal file
54
bemade_fsm/tests/test_settings.py
Normal 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
|
||||
)
|
||||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in a new issue