diff --git a/jikimo_frontend/static/src/js/custom_form_status_indicator.js b/jikimo_frontend/static/src/js/custom_form_status_indicator.js index 5bc820cf..7c149de8 100644 --- a/jikimo_frontend/static/src/js/custom_form_status_indicator.js +++ b/jikimo_frontend/static/src/js/custom_form_status_indicator.js @@ -5,9 +5,42 @@ import {patch} from '@web/core/utils/patch'; import {_t} from "@web/core/l10n/translation"; import {FormStatusIndicator} from "@web/views/form/form_status_indicator/form_status_indicator"; +import {Field} from "@web/views/fields/field"; + var Dialog = require('web.Dialog'); // var {patch} = require("web.utils") 这句话也行 +const filedRequiredList = { + // 设备大模块 + 'control_system_id': { multiple: false, noLabel: false }, + 'workbench_L': { multiple: true, noLabel: false }, + 'number_of_axles': { multiple: true, noLabel: false }, + 'x_axis': { multiple: true, noLabel: false }, + 'number_of_knife_library': { multiple: false, noLabel: false }, + 'brand_id': { multiple: false, noLabel: false }, + 'type_id': { multiple: false, noLabel: false }, + 'taper_type_id': { multiple: false, noLabel: false }, + 'maintenance_equipment_category_id': { multiple: false, noLabel: false }, + 'maintenance_type': { multiple: false, noLabel: false }, + + // 销售大模块 + 'partner_id': { multiple: false, noLabel: false }, + 'validity_date': { multiple: false, noLabel: false }, + 'vat': { multiple: false, noLabel: false }, + 'phone': { multiple: false, noLabel: false }, + 'mobile': { multiple: false, noLabel: false }, + 'email': { multiple: false, noLabel: false }, + 'category_id': { multiple: false, noLabel: false }, + 'radio_field_1_person': { multiple: false, noLabel: true }, + + // 采购大模块 + 'date_order': { multiple: false, noLabel: false }, + 'picking_type_id': { multiple: false, noLabel: false }, + + // 制造大模块 + 'production_line_id': { multiple: false, noLabel: false }, + 'date_approve': { multiple: false, noLabel: false }, +} patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', { // 你可以重写或者添加一些方法和属性 async _onDiscardChanges() { @@ -46,6 +79,38 @@ patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', { } ); +patch(Field.prototype, 'jikimo_frontend.Field', { + setup() { + this.FieldComponent = this.props.fieldInfo.FieldComponent; + if (!this.FieldComponent) { + const fieldType = this.props.record.fields[this.props.name].type; + this.FieldComponent = getFieldClassFromRegistry(fieldType, this.props.type); + } + owl.onMounted(this.setRequired); + }, + setRequired() { + const id = this.props.id + const isRequired = filedRequiredList[id] + if(id == 'number_of_axles') { + console.log(isRequired) + } + if(isRequired) { + let dom; + dom = $(`label[for=${id}]`) + if(isRequired.multiple && dom.length > 1) { + dom = dom.eq(-1) + dom = dom.parent().parent().next().find('label') + } + if(isRequired.noLabel) { + dom = dom.parent().parent() + } + let t = dom.html() + t = '*' + t + dom.html(t) + } + } +}) + $(function () { document.addEventListener('click', function () { @@ -104,16 +169,7 @@ $(function () { const lint = $('.o_form_view_container') if (lint.length) { clearInterval(domTimer) - const {label, table} = dom - if (label.length) { - $(dom.label.join(',')).each(function () { - let t = $(this).html() - if (t.indexOf('c*') < 0) { - t = '*' + t - } - $(this).html(t) - }) - } + const { table} = dom if (table.length) { table.forEach(_ => { @@ -133,7 +189,6 @@ $(function () { var currentUrl = location.href const customRequiredDom = { - label: ['label[for=production_line_id]','label[for=date_approve]','label[for=partner_id]', 'label[for=validity_date]', '.o_horizontal[role=radiogroup][aria-label="公司类别"]', 'label[for=vat]', 'label[for=phone]', 'label[for=mobile]', 'label[for=email]', 'label[for=category_id]','label[for=date_order]','label[for=picking_type_id]'], table: ['product_template_id', 'product_uom_qty', 'price_unit','product_id','product_qty', 'name', 'fault_type', 'maintenance_standards', 'Period'] } const listenerUrl = setInterval(() => { @@ -143,9 +198,6 @@ $(function () { customRequired() setRequired(customRequiredDom) } - if($('label[for=production_line_id]')) { - setRequired({table: [], label: ['label[for=production_line_id]']}) - } }, 500) customRequired() setRequired(customRequiredDom) diff --git a/jikimo_frontend/static/src/js/custom_image_temp.js b/jikimo_frontend/static/src/js/custom_image_temp.js index 60cc3425..fba97121 100644 --- a/jikimo_frontend/static/src/js/custom_image_temp.js +++ b/jikimo_frontend/static/src/js/custom_image_temp.js @@ -4,6 +4,8 @@ import { registry } from "@web/core/registry"; import { url } from "@web/core/utils/urls"; import { ImageField, imageCacheKey } from '@web/views/fields/image/image_field'; +const placeholder = "/web/static/img/placeholder.png"; + export class CustomImageField extends ImageField { setup() { super.setup(); diff --git a/sf_base/models/common.py b/sf_base/models/common.py index 6cddafd7..7496e7db 100644 --- a/sf_base/models/common.py +++ b/sf_base/models/common.py @@ -90,7 +90,7 @@ class MrsProductionProcess(models.Model): code = fields.Char("编码") name = fields.Char('名称') remark = fields.Text("备注") - processing_order_ids = fields.One2many('sf.processing.order', 'production_process_id', string='工序') + # processing_order_ids = fields.One2many('sf.processing.order', 'production_process_id', string='工序') partner_process_ids = fields.Many2many('res.partner', 'process_ids', '加工工厂') active = fields.Boolean('有效', default=True) parameter_ids = fields.One2many('sf.production.process.parameter', 'process_id', string='可选参数') @@ -98,25 +98,25 @@ class MrsProductionProcess(models.Model): # workcenter_ids = fields.Many2many('mrp.workcenter', 'rel_workcenter_process', required=True) -class MrsProcessingTechnology(models.Model): - _name = 'sf.processing.technology' - _description = '加工工艺' - - name = fields.Char('名称', index=True) - remark = fields.Text('备注', index=True) - code = fields.Char("编码") - processing_order_ids = fields.Many2many('sf.processing.order', 'sf_associated_processes', - index=True, string='工序') - active = fields.Boolean('有效', default=True) +# class MrsProcessingTechnology(models.Model): +# _name = 'sf.processing.technology' +# _description = '加工工艺' +# +# name = fields.Char('名称', index=True) +# remark = fields.Text('备注', index=True) +# code = fields.Char("编码") +# processing_order_ids = fields.Many2many('sf.processing.order', 'sf_associated_processes', +# index=True, string='工序') +# active = fields.Boolean('有效', default=True) -class MrsProcessingOrder(models.Model): - _name = 'sf.processing.order' - _description = '工序' - sequence = fields.Integer('Sequence') - processing_technology_ids = fields.Many2many('sf.processing.technology', 'sf_associated_processes', - index=True, string='加工工艺') - production_process_id = fields.Many2one('sf.production.process', string="表面工艺") +# class MrsProcessingOrder(models.Model): +# _name = 'sf.processing.order' +# _description = '工序' +# sequence = fields.Integer('Sequence') +# processing_technology_ids = fields.Many2many('sf.processing.technology', 'sf_associated_processes', +# index=True, string='加工工艺') +# production_process_id = fields.Many2one('sf.production.process', string="表面工艺") class SupplierSort(models.Model): diff --git a/sf_base/security/ir.model.access.csv b/sf_base/security/ir.model.access.csv index 782d924d..9c3bbeb3 100644 --- a/sf_base/security/ir.model.access.csv +++ b/sf_base/security/ir.model.access.csv @@ -9,16 +9,13 @@ access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,b access_sf_machine_brand_tags_admin,sf_machine_brand_tags_admin,model_sf_machine_brand_tags,base.group_system,1,1,1,0 access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,base.group_user,1,1,1,0 access_sf_machine_control_system_admin,sf_machine_control_system_admin,model_sf_machine_control_system,base.group_system,1,1,1,0 -access_sf_processing_order,sf_processing_order,model_sf_processing_order,base.group_user,1,1,1,0 -access_sf_processing_order_admin,sf_processing_order_admin,model_sf_processing_order,base.group_system,1,1,1,0 + access_sf_production_process,sf_production_process,model_sf_production_process,base.group_user,1,1,1,0 access_sf_production_process_admin,sf_production_process_admin,model_sf_production_process,base.group_system,1,1,1,0 access_sf_production_materials,sf_production_materials,model_sf_production_materials,base.group_user,1,1,1,0 access_sf_production_materials_admin,sf_production_materials_admin,model_sf_production_materials,base.group_system,1,1,1,0 access_sf_materials_model,sf_materials_model,model_sf_materials_model,base.group_user,1,1,1,0 access_sf_materials_model_admin,sf_materials_model_admin,model_sf_materials_model,base.group_system,1,1,1,0 -access_sf_processing_technology,sf_processing_technology,model_sf_processing_technology,base.group_user,1,1,1,0 -access_sf_processing_technology_admin,sf_processing_technology_admin,model_sf_processing_technology,base.group_system,1,1,1,0 access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,base.group_user,1,1,1,0 access_sf_supplier_sort_admin,sf_supplier_sort_admin,model_sf_supplier_sort,base.group_system,1,1,1,0 access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,base.group_user,1,1,1,0 @@ -94,7 +91,6 @@ access_sf_machine_brand_group_purchase_director,sf_machine_brand_group_purchase_ access_sf_machine_brand_group_sale_director,sf_machine_brand_group_sale_director,model_sf_machine_brand,sf_base.group_sale_director,1,0,0,0 access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,base.group_user,1,1,1,1 access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,sf_base.group_sf_mrp_user,1,0,0,0 -access_sf_processing_order,sf_processing_order,model_sf_processing_order,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_production_process,sf_production_process,model_sf_production_process,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_production_materials,sf_production_materials,model_sf_production_materials,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_production_materials_group_plan_director,sf_production_materials_group_plan_director,model_sf_production_materials,sf_base.group_plan_director,1,1,0,0 @@ -104,7 +100,6 @@ access_sf_materials_model,sf_materials_model,model_sf_materials_model,sf_base.gr access_sf_materials_model_group_plan_director,sf_materials_model_group_plan_director,model_sf_materials_model,sf_base.group_plan_director,1,0,0,0 access_sf_materials_model_group_purchase_director,sf_materials_model_group_purchase_director,model_sf_materials_model,sf_base.group_purchase_director,1,0,0,0 access_sf_materials_model_group_sale_director,sf_materials_model_group_sale_director,model_sf_materials_model,sf_base.group_sale_director,1,0,0,0 -access_sf_processing_technology,sf_processing_technology,model_sf_processing_technology,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_production_process_category,sf_production_process_category,model_sf_production_process_category,sf_base.group_sf_mrp_user,1,0,0,0 @@ -161,11 +156,9 @@ access_sf_machine_tool_type,sf_machine_tool_type,model_sf_machine_tool_type,sf_b access_sf_machine_brand,sf_machine_brand,model_sf_machine_brand,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,sf_base.group_sf_mrp_user,1,1,0,0 -access_sf_processing_order,sf_processing_order,model_sf_processing_order,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_production_process,sf_production_process,model_sf_production_process,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_production_materials,sf_production_materials,model_sf_production_materials,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_materials_model,sf_materials_model,model_sf_materials_model,sf_base.group_sf_mrp_user,1,1,0,0 -access_sf_processing_technology,sf_processing_technology,model_sf_processing_technology,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_production_process_category,sf_production_process_category,model_sf_production_process_category,sf_base.group_sf_mrp_user,1,1,0,0 diff --git a/sf_base/views/common_view.xml b/sf_base/views/common_view.xml index 8572cd30..49a2563d 100644 --- a/sf_base/views/common_view.xml +++ b/sf_base/views/common_view.xml @@ -1,6 +1,60 @@ + + + sf.production.process.parameter + + + + + + + + + + sf.production.process.parameter + +
+ +
+

+ +

+
+ + + + + + + + + + + + + +
+
+
+
+ + + search.mrs.production.process.parameter + sf.production.process.parameter + + + + + + + + + + @@ -20,26 +74,26 @@ - - sf.processing.technology - - - - - - - - - search.sf.processing.technology.type - sf.processing.technology - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -156,19 +210,7 @@ - - - - - - - -
- - -
-
-
+ @@ -350,12 +392,12 @@ sf.materials.model tree,form
- - 加工工艺 - ir.actions.act_window - sf.processing.technology - tree - + + + + + + 表面工艺类别 @@ -363,6 +405,12 @@ sf.production.process.category tree,form + + 表面工艺可选参数 + ir.actions.act_window + sf.production.process.parameter + tree,form +
diff --git a/sf_base/views/menu_view.xml b/sf_base/views/menu_view.xml index cb8e85d9..21bb519d 100644 --- a/sf_base/views/menu_view.xml +++ b/sf_base/views/menu_view.xml @@ -111,13 +111,19 @@ /> - - + sequence="2" + action="mrs_production_process_parameter_action" + /> + + + + + + @@ -143,5 +149,6 @@ sequence="1" action="action_sf_machine_control_system"/> +
\ No newline at end of file diff --git a/sf_maintenance/security/ir.model.access.csv b/sf_maintenance/security/ir.model.access.csv index b39a3c06..abbd4878 100644 --- a/sf_maintenance/security/ir.model.access.csv +++ b/sf_maintenance/security/ir.model.access.csv @@ -1,5 +1,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_equipment_maintenance_standards,equipment_maintenance_standards,model_equipment_maintenance_standards,sf_maintenance.sf_group_equipment_user,1,1,1,0 +access_equipment_maintenance_standards_manager,equipment_maintenance_standards,model_equipment_maintenance_standards,sf_maintenance.sf_group_equipment_manager,1,1,1,1 +access_equipment_maintenance_standards,equipment_maintenance_standards,model_equipment_maintenance_standards,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_maintenance_logs_sf_group_equipment_user,sf_maintenance_logs,model_sf_maintenance_logs,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_maintenance_logs_sf_group_equipment_manager,sf_maintenance_logs,model_sf_maintenance_logs,sf_maintenance.sf_group_equipment_manager,1,1,1,0 access_maintenance_equipment_sf_group_equipment_user,maintenance_equipment,model_maintenance_equipment,sf_maintenance.sf_group_equipment_user,1,0,0,0 @@ -9,7 +10,7 @@ access_maintenance_equipment_oee,maintenance_equipment_oee,model_maintenance_equ access_maintenance_equipment_oee_logs_sf_group_equipment_user,maintenance_equipment_oee_logs,model_maintenance_equipment_oee_logs,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_maintenance_equipment_oee_logs,maintenance_equipment_oee_logs,model_maintenance_equipment_oee_logs,sf_maintenance.sf_group_equipment_manager,1,1,1,0 access_maintenance_standards_sf_group_equipment_user,maintenance_standards,model_maintenance_standards,sf_maintenance.sf_group_equipment_user,1,0,0,0 -access_maintenance_standards,maintenance_standards,model_maintenance_standards,sf_maintenance.sf_group_equipment_manager,1,1,1,0 +access_maintenance_standards,maintenance_standards,model_maintenance_standards,sf_maintenance.sf_group_equipment_manager,1,1,1,1 access_maintenance_standard_image_sf_group_equipment_user,maintenance_standard_image,model_maintenance_standard_image,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_maintenance_standard_image,maintenance_standard_image,model_maintenance_standard_image,sf_maintenance.sf_group_equipment_manager,1,1,1,0 access_sf_robot_axis_num_sf_group_equipment_user,sf_robot_axis_num,model_sf_robot_axis_num,sf_maintenance.sf_group_equipment_user,1,0,0,0 @@ -41,16 +42,13 @@ access_sf_machine_brand_tags_sf_group_equipment_user,sf_machine_brand_tags,sf_ba access_sf_machine_brand_tags_admin_sf_group_equipment_user,sf_machine_brand_tags_admin,sf_base.model_sf_machine_brand_tags,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_machine_control_system_sf_group_equipment_user,sf_machine_control_system,sf_base.model_sf_machine_control_system,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_machine_control_system_admin_sf_group_equipment_user,sf_machine_control_system_admin,sf_base.model_sf_machine_control_system,sf_maintenance.sf_group_equipment_user,1,0,0,0 -access_sf_processing_order_sf_group_equipment_user,sf_processing_order,sf_base.model_sf_processing_order,sf_maintenance.sf_group_equipment_user,1,0,0,0 -access_sf_processing_order_admin_sf_group_equipment_user,sf_processing_order_admin,sf_base.model_sf_processing_order,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_production_process_sf_group_equipment_user,sf_production_process,sf_base.model_sf_production_process,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_production_process_admin_sf_group_equipment_user,sf_production_process_admin,sf_base.model_sf_production_process,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_production_materials_sf_group_equipment_user,sf_production_materials,sf_base.model_sf_production_materials,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_production_materials_admin_sf_group_equipment_user,sf_production_materials_admin,sf_base.model_sf_production_materials,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_materials_model_sf_group_equipment_user,sf_materials_model,sf_base.model_sf_materials_model,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_materials_model_admin_sf_group_equipment_user,sf_materials_model_admin,sf_base.model_sf_materials_model,sf_maintenance.sf_group_equipment_user,1,0,0,0 -access_sf_processing_technology_sf_group_equipment_user,sf_processing_technology,sf_base.model_sf_processing_technology,sf_maintenance.sf_group_equipment_user,1,0,0,0 -access_sf_processing_technology_admin_sf_group_equipment_user,sf_processing_technology_admin,sf_base.model_sf_processing_technology,sf_maintenance.sf_group_equipment_user,1,0,0,0 + access_sf_supplier_sort_sf_group_equipment_user,sf_supplier_sort,sf_base.model_sf_supplier_sort,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_supplier_sort_admin_sf_group_equipment_user,sf_supplier_sort_admin,sf_base.model_sf_supplier_sort,sf_maintenance.sf_group_equipment_user,1,0,0,0 access_sf_production_process_parameter_sf_group_equipment_user,sf_production_process_parameter,sf_base.model_sf_production_process_parameter,sf_maintenance.sf_group_equipment_user,1,0,0,0 diff --git a/sf_maintenance/views/equipment_maintenance_standards_views.xml b/sf_maintenance/views/equipment_maintenance_standards_views.xml index 4932f3de..1af9bfc5 100644 --- a/sf_maintenance/views/equipment_maintenance_standards_views.xml +++ b/sf_maintenance/views/equipment_maintenance_standards_views.xml @@ -12,14 +12,14 @@ - + - + @@ -31,7 +31,7 @@ - + diff --git a/sf_maintenance/views/maintenance_views.xml b/sf_maintenance/views/maintenance_views.xml index 140456df..94a74a12 100644 --- a/sf_maintenance/views/maintenance_views.xml +++ b/sf_maintenance/views/maintenance_views.xml @@ -60,9 +60,9 @@ - + + domain="[('brand_id', '=', brand_id)]" /> @@ -73,9 +73,9 @@ + options="{'no_create': True}" />