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',
|
'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.',
|
'summary': 'Adds functionality necessary for managing field service operations at Durpro.',
|
||||||
'description': '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',
|
'category': 'Services/Field Service',
|
||||||
|
|
|
||||||
|
|
@ -6,3 +6,4 @@ from . import test_fsm_contact_setting
|
||||||
from . import test_fsm_visit
|
from . import test_fsm_visit
|
||||||
from . import test_task
|
from . import test_task
|
||||||
from . import test_task_report
|
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):
|
class TestTaskReport(BemadeFSMBaseTest):
|
||||||
def test_split_time_materials_setting(self):
|
def test_split_time_materials_setting(self):
|
||||||
with Form(self.env['res.config.settings']) as settings:
|
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:
|
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()
|
so = self._generate_sale_order()
|
||||||
service_product = self._generate_product()
|
service_product = self._generate_product()
|
||||||
|
|
|
||||||
|
|
@ -4,33 +4,19 @@ from odoo import models, fields, api
|
||||||
class ResConfigSettings(models.TransientModel):
|
class ResConfigSettings(models.TransientModel):
|
||||||
_inherit = "res.config.settings"
|
_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",
|
"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",
|
related="company_id.split_time_from_materials_on_service_work_orders",
|
||||||
company_dependent=True,
|
check_company=True,
|
||||||
readonly=False,
|
readonly=False,
|
||||||
)
|
)
|
||||||
module_bemade_fsm_create_default_fsm_visit = fields.Boolean(
|
create_default_fsm_visit = fields.Boolean(
|
||||||
"Create Default Visit for FSM Sales Orders",
|
"Create Default Visit for FSM Sales Orders",
|
||||||
config_parameter="bemade_fsm_create_default_fsm_visit",
|
|
||||||
related="company_id.create_default_fsm_visit",
|
related="company_id.create_default_fsm_visit",
|
||||||
company_dependent=True,
|
check_company=True,
|
||||||
readonly=False,
|
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">
|
<field name="arch" type="xml">
|
||||||
<setting name="module_industry_fsm_report" position="after">
|
<setting name="module_industry_fsm_report" position="after">
|
||||||
<setting
|
<setting
|
||||||
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.">
|
help="Separate blocks for materials and time on work order reports."
|
||||||
<field name="module_bemade_fsm_separate_time_on_work_orders"/>
|
company_dependent="1">
|
||||||
|
<field name="separate_time_on_work_orders"/>
|
||||||
</setting>
|
</setting>
|
||||||
<setting
|
<setting
|
||||||
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.">
|
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"/>
|
company_dependent="1">
|
||||||
|
<field name="create_default_fsm_visit"/>
|
||||||
</setting>
|
</setting>
|
||||||
</setting>
|
</setting>
|
||||||
</field>
|
</field>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue