!30 审批二开

Merge pull request !30 from dev-pengyuthon
This commit is contained in:
李鹏宇
2024-05-30 06:20:42 +00:00
committed by Gitee
17 changed files with 73 additions and 101 deletions
@@ -4,9 +4,7 @@
<!-- 天河投资办公室 - 采购办公用品 -->
<record id="approval_category_data_tianhe_purchase_work_approval" model="approval.category">
<field name="name">采购办公用品</field>
<field name="category_type_number">purchase_work_approval</field>
<field name="model_name">approval.request</field>
<!-- <field name="image" type="base64" file="approvals/static/src/img/Suitcase.png"/>-->
<field name="approval_category_type">purchase_work</field>
<field name="sequence">1</field>
<field name="has_date">no</field>
<field name="has_period">no</field>
@@ -6,31 +6,7 @@ class ApprovalCategory(models.Model):
_inherit = 'approval.category'
_description = 'tian he 审批框架拓展'
def create_request(self):
self.ensure_one()
if not self.category_type_number:
return {
"type": "ir.actions.act_window",
"res_model": "approval.request",
"views": [[False, "form"]],
"context": {
'default_name': _('New') if self.automated_sequence else self.name,
'default_category_id': self.id,
'default_request_owner_id': self.env.user.id,
'default_request_status': 'new'
},
}
else:
form_str = 'tianhe_approvals.approvals_category_type_code_%s' % self.category_type_number
approvals_form_id = self.env.ref(form_str).id or ''
return {
"type": "ir.actions.act_window",
"res_model": self.model_name,
"views": [[approvals_form_id, "form"]],
"context": {
'default_name': _('New') if self.automated_sequence else self.name,
'default_category_id': self.id,
'default_request_owner_id': self.env.user.id,
'default_request_status': 'new'
},
}
approval_category_type = fields.Selection([
('demo', 'demo测试'),
('purchase_work', '采购审批单'),
])
@@ -7,9 +7,6 @@ class TianHePurchaseApproval(models.Model):
_inherit = "approval.request"
_description = '天河采购审批单'
# approvals_department_id 部门
# date_confirm 确认日期
# purchase_work_notice = fields.Text(string="采购原由")
# 产品明细,设备名称,型号,单价,数量,小计,库存,备注
purchase_work_notice = fields.Text(string="采购原由")
@@ -8,13 +8,10 @@
<xpath expr="//field[@name='company_id']" position="after">
<field name="approvals_department_id"/>
</xpath>
<xpath expr="//page[@name='description']" position="attributes">
<attribute name="string">采购原由</attribute>
</xpath>
<xpath expr="//page[@name='products']" position="replace">
<page string="采购清单" name="products" invisible="has_product == 'no'">
<!-- 未知功能,暂留 -->
<!-- contex"{'tree_view_ref': 'approvals.approval_product_line_view_tree', 'kanban_view_ref': 'approvals.approval_product_kanban_mobile_view'}"-->
<!-- 未知功能,暂留 -->
<!-- contex"{'tree_view_ref': 'approvals.approval_product_line_view_tree', 'kanban_view_ref': 'approvals.approval_product_kanban_mobile_view'}"-->
<field name="product_line_ids" readonly="request_status != 'new'">
<tree editable="bottom" string="采购清单">
<field name="company_id" column_invisible="True"/>
+1 -1
View File
@@ -13,13 +13,13 @@
'depends': ['approvals'],
'data': [
'security/ir.model.access.csv',
'data/approval_category_type_data.xml',
'wizard/approval_notice_wizard_views.xml',
'wizard/approval_refuse_wizard_views.xml',
'views/inherit_approval_category_views.xml',
'views/inherit_approval_request_views.xml',
'views/approval_process_views.xml',
'views/demo_approval_request.xml',
'data/approval_category_type_data.xml',
'report/all_demo_report.xml',
],
'installable': True,
@@ -2,11 +2,10 @@
<odoo>
<data noupdate="1">
<!-- 审批导入模板,测试用 -->
<record id="approval_category_data_business_trip" model="approval.category">
<record id="approval_category_data_demo_request" model="approval.category">
<field name="name">demo测试</field>
<field name="category_type_number">demo_request</field>
<field name="model_name">demo.request</field>
<field name="image" type="base64" file="approvals/static/src/img/Suitcase.png"/>
<field name="approval_category_type">demo</field>
<!-- <field name="image" type="base64" file="approvals/static/src/img/Suitcase.png"/>-->
<field name="sequence">1</field>
<field name="has_date">no</field>
<field name="has_period">required</field>
@@ -5,7 +5,7 @@ from odoo.exceptions import ValidationError
class DemoApprovalRequest(models.Model):
_inherit = "approval.request"
_description = '默认审批'
_description = '默认测试审批'
demo1 = fields.Char(string="demo1")
demo2 = fields.Char(string="demo2")
@@ -6,10 +6,11 @@ class ApprovalCategory(models.Model):
_inherit = 'approval.category'
_description = '审批框架拓展'
model_name = fields.Char(string="模型名称")
category_type_number = fields.Char(string='审批视图编号')
approval_department_ids = fields.Many2many('hr.department', string="审批所属部门")
approval_process_id = fields.Many2one('approval.process', string="审批流程")
approval_category_type = fields.Selection([
('demo', 'demo测试')
], string="审批类别", help="后台计算")
is_enable = fields.Boolean(string="启用", default=True)
category_start_date = fields.Date(string="开始日期", default=fields.Date.today())
category_end_date = fields.Date(string="结束日期")
@@ -24,33 +25,4 @@ class ApprovalCategory(models.Model):
'user_id': user,
'category_id': record.id
}))
record.approver_ids = category_approver
def create_request(self):
self.ensure_one()
if not self.category_type_number:
return {
"type": "ir.actions.act_window",
"res_model": "approval.request",
"views": [[False, "form"]],
"context": {
'default_name': _('New') if self.automated_sequence else self.name,
'default_category_id': self.id,
'default_request_owner_id': self.env.user.id,
'default_request_status': 'new'
},
}
else:
form_str = 'yuthon_approval.approvals_category_type_code_%s' % self.category_type_number
approvals_form_id = self.env.ref(form_str).id or ''
return {
"type": "ir.actions.act_window",
"res_model": self.model_name,
"views": [[approvals_form_id, "form"]],
"context": {
'default_name': _('New') if self.automated_sequence else self.name,
'default_category_id': self.id,
'default_request_owner_id': self.env.user.id,
'default_request_status': 'new'
},
}
record.approver_ids = category_approver
@@ -6,6 +6,8 @@ from odoo.exceptions import ValidationError
class ApprovalRequest(models.Model):
_inherit = "approval.request"
approval_category_name = fields.Selection(string="类别名称", related='category_id.approval_category_type')
def print_approval_report(self):
return self.env.ref('yuthon_approval.all_demo_report_actions').report_action(self)
@@ -6,9 +6,9 @@
<field name="inherit_id" ref="approvals.approval_request_view_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='company_id']" position="after">
<field name="demo1"/>
<field name="demo2"/>
<field name="demo3"/>
<field name="demo1" invisible="approval_category_name != 'demo'"/>
<field name="demo2" invisible="approval_category_name != 'demo'"/>
<field name="demo3" invisible="approval_category_name != 'demo'"/>
</xpath>
</field>
</record>
@@ -6,7 +6,6 @@
<field name="inherit_id" ref="approvals.approval_category_view_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<field name="category_type_number"/>
<field name="is_enable"/>
<field name="category_start_date"/>
<field name="category_end_date"/>
@@ -20,9 +19,8 @@
<field name="inherit_id" ref="approvals.approval_category_view_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='description']" position="after">
<field name="category_type_number" column_invisible="True"/>
<field name="approval_department_ids" widget="many2many_tags"/>
<field name="model_name" column_invisible="True"/>
<field name="approval_category_type"/>
</xpath>
<xpath expr="//field[@name='approver_ids']" position="after">
<field name="approval_process_id" widget="many2one_avatar_user"/>
@@ -7,25 +7,30 @@
<field name="arch" type="xml">
<xpath expr="//field[@name='approver_ids']/tree//field[@name='status']" position="after">
<field name="approval_notice"/>
<field name="approval_sign" widget="image" options='{"size": [80, 40]}' />
<field name="approval_sign" widget="image" options='{"size": [80, 40]}'/>
</xpath>
<xpath expr="//button[@name='action_cancel']" position="after">
<button name="print_approval_report" string="打印" type="object"
invisible="request_status in ['new', 'cancel']"/>
</xpath>
<xpath expr="//button[@name='action_approve']" position="attributes">
<xpath expr="//button[@name='action_approve']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//button[@name='action_refuse']" position="attributes">
<xpath expr="//button[@name='action_refuse']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//button[@name='action_approve']" position="after">
<button name="%(approval_notice_wizard_action)d" string="批准" type="action" invisible="request_status in ['approved', 'refused', 'cancel'] or user_status != 'pending'" data-hotkey="v"/>
<button name="%(approval_notice_wizard_action)d" string="批准" type="action"
invisible="request_status in ['approved', 'refused', 'cancel'] or user_status != 'pending'"
data-hotkey="v"/>
</xpath>
<xpath expr="//button[@name='action_refuse']" position="after">
<button name="%(approval_refuse_wizard_action)d" string="拒绝" type="action" invisible="request_status in ['approved', 'refused', 'cancel'] or user_status != 'pending'" data-hotkey="z"/>
<button name="%(approval_refuse_wizard_action)d" string="拒绝" type="action"
invisible="request_status in ['approved', 'refused', 'cancel'] or user_status != 'pending'"
data-hotkey="z"/>
</xpath>
<xpath expr="//field[@name='company_id']" position="after">
<field name="approval_category_name" invisible="1"/>
</xpath>
</field>
</record>
@@ -1,15 +1,15 @@
<odoo>
<record id="approval_notice_wizard_form" model="ir.ui.view">
<record id="approval_notice_wizard_form" model="ir.ui.view">
<field name="name">审批意见弹窗</field>
<field name="model">approval.notice.wizard</field>
<field name="arch" type="xml">
<form>
<field name="approval_user_line_id" invisible="1" />
<field name="approval_user_line_id" invisible="1"/>
<group>
<field name="approval_notice_text"/>
</group>
<group>
<field name="approval_sign" widget="signature" options="{'size': ['',200]}"/>
<field name="approval_sign" widget="signature" options="{'size': ['',200]}"/>
</group>
<footer>
<button name="confirm" string="确认" type="object" class="oe_highlight"/>
@@ -18,15 +18,15 @@
</form>
</field>
</record>
<record id="approval_notice_wizard_action" model="ir.actions.act_window">
<record id="approval_notice_wizard_action" model="ir.actions.act_window">
<field name="name">审批意见弹窗</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">approval.notice.wizard</field>
<field name="context">{
'default_approval_user_line_id': active_id,
}</field>
}
</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
</odoo>
@@ -1,10 +1,10 @@
<odoo>
<record id="approval_refuse_wizard_form" model="ir.ui.view">
<record id="approval_refuse_wizard_form" model="ir.ui.view">
<field name="name">审批意见弹窗</field>
<field name="model">approval.refuse.wizard</field>
<field name="arch" type="xml">
<form>
<field name="approval_user_line_id" invisible="1" />
<field name="approval_user_line_id" invisible="1"/>
<group>
<field name="approval_notice_text"/>
</group>
@@ -18,13 +18,14 @@
</form>
</field>
</record>
<record id="approval_refuse_wizard_action" model="ir.actions.act_window">
<record id="approval_refuse_wizard_action" model="ir.actions.act_window">
<field name="name">审批意见弹窗</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">approval.refuse.wizard</field>
<field name="context">{
'default_approval_user_line_id': active_id,
}</field>
}
</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
+3
View File
@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import models
+20
View File
@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
{
'name': "Yuthon Purchase approval",
'summary': "审批采购",
'description': """
""",
'author': 'pengyuthon',
'website': 'https://www.pengyuthon.com',
'category': 'Human Resources/Attendances',
'version': '0.1',
'license': 'LGPL-3',
'depends': ['base', 'product', 'yuthon_approval'],
'data': [
'security/ir.model.access.csv',
],
'installable': True,
'application': True,
}
@@ -0,0 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink