diff --git a/jikimo_frontend/__manifest__.py b/jikimo_frontend/__manifest__.py index 716bc918..f2096eea 100644 --- a/jikimo_frontend/__manifest__.py +++ b/jikimo_frontend/__manifest__.py @@ -10,7 +10,7 @@ """, 'category': 'sf', 'website': 'https://www.sf.jikimo.com', - 'depends': [], + 'depends': ['web'], 'data': [ ], @@ -23,6 +23,10 @@ 'web.assets_backend': [ 'jikimo_frontend/static/src/fields/custom_many2many_checkboxes/*', 'jikimo_frontend/static/src/scss/custom_style.scss', + # 'jikimo_frontend/static/src/views/list_nums/list_nbCols.js', + 'jikimo_frontend/static/src/views/list_nums/list_nums.xml', + 'jikimo_frontend/static/src/views/list_nums/list_nums2.xml', + 'jikimo_frontend/static/src/views/list_nums/list_nums3.xml', ], }, diff --git a/jikimo_frontend/static/src/scss/custom_style.scss b/jikimo_frontend/static/src/scss/custom_style.scss index f90cca94..d4df8c40 100644 --- a/jikimo_frontend/static/src/scss/custom_style.scss +++ b/jikimo_frontend/static/src/scss/custom_style.scss @@ -304,4 +304,40 @@ div[class="o_content o_component_with_search_panel"] .o_kanban_primary_right > . .test_model>div .o_field_widget { width: 40% !important; -} \ No newline at end of file +} + +.o_form_label { + font-weight: 700 !important; +} + +.bigger .o_horizontal_separator { + font-size: 1.5rem; +} + +.o_horizontal_separator { + font-size: 1.5rem; +} + +.o_field_widget input[class='o_input'] { +text-align: center +} + +div:has(.o_required_modifier) > label::before { + position: absolute; + left: -3px; +} + +.o_form_view .o_form_label { + position: relative; + width: 9rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + padding-left: 1rem; +} + +.o_form_view .o_form_label:hover { + white-space: normal; + overflow: visible; +} + diff --git a/jikimo_frontend/static/src/views/list_nums/list_nbCols.js b/jikimo_frontend/static/src/views/list_nums/list_nbCols.js new file mode 100644 index 00000000..b0bacb02 --- /dev/null +++ b/jikimo_frontend/static/src/views/list_nums/list_nbCols.js @@ -0,0 +1,11 @@ +/** @odoo-module **/ + +import { patch } from "@web/core/utils/patch"; +import { ListRenderer } from "@web/views/list/list_renderer"; + +patch(ListRenderer.prototype, '/jikimo_frontend/static/src/views/list_nums/list_nbCols.js', { + get nbCols() { + const nbCols = this._super(...arguments); + return nbCols + 1; + } +}); \ No newline at end of file diff --git a/jikimo_frontend/static/src/views/list_nums/list_nums.xml b/jikimo_frontend/static/src/views/list_nums/list_nums.xml new file mode 100644 index 00000000..6424887a --- /dev/null +++ b/jikimo_frontend/static/src/views/list_nums/list_nums.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jikimo_frontend/static/src/views/list_nums/list_nums2.xml b/jikimo_frontend/static/src/views/list_nums/list_nums2.xml new file mode 100644 index 00000000..9b2764d9 --- /dev/null +++ b/jikimo_frontend/static/src/views/list_nums/list_nums2.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/jikimo_frontend/static/src/views/list_nums/list_nums3.xml b/jikimo_frontend/static/src/views/list_nums/list_nums3.xml new file mode 100644 index 00000000..b1af1367 --- /dev/null +++ b/jikimo_frontend/static/src/views/list_nums/list_nums3.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/sf_base/models/fixture.py b/sf_base/models/fixture.py index bc5b19f9..f7cb5fa8 100644 --- a/sf_base/models/fixture.py +++ b/sf_base/models/fixture.py @@ -30,7 +30,7 @@ class FixtureModel(models.Model): fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料", ) fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name', store=True) multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型") - brand_id = fields.Many2one('sf.machine.brand', string="品牌") + brand_id = fields.Many2one('sf.machine.brand', string="品牌", domain="[('tag_ids.name', 'ilike', '夹具')]") clamping_way = fields.Char(string="装夹方式") port_type = fields.Char(string="接口类型") model_file = fields.Binary(string="3D模型图") diff --git a/sf_base/models/tool_base.py b/sf_base/models/tool_base.py new file mode 100644 index 00000000..24a39ecc --- /dev/null +++ b/sf_base/models/tool_base.py @@ -0,0 +1,304 @@ +# -*- coding: utf-8 -*- +import logging + +from odoo import fields, models, api +# from odoo.exceptions import UserError +# # from odoo.addons import sf_base, sf_common +# from datetime import datetime + + +# 功能刀具物料 +class CuttingToolMaterial(models.Model): + _name = 'sf.cutting.tool.material' + _description = '刀具物料' + + code = fields.Char('编码') + name = fields.Char('名称') + remark = fields.Char('备注') + active = fields.Boolean('有效', default=True) + + +# 功能刀具 +class FunctionalCuttingTool(models.Model): + _name = 'sf.functional.cutting.tool' + _description = '功能刀具' + + code = fields.Char('编码') + name = fields.Char('名称') + functional_model_number = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型') + integral_model_number = fields.Many2one('sf.integral.cutting.tool', string='整体式刀具型号') + blade_model_number = fields.Many2one('sf.blade', string='刀片型号') + cutterbar_model_number = fields.Many2one('sf.cutter.bar', string='刀杆型号') + cutterpad_model_number = fields.Many2one('sf.cutter.pad', string='刀盘型号') + handle_model_number = fields.Many2one('sf.handle', string='刀柄型号') + chuck_model_number = fields.Many2one('sf.chuck', string='夹头型号') + diameter = fields.Float('直径(mm)') + tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')], + string='刀具等级') + machining_accuracy = fields.Float('加工精度(mm)') + tool_length = fields.Float('装刀长') + blade_number = fields.Integer('刃数') + integral_blade_length = fields.Float('整体刃长(mm)') + effective_blade_length = fields.Float('有效刃长(mm)') + max_life = fields.Float('最大寿命值') + is_standard = fields.Boolean('是否标准刀') + applicable_range = fields.Char('适用范围') + image = fields.Binary('图片') + active = fields.Boolean('有效', default=True) + + +# 功能刀具类型 +class FunctionalCuttingToolModel(models.Model): + _name = 'sf.functional.cutting.tool.model' + _description = '功能刀具类型' + + name = fields.Char('名称') + code = fields.Char('编码') + remark = fields.Char('备注') + active = fields.Boolean('有效', default=True) + + +# 整体式刀具 +class IntegralCuttingTool(models.Model): + _name = 'sf.integral.cutting.tool' + _description = '整体式刀具' + + code = fields.Char('编码') + name = fields.Char('型号名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + # 整体式刀具类型字段,关联整体式刀具类型对象 + integral_model_number = fields.Many2one('sf.integral.cutting.tool.model', '整体式刀具类型') + # 增加品牌、总长度(mm)、柄部长度(mm)、刃部长度(mm)、直径(mm)、刃数、前角(°)、后角(°)、主偏角(°)、材料型号、配对螺母(mm)、适用夹头型号、适用范围、图片、创建人、创建时间等字段 + brand = fields.Many2one('sf.machine.brand', '品牌', domain="[('tag_ids.name', 'ilike', '刀具')]") + total_length = fields.Float('总长度(mm)') + shank_length = fields.Float('柄部长度(mm)') + blade_length = fields.Float('刃部长度(mm)') + diameter = fields.Float('直径(mm)') + blade_number = fields.Integer('刃数') + front_angle = fields.Float('前角(°)') + rear_angle = fields.Float('后角(°)') + main_included_angle = fields.Float('主偏角(°)') + material_model = fields.Many2one('sf.materials.model', '材料型号') + nut = fields.Float('配对螺母(mm)') + # 适用夹头型号可以多选 + chuck_model = fields.Many2many('sf.chuck', string='适用夹头型号') + scope = fields.Char('适用范围') + image = fields.Binary('图片') + active = fields.Boolean('有效', default=True) + + +# 整体式刀具类型 +class IntegralCuttingToolModel(models.Model): + _name = 'sf.integral.cutting.tool.model' + _description = '整体式刀具类型' + + code = fields.Char('编码') + name = fields.Char('名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + remark = fields.Char('备注') + + +# 刀片 +class Blade(models.Model): + _name = 'sf.blade' + _description = '刀片' + + code = fields.Char('编码') + name = fields.Char('型号名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + # 刀片类型字段,关联刀片类型对象 + blade_model_number = fields.Many2one('sf.blade.model', '刀片类型') + # 编码、型号名称、刀片类型、品牌、长度L(mm)、宽度D(mm)、高度T(mm)、顶角(°)、前角(°)、后角(°)、主偏角(°)、R角(°)、材料型号、加工硬度、配对螺母(mm)、适用刀杆/刀盘型号、刀尖半径(mm)、图片、创建人、创建时间字段 + brand = fields.Many2one('sf.machine.brand', '品牌', ) + length = fields.Float('长度L(mm)') + width = fields.Float('宽度D(mm)') + height = fields.Float('高度T(mm)') + top_angle = fields.Float('顶角(°)') + front_angle = fields.Float('前角(°)') + rear_angle = fields.Float('后角(°)') + main_included_angle = fields.Float('主偏角(°)') + r_angle = fields.Float('R角(°)') + material_model = fields.Many2one('sf.materials.model', '材料型号') + hardness = fields.Char('加工硬度') + nut = fields.Float('配对螺母(mm)') + # 适用刀杆型号可以多选 + cutter_bar = fields.Many2many('sf.cutter.bar', string='适用刀杆型号') + # 适用刀盘型号可以多选 + cutter_pad = fields.Many2many('sf.cutter.pad', string='适用刀盘型号') + radius = fields.Float('刀尖半径(mm)') + image = fields.Binary('图片') + + +# 刀片类型 +class BladeModel(models.Model): + _name = 'sf.blade.model' + _description = '刀片类型' + + code = fields.Char('编码') + name = fields.Char('名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + # 刀片类型字段,关联刀片对象 + blade_ids = fields.One2many('sf.blade', 'blade_model_number', '刀片类型') + remark = fields.Char('备注') + + +# 刀杆 +class CutterBar(models.Model): + _name = 'sf.cutter.bar' + _description = '刀杆' + + code = fields.Char('编码') + name = fields.Char('型号名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + # 刀杆类型字段,关联刀杆类型对象 + cutter_bar_model_number = fields.Many2one('sf.cutter.bar.model', '刀杆类型') + # 品牌、C柄径(mm)、L总长(mm)、材料型号、刃数、D刃径(mm)、适用刀片型号、配对扳手(mm)、配备螺丝(mm)、刀尖圆角半径、精度等级、硬度(°)、适用范围、图片、创建人、创建时间 + brand = fields.Many2one('sf.machine.brand', '品牌') + c_diameter = fields.Float('C柄径(mm)') + total_length = fields.Float('L总长(mm)') + material_model = fields.Many2one('sf.materials.model', '材料型号') + blade_number = fields.Integer('刃数') + d_diameter = fields.Float('D刃径(mm)') + blade = fields.Many2many('sf.blade', string='适用刀片型号') + wrench = fields.Float('配对扳手(mm)') + screw = fields.Float('配备螺丝(mm)') + radius = fields.Float('刀尖圆角半径') + accuracy = fields.Char('精度等级') + hardness = fields.Char('硬度(°)') + scope = fields.Char('适用范围') + image = fields.Binary('图片') + + +# 刀杆类型 +class CutterBarModel(models.Model): + _name = 'sf.cutter.bar.model' + _description = '刀杆类型' + + code = fields.Char('编码') + name = fields.Char('名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + remark = fields.Char('备注') + + +# 刀盘 +class CutterPad(models.Model): + _name = 'sf.cutter.pad' + _description = '刀盘' + + code = fields.Char('编码') + name = fields.Char('型号名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + # 刀盘类型字段,关联刀盘类型对象 + cutter_pad_model_number = fields.Many2one('sf.cutter.pad.model', '刀盘类型') + # 增加品牌、C柄径(mm)、L总长(mm)、材料型号、刃数、D刃径(mm)、适用刀片型号、配对扳手(mm)、配备螺丝(mm)、刀尖圆角半径、精度等级、硬度(°)、适用范围、图片、创建人、创建时间 + brand = fields.Many2one('sf.machine.brand', '品牌') + c_diameter = fields.Float('C柄径(mm)') + total_length = fields.Float('L总长(mm)') + material_model = fields.Many2one('sf.materials.model', '材料型号') + blade_number = fields.Integer('刃数') + d_diameter = fields.Float('D刃径(mm)') + blade = fields.Many2many('sf.blade', string='适用刀片型号') + wrench = fields.Float('配对扳手(mm)') + screw = fields.Float('配备螺丝(mm)') + radius = fields.Float('刀尖圆角半径') + accuracy = fields.Char('精度等级') + hardness = fields.Char('硬度(°)') + scope = fields.Char('适用范围') + image = fields.Binary('图片') + + +# 刀盘类型 +class CutterPadModel(models.Model): + _name = 'sf.cutter.pad.model' + _description = '刀盘类型' + + code = fields.Char('编码') + name = fields.Char('名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + remark = fields.Char('备注') + + +# 刀柄 +class Handle(models.Model): + _name = 'sf.handle' + _description = '刀柄' + + code = fields.Char('编码') + name = fields.Char('型号名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + # 刀柄类型字段,关联刀柄类型对象 + handle_model_number = fields.Many2one('sf.handle.model', '刀柄类型') + # 增加、刀柄类型、品牌、L(mm)、L1(mm)、D1(mm)、重量(kg)、材料型号、本体精度(mm)、配对螺母(mm)、适用夹头型号、夹持范围(mm)、检测精度、检测硬度、标准转速、图片、创建人、创建时间 + brand = fields.Many2one('sf.machine.brand', '品牌') + length = fields.Float('L(mm)') + length1 = fields.Float('L1(mm)') + diameter1 = fields.Float('D1(mm)') + weight = fields.Float('重量(kg)') + material_model = fields.Many2one('sf.materials.model', '材料型号') + body_accuracy = fields.Float('本体精度(mm)') + nut = fields.Float('配对螺母(mm)') + chuck_model = fields.Many2many('sf.chuck.model', string='适用夹头型号') + clamping_range = fields.Float('夹持范围(mm)') + detection_accuracy = fields.Float('检测精度') + detection_hardness = fields.Char('检测硬度') + standard_speed = fields.Float('标准转速') + image = fields.Binary('图片') + + +# 刀柄类型 +class HandleModel(models.Model): + _name = 'sf.handle.model' + _description = '刀柄类型' + + code = fields.Char('编码') + name = fields.Char('名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + remark = fields.Char('备注') + + +# 夹头对象(夹头型号对象) +class Chuck(models.Model): + _name = 'sf.chuck' + _description = '夹头' + _rec_name = 'code' + + code = fields.Char('编码') + name = fields.Char('型号名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + # 夹头类型字段,关联夹头类型对象 + chuck_model_number = fields.Many2one('sf.chuck.model', '夹头类型') + # 增加品牌、精度(mm)、外径(mm)、内径(mm)、高度(mm)、材料型号、配对螺母(mm)、适用刀柄型号、夹持范围(mm)、特性、图片、创建人、创建时间 + brand = fields.Many2one('sf.machine.brand', '品牌') + accuracy = fields.Float('精度(mm)') + diameter = fields.Float('外径(mm)') + inner_diameter = fields.Float('内径(mm)') + height = fields.Float('高度(mm)') + material_model = fields.Many2one('sf.materials.model', '材料型号') + nut = fields.Float('配对螺母(mm)') + handle_model = fields.Many2many('sf.handle.model', string='适用刀柄型号') + clamping_range = fields.Float('夹持范围(mm)') + feature = fields.Char('特性') + image = fields.Binary('图片') + + +# 夹头类型 +class ChuckModel(models.Model): + _name = 'sf.chuck.model' + _description = '夹头类型' + + code = fields.Char('编码') + name = fields.Char('名称') + # 关联刀具物料 + cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料') + remark = fields.Char('备注') diff --git a/sf_maintenance/models/sf_maintenance.py b/sf_maintenance/models/sf_maintenance.py index e47c8097..38ac5813 100644 --- a/sf_maintenance/models/sf_maintenance.py +++ b/sf_maintenance/models/sf_maintenance.py @@ -97,7 +97,7 @@ class SfMaintenanceEquipment(models.Model): control_system_id = fields.Many2one('sf.machine.control_system', string="控制系统") # 多个机床型号对应一个机床 - brand_id = fields.Many2one('sf.machine.brand', string='品牌') + brand_id = fields.Many2one('sf.machine.brand', string='品牌', domain="[('tag_ids.name', 'ilike', equipment_type)]") type_id = fields.Many2one('sf.machine_tool.type', '型号') state = fields.Selection( @@ -154,48 +154,48 @@ class SfMaintenanceEquipment(models.Model): result.append((parameter.id, name)) return result - @api.constrains('rotate_speed') - def _check_rotate_speed(self): - if self.rotate_speed <= 0: - raise UserError("转速不能为0") - - @api.constrains('precision') - def _check_precision(self): - if self.precision <= 0.00: - raise UserError("加工精度不能为0") - - @api.constrains('number_of_knife_library') - def _check_number_of_knife_library(self): - if self.number_of_knife_library <= 0: - raise UserError("刀库数量不能为0") - - @api.constrains('x_axis') - def _check_x_axis(self): - if self.x_axis <= 0: - raise UserError("加工行程里x轴不能为0") - - @api.constrains('y_axis') - def _check_y_axis(self): - if self.y_axis <= 0: - raise UserError("加工行程里y轴不能为0") - - @api.constrains('z_axis') - def _check_z_axis(self): - if self.z_axis <= 0: - raise UserError("加工行程里z轴不能为0") - - @api.constrains('b_axis') - def _check_b_axis(self): - if self.number_of_axles == '四轴': - print(self.number_of_axles) - if self.b_axis <= 0: - raise UserError("加工行程里b轴不能为0") - - @api.constrains('c_axis') - def _check_c_axis(self): - if self.number_of_axles == '五轴': - if self.c_axis <= 0: - raise UserError("加工行程里c轴不能为0") + # @api.constrains('rotate_speed') + # def _check_rotate_speed(self): + # if self.rotate_speed <= 0: + # raise UserError("转速不能为0") + # + # @api.constrains('precision') + # def _check_precision(self): + # if self.equipment_type == '机床' and self.precision <= 0.00: + # raise UserError("加工精度不能为0") + # + # @api.constrains('number_of_knife_library') + # def _check_number_of_knife_library(self): + # if self.equipment_type == '机床' and self.number_of_knife_library <= 0: + # raise UserError("刀库数量不能为0") + # + # @api.constrains('x_axis') + # def _check_x_axis(self): + # if self.equipment_type == '机床' and self.x_axis <= 0: + # raise UserError("加工行程里x轴不能为0") + # + # @api.constrains('y_axis') + # def _check_y_axis(self): + # if self.equipment_type == '机床' and self.y_axis <= 0: + # raise UserError("加工行程里y轴不能为0") + # + # @api.constrains('z_axis') + # def _check_z_axis(self): + # if self.equipment_type == '机床' and self.z_axis <= 0: + # raise UserError("加工行程里z轴不能为0") + # + # @api.constrains('b_axis') + # def _check_b_axis(self): + # if self.equipment_type == '机床' and self.number_of_axles == '四轴': + # print(self.number_of_axles) + # if self.b_axis <= 0: + # raise UserError("加工行程里b轴不能为0") + # + # @api.constrains('c_axis') + # def _check_c_axis(self): + # if self.equipment_type == '机床' and self.number_of_axles == '五轴': + # if self.c_axis <= 0: + # raise UserError("加工行程里c轴不能为0") @api.onchange('type_id') def get_type_info(self): @@ -316,6 +316,14 @@ class SfMaintenanceEquipment(models.Model): robot_operating_temperature = fields.Char('环境温度') robot_operating_humidity = fields.Char('环境湿度') + # 其他参数(所有设备) + date_of_purchase = fields.Date('采购日期') + date_of_manufacture = fields.Date('出厂日期') + date_of_warranty = fields.Date('质保截至日期') + original_value = fields.Char('原值') + incomplete_value = fields.Char('残值') + + @@ -338,25 +346,28 @@ class SfMaintenanceEquipment(models.Model): machine_tool_list = [] if objs_all: for item in objs_all: + images_ids_names = [] + for a in self.env['maintenance.equipment.image'].search([('id', 'in', item.image_id.ids)]): + images_ids_names.append(a.name) if item.machine_tool_picture != False: image = base64.b64encode(item.machine_tool_picture).decode('utf-8') else: image = False + control_system_id = self.env['sf.machine.control_system'].sudo().browse(item.control_system_id.id).code + val = { 'MTcode': item.MTcode, 'factory_token': token, 'id': item.id, 'name': item.name, 'code': item.code, - 'precision': item.precision, 'knife_type': item.knife_type, 'number_of_knife_library': item.number_of_knife_library, 'rotate_speed': item.rotate_speed, 'number_of_axles': item.number_of_axles, - 'control_system_id': self.env['sf.machine.control_system'].search( - [('id', '=', item.control_system_id.id)]).code, - 'type_id': self.env['sf.machine_tool.type'].search([('id', '=', item.type_id.id)]).code, - 'brand_id': self.env['sf.machine.brand'].search([('id', '=', item.brand_id.id)]).code, + 'control_system_id': control_system_id, + 'type_id': self.env['sf.machine_tool.type'].sudo().browse(item.type_id.id).code, + 'brand_id': self.env['sf.machine.brand'].sudo().browse(item.brand_id.id).code, 'supplier_id': item.supplier_id.id, 'x_axis': item.x_axis, 'y_axis': item.y_axis, @@ -377,15 +388,19 @@ class SfMaintenanceEquipment(models.Model): 'machine_tool_H': item.machine_tool_H, 'feed_speed': item.feed_speed, 'tool_speed': item.tool_speed, - 'distance': item.distance, 'taper': item.taper, 'torque': item.torque, 'motor_power': item.motor_power, 'tool_quality_max': item.tool_quality_max, 'tool_long_max': item.tool_long_max, 'tool_diameter_max': item.tool_diameter_max, + 'precision_min': item.precision_min, + 'precision_max': item.precision_max, + 'distance_min': item.distance_min, + 'distance_max': item.distance_max, + 'tool_diameter_min': item.tool_diameter_min, 'machine_tool_category': item.machine_tool_category.code, - + 'image_id': images_ids_names } machine_tool_list.append(val) # kw = machine_tool_list @@ -564,7 +579,7 @@ class SfMaintenanceEquipment(models.Model): if not next_requests: equipment._create_new_request1(equipment.overhaul_date) - image_id = fields.Many2many('maintenance.equipment.image', 'equipment_id', string='设备图文') + image_id = fields.Many2many('maintenance.equipment.image', 'equipment_id', string='加工能力', domain="[('type', '=', '加工能力')]") class SfRobotAxisNum(models.Model): diff --git a/sf_maintenance/views/maintenance_views.xml b/sf_maintenance/views/maintenance_views.xml index be106b33..9ab34c2f 100644 --- a/sf_maintenance/views/maintenance_views.xml +++ b/sf_maintenance/views/maintenance_views.xml @@ -49,7 +49,8 @@