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) {
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 @@
-
-
-
-
-
-
- ]}"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/jikimo_purchase_tier_validation/wizards/__init__.py b/jikimo_purchase_tier_validation/wizards/__init__.py
index 43edb50d..2484d9e0 100644
--- a/jikimo_purchase_tier_validation/wizards/__init__.py
+++ b/jikimo_purchase_tier_validation/wizards/__init__.py
@@ -1,2 +1 @@
-from . import upload_file_wizard
-from . import comment_wizard
\ No newline at end of file
+from . import comment_wizard
diff --git a/jikimo_purchase_tier_validation/wizards/upload_file_wizard.py b/jikimo_purchase_tier_validation/wizards/upload_file_wizard.py
deleted file mode 100644
index f7ead9e1..00000000
--- a/jikimo_purchase_tier_validation/wizards/upload_file_wizard.py
+++ /dev/null
@@ -1,114 +0,0 @@
-from odoo import models, fields, api, _
-
-
-class IrAttachmentWizard(models.TransientModel):
- _name = 'ir.attachment.wizard'
- _description = '文件上传向导'
-
- attachment = fields.Binary(string='选择文件', required=True)
- filename = fields.Char(string='文件名')
- res_model = fields.Char()
- res_id = fields.Integer()
-
- # def action_upload_file(self):
- # self.ensure_one()
- # # 首先创建 ir.attachment
- # attachment = self.env['ir.attachment'].create({
- # 'name': self.filename,
- # 'type': 'binary',
- # 'datas': self.attachment,
- # 'res_model': self.res_model,
- # 'res_id': self.res_id,
- # })
- #
- # # 获取默认的文档文件夹
- # workspace = self.env['documents.folder'].search([('name', '=', '采购合同')], limit=1)
- #
- # # 创建 documents.document 记录
- # document = self.env['documents.document'].create({
- # 'name': self.filename,
- # 'attachment_id': attachment.id,
- # 'folder_id': workspace.id,
- # 'res_model': self.res_model,
- # 'res_id': self.res_id,
- # })
- #
- # return {
- # 'type': 'ir.actions.client',
- # 'tag': 'display_notification',
- # 'params': {
- # 'title': _('成功'),
- # 'message': _('文件上传成功'),
- # 'type': 'success',
- # }
- # }
-
- def action_upload_file(self):
- self.ensure_one()
- # 获取当前用户的 partner_id
- current_partner = self.env.user.partner_id
- # 首先创建 ir.attachment
- attachment = self.env['ir.attachment'].create({
- 'name': self.filename,
- 'type': 'binary',
- 'datas': self.attachment,
- 'res_model': self.res_model,
- 'res_id': self.res_id,
- })
-
- # 获取默认的文档文件夹
- workspace = self.env['documents.folder'].search([('name', '=', '采购合同')], limit=1)
-
- # 创建 documents.document 记录
- document = self.env['documents.document'].create({
- 'name': self.filename,
- 'attachment_id': attachment.id,
- 'folder_id': workspace.id,
- 'res_model': self.res_model,
- 'res_id': self.res_id,
- 'partner_id': current_partner.id,
- })
-
- # 更新采购订单的合同文档字段
- purchase_order = self.env['purchase.order'].browse(self.res_id)
- purchase_order.write({
- 'contract_document_id': document.id,
- 'is_upload_contract_file': True
- })
-
- # 显示成功消息并关闭向导
- message = {
- 'type': 'ir.actions.client',
- 'tag': 'display_notification',
- 'params': {
- 'title': _('成功'),
- 'message': _('文件上传成功'),
- 'type': 'success',
- 'sticky': False, # 自动消失
- 'next': {
- 'type': 'ir.actions.act_window_close'
- }
- }
- }
-
- return message
-
-
- # def action_upload_file(self):
- # self.ensure_one()
- # attachment = self.env['ir.attachment'].create({
- # 'name': self.filename,
- # 'type': 'binary',
- # 'datas': self.attachment,
- # 'res_model': self.res_model,
- # 'res_id': self.res_id,
- # })
- # return {
- # 'type': 'ir.actions.client',
- # 'tag': 'display_notification',
- # 'params': {
- # 'title': _('成功'),
- # 'message': _('文件上传成功'),
- # 'type': 'success',
- # }
- # }
diff --git a/jikimo_purchase_tier_validation/wizards/upload_file_wizard_view.xml b/jikimo_purchase_tier_validation/wizards/upload_file_wizard_view.xml
deleted file mode 100644
index d75e75cb..00000000
--- a/jikimo_purchase_tier_validation/wizards/upload_file_wizard_view.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
- ir.attachment.wizard.form
- ir.attachment.wizard
-
-
-
-
-
\ No newline at end of file
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/models/sale_order.py b/sf_sale/models/sale_order.py
index 4d0106bc..66a32f20 100644
--- a/sf_sale/models/sale_order.py
+++ b/sf_sale/models/sale_order.py
@@ -132,7 +132,7 @@ class ReSaleOrder(models.Model):
'name': '%s/%s/%s/%s/%s/%s' % (
self.format_float(product.model_long),
self.format_float(product.model_width),
- self.format_float(product.model_height),
+ self.format_float(product.model_height),
self.format_float(product.model_volume),
machining_accuracy_name,
product.materials_id.name),
diff --git a/sf_sale/static/src/css/purchase_list.css b/sf_sale/static/src/css/purchase_list.css
index 5e2aa86e..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 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
diff --git a/sf_sale/views/purchase_order_view.xml b/sf_sale/views/purchase_order_view.xml
index ecc061fa..209fd4fa 100644
--- a/sf_sale/views/purchase_order_view.xml
+++ b/sf_sale/views/purchase_order_view.xml
@@ -139,7 +139,7 @@
-
+
{'readonly': [('state', 'in', ['purchase'])]}