Add the notion of components to fsm_equipment.
This commit is contained in:
parent
7ad197e639
commit
629eb83d57
7 changed files with 98 additions and 21 deletions
|
|
@ -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.",
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
from . import equipment_tag
|
||||
from . import equipment
|
||||
from . import res_partner
|
||||
from . import equipment_component
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
34
fsm_equipment/models/equipment_component.py
Normal file
34
fsm_equipment/models/equipment_component.py
Normal file
|
|
@ -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)
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
|
@ -32,6 +32,17 @@
|
|||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Components">
|
||||
<field name="equipment_component_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="sequence" widget="handle" />
|
||||
<field name="name" />
|
||||
<field name="product_id" />
|
||||
<field name="purpose_id" />
|
||||
<field name="note" />
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Interventions">
|
||||
<field name="task_ids" groupby="root_ancestor" />
|
||||
</page>
|
||||
|
|
@ -49,6 +60,24 @@
|
|||
<record id="equipment_view_tree" model="ir.ui.view">
|
||||
<field name="name">fsm.equipment.tree</field>
|
||||
<field name="model">fsm.equipment</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="code" />
|
||||
<field name="name" />
|
||||
<field name="description" />
|
||||
<field
|
||||
name="tag_ids"
|
||||
widget="many2many_tags"
|
||||
options="{'no_open': False}"
|
||||
/>
|
||||
<field name="partner_id" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="equipment_view_tree_editable" model="ir.ui.view">
|
||||
<field name="name">fsm.equipment.tree.editable</field>
|
||||
<field name="model">fsm.equipment</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom">
|
||||
<field name="code" />
|
||||
|
|
@ -60,6 +89,12 @@
|
|||
options="{'no_open': False}"
|
||||
/>
|
||||
<field name="partner_id" />
|
||||
<button
|
||||
name="action_view_equipment"
|
||||
type="object"
|
||||
string="Details"
|
||||
icon="fa-external-link"
|
||||
/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
|||
|
|
@ -7,23 +7,6 @@
|
|||
<field name="context">{'default_partner_location_id': active_id}</field>
|
||||
<field name="domain">[("partner_id", "=", active_id)]</field>
|
||||
</record>
|
||||
<record id="fsm_equipment_view_tree" model="ir.ui.view">
|
||||
<field name="name">fsm.equipment.tree</field>
|
||||
<field name="model">fsm.equipment</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="code" />
|
||||
<field name="name" />
|
||||
<field name="location_notes" />
|
||||
<button
|
||||
name="action_view_equipment"
|
||||
type="object"
|
||||
string="Details"
|
||||
icon="fa-external-link"
|
||||
/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="partner_equipment_location_view_form" model="ir.ui.view">
|
||||
<field name="name">bemade_fsm.partner.equipment.location.form</field>
|
||||
<field name="model">res.partner</field>
|
||||
|
|
@ -31,14 +14,16 @@
|
|||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[@name='internal_notes']" position="before">
|
||||
<page name="equipment" string="Equipment">
|
||||
<label for="equipment_ids" />
|
||||
<field
|
||||
name="equipment_ids"
|
||||
context="{'tree_view_ref': 'fsm_equipment.fsm_equipment_view_tree'}"
|
||||
context="{'tree_view_ref': 'fsm_equipment.fsm_equipment_view_tree_editable_no_partner'}"
|
||||
readonly="False"
|
||||
/>
|
||||
<label for="owned_equipment_ids" />
|
||||
<field
|
||||
name="owned_equipment_ids"
|
||||
context="{'tree_view_ref': 'fsm_equipment.fsm_equipment_view_tree'}"
|
||||
context="{'tree_view_ref': 'fsm_equipment.equipment_view_tree'}"
|
||||
readonly="True"
|
||||
/>
|
||||
</page>
|
||||
|
|
@ -59,4 +44,14 @@
|
|||
</div>
|
||||
</field>
|
||||
</record>
|
||||
<record id="fsm_equipment_view_tree_editable_no_partner" model="ir.ui.view">
|
||||
<field name="name">fsm.equipment.view.tree.editable.no.partner</field>
|
||||
<field name="inherit_id" ref="fsm_equipment.equipment_view_tree_editable" />
|
||||
<field name="model">fsm.equipment</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="partner_id" position="attributes">
|
||||
<attribute name="column_invisible">True</attribute>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
|
|||
Loading…
Reference in a new issue