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",
|
"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",
|
"summary": "Add the notion of client equipment for Field Service",
|
||||||
"category": "Services/Field Service",
|
"category": "Services/Field Service",
|
||||||
"author": "Bemade Inc.",
|
"author": "Bemade Inc.",
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
from . import equipment_tag
|
from . import equipment_tag
|
||||||
from . import equipment
|
from . import equipment
|
||||||
from . import res_partner
|
from . import res_partner
|
||||||
|
from . import equipment_component
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,16 @@ class Equipment(models.Model):
|
||||||
string="Interventions",
|
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
|
@api.model
|
||||||
def name_search(self, name="", args=None, operator="ilike", limit=100):
|
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
|
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,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_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>
|
||||||
</group>
|
</group>
|
||||||
<notebook>
|
<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">
|
<page string="Interventions">
|
||||||
<field name="task_ids" groupby="root_ancestor" />
|
<field name="task_ids" groupby="root_ancestor" />
|
||||||
</page>
|
</page>
|
||||||
|
|
@ -49,6 +60,24 @@
|
||||||
<record id="equipment_view_tree" model="ir.ui.view">
|
<record id="equipment_view_tree" model="ir.ui.view">
|
||||||
<field name="name">fsm.equipment.tree</field>
|
<field name="name">fsm.equipment.tree</field>
|
||||||
<field name="model">fsm.equipment</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">
|
<field name="arch" type="xml">
|
||||||
<tree editable="bottom">
|
<tree editable="bottom">
|
||||||
<field name="code" />
|
<field name="code" />
|
||||||
|
|
@ -60,6 +89,12 @@
|
||||||
options="{'no_open': False}"
|
options="{'no_open': False}"
|
||||||
/>
|
/>
|
||||||
<field name="partner_id" />
|
<field name="partner_id" />
|
||||||
|
<button
|
||||||
|
name="action_view_equipment"
|
||||||
|
type="object"
|
||||||
|
string="Details"
|
||||||
|
icon="fa-external-link"
|
||||||
|
/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
||||||
|
|
@ -7,23 +7,6 @@
|
||||||
<field name="context">{'default_partner_location_id': active_id}</field>
|
<field name="context">{'default_partner_location_id': active_id}</field>
|
||||||
<field name="domain">[("partner_id", "=", active_id)]</field>
|
<field name="domain">[("partner_id", "=", active_id)]</field>
|
||||||
</record>
|
</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">
|
<record id="partner_equipment_location_view_form" model="ir.ui.view">
|
||||||
<field name="name">bemade_fsm.partner.equipment.location.form</field>
|
<field name="name">bemade_fsm.partner.equipment.location.form</field>
|
||||||
<field name="model">res.partner</field>
|
<field name="model">res.partner</field>
|
||||||
|
|
@ -31,14 +14,16 @@
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr="//page[@name='internal_notes']" position="before">
|
<xpath expr="//page[@name='internal_notes']" position="before">
|
||||||
<page name="equipment" string="Equipment">
|
<page name="equipment" string="Equipment">
|
||||||
|
<label for="equipment_ids" />
|
||||||
<field
|
<field
|
||||||
name="equipment_ids"
|
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"
|
readonly="False"
|
||||||
/>
|
/>
|
||||||
|
<label for="owned_equipment_ids" />
|
||||||
<field
|
<field
|
||||||
name="owned_equipment_ids"
|
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"
|
readonly="True"
|
||||||
/>
|
/>
|
||||||
</page>
|
</page>
|
||||||
|
|
@ -59,4 +44,14 @@
|
||||||
</div>
|
</div>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</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>
|
</odoo>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue