Merge pull request !117 from 李鹏宇/dev_zhang
This commit is contained in:
李鹏宇
2024-08-02 03:14:52 +00:00
committed by Gitee
16 changed files with 427 additions and 25 deletions
+4 -1
View File
@@ -18,8 +18,11 @@
'views/official_partner_views.xml',
'views/official_type_views.xml',
'views/yuthon_official_labor_views.xml',
'views/yuthon_offficial_party_views.xml',
'views/yuthon_official_party_views.xml',
'views/yuthon_official_normal_views.xml',
'views/yuthon_official_incoming_party_views.xml',
'views/yuthon_official_incoming_labor_views.xml',
'views/yuthon_official_incoming_normal_views.xml',
],
'installable': True,
'application': True,
+4 -1
View File
@@ -4,5 +4,8 @@ from . import yuthon_official
from . import official_partner
from . import officical_type
from . import yuthon_official_labor
from . import yuthon_offficial_party
from . import yuthon_official_party
from . import yuthon_official_normal
from . import yuthon_offficial_incoming_party
from . import yuthon_official_incoming_labor
from . import yuthon_official_incoming_normal
@@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
from odoo import api, fields, models, tools
from odoo.exceptions import ValidationError, UserError
class YuthonOfficialIncomingParty(models.Model):
_name = 'yuthon.official.incoming.party'
_description = '党总支收文'
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
_rec_name = 'name'
name = fields.Char(string="名称")
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('official_code'))
official_type_id = fields.Many2one('official.type', string="公文种类")
# official_type = fields.Selection([('go', '发文'), ('come', '收文')], string="公文类型")
reference_cold = fields.Integer(string="公文字号")
major_event_category = fields.Integer(string="重大事项所属类别")
official_partner_id = fields.Many2one('official.partner', string="来文单位")
remarks = fields.Char(string="备注事项")
main_text = fields.Html(string='正文')
come_file_id = fields.Char(string="来文编号")
incoming_file_id = fields.Char(string="收文编号")
main_flats = fields.Char(string="主送")
copy_flats = fields.Char(string="抄送")
servings_number = fields.Integer(string="份数")
urgency = fields.Selection([('normal', '一般'), ('urgent', '紧急'), ('extra_urgent', '特急')], string="紧急程度")
secret_level = fields.Selection([('normal', '一般'), ('urgent', '秘密'), ('secret', '机密'), ('so_secret', '绝密')],
string="密级")
date = fields.Datetime(string="日期", default=fields.Datetime.now)
department_id = fields.Many2one('hr.department', string="申请人部门")
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')],
string="状态", default='drft')
deadline = fields.Date(string="办理期限")
red_suit = fields.Char(string="套红")
@@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
from odoo import api, fields, models, tools
from odoo.exceptions import ValidationError, UserError
class YuthonOfficialIncomingLabor(models.Model):
_name = 'yuthon.official.incoming.labor'
_description = '工会收文'
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
_rec_name = 'name'
name = fields.Char(string="名称")
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('official_code'))
official_type_id = fields.Many2one('official.type', string="公文种类")
# official_type = fields.Selection([('go', '发文'), ('come', '收文')], string="公文类型")
reference_cold = fields.Integer(string="公文字号")
major_event_category = fields.Integer(string="重大事项所属类别")
official_partner_id = fields.Many2one('official.partner', string="来文单位")
remarks = fields.Char(string="备注事项")
main_text = fields.Html(string='正文')
come_file_id = fields.Char(string="来文编号")
incoming_file_id = fields.Char(string="收文编号")
main_flats = fields.Char(string="主送")
copy_flats = fields.Char(string="抄送")
servings_number = fields.Integer(string="份数")
urgency = fields.Selection([('normal', '一般'), ('urgent', '紧急'), ('extra_urgent', '特急')], string="紧急程度")
secret_level = fields.Selection([('normal', '一般'), ('urgent', '秘密'), ('secret', '机密'), ('so_secret', '绝密')],
string="密级")
date = fields.Datetime(string="日期", default=fields.Datetime.now)
department_id = fields.Many2one('hr.department', string="申请人部门")
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')],
string="状态", default='drft')
deadline = fields.Date(string="办理期限")
red_suit = fields.Char(string="套红")
@@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
from odoo import api, fields, models, tools
from odoo.exceptions import ValidationError, UserError
class YuthonOfficialIncomingNormal(models.Model):
_name = 'yuthon.official.incoming.normal'
_description = '行政收文'
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
_rec_name = 'name'
name = fields.Char(string="名称")
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('official_code'))
official_type_id = fields.Many2one('official.type', string="公文种类")
# official_type = fields.Selection([('go', '发文'), ('come', '收文')], string="公文类型")
reference_cold = fields.Integer(string="公文字号")
major_event_category = fields.Integer(string="重大事项所属类别")
official_partner_id = fields.Many2one('official.partner', string="来文单位")
remarks = fields.Char(string="备注事项")
main_text = fields.Html(string='正文')
come_file_id = fields.Char(string="来文编号")
incoming_file_id = fields.Char(string="收文编号")
main_flats = fields.Char(string="主送")
copy_flats = fields.Char(string="抄送")
servings_number = fields.Integer(string="份数")
urgency = fields.Selection([('normal', '一般'), ('urgent', '紧急'), ('extra_urgent', '特急')], string="紧急程度")
secret_level = fields.Selection([('normal', '一般'), ('urgent', '秘密'), ('secret', '机密'), ('so_secret', '绝密')],
string="密级")
date = fields.Datetime(string="日期", default=fields.Datetime.now)
department_id = fields.Many2one('hr.department', string="申请人部门")
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')],
string="状态", default='drft')
deadline = fields.Date(string="办理期限")
red_suit = fields.Char(string="套红")
@@ -12,7 +12,7 @@ class YuthonOfficialLabor(models.Model):
name = fields.Char(string="名称")
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('official_code'))
official_type_id = fields.Many2one('official.type', string="公文种类")
official_type = fields.Selection([('go', '发文'), ('come', '收文')], string="公文类型")
# official_type = fields.Selection([('go', '发文'), ('come', '收文')], string="公文类型")
reference_cold = fields.Integer(string="公文字号")
major_event_category = fields.Integer(string="重大事项所属类别")
# official_partner_id = fields.Many2one('official.partner', string="来文单位")
@@ -12,7 +12,7 @@ class YuthonOfficialNormal(models.Model):
name = fields.Char(string="名称")
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('official_code'))
official_type_id = fields.Many2one('official.type', string="公文种类")
official_type = fields.Selection([('go', '发文'), ('come', '收文')], string="公文类型")
# official_type = fields.Selection([('go', '发文'), ('come', '收文')], string="公文类型")
reference_cold = fields.Integer(string="公文字号")
major_event_category = fields.Integer(string="重大事项所属类别")
remarks = fields.Char(string="备注事项")
@@ -12,7 +12,7 @@ class YuthonOfficialParty(models.Model):
name = fields.Char(string="名称")
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('official_code'))
official_type_id = fields.Many2one('official.type', string="公文种类")
official_type = fields.Selection([('go', '发文'), ('come', '收文')], string="公文类型")
# official_type = fields.Selection([('go', '发文'), ('come', '收文')], string="公文类型")
reference_cold = fields.Integer(string="公文字号")
major_event_category = fields.Integer(string="重大事项所属类别")
# official_partner_id = fields.Many2one('official.partner', string="来文单位")
+5 -2
View File
@@ -3,5 +3,8 @@ access_yuthon_official,yuthon_official,model_yuthon_official,base.group_user,1,1
access_official_partner,official_partner,model_official_partner,base.group_user,1,1,1,1
access_official_type,official_type,model_official_type,base.group_user,1,1,1,1
access_yuthon_official_labor,yuthon_official_labor,model_yuthon_official_labor,base.group_user,1,1,1,1
access_yuthon_offficial_party,yuthon_offficial_party,model_yuthon_official_party,base.group_user,1,1,1,1
access_yuthon_official_normal,yuthon_official_normal,model_yuthon_official_normal,base.group_user,1,1,1,1
access_yuthon_official_party,yuthon_official_party,model_yuthon_official_party,base.group_user,1,1,1,1
access_yuthon_official_normal,yuthon_official_normal,model_yuthon_official_normal,base.group_user,1,1,1,1
access_yuthon_official_incoming_party,yuthon_official_incoming_party,model_yuthon_official_incoming_party,base.group_user,1,1,1,1
access_yuthon_official_incoming_labor,yuthon_official_incoming_labor,model_yuthon_official_incoming_labor,base.group_user,1,1,1,1
access_yuthon_official_incoming_normal,yuthon_official_incoming_normal,model_yuthon_official_incoming_normal,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
3 access_official_partner official_partner model_official_partner base.group_user 1 1 1 1
4 access_official_type official_type model_official_type base.group_user 1 1 1 1
5 access_yuthon_official_labor yuthon_official_labor model_yuthon_official_labor base.group_user 1 1 1 1
6 access_yuthon_offficial_party access_yuthon_official_party yuthon_offficial_party yuthon_official_party model_yuthon_official_party base.group_user 1 1 1 1
7 access_yuthon_official_normal yuthon_official_normal model_yuthon_official_normal base.group_user 1 1 1 1
8 access_yuthon_official_incoming_party yuthon_official_incoming_party model_yuthon_official_incoming_party base.group_user 1 1 1 1
9 access_yuthon_official_incoming_labor yuthon_official_incoming_labor model_yuthon_official_incoming_labor base.group_user 1 1 1 1
10 access_yuthon_official_incoming_normal yuthon_official_incoming_normal model_yuthon_official_incoming_normal base.group_user 1 1 1 1
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="yuthon_official_incoming_labor_tree" model="ir.ui.view">
<field name="name">yuthon.official.incoming.labor.tree</field>
<field name="model">yuthon.official.incoming.labor</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="department_id"/>
<field name="date"/>
<field name="statu"/>
</tree>
</field>
</record>
<record id="yuthon_official_incoming_labor_form" model="ir.ui.view">
<field name="name">yuthon.official.incoming.labor.form</field>
<field name="model">yuthon.official.incoming.labor</field>
<field name="arch" type="xml">
<form>
<header>
<field name="statu" widget="statusbar"/>
</header>
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1"/>
</h1>
</div>
<group>
<group>
<field name="code"/>
<field name="reference_cold"/>
<field name="major_event_category"/>
<field name="urgency"/>
<field name="secret_level"/>
<field name="date"/>
</group>
<group>
<field name="department_id"/>
<field name="main_flats"/>
<field name="copy_flats"/>
<field name="servings_number"/>
<field name="deadline"/>
</group>
</group>
<group>
<field name="main_text"/>
<field name="remarks"/>
</group>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
<field name="red_suit"/>
</div>
</form>
</field>
</record>
<record id="yuthon_official_incoming_labor_search" model="ir.ui.view">
<field name="name">yuthon.official.incoming.labor.search</field>
<field name="model">yuthon.official.incoming.labor</field>
<field name="arch" type="xml">
<search string="考勤审批状态">
<filter string="草稿" name="Drft " domain="[('statu', '=', 'drft')]"/>
<filter string="执行中" name="Going " domain="[('statu', '=', 'going')]"/>
<filter string="已取消" name="Cancel " domain="[('statu', '=', 'cancel')]"/>
<filter string="已完成" name="Done " domain="[('statu', '=', 'done')]"/>
</search>
</field>
</record>
<record id="yuthon_official_incoming_labor_action" model="ir.actions.act_window">
<field name="name">工会收文</field>
<field name="res_model">yuthon.official.incoming.labor</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem
id="yuthon_official_incoming_labor"
parent="yuthon_official_labor_management_menu"
name="工会收文"
action="yuthon_official_incoming_labor_action"
sequence="5"/>
</odoo>
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="yuthon_official_incoming_normal_tree" model="ir.ui.view">
<field name="name">yuthon.official.incoming.normal.tree</field>
<field name="model">yuthon.official.incoming.normal</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="department_id"/>
<field name="date"/>
<field name="statu"/>
</tree>
</field>
</record>
<record id="yuthon_official_incoming_normal_form" model="ir.ui.view">
<field name="name">yuthon.official.incoming.normal.form</field>
<field name="model">yuthon.official.incoming.normal</field>
<field name="arch" type="xml">
<form>
<header>
<field name="statu" widget="statusbar"/>
</header>
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1"/>
</h1>
</div>
<group>
<group>
<field name="code"/>
<field name="reference_cold"/>
<field name="major_event_category"/>
<field name="urgency"/>
<field name="secret_level"/>
<field name="date"/>
</group>
<group>
<field name="department_id"/>
<field name="main_flats"/>
<field name="copy_flats"/>
<field name="servings_number"/>
<field name="deadline"/>
</group>
</group>
<group>
<field name="main_text"/>
<field name="remarks"/>
</group>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
<field name="red_suit"/>
</div>
</form>
</field>
</record>
<record id="yuthon_official_incoming_normal_search" model="ir.ui.view">
<field name="name">yuthon.official.incoming.normal.search</field>
<field name="model">yuthon.official.incoming.normal</field>
<field name="arch" type="xml">
<search string="考勤审批状态">
<filter string="草稿" name="Drft " domain="[('statu', '=', 'drft')]"/>
<filter string="执行中" name="Going " domain="[('statu', '=', 'going')]"/>
<filter string="已取消" name="Cancel " domain="[('statu', '=', 'cancel')]"/>
<filter string="已完成" name="Done " domain="[('statu', '=', 'done')]"/>
</search>
</field>
</record>
<record id="yuthon_official_incoming_normal_action" model="ir.actions.act_window">
<field name="name">行政收文</field>
<field name="res_model">yuthon.official.incoming.normal</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem
id="yuthon_official_incoming_normal"
parent="yuthon_official_normal_management_menu"
name="行政收文"
action="yuthon_official_incoming_normal_action"
sequence="10"/>
</odoo>
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="yuthon_official_incoming_party_tree" model="ir.ui.view">
<field name="name">yuthon.official.incoming.party.tree</field>
<field name="model">yuthon.official.incoming.party</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="department_id"/>
<field name="date"/>
<field name="statu"/>
</tree>
</field>
</record>
<record id="yuthon_official_incoming_party_form" model="ir.ui.view">
<field name="name">yuthon.official.incoming.party.form</field>
<field name="model">yuthon.official.incoming.party</field>
<field name="arch" type="xml">
<form>
<header>
<field name="statu" widget="statusbar"/>
</header>
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1"/>
</h1>
</div>
<group>
<group>
<field name="code"/>
<field name="reference_cold"/>
<field name="major_event_category"/>
<field name="urgency"/>
<field name="secret_level"/>
<field name="date"/>
</group>
<group>
<field name="department_id"/>
<field name="main_flats"/>
<field name="copy_flats"/>
<field name="servings_number"/>
<field name="deadline"/>
</group>
</group>
<group>
<field name="main_text"/>
<field name="remarks"/>
</group>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
<field name="red_suit"/>
</div>
</form>
</field>
</record>
<record id="yuthon_official_incoming_party_search" model="ir.ui.view">
<field name="name">yuthon.official.incoming.party.search</field>
<field name="model">yuthon.official.incoming.party</field>
<field name="arch" type="xml">
<search string="考勤审批状态">
<filter string="草稿" name="Drft " domain="[('statu', '=', 'drft')]"/>
<filter string="执行中" name="Going " domain="[('statu', '=', 'going')]"/>
<filter string="已取消" name="Cancel " domain="[('statu', '=', 'cancel')]"/>
<filter string="已完成" name="Done " domain="[('statu', '=', 'done')]"/>
</search>
</field>
</record>
<record id="yuthon_official_incoming_party_action" model="ir.actions.act_window">
<field name="name">党总支收文</field>
<field name="res_model">yuthon.official.incoming.party</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem
id="yuthon_official_incoming_party"
parent="yuthon_official_party_management_menu"
name="党总支收文"
action="yuthon_official_incoming_party_action"
sequence="10"/>
</odoo>
@@ -59,9 +59,9 @@
</field>
</record>
<record id="send_receive_messages_management_search" model="ir.ui.view">
<field name="name">send.receive.messages.management.search</field>
<field name="model">yuthon.official</field>
<record id="yuthon_official_labor_search" model="ir.ui.view">
<field name="name">yuthon.official.labor.search</field>
<field name="model">yuthon.official.labor</field>
<field name="arch" type="xml">
<search string="考勤审批状态">
<filter string="草稿" name="Drft " domain="[('statu', '=', 'drft')]"/>
@@ -80,8 +80,8 @@
<menuitem
id="yuthon_official_labor_menu"
parent="official_management_menu"
id="yuthon_official_labor"
parent="yuthon_official_labor_management_menu"
name="工会发文"
action="yuthon_official_labor_action"
sequence="10"/>
@@ -61,9 +61,9 @@
</field>
</record>
<record id="send_receive_messages_management_search" model="ir.ui.view">
<field name="name">send.receive.messages.management.search</field>
<field name="model">yuthon.official</field>
<record id="yuthon_official_normal_search" model="ir.ui.view">
<field name="name">yuthon.official.normal.search</field>
<field name="model">yuthon.official.normal</field>
<field name="arch" type="xml">
<search string="考勤审批状态">
<filter string="草稿" name="Drft " domain="[('statu', '=', 'drft')]"/>
@@ -83,7 +83,7 @@
<menuitem
id="yuthon_official_normal_menu"
parent="official_management_menu"
parent="yuthon_official_normal_management_menu"
name="行政发文"
action="yuthon_official_normal_action"
sequence="30"/>
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="yuthon_offficial_party_tree" model="ir.ui.view">
<record id="yuthon_official_party_tree" model="ir.ui.view">
<field name="name">yuthon.official.party.tree</field>
<field name="model">yuthon.official.party</field>
<field name="arch" type="xml">
@@ -13,7 +13,7 @@
</field>
</record>
<record id="yuthon_offficial_party_form" model="ir.ui.view">
<record id="yuthon_official_party_form" model="ir.ui.view">
<field name="name">yuthon.official.party.form</field>
<field name="model">yuthon.official.party</field>
<field name="arch" type="xml">
@@ -61,9 +61,9 @@
</field>
</record>
<record id="send_receive_messages_management_search" model="ir.ui.view">
<field name="name">send.receive.messages.management.search</field>
<field name="model">yuthon.official</field>
<record id="yuthon_official_party_search" model="ir.ui.view">
<field name="name">yuthon.official.party.search</field>
<field name="model">yuthon.official.party</field>
<field name="arch" type="xml">
<search string="考勤审批状态">
<filter string="草稿" name="Drft " domain="[('statu', '=', 'drft')]"/>
@@ -74,7 +74,7 @@
</field>
</record>
<record id="yuthon_offficial_party_action" model="ir.actions.act_window">
<record id="yuthon_official_party_action" model="ir.actions.act_window">
<field name="name">党总支发文</field>
<field name="res_model">yuthon.official.party</field>
<field name="view_mode">tree,form</field>
@@ -82,10 +82,10 @@
<menuitem
id="yuthon_offficial_party_menu"
parent="official_management_menu"
id="yuthon_official_party"
parent="yuthon_official_party_management_menu"
name="党总支发文"
action="yuthon_offficial_party_action"
action="yuthon_official_party_action"
sequence="20"/>
</odoo>
@@ -97,4 +97,22 @@
name="公文管理"
action="send_receive_messages_management_action"
sequence="8"/>
<menuitem
id="yuthon_official_normal_management_menu"
parent="official_management_menu_root"
name="行政公文管理"
action="send_receive_messages_management_action"
sequence="15"/>
<menuitem
id="yuthon_official_party_management_menu"
parent="official_management_menu_root"
name="党总支公文管理"
action="send_receive_messages_management_action"
sequence="20"/>
<menuitem
id="yuthon_official_labor_management_menu"
parent="official_management_menu_root"
name="工会公文管理"
action="send_receive_messages_management_action"
sequence="30"/>
</odoo>