Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造-计划优化

# Conflicts:
#	jikimo_frontend/static/src/scss/custom_style.scss
#	sf_manufacturing/views/mrp_workcenter_views.xml
This commit is contained in:
mgw
2023-09-15 10:40:30 +08:00
20 changed files with 449 additions and 292 deletions

View File

@@ -1,8 +1,8 @@
from odoo import models, fields, api
from odoo.exceptions import ValidationError
from odoo.modules import get_resource_path
from OCC.Extend.DataExchange import read_step_file
from OCC.Extend.DataExchange import write_stl_file
# from OCC.Extend.DataExchange import read_step_file
# from OCC.Extend.DataExchange import write_stl_file
import logging
import base64
import hashlib
@@ -91,15 +91,19 @@ class ResProductMo(models.Model):
cutting_tool_coarse_medium_fine = fields.Selection([('', ''), ('', ''), ('', '')], '粗/中/精')
cutting_tool_run_out_accuracy_max = fields.Float('端跳精度max', digits=(6, 1))
cutting_tool_run_out_accuracy_min = fields.Float('端跳精度min', digits=(6, 1))
suitable_machining_method_ids = fields.Many2many('sf.suitable.machining.method',
'rel_suitable_machining_method_product_template', '适合加工方式')
blade_tip_characteristics_ids = fields.Many2many('sf.blade.tip.characteristics',
'rel_blade_tip_characteristics_product_template', '刀尖特征')
handle_type_ids = fields.Many2many('sf.handle.type', 'rel_handle_type_product_template', '柄部类型')
cutting_direction_ids = fields.Many2many('sf.cutting.direction', 'rel_cutting_direction_product_template',
'走刀方向')
suitable_coolant_ids = fields.Many2many('sf.suitable.coolant', 'rel_suitable_coolant_product_template',
'适合冷却液')
suitable_machining_method_ids = fields.Many2many('maintenance.equipment.image',
'rel_machining_product_template', '适合加工方式',
domain=[('type', '=', '加工能力')])
blade_tip_characteristics_ids = fields.Many2many('maintenance.equipment.image',
'rel_blade_tip_product_template', '刀尖特征',
domain=[('type', '=', '刀尖特征')])
handle_type_ids = fields.Many2many('maintenance.equipment.image', 'rel_handle_product_template', '柄部类型',
domain=[('type', '=', '柄部类型')])
cutting_direction_ids = fields.Many2many('maintenance.equipment.image', 'rel_cutting_product_template',
'走刀方向', domain=[('type', '=', '走刀方向')])
suitable_coolant_ids = fields.Many2many('maintenance.equipment.image', 'rel_coolant_product_template',
'适合冷却液', domain=[('type', '=', '冷却液')])
# @api.constrains('suitable_machining_method_ids')
# def _check_suitable_machining_method_ids(self):
@@ -734,7 +738,7 @@ class ResProductMo(models.Model):
def transition_glb_file(self, report_path, code):
shapes = read_step_file(report_path)
output_file = os.path.join('/tmp', str(code) + '.stl')
write_stl_file(shapes, output_file, 'binary', 0.03, 0.5)
# write_stl_file(shapes, output_file, 'binary', 0.03, 0.5)
# 转化为glb
output_glb_file = os.path.join('/tmp', str(code) + '.glb')
util_path = get_resource_path('sf_dlm', 'static/util')
@@ -797,6 +801,7 @@ class ResMrpBomMo(models.Model):
else:
return False
# 查询材料型号默认排第一的供应商
def get_supplier(self, materials_type):

View File

@@ -189,6 +189,8 @@ class StockRule(models.Model):
'mail.message_origin_link',
values={'self': production, 'origin': origin_production},
subtype_id=self.env.ref('mail.mt_note').id)
'''
创建生产计划
'''
@@ -211,7 +213,6 @@ class StockRule(models.Model):
'product_id': production.product_id.id,
'state': 'draft',
})
return True

View File

@@ -44,6 +44,47 @@
</field>
</record>
<record id="mrp_workcenter_view_kanban_inherit_workorder" model="ir.ui.view">
<field name="name">mrp.workcenter.view.kanban.inherit.mrp.workorder</field>
<field name="model">mrp.workcenter</field>
<field name="inherit_id" ref="mrp.mrp_workcenter_kanban"/>
<field name="arch" type="xml">
<!-- Desktop view -->
<xpath expr='(//field[@name="name"])[1]' position="before">
<field name="equipment_status"/>
<field name="equipment_image"/>
</xpath>
<xpath expr='(//field[@name="name"])[2]' position="before">
<field name="equipment_image" widget="image"/>
</xpath>
<xpath expr='(//a[@name="unblock"])' position="after">
<!-- <div class="czyg">绿色:正常,红色:故障,黄色:下线/暂停</div>-->
</xpath>
</field>
</record>
<!--&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;-->
<record id="mrp_workcenter_kanban_inherit1" model="ir.ui.view">
<field name="name">mrp.workcenter.kanban.inherit</field>
<field name="model">mrp.workcenter</field>
<field name="inherit_id" ref="mrp.mrp_workcenter_kanban"/>
<field name="arch" type="xml">
<xpath expr="//kanban//templates//t" position="inside">
<p class="show_state" t-attf-class="oe_kanban_global_click o_kanban_record_has_image_fill o_hr_kanban_record oe_kanban_card oe_kanban_global_click
">
<div t-attf-class="#{record.equipment_status.raw_value == '正常' ? 'color_1' : ''}"></div>
<div t-attf-class="#{record.equipment_status.raw_value == '故障' ? 'color_2' : ''}"></div>
<div t-attf-class="#{record.equipment_status.raw_value == '不可用' ? 'color_3' : ''}"></div>
<span t-attf-class="#{record.equipment_status.raw_value == '正常' ? 'font_color_1' : ''}
#{record.equipment_status.raw_value == '故障' ? 'font_color_2' : ''}
#{record.equipment_status.raw_value == '不可用' ? 'font_color_3' : ''}">
<field name="equipment_status"/>
</span>
</p>
</xpath>
</field>
</record>
<!-- 继承原有的看板视图 -->
<record id="mrp_workcenter_kanban_inherit1" model="ir.ui.view">
<field name="name">mrp.workcenter.kanban.inherit</field>
@@ -126,202 +167,203 @@
</field>
</record>
<record id="mrp_workcenter_view_kanban_inherit_maintenance" model="ir.ui.view">
<field name="name">mrp.workcenter.view.kanban.inherit.maintenance</field>
<field name="model">mrp.workcenter</field>
<field name="inherit_id" ref="mrp.mrp_workcenter_kanban"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='plan_order']" position="after">
<div>
<a name="%(maintenance.hr_equipment_request_action)d" type="action">Maintenance</a>
</div>
</xpath>
</field>
</record>
<record id="mrp_workcenter_view_kanban_inherit_maintenance" model="ir.ui.view">
<field name="name">mrp.workcenter.view.kanban.inherit.maintenance</field>
<field name="model">mrp.workcenter</field>
<field name="inherit_id" ref="mrp.mrp_workcenter_kanban"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='plan_order']" position="after">
<div>
<a name="%(maintenance.hr_equipment_request_action)d" type="action">Maintenance</a>
</div>
</xpath>
</field>
</record>
<!-- 此段勿删,备用。待生产线驾驶舱完全确定下拉并完成后再行删除!!! -->
<!-- 此段勿删,备用。待生产线驾驶舱完全确定下拉并完成后再行删除!!! -->
<!-- --><!-- 继承原有的看板视图 -->
<!-- <record id="mrp_workcenter_kanban_inherit1" model="ir.ui.view"> -->
<!-- <field name="name">mrp.workcenter.kanban.inherit</field> -->
<!-- <field name="model">mrp.workcenter</field> -->
<!-- <field name="inherit_id" ref="mrp.mrp_workcenter_kanban"/> -->
<!-- <field name="arch" type="xml"> -->
<!-- <xpath expr="//kanban" position="replace"> -->
<!-- <kanban class="oe_background_grey o_kanban_dashboard o_workcenter_kanban" create="0" sample="1" -->
<!-- > -->
<!-- <field name="name"/> -->
<!-- <field name="color"/> -->
<!-- <field name="workorder_count"/> -->
<!-- <field name="working_state"/> -->
<!-- <field name="oee_target"/> -->
<!-- <field name="production_line_show"/> -->
<!-- <field name="production_line_id"/> -->
<!-- <templates> -->
<!-- <t t-name="kanban-box" -->
<!-- t-if="record.production_line_id.value == record.production_line_show.raw_value"> -->
<!-- <div t-on-click="console.log(record.production_line_id,'11111111111')"></div>--> -->
<!-- <div t-on-click="console.log(record.production_line_show,'22222222222')"></div>--> -->
<!-- <div t-attf-class="#{!selection_mode ? kanban_color(record.color.raw_value) : ''}"> -->
<!-- <div t-attf-class="o_kanban_card_header o_kanban_record_top"> -->
<!-- <div class="o_kanban_record_headings o_kanban_card_header_title"> -->
<!-- <span class="o_primary ml8" style="display: inline-block"> -->
<!-- <field name="name"/> -->
<!-- </span> -->
<!-- </div> -->
<!-- <div class="o_kanban_manage_button_section"> -->
<!-- <a class="o_kanban_manage_toggle_button" href="#"> -->
<!-- <i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/> -->
<!-- </a> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="container o_kanban_card_content"> -->
<!-- <div class="row mb16"> -->
<!-- <div class="col-6 o_kanban_primary_left"> -->
<!-- <div class="btn-group" name="o_wo"> -->
<!-- <t t-if="record.workorder_count.raw_value &gt; 0"> -->
<!-- <button class="btn btn-primary" name="action_work_order" -->
<!-- type="object" -->
<!-- context="{'search_default_ready': 1, 'search_default_progress': 1}"> -->
<!-- <span>WORK ORDERS</span> -->
<!-- </button> -->
<!-- </t> -->
<!-- <t t-if="record.workorder_count.raw_value &lt;= 0"> -->
<!-- <button class="btn btn-warning" -->
<!-- name="%(mrp.act_product_mrp_production_workcenter)d" -->
<!-- type="action"> -->
<!-- <span>PLAN ORDERS</span> -->
<!-- </button> -->
<!-- </t> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="col-6 o_kanban_primary_right"> -->
<!-- <div class="row" t-if="record.workorder_ready_count.raw_value &gt; 0"> -->
<!-- <div class="col-8"> -->
<!-- <a name="action_work_order" type="object" -->
<!-- context="{'search_default_ready': 1}"> -->
<!-- To Launch -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="col-4 text-end"> -->
<!-- <field name="workorder_ready_count"/> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="row" t-if="record.workorder_progress_count.raw_value &gt; 0"> -->
<!-- <div class="col-8"> -->
<!-- <a name="action_work_order" type="object" -->
<!-- context="{'search_default_progress': 1}"> -->
<!-- In Progress -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="col-4 text-end"> -->
<!-- <field name="workorder_progress_count"/> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="row" t-if="record.workorder_late_count.raw_value &gt; 0"> -->
<!-- <div class="col-8"> -->
<!-- <a name="action_work_order" type="object" -->
<!-- context="{'search_default_late': 1}"> -->
<!-- Late -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="col-4 text-end"> -->
<!-- <field name="workorder_late_count"/> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="row" t-if="record.oee.raw_value &gt; 0"> -->
<!-- <div class="col-6"> -->
<!-- <a name="%(mrp.mrp_workcenter_productivity_report_oee)d" -->
<!-- type="action"> -->
<!-- OEE -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="col-6 text-end"> -->
<!-- <span t-att-class="record.oee_target.raw_value and (record.oee.raw_value &lt; record.oee_target.raw_value) and 'text-danger' or (record.oee.raw_value &gt; record.oee_target.raw_value) and 'text-success' or 'text-warning'"> -->
<!-- <strong> -->
<!-- <field name="oee" widget="integer"/>% -->
<!-- </strong> -->
<!-- </span> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="row"> -->
<!-- <div class="col-12 o_kanban_primary_left" -->
<!-- style="position:absolute; bottom:10px;" name="wc_stages"> -->
<!-- <a name="%(mrp.act_mrp_block_workcenter)d" type="action" -->
<!-- class="o_status float-end" -->
<!-- title="No workorder currently in progress. Click to mark work center as blocked." -->
<!-- aria-label="No workorder currently in progress. Click to mark work center as blocked." -->
<!-- attrs="{'invisible': [('working_state','in',('blocked','done'))]}"/> -->
<!-- <a name="unblock" type="object" class=" o_status o_status_red float-end" -->
<!-- title="Workcenter blocked, click to unblock." -->
<!-- aria-label="Workcenter blocked, click to unblock." -->
<!-- attrs="{'invisible': [('working_state','in',('normal','done'))]}"/> -->
<!-- <a name="%(mrp.act_mrp_block_workcenter)d" type="action" -->
<!-- class="o_status o_status_green float-end" -->
<!-- title="Work orders in progress. Click to block work center." -->
<!-- aria-label="Work orders in progress. Click to block work center." -->
<!-- attrs="{'invisible': [('working_state','in',('normal','blocked'))]}"/> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="container o_kanban_card_manage_pane dropdown-menu" role="menu"> -->
<!-- <div class="row"> -->
<!-- <div class="col-6 o_kanban_card_manage_section o_kanban_manage_view"> -->
<!-- <div role="menuitem" class="o_kanban_card_manage_title"> -->
<!-- <span>Actions</span> -->
<!-- </div> -->
<!-- <div role="menuitem" name="plan_order"> -->
<!-- <a name="action_work_order" type="object">Plan Orders</a> -->
<!-- </div> -->
<!-- <div> -->
<!-- <a name="%(maintenance.hr_equipment_request_action)d" type="action"> -->
<!-- Maintenance -->
<!-- </a> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="col-6 o_kanban_card_manage_section o_kanban_manage_new"> -->
<!-- <div role="menuitem" class="o_kanban_card_manage_title"> -->
<!-- <span>Reporting</span> -->
<!-- </div> -->
<!-- <div role="menuitem"> -->
<!-- <a name="%(mrp.mrp_workcenter_productivity_report_oee)d" type="action"> -->
<!-- OEE -->
<!-- </a> -->
<!-- </div> -->
<!-- <div role="menuitem"> -->
<!-- <a name="%(mrp.mrp_workorder_workcenter_report)d" type="action" -->
<!-- context="{'search_default_thisyear':True}"> -->
<!-- Performance -->
<!-- </a> -->
<!-- </div> -->
<!-- <div role="menuitem"> -->
<!-- <a name="action_work_order" type="object" -->
<!-- context="{'search_default_waiting': 1}">Waiting Availability -->
<!-- </a> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- --><!-- 继承原有的看板视图 -->
<!-- <record id="mrp_workcenter_kanban_inherit1" model="ir.ui.view"> -->
<!-- <field name="name">mrp.workcenter.kanban.inherit</field> -->
<!-- <field name="model">mrp.workcenter</field> -->
<!-- <field name="inherit_id" ref="mrp.mrp_workcenter_kanban"/> -->
<!-- <field name="arch" type="xml"> -->
<!-- <xpath expr="//kanban" position="replace"> -->
<!-- <kanban class="oe_background_grey o_kanban_dashboard o_workcenter_kanban" create="0" sample="1" -->
<!-- > -->
<!-- <field name="name"/> -->
<!-- <field name="color"/> -->
<!-- <field name="workorder_count"/> -->
<!-- <field name="working_state"/> -->
<!-- <field name="oee_target"/> -->
<!-- <field name="production_line_show"/> -->
<!-- <field name="production_line_id"/> -->
<!-- <templates> -->
<!-- <t t-name="kanban-box" -->
<!-- t-if="record.production_line_id.value == record.production_line_show.raw_value"> -->
<!-- <div t-on-click="console.log(record.production_line_id,'11111111111')"></div>--> -->
<!-- <div t-on-click="console.log(record.production_line_show,'22222222222')"></div>-->
-->
<!-- <div t-attf-class="#{!selection_mode ? kanban_color(record.color.raw_value) : ''}"> -->
<!-- <div t-attf-class="o_kanban_card_header o_kanban_record_top"> -->
<!-- <div class="o_kanban_record_headings o_kanban_card_header_title"> -->
<!-- <span class="o_primary ml8" style="display: inline-block"> -->
<!-- <field name="name"/> -->
<!-- </span> -->
<!-- </div> -->
<!-- <div class="o_kanban_manage_button_section"> -->
<!-- <a class="o_kanban_manage_toggle_button" href="#"> -->
<!-- <i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/> -->
<!-- </a> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="container o_kanban_card_content"> -->
<!-- <div class="row mb16"> -->
<!-- <div class="col-6 o_kanban_primary_left"> -->
<!-- <div class="btn-group" name="o_wo"> -->
<!-- <t t-if="record.workorder_count.raw_value &gt; 0"> -->
<!-- <button class="btn btn-primary" name="action_work_order" -->
<!-- type="object" -->
<!-- context="{'search_default_ready': 1, 'search_default_progress': 1}"> -->
<!-- <span>WORK ORDERS</span> -->
<!-- </button> -->
<!-- </t> -->
<!-- <t t-if="record.workorder_count.raw_value &lt;= 0"> -->
<!-- <button class="btn btn-warning" -->
<!-- name="%(mrp.act_product_mrp_production_workcenter)d" -->
<!-- type="action"> -->
<!-- <span>PLAN ORDERS</span> -->
<!-- </button> -->
<!-- </t> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="col-6 o_kanban_primary_right"> -->
<!-- <div class="row" t-if="record.workorder_ready_count.raw_value &gt; 0"> -->
<!-- <div class="col-8"> -->
<!-- <a name="action_work_order" type="object" -->
<!-- context="{'search_default_ready': 1}"> -->
<!-- To Launch -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="col-4 text-end"> -->
<!-- <field name="workorder_ready_count"/> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="row" t-if="record.workorder_progress_count.raw_value &gt; 0"> -->
<!-- <div class="col-8"> -->
<!-- <a name="action_work_order" type="object" -->
<!-- context="{'search_default_progress': 1}"> -->
<!-- In Progress -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="col-4 text-end"> -->
<!-- <field name="workorder_progress_count"/> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="row" t-if="record.workorder_late_count.raw_value &gt; 0"> -->
<!-- <div class="col-8"> -->
<!-- <a name="action_work_order" type="object" -->
<!-- context="{'search_default_late': 1}"> -->
<!-- Late -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="col-4 text-end"> -->
<!-- <field name="workorder_late_count"/> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="row" t-if="record.oee.raw_value &gt; 0"> -->
<!-- <div class="col-6"> -->
<!-- <a name="%(mrp.mrp_workcenter_productivity_report_oee)d" -->
<!-- type="action"> -->
<!-- OEE -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="col-6 text-end"> -->
<!-- <span t-att-class="record.oee_target.raw_value and (record.oee.raw_value &lt; record.oee_target.raw_value) and 'text-danger' or (record.oee.raw_value &gt; record.oee_target.raw_value) and 'text-success' or 'text-warning'"> -->
<!-- <strong> -->
<!-- <field name="oee" widget="integer"/>% -->
<!-- </strong> -->
<!-- </span> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="row"> -->
<!-- <div class="col-12 o_kanban_primary_left" -->
<!-- style="position:absolute; bottom:10px;" name="wc_stages"> -->
<!-- <a name="%(mrp.act_mrp_block_workcenter)d" type="action" -->
<!-- class="o_status float-end" -->
<!-- title="No workorder currently in progress. Click to mark work center as blocked." -->
<!-- aria-label="No workorder currently in progress. Click to mark work center as blocked." -->
<!-- attrs="{'invisible': [('working_state','in',('blocked','done'))]}"/> -->
<!-- <a name="unblock" type="object" class=" o_status o_status_red float-end" -->
<!-- title="Workcenter blocked, click to unblock." -->
<!-- aria-label="Workcenter blocked, click to unblock." -->
<!-- attrs="{'invisible': [('working_state','in',('normal','done'))]}"/> -->
<!-- <a name="%(mrp.act_mrp_block_workcenter)d" type="action" -->
<!-- class="o_status o_status_green float-end" -->
<!-- title="Work orders in progress. Click to block work center." -->
<!-- aria-label="Work orders in progress. Click to block work center." -->
<!-- attrs="{'invisible': [('working_state','in',('normal','blocked'))]}"/> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="container o_kanban_card_manage_pane dropdown-menu" role="menu"> -->
<!-- <div class="row"> -->
<!-- <div class="col-6 o_kanban_card_manage_section o_kanban_manage_view"> -->
<!-- <div role="menuitem" class="o_kanban_card_manage_title"> -->
<!-- <span>Actions</span> -->
<!-- </div> -->
<!-- <div role="menuitem" name="plan_order"> -->
<!-- <a name="action_work_order" type="object">Plan Orders</a> -->
<!-- </div> -->
<!-- <div> -->
<!-- <a name="%(maintenance.hr_equipment_request_action)d" type="action"> -->
<!-- Maintenance -->
<!-- </a> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="col-6 o_kanban_card_manage_section o_kanban_manage_new"> -->
<!-- <div role="menuitem" class="o_kanban_card_manage_title"> -->
<!-- <span>Reporting</span> -->
<!-- </div> -->
<!-- <div role="menuitem"> -->
<!-- <a name="%(mrp.mrp_workcenter_productivity_report_oee)d" type="action"> -->
<!-- OEE -->
<!-- </a> -->
<!-- </div> -->
<!-- <div role="menuitem"> -->
<!-- <a name="%(mrp.mrp_workorder_workcenter_report)d" type="action" -->
<!-- context="{'search_default_thisyear':True}"> -->
<!-- Performance -->
<!-- </a> -->
<!-- </div> -->
<!-- <div role="menuitem"> -->
<!-- <a name="action_work_order" type="object" -->
<!-- context="{'search_default_waiting': 1}">Waiting Availability -->
<!-- </a> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div t-if="widget.editable" class="o_kanban_card_manage_settings row"> -->
<!-- <div role="menuitem" aria-haspopup="true" class="col-8"> -->
<!-- <ul role="menu" class="oe_kanban_colorpicker" data-field="color"/> -->
<!-- </div> -->
<!-- <div role="menuitem" class="text-end"> -->
<!-- <a type="edit">Settings</a> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- </t> -->
<!-- </templates> -->
<!-- </kanban> -->
<!-- </xpath> -->
<!-- </field> -->
<!-- </record> -->
<!-- <div t-if="widget.editable" class="o_kanban_card_manage_settings row"> -->
<!-- <div role="menuitem" aria-haspopup="true" class="col-8"> -->
<!-- <ul role="menu" class="oe_kanban_colorpicker" data-field="color"/> -->
<!-- </div> -->
<!-- <div role="menuitem" class="text-end"> -->
<!-- <a type="edit">Settings</a> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- </t> -->
<!-- </templates> -->
<!-- </kanban> -->
<!-- </xpath> -->
<!-- </field> -->
<!-- </record> -->
<!-- MRP.PRODUCTION -->
<record id="mrp_production_view_form_inherit_maintenance" model="ir.ui.view">
@@ -350,18 +392,18 @@
</field>
</record>
<!-- 生产线驾驶舱searchpanel -->
<record id="view_location_search_sf11111_inherit" model="ir.ui.view">
<field name="name">mrp.workcenter.inherit</field>
<field name="model">mrp.workcenter</field>
<field name="inherit_id" ref="mrp.view_mrp_workcenter_search"/>
<field name="arch" type="xml">
<xpath expr="//search[1]" position="inside">
<searchpanel>
<field name="production_line_id" icon="fa-filter"/>
</searchpanel>
</xpath>
</field>
</record>
<!-- 生产线驾驶舱searchpanel -->
<record id="view_location_search_sf11111_inherit" model="ir.ui.view">
<field name="name">mrp.workcenter.inherit</field>
<field name="model">mrp.workcenter</field>
<field name="inherit_id" ref="mrp.view_mrp_workcenter_search"/>
<field name="arch" type="xml">
<xpath expr="//search[1]" position="inside">
<searchpanel>
<field name="production_line_id" icon="fa-filter"/>
</searchpanel>
</xpath>
</field>
</record>
</odoo>