diff --git a/fsm_equipment/__manifest__.py b/fsm_equipment/__manifest__.py index d53c31f..b1491e0 100644 --- a/fsm_equipment/__manifest__.py +++ b/fsm_equipment/__manifest__.py @@ -19,7 +19,7 @@ # { "name": "FSM Equipment", - "version": "17.0.0.1.0", + "version": "17.0.0.1.1", "summary": "Add the notion of client equipment for Field Service", "category": "Services/Field Service", "author": "Bemade Inc.", diff --git a/fsm_equipment/models/__init__.py b/fsm_equipment/models/__init__.py index 4ceb3a1..d19e9fa 100644 --- a/fsm_equipment/models/__init__.py +++ b/fsm_equipment/models/__init__.py @@ -1,3 +1,4 @@ from . import equipment_tag from . import equipment from . import res_partner +from . import equipment_component diff --git a/fsm_equipment/models/equipment.py b/fsm_equipment/models/equipment.py index 488f422..321dba7 100644 --- a/fsm_equipment/models/equipment.py +++ b/fsm_equipment/models/equipment.py @@ -43,7 +43,16 @@ class Equipment(models.Model): string="Interventions", ) - active = fields.Boolean(default=True) + active = fields.Boolean( + default=True, + tracking=True, + ) + + equipment_component_ids = fields.One2many( + "fsm.equipment.component", + inverse_name="equipment_id", + tracking=True, + ) @api.model def name_search(self, name="", args=None, operator="ilike", limit=100): diff --git a/fsm_equipment/models/equipment_component.py b/fsm_equipment/models/equipment_component.py new file mode 100644 index 0000000..adae313 --- /dev/null +++ b/fsm_equipment/models/equipment_component.py @@ -0,0 +1,34 @@ +from odoo import models, fields, api + + +class EquipmentComponent(models.Model): + _name = "fsm.equipment.component" + _description = "Equipment Component" + + sequence = fields.Integer() + name = fields.Char() + product_id = fields.Many2one( + "product.product", + ondelete="cascade", + ) + purpose_id = fields.Many2one( + "fsm.equipment.component.purpose", + ondelete="restrict", + ) + equipment_id = fields.Many2one( + "fsm.equipment", + ondelete="cascade", + ) + note = fields.Text() + + @api.onchange("product_id") + def onchange_product_id(self): + for rec in self: + rec.name = rec.product_id.display_name + + +class EquipmentComponentPurpose(models.Model): + _name = "fsm.equipment.component.purpose" + _description = "Component Purpose" + + name = fields.Char(translate=True) diff --git a/fsm_equipment/security/ir.model.access.csv b/fsm_equipment/security/ir.model.access.csv index 1a784e3..1e8c92e 100644 --- a/fsm_equipment/security/ir.model.access.csv +++ b/fsm_equipment/security/ir.model.access.csv @@ -1,3 +1,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_fsm_equipment,fsm_equipment,model_fsm_equipment,base.group_user,1,1,1,1 access_fsm_equipment_tag,fsm_equipment_tag,model_fsm_equipment_tag,base.group_user,1,1,1,1 +access_fsm_equipment_component,fsm_equipment_component,model_fsm_equipment_component,industry_fsm.group_fsm_user,1,1,1,1 +access_fsm_equipment_component_purpose_user,access_fsm_equipment_component_purpose_user,model_fsm_equipment_component_purpose,industry_fsm.group_fsm_user,1,0,0,0 +access_fsm_equipment_component_purpose_manager,access_fsm_equipment_component_purpose_manager,model_fsm_equipment_component_purpose,industry_fsm.group_fsm_manager,1,1,1,1 diff --git a/fsm_equipment/views/equipment_views.xml b/fsm_equipment/views/equipment_views.xml index 63c95eb..e181a63 100644 --- a/fsm_equipment/views/equipment_views.xml +++ b/fsm_equipment/views/equipment_views.xml @@ -32,6 +32,17 @@ + + + + + + + + + + + @@ -49,6 +60,24 @@ fsm.equipment.tree fsm.equipment + + + + + + + + + + + + + fsm.equipment.tree.editable + fsm.equipment @@ -60,6 +89,12 @@ options="{'no_open': False}" /> +