From 6f4f0ab0fb2b2784a4ddc4a3889b6b67bfa2147f Mon Sep 17 00:00:00 2001 From: hyyy <123@qq.com> Date: Tue, 18 Feb 2025 15:44:40 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=80=E5=85=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=9A=84=E5=B1=95=E5=BC=80=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/views/tool_views.xml | 10 +++++----- sf_sale/static/src/css/purchase_list.css | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sf_base/views/tool_views.xml b/sf_base/views/tool_views.xml index e0679e55..e9d672e5 100644 --- a/sf_base/views/tool_views.xml +++ b/sf_base/views/tool_views.xml @@ -187,23 +187,23 @@ + widget="many2one_radio" attrs="{'showExpand': True}"/> - + - + - + - + diff --git a/sf_sale/static/src/css/purchase_list.css b/sf_sale/static/src/css/purchase_list.css index 5e2aa86e..ec3d1e76 100644 --- a/sf_sale/static/src/css/purchase_list.css +++ b/sf_sale/static/src/css/purchase_list.css @@ -2,7 +2,7 @@ min-width: 62px !important; } -.section_and_note_text span{ +.section_and_note_text, .section_and_note_text span{ white-space: wrap!important; overflow: auto!important; text-overflow: unset!important; From 6984f3154713d16009af410019a44d3494b64ac9 Mon Sep 17 00:00:00 2001 From: hyyy <123@qq.com> Date: Tue, 18 Feb 2025 16:23:25 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/js/custom_form_status_indicator.js | 31 +++---------------- 1 file changed, 4 insertions(+), 27 deletions(-) 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 038c2dc0..5d8b2fbf 100644 --- a/jikimo_frontend/static/src/js/custom_form_status_indicator.js +++ b/jikimo_frontend/static/src/js/custom_form_status_indicator.js @@ -9,7 +9,6 @@ import {ListRenderer} from "@web/views/list/list_renderer"; import {FormLabel} from "@web/views/form/form_label"; import { fieldVisualFeedback } from "@web/views/fields/field"; -import {Field} from "@web/views/fields/field"; var Dialog = require('web.Dialog'); // var {patch} = require("web.utils") 这句话也行 @@ -53,7 +52,6 @@ const tableRequiredList = [ 'product_template_id', 'product_uom_qty', 'price_unit','product_id','product_qty', 'name', 'fault_type', 'maintenance_standards', 'Period' ] - patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', { setup() { owl.onMounted(() => { @@ -109,30 +107,7 @@ patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', { } ); -patch(Field.prototype, 'jikimo_frontend.Field', { - setup() { - owl.onMounted(this.setRequired); - return this._super(...arguments); - }, - setRequired() { - const id = this.props.id - const isRequired = filedRequiredList[id] - 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) - } - } -}) + patch(ListRenderer.prototype, 'jikimo_frontend.ListRenderer', { setup(){ owl.onMounted(() => { @@ -200,7 +175,9 @@ patch(FormLabel.prototype, 'jikimo_frontend.FormLabel', { this.props.fieldInfo ); const classes = this.props.className ? [this.props.className] : []; - if(this.props.fieldInfo?.rawAttrs?.class?.indexOf('custom_required') >= 0) { + const otherRequired = filedRequiredList[this.props.fieldName] + + if(this.props.fieldInfo?.rawAttrs?.class?.indexOf('custom_required') >= 0 || otherRequired) { classes.push('custom_required_add') } if (invalid) { From 9e6fc3bacb8ee469c0a83817afdbea2d80ff4220 Mon Sep 17 00:00:00 2001 From: hyyy <123@qq.com> Date: Wed, 19 Feb 2025 10:29:25 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E6=9D=83=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_sale/static/src/css/purchase_list.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sf_sale/static/src/css/purchase_list.css b/sf_sale/static/src/css/purchase_list.css index ec3d1e76..17df6065 100644 --- a/sf_sale/static/src/css/purchase_list.css +++ b/sf_sale/static/src/css/purchase_list.css @@ -2,8 +2,10 @@ min-width: 62px !important; } -.section_and_note_text, .section_and_note_text span{ +.o_list_renderer .o_list_table .o_data_row td.o_data_cell.o_field_cell.o_list_char.section_and_note_text, .section_and_note_text span{ white-space: wrap!important; overflow: auto!important; text-overflow: unset!important; + word-wrap: break-word; + word-break: break-all; } \ No newline at end of file From 4dc19cab8163ec6eb4f8df0f889cd59114631089 Mon Sep 17 00:00:00 2001 From: guanhuan Date: Wed, 19 Feb 2025 10:42:48 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=8D=8F=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jikimo_purchase_tier_validation/__init__.py | 1 - .../__manifest__.py | 3 - .../controllers/__init__.py | 3 - .../controllers/controllers.py | 21 -- .../data/documents_data.xml | 11 - jikimo_purchase_tier_validation/demo/demo.xml | 30 --- .../models/models.py | 41 ---- .../security/ir.model.access.csv | 2 - .../views/templates.xml | 24 -- .../views/views.xml | 66 ------ .../wizards/__init__.py | 3 +- .../wizards/upload_file_wizard.py | 114 ---------- sf_mrs_connect/__manifest__.py | 2 +- sf_sale/__manifest__.py | 7 +- sf_sale/data/documents_data.xml | 23 ++ sf_sale/i18n/zh_CN.po | 10 + sf_sale/models/__init__.py | 2 +- sf_sale/models/purchase_requisition.py | 210 ++++++++++++++++++ sf_sale/models/sale_order.py | 149 ++++++++++++- sf_sale/security/ir.model.access.csv | 2 +- sf_sale/views/purchase_order_view.xml | 21 +- sf_sale/views/purchase_requisition_view.xml | 75 +++++++ sf_sale/wizard/__init__.py | 2 + sf_sale/wizard/purchase_requisition_wizard.py | 20 ++ .../purchase_requisition_wizard_views.xml | 17 ++ sf_sale/wizard/upload_file_upload.py | 60 +++++ .../wizard/upload_file_upload_view.xml | 6 +- 27 files changed, 597 insertions(+), 328 deletions(-) delete mode 100644 jikimo_purchase_tier_validation/controllers/__init__.py delete mode 100644 jikimo_purchase_tier_validation/controllers/controllers.py delete mode 100644 jikimo_purchase_tier_validation/data/documents_data.xml delete mode 100644 jikimo_purchase_tier_validation/demo/demo.xml delete mode 100644 jikimo_purchase_tier_validation/security/ir.model.access.csv delete mode 100644 jikimo_purchase_tier_validation/views/templates.xml delete mode 100644 jikimo_purchase_tier_validation/wizards/upload_file_wizard.py create mode 100644 sf_sale/data/documents_data.xml create mode 100644 sf_sale/i18n/zh_CN.po create mode 100644 sf_sale/models/purchase_requisition.py create mode 100644 sf_sale/views/purchase_requisition_view.xml create mode 100644 sf_sale/wizard/purchase_requisition_wizard.py create mode 100644 sf_sale/wizard/purchase_requisition_wizard_views.xml create mode 100644 sf_sale/wizard/upload_file_upload.py rename jikimo_purchase_tier_validation/wizards/upload_file_wizard_view.xml => sf_sale/wizard/upload_file_upload_view.xml (81%) diff --git a/jikimo_purchase_tier_validation/__init__.py b/jikimo_purchase_tier_validation/__init__.py index 40c32597..f553d8ff 100644 --- a/jikimo_purchase_tier_validation/__init__.py +++ b/jikimo_purchase_tier_validation/__init__.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from . import controllers from . import models from . import wizards diff --git a/jikimo_purchase_tier_validation/__manifest__.py b/jikimo_purchase_tier_validation/__manifest__.py index a7bdbddf..4d676d8f 100644 --- a/jikimo_purchase_tier_validation/__manifest__.py +++ b/jikimo_purchase_tier_validation/__manifest__.py @@ -24,9 +24,6 @@ # always loaded 'data': [ - 'security/ir.model.access.csv', - 'data/documents_data.xml', - 'wizards/upload_file_wizard_view.xml', 'views/views.xml', ], # only loaded in demonstration mode diff --git a/jikimo_purchase_tier_validation/controllers/__init__.py b/jikimo_purchase_tier_validation/controllers/__init__.py deleted file mode 100644 index 457bae27..00000000 --- a/jikimo_purchase_tier_validation/controllers/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import controllers \ No newline at end of file diff --git a/jikimo_purchase_tier_validation/controllers/controllers.py b/jikimo_purchase_tier_validation/controllers/controllers.py deleted file mode 100644 index 6bbe5e40..00000000 --- a/jikimo_purchase_tier_validation/controllers/controllers.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -# from odoo import http - - -# class JikimoPurchaseTierValidation(http.Controller): -# @http.route('/jikimo_purchase_tier_validation/jikimo_purchase_tier_validation', auth='public') -# def index(self, **kw): -# return "Hello, world" - -# @http.route('/jikimo_purchase_tier_validation/jikimo_purchase_tier_validation/objects', auth='public') -# def list(self, **kw): -# return http.request.render('jikimo_purchase_tier_validation.listing', { -# 'root': '/jikimo_purchase_tier_validation/jikimo_purchase_tier_validation', -# 'objects': http.request.env['jikimo_purchase_tier_validation.jikimo_purchase_tier_validation'].search([]), -# }) - -# @http.route('/jikimo_purchase_tier_validation/jikimo_purchase_tier_validation/objects/', auth='public') -# def object(self, obj, **kw): -# return http.request.render('jikimo_purchase_tier_validation.object', { -# 'object': obj -# }) diff --git a/jikimo_purchase_tier_validation/data/documents_data.xml b/jikimo_purchase_tier_validation/data/documents_data.xml deleted file mode 100644 index 990a6418..00000000 --- a/jikimo_purchase_tier_validation/data/documents_data.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - 采购合同 - 存放采购合同相关文件 - 10 - - - \ No newline at end of file diff --git a/jikimo_purchase_tier_validation/demo/demo.xml b/jikimo_purchase_tier_validation/demo/demo.xml deleted file mode 100644 index cbba42ce..00000000 --- a/jikimo_purchase_tier_validation/demo/demo.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - \ No newline at end of file diff --git a/jikimo_purchase_tier_validation/models/models.py b/jikimo_purchase_tier_validation/models/models.py index 34d33d32..018766eb 100644 --- a/jikimo_purchase_tier_validation/models/models.py +++ b/jikimo_purchase_tier_validation/models/models.py @@ -21,12 +21,8 @@ class jikimo_purchase_tier_validation(models.Model): def button_confirm(self): for record in self: - # if record.need_validation and record.validation_status != 'validated': - # raise ValidationError(_('此操作需要至少对一条记录进行审批。\n请发起审批申请。')) if record.state in ['to approve']: raise ValidationError(_('请先完成审批。')) - # if record.state == 'approved': - # record.state = 'purchase' res = super(jikimo_purchase_tier_validation, self).button_confirm() for record in self: if record.state == 'approved': @@ -39,45 +35,8 @@ class jikimo_purchase_tier_validation(models.Model): record.message_subscribe([record.partner_id.id]) return res - # def button_confirm(self): - # self = self.with_context(skip_validation=True) - # return super().button_confirm() - # - # def _check_state_conditions(self, vals): - # self.ensure_one() - # if self._context.get('skip_validation'): - # return False - # return ( - # self._check_state_from_condition() - # and vals.get(self._state_field) in self._state_to - # ) - def request_validation(self): for record in self: - error_messages = [] - - # 检查必填字段 - required_fields = { - 'partner_ref': '合同名称', - 'contract_number': '合同编号' - } - - missing_fields = [ - name for field, name in required_fields.items() - if not record[field] - ] - - if missing_fields: - error_messages.append('* 如下字段要求必须填写:%s' % '、'.join(missing_fields)) - - # 检查合同文件 - if not record.contract_document_id: - error_messages.append('* 必须点击上传合同文件') - - # 如果有任何错误,一次性显示所有错误信息 - if error_messages: - raise ValidationError('\n'.join(error_messages)) - # 添加通知消息 if hasattr(record, 'message_post'): current_user = self.env.user.name diff --git a/jikimo_purchase_tier_validation/security/ir.model.access.csv b/jikimo_purchase_tier_validation/security/ir.model.access.csv deleted file mode 100644 index 09ba96bc..00000000 --- a/jikimo_purchase_tier_validation/security/ir.model.access.csv +++ /dev/null @@ -1,2 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_ir_attachment_wizard,ir.attachment.wizard,model_ir_attachment_wizard,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/jikimo_purchase_tier_validation/views/templates.xml b/jikimo_purchase_tier_validation/views/templates.xml deleted file mode 100644 index cea6b39a..00000000 --- a/jikimo_purchase_tier_validation/views/templates.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - \ No newline at end of file diff --git a/jikimo_purchase_tier_validation/views/views.xml b/jikimo_purchase_tier_validation/views/views.xml index b651e914..fdfd52c1 100644 --- a/jikimo_purchase_tier_validation/views/views.xml +++ b/jikimo_purchase_tier_validation/views/views.xml @@ -23,76 +23,10 @@ - - + diff --git a/sf_sale/views/purchase_requisition_view.xml b/sf_sale/views/purchase_requisition_view.xml new file mode 100644 index 00000000..e96e5c31 --- /dev/null +++ b/sf_sale/views/purchase_requisition_view.xml @@ -0,0 +1,75 @@ + + + + + purchase.requisition.form.inherit.sf + purchase.requisition + + + + + - diff --git a/sf_sale/views/purchase_requisition_view.xml b/sf_sale/views/purchase_requisition_view.xml deleted file mode 100644 index e96e5c31..00000000 --- a/sf_sale/views/purchase_requisition_view.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - purchase.requisition.form.inherit.sf - purchase.requisition - - - - -