From 099188849449cde94d4a9f84d0ee661621727367 Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Wed, 25 Dec 2024 11:02:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=90=88=E5=90=8C=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=9F=BA=E7=A1=80=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jikimo_purchase_tier_validation/__init__.py | 3 +- .../__manifest__.py | 7 +- .../data/documents_data.xml | 11 ++ .../models/models.py | 43 +++++++- .../security/ir.model.access.csv | 2 +- .../views/views.xml | 28 +++-- .../wizards/__init__.py | 1 + .../wizards/upload_file_wizard.py | 103 ++++++++++++++++++ .../wizards/upload_file_wizard_view.xml | 21 ++++ 9 files changed, 197 insertions(+), 22 deletions(-) create mode 100644 jikimo_purchase_tier_validation/data/documents_data.xml create mode 100644 jikimo_purchase_tier_validation/wizards/__init__.py create mode 100644 jikimo_purchase_tier_validation/wizards/upload_file_wizard.py create mode 100644 jikimo_purchase_tier_validation/wizards/upload_file_wizard_view.xml diff --git a/jikimo_purchase_tier_validation/__init__.py b/jikimo_purchase_tier_validation/__init__.py index 511a0ca3..40c32597 100644 --- a/jikimo_purchase_tier_validation/__init__.py +++ b/jikimo_purchase_tier_validation/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- from . import controllers -from . import models \ No newline at end of file +from . import models +from . import wizards diff --git a/jikimo_purchase_tier_validation/__manifest__.py b/jikimo_purchase_tier_validation/__manifest__.py index 99945b9e..2c59b177 100644 --- a/jikimo_purchase_tier_validation/__manifest__.py +++ b/jikimo_purchase_tier_validation/__manifest__.py @@ -20,13 +20,14 @@ 'version': '0.1', # any module necessary for this one to work correctly - 'depends': ['purchase', 'base_tier_validation'], + 'depends': ['purchase', 'base_tier_validation', 'documents'], # always loaded 'data': [ - # 'security/ir.model.access.csv', + 'security/ir.model.access.csv', + 'data/documents_data.xml', + 'wizards/upload_file_wizard_view.xml', 'views/views.xml', - 'views/templates.xml', ], # only loaded in demonstration mode 'demo': [ diff --git a/jikimo_purchase_tier_validation/data/documents_data.xml b/jikimo_purchase_tier_validation/data/documents_data.xml new file mode 100644 index 00000000..990a6418 --- /dev/null +++ b/jikimo_purchase_tier_validation/data/documents_data.xml @@ -0,0 +1,11 @@ + + + + + + 采购合同 + 存放采购合同相关文件 + 10 + + + \ 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 bb61cd5b..f69859c1 100644 --- a/jikimo_purchase_tier_validation/models/models.py +++ b/jikimo_purchase_tier_validation/models/models.py @@ -1,6 +1,7 @@ from odoo import models, fields, api, _ from odoo.exceptions import ValidationError + class jikimo_purchase_tier_validation(models.Model): _name = 'purchase.order' _inherit = ['purchase.order', 'tier.validation'] @@ -12,8 +13,46 @@ class jikimo_purchase_tier_validation(models.Model): missing_fields.append('合同名称') if not record.contract_number: missing_fields.append('合同编号') - + if missing_fields: raise ValidationError(_('如下字段要求必须填写:%s') % '、'.join(missing_fields)) - + return super(jikimo_purchase_tier_validation, self).request_validation() + + # 上传合同文件 + def upload_contract_file(self): + print('upload_contract_file===========================') + # self.ensure_one() + # return { + # 'name': _('上传合同文件'), + # 'type': 'ir.actions.act_window', + # 'res_model': 'ir.attachment', + # 'view_mode': 'form', + # 'view_type': 'form', + # 'target': 'new', + # 'context': { + # 'default_res_model': self._name, + # 'default_res_id': self.id, + # 'default_type': 'binary', + # 'default_mimetype': 'application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/jpeg,image/png', + # } + # } + + self.ensure_one() + action = { + 'type': 'ir.actions.act_window', + 'name': _('上传合同文件'), + 'res_model': 'ir.attachment.wizard', # 我们需要创建一个新的向导模型 + 'view_mode': 'form', + 'target': 'new', + 'context': { + 'default_res_model': self._name, + 'default_res_id': self.id, + } + } + return action + + # 删除合同文件 + def delete_contract_file(self): + print('delete_contract_file============================') + pass diff --git a/jikimo_purchase_tier_validation/security/ir.model.access.csv b/jikimo_purchase_tier_validation/security/ir.model.access.csv index ccd753fc..09ba96bc 100644 --- a/jikimo_purchase_tier_validation/security/ir.model.access.csv +++ b/jikimo_purchase_tier_validation/security/ir.model.access.csv @@ -1,2 +1,2 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_jikimo_purchase_tier_validation_jikimo_purchase_tier_validation,jikimo_purchase_tier_validation.jikimo_purchase_tier_validation,model_jikimo_purchase_tier_validation_jikimo_purchase_tier_validation,base.group_user,1,1,1,1 \ No newline at end of file +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/views.xml b/jikimo_purchase_tier_validation/views/views.xml index 5c87a811..0fee7710 100644 --- a/jikimo_purchase_tier_validation/views/views.xml +++ b/jikimo_purchase_tier_validation/views/views.xml @@ -1,19 +1,17 @@ + - - - + + + tier_validation_view_purchase_order_form_inherit + purchase.order + + + +