pengyuthon
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
"views/soong_workflow_record.xml",
|
||||
"views/soong_approval_group.xml",
|
||||
'wizard/approval_notice_wizard_views.xml',
|
||||
'wizard/soong_transmitted_wizard_views.xml',
|
||||
"wizard/soong_workflow_comment_wizard_view.xml",
|
||||
"templates/soong_workflow_templates.xml",
|
||||
],
|
||||
|
||||
@@ -45,27 +45,16 @@ class SoongWorkflow(models.Model):
|
||||
domain=MODEL_DOMAIN,
|
||||
help="Enter business model you would like to modify its workflow.",
|
||||
)
|
||||
node_ids = fields.One2many(
|
||||
comodel_name="soong.workflow.node", inverse_name="workflow_id", string="Nodes"
|
||||
)
|
||||
link_ids = fields.One2many(
|
||||
comodel_name="soong.workflow.link", inverse_name="workflow_id", string="Links"
|
||||
)
|
||||
remove_default_btn_until_end = fields.Boolean(
|
||||
string="是否覆盖表头按钮状态", default=False
|
||||
)
|
||||
is_enable_return_button = fields.Boolean(
|
||||
string="是否启用收回", default=True
|
||||
)
|
||||
|
||||
current_stage_highlight_color = fields.Char(
|
||||
default="rgb(0, 255, 255)",
|
||||
help="The color to highlight the current stage on flow",
|
||||
)
|
||||
node_ids = fields.One2many(comodel_name="soong.workflow.node", inverse_name="workflow_id", string="Nodes")
|
||||
link_ids = fields.One2many(comodel_name="soong.workflow.link", inverse_name="workflow_id", string="Links")
|
||||
remove_default_btn_until_end = fields.Boolean(string="是否覆盖表头按钮状态", default=False)
|
||||
|
||||
current_stage_highlight_color = fields.Char(default="rgb(0, 255, 255)",help="The color to highlight the current stage on flow",)
|
||||
start_time = fields.Datetime(string="生效日期", copy=False, default=fields.Datetime.now)
|
||||
end_time = fields.Datetime(string="失效日期", copy=False)
|
||||
is_enable = fields.Boolean(string="是否启用", default="False", compute="compute_is_enable", store=True)
|
||||
is_enable_return_button = fields.Boolean(string="是否启用收回", default=True)
|
||||
is_enable_transmitted_button = fields.Boolean(string="是否启用转交", default=True)
|
||||
approvals_group_id = fields.Many2one('soong.approval.group', string="审批分组")
|
||||
|
||||
def copy(self, default=None):
|
||||
|
||||
@@ -242,14 +242,17 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
res = self._update_fields_view(view_type, res)
|
||||
# res = self._add_state_tree_view(view_type, res)
|
||||
res = self._add_soong_workflow_log(view_type, res, params)
|
||||
# 收回
|
||||
# todo 后许可拓展退回层级
|
||||
res = self._add_return_button(view_type, res)
|
||||
# 转交 如果一条链路直接跳转,如果多条链路选择跳转
|
||||
# res = self._add_transmitted_button(view_type, res)
|
||||
return res
|
||||
|
||||
# 收回逻辑
|
||||
def _add_return_button(self, view_type, res):
|
||||
model = self._name
|
||||
wkf_obj = self.env["soong.workflow"]
|
||||
wkf_rec = wkf_obj.search([("model_id", "=", model)])
|
||||
wkf_rec = wkf_obj.search([("model_id", "=", model), ('is_enable', '=', True)])
|
||||
|
||||
if not wkf_rec.is_enable_return_button:
|
||||
return res
|
||||
@@ -260,9 +263,9 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
header_el = header_el[0] if header_el else False
|
||||
if header_el:
|
||||
button = etree.Element("button", {
|
||||
"name": "action_return", # 这里定义了按钮执行的服务器端动作
|
||||
"type": "object", # 触发自定义对象动作
|
||||
"string": "收回", # 按钮显示的名称
|
||||
"name": "action_return",
|
||||
"type": "object",
|
||||
"string": "收回",
|
||||
"class": "btn-primary", # 按钮的样式
|
||||
# "icon": "fa-undo", # 按钮图标 (如果需要)
|
||||
})
|
||||
@@ -328,6 +331,35 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
# btn_invisible = btn_invisible + " or " + button.attrib["invisible"]
|
||||
# button.set("invisible", btn_invisible)
|
||||
|
||||
# 转交
|
||||
def _add_transmitted_button(self, view_type, res):
|
||||
model = self._name
|
||||
wkf_obj = self.env["soong.workflow"]
|
||||
wkf_rec = wkf_obj.search([("model_id", "=", model), ('is_enable', '=', True)])
|
||||
|
||||
if not wkf_rec.is_enable_transmitted_button:
|
||||
return res
|
||||
|
||||
arch = etree.fromstring(res["arch"])
|
||||
if view_type == "form":
|
||||
header_el = arch.xpath("//form/header")
|
||||
header_el = header_el[0] if header_el else False
|
||||
if header_el:
|
||||
button = etree.Element("button", {
|
||||
"name": "action_transmitted",
|
||||
"type": "object",
|
||||
"string": "转交",
|
||||
"class": "btn-primary", # 按钮的样式
|
||||
})
|
||||
header_el.append(button)
|
||||
res["arch"] = etree.tostring(arch, encoding="unicode").replace("\t", "")
|
||||
return res
|
||||
|
||||
def action_transmitted(self):
|
||||
# 判断链路是一个就跳转
|
||||
# 是多个就弹窗选择
|
||||
pass
|
||||
|
||||
def _remove_default_header(self, view_type, res):
|
||||
"""
|
||||
Removes default header element from form view.
|
||||
@@ -337,7 +369,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
"""
|
||||
model = self._name
|
||||
wkf_obj = self.env["soong.workflow"]
|
||||
wkf_rec = wkf_obj.search([("model_id", "=", model)])
|
||||
wkf_rec = wkf_obj.search([("model_id", "=", model), ('is_enable', '=', True)])
|
||||
|
||||
if not wkf_rec.remove_default_btn_until_end:
|
||||
return res
|
||||
@@ -441,7 +473,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
header_el = etree.Element("header")
|
||||
form_el.insert(0, header_el)
|
||||
# Construct Buttons & Fields Tags
|
||||
wkf_rec = wkf_obj.search([("model_id", "=", model)])
|
||||
wkf_rec = wkf_obj.search([("model_id", "=", model), ('is_enable', '=', True)])
|
||||
for node in wkf_rec.node_ids:
|
||||
for button in node.button_ids:
|
||||
# Check Condition Code
|
||||
@@ -528,7 +560,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
model = self._name
|
||||
visible_seq = []
|
||||
arch = etree.fromstring(res["arch"])
|
||||
wkf_rec = wkf_obj.search([("model_id", "=", model)])
|
||||
wkf_rec = wkf_obj.search([("model_id", "=", model), ('is_enable', '=', True)])
|
||||
|
||||
# Find header & ADD state
|
||||
if view_type == "form":
|
||||
@@ -618,7 +650,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
# Variables
|
||||
model = self._name
|
||||
uid = self._uid
|
||||
wkf_rec = wkf_obj.search([("model_id", "=", model)])
|
||||
wkf_rec = wkf_obj.search([("model_id", "=", model), ('is_enable', '=', True)])
|
||||
arch = etree.fromstring(res["arch"])
|
||||
|
||||
# Helper Functions
|
||||
|
||||
@@ -129,9 +129,7 @@ class SoongWorkflowNode(models.Model):
|
||||
compute="_compute_custom_colors", readonly=True, string="Label Color"
|
||||
)
|
||||
|
||||
@api.depends(
|
||||
"bg_color", "label_color", "use_custom_colors", "flow_start", "flow_end"
|
||||
)
|
||||
@api.depends("bg_color", "label_color", "use_custom_colors", "flow_start", "flow_end")
|
||||
def _compute_custom_colors(self):
|
||||
for rec in self:
|
||||
if rec.use_custom_colors:
|
||||
@@ -290,7 +288,7 @@ class SoongWorkflowNodeButton(models.Model):
|
||||
rec.workflow_id = (
|
||||
self.env["soong.workflow"]
|
||||
.sudo()
|
||||
.search([("model_id", "=", model_id)])
|
||||
.search([("model_id", "=", model_id), ('is_enable', '=', 'yes')])
|
||||
)
|
||||
|
||||
@api.constrains("btn_key")
|
||||
|
||||
@@ -24,3 +24,5 @@ access_soong_approval_notice_wizard,soong_approval_notice_wizard,model_soong_app
|
||||
|
||||
access_soong_workflow_log_user,soong_workflow_log_user,model_soong_workflow_log,soong_workflow.group_soong_workflow_user,1,1,1,1
|
||||
access_soong_workflow_comment_wizard_user,soong_workflow_comment_wizard_user,model_soong_workflow_comment_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1
|
||||
|
||||
access_soong_approval_transmitted_wizard,soong_approval_transmitted_wizard,model_soong_approval_transmitted_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1
|
||||
|
@@ -39,7 +39,7 @@
|
||||
action="soong_note_action"/>
|
||||
|
||||
<menuitem id="menu_soong_approval_note"
|
||||
sequence="3"
|
||||
sequence="1"
|
||||
name="常用审批意见"
|
||||
parent="menu_soong_other_setting"
|
||||
action="soong_note_action"/>
|
||||
|
||||
@@ -90,10 +90,10 @@
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_soong_workflow"
|
||||
sequence="2"
|
||||
name="工作流配置"
|
||||
parent="menu_soong_other_setting"
|
||||
action="action_soong_workflow"/>
|
||||
<!-- <menuitem id="menu_soong_workflow"-->
|
||||
<!-- sequence="2"-->
|
||||
<!-- name="工作流配置"-->
|
||||
<!-- parent="menu_soong_other_setting"-->
|
||||
<!-- action="action_soong_workflow"/>-->
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
|
||||
|
||||
from . import approval_notice_wizard
|
||||
from . import soong_transmitted_wizard
|
||||
from . import soong_workflow_comment_wizard
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools, _
|
||||
from datetime import datetime, date, time, timedelta
|
||||
from odoo.tools.safe_eval import safe_eval
|
||||
from odoo.exceptions import ValidationError, UserError
|
||||
import logging
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SoongApprovalTransmittedWizard(models.TransientModel):
|
||||
_name = 'soong.approval.transmitted.wizard'
|
||||
_description = """ 转交弹窗 """
|
||||
|
||||
name = fields.Char(string='名称')
|
||||
|
||||
def confirm(self):
|
||||
pass
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="soong_approval_transmitted_wizard_form" model="ir.ui.view">
|
||||
<field name="name">一键转交</field>
|
||||
<field name="model">soong.approval.transmitted.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
<!-- 对接消息通知 -->
|
||||
<footer>
|
||||
<button name="confirm" string="确认" type="object" class="oe_highlight"/>
|
||||
<button string="返回" class="btn-secondary" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -24,5 +24,6 @@
|
||||
sequence="15" action="attendance_iot_manager_action"/>
|
||||
<menuitem id="menu_hr_attendance_work" name="考勤时间表配置" parent="hr_attendance.menu_hr_attendance_root"
|
||||
sequence="18" action="resource.action_resource_calendar_form"/>
|
||||
<menuitem id="tianhe_holiday_setting_menu" parent="hr_attendance.menu_hr_attendance_root" sequence="19" name="假期类型配置" action="holiday_setting_action"/>
|
||||
<menuitem id="tianhe_holiday_setting_menu" parent="hr_attendance.menu_hr_attendance_root"
|
||||
sequence="19" name="假期类型配置" action="holiday_setting_action"/>
|
||||
</odoo>
|
||||
@@ -25,7 +25,7 @@
|
||||
</record>
|
||||
|
||||
<record id="attendance_iot_manager_action" model="ir.actions.act_window">
|
||||
<field name="name">假期类型配置</field>
|
||||
<field name="name">考勤机设备管理</field>
|
||||
<field name="res_model">attendance.iot.manager</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="search_view_id" ref="attendance_iot_manager_filter"/>
|
||||
|
||||
@@ -13,9 +13,8 @@
|
||||
'website': 'https://www.pengyuthon.com',
|
||||
'depends': ['base', 'hr'],
|
||||
'data': [
|
||||
# 'data/hr_department_data.xml',
|
||||
# 'data/user_role_data.xml',
|
||||
'data/yuthon.job.lv.csv',
|
||||
'data/employee_code_data.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'views/yuthon_hr_employee_views.xml',
|
||||
'views/yuthon_hr_department_views.xml',
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="employee_code_sequence" model="ir.sequence">
|
||||
<field name="name">员工编号</field>
|
||||
<field name="code">employee_code</field>
|
||||
<field name="prefix">US%(y)s%(month)s%(day)s</field>
|
||||
<field name="padding">3</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -1,138 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="hr_department_thtz" model="hr.department">
|
||||
<field name="name">天河投资</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_xxxh" model="hr.department">
|
||||
<field name="name">新兴协会</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦3楼东侧</field>
|
||||
<field name="is_institution">True</field>
|
||||
<field name="is_global_department">False</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_kczx" model="hr.department">
|
||||
<field name="name">科创中心</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦4楼东侧</field>
|
||||
<field name="is_institution">True</field>
|
||||
<field name="is_global_department">False</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_gly" model="hr.department">
|
||||
<field name="name">管理员</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦5楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_wp" model="hr.department">
|
||||
<field name="name">外派</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦6楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_lcgs" model="hr.department">
|
||||
<field name="name">粮储公司</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦7楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_syzgs" model="hr.department">
|
||||
<field name="name">商业总公司</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦8楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_ldbz" model="hr.department">
|
||||
<field name="name">领导班子</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦9楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
<field name="parent_id" ref="hr_department_thtz"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_cwb" model="hr.department">
|
||||
<field name="name">财务部</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦10楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
<field name="parent_id" ref="hr_department_thtz"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_bgs" model="hr.department">
|
||||
<field name="name">办公室</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦11楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
<field name="parent_id" ref="hr_department_thtz"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_qyglb" model="hr.department">
|
||||
<field name="name">企业管理部</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦12楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
<field name="parent_id" ref="hr_department_thtz"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_zweb" model="hr.department">
|
||||
<field name="name">租务二部(原物业经营部)</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦13楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
<field name="parent_id" ref="hr_department_thtz"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_zbyyb" model="hr.department">
|
||||
<field name="name">资本运营部</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦14楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
<field name="parent_id" ref="hr_department_thtz"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_tzfzb" model="hr.department">
|
||||
<field name="name">投资发展部</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦15楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
<field name="parent_id" ref="hr_department_thtz"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_tzfzb" model="hr.department">
|
||||
<field name="name">党群人力资源部</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦16楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
<field name="parent_id" ref="hr_department_thtz"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_tzfzb" model="hr.department">
|
||||
<field name="name">风控审计部</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦17楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
<field name="parent_id" ref="hr_department_thtz"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_tzfzb" model="hr.department">
|
||||
<field name="name">人事部</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦18楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
<field name="parent_id" ref="hr_department_bgs"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_department_tzfzb" model="hr.department">
|
||||
<field name="name">厨位人员</field>
|
||||
<field name="department_location">广州市天河区龙口西路90号天成大厦19楼东侧</field>
|
||||
<field name="is_institution">False</field>
|
||||
<field name="is_global_department">False</field>
|
||||
<field name="parent_id" ref="hr_department_bgs"/>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -1,396 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="user_role_ptyg" model="yuthon.user.role">
|
||||
<field name="name">普通员工</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_cwfmsz" model="yuthon.user.role">
|
||||
<field name="name">常务副秘书长</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">association</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_zjl" model="yuthon.user.role">
|
||||
<field name="name">总经理</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_lsz" model="yuthon.user.role">
|
||||
<field name="name">理事长</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_cwfsj" model="yuthon.user.role">
|
||||
<field name="name">常务副会长</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_fzjl" model="yuthon.user.role">
|
||||
<field name="name">副总经理</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_jshzx" model="yuthon.user.role">
|
||||
<field name="name">监事会主席</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_mscbgszr" model="yuthon.user.role">
|
||||
<field name="name">秘书处办公室主任</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_fgld" model="yuthon.user.role">
|
||||
<field name="name">分管领导</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_bmfjl" model="yuthon.user.role">
|
||||
<field name="name">部门副经理</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_mscbgsfzr" model="yuthon.user.role">
|
||||
<field name="name">秘书处办公室副主任</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_bmjl" model="yuthon.user.role">
|
||||
<field name="name">部门经理</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_gqybzfw" model="yuthon.user.role">
|
||||
<field name="name">各企业班子(发文)</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_syqyg" model="yuthon.user.role">
|
||||
<field name="name">试用期员工</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_wybfzjl" model="yuthon.user.role">
|
||||
<field name="name">物业部副总经理</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">rent2</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_lshcy" model="yuthon.user.role">
|
||||
<field name="name">理事会成员</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_aqbcy" model="yuthon.user.role">
|
||||
<field name="name">安全办成员</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_sx" model="yuthon.user.role">
|
||||
<field name="name">实习</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_fyz" model="yuthon.user.role">
|
||||
<field name="name">副院长</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_yz" model="yuthon.user.role">
|
||||
<field name="name">院长</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_dy" model="yuthon.user.role">
|
||||
<field name="name">党员</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_kczx" model="yuthon.user.role">
|
||||
<field name="name">科创中心</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_xkqry" model="yuthon.user.role">
|
||||
<field name="name">需考勤人员</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_cwwy" model="yuthon.user.role">
|
||||
<field name="name">财务(物业)</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_jtawh" model="yuthon.user.role">
|
||||
<field name="name">集团安委会</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_ttcjaqb" model="yuthon.user.role">
|
||||
<field name="name">天投城建安全办</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_jtaqb" model="yuthon.user.role">
|
||||
<field name="name">集团安全办</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_ttcjawh" model="yuthon.user.role">
|
||||
<field name="name">天投城建安委会</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_ttcjawh" model="yuthon.user.role">
|
||||
<field name="name">天投城建安委会</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_gsld" model="yuthon.user.role">
|
||||
<field name="name">公司领导</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_ldbz" model="yuthon.user.role">
|
||||
<field name="name">领导班子</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_dsz" model="yuthon.user.role">
|
||||
<field name="name">董事长</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_zxds" model="yuthon.user.role">
|
||||
<field name="name">执行董事</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">storage_company</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_msz" model="yuthon.user.role">
|
||||
<field name="name">秘书长</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">association</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_fzr" model="yuthon.user.role">
|
||||
<field name="name">副主任</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_ghwy" model="yuthon.user.role">
|
||||
<field name="name">工会委员</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_fksjjl" model="yuthon.user.role">
|
||||
<field name="name">风控审计经理</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">risk_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_fkglg" model="yuthon.user.role">
|
||||
<field name="name">风控管理岗</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">risk_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_fkgly" model="yuthon.user.role">
|
||||
<field name="name">系统管理员</field>
|
||||
<field name="user_type">oa_admin</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_aqbfzl" model="yuthon.user.role">
|
||||
<field name="name">安全办副主任</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_trzbjl" model="yuthon.user.role">
|
||||
<field name="name">投融资部经理</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">capital_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_trzbfzjl" model="yuthon.user.role">
|
||||
<field name="name">投融资部副总经理</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">capital_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_trzbfjl" model="yuthon.user.role">
|
||||
<field name="name">投融资部副经理</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">capital_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_trzfzb" model="yuthon.user.role">
|
||||
<field name="name">投融资发展部</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">capital_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_xmkfb" model="yuthon.user.role">
|
||||
<field name="name">项目开发部</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">investment_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_xmbjl" model="yuthon.user.role">
|
||||
<field name="name">项目部经理</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">investment_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_rszy" model="yuthon.user.role">
|
||||
<field name="name">人事专员</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">party_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_djzy" model="yuthon.user.role">
|
||||
<field name="name">党建专员</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">party_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_rsgly" model="yuthon.user.role">
|
||||
<field name="name">人事管理员</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">party_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_rszg" model="yuthon.user.role">
|
||||
<field name="name">人事主管</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">party_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_wyb" model="yuthon.user.role">
|
||||
<field name="name">物业部</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">rent2</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_wybjl" model="yuthon.user.role">
|
||||
<field name="name">物业部经理</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">rent2</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_wybfjl" model="yuthon.user.role">
|
||||
<field name="name">物业部副经理</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">rent2</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_gczg" model="yuthon.user.role">
|
||||
<field name="name">工程主管</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">rent2</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_qyglb" model="yuthon.user.role">
|
||||
<field name="name">企业管理部</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">enterprise_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_qyglbjl" model="yuthon.user.role">
|
||||
<field name="name">企业管理部经理</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">enterprise_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_cwb" model="yuthon.user.role">
|
||||
<field name="name">财务部</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">accounting_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_cwbjl" model="yuthon.user.role">
|
||||
<field name="name">财务部经理</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">accounting_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_cwbfjl" model="yuthon.user.role">
|
||||
<field name="name">财务部副经理</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">accounting_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_hj" model="yuthon.user.role">
|
||||
<field name="name">会计</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">accounting_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_cn" model="yuthon.user.role">
|
||||
<field name="name">出纳</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">accounting_department</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_bgs" model="yuthon.user.role">
|
||||
<field name="name">办公室</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">office</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_zr" model="yuthon.user.role">
|
||||
<field name="name">主任</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">office</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_bgsfzr" model="yuthon.user.role">
|
||||
<field name="name">办公室副主任</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">office</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_gwgly" model="yuthon.user.role">
|
||||
<field name="name">公文管理员</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">office</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_cwry" model="yuthon.user.role">
|
||||
<field name="name">厨卫人员</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">office</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_bgkg" model="yuthon.user.role">
|
||||
<field name="name">办公库管</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">office</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_zqyry" model="yuthon.user.role">
|
||||
<field name="name">子企业人员</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">office</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_xxfby" model="yuthon.user.role">
|
||||
<field name="name">信息发布员</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">office</field>
|
||||
</record>
|
||||
|
||||
<record id="user_role_jtaqy" model="yuthon.user.role">
|
||||
<field name="name">交通安全员</field>
|
||||
<field name="user_type">system_global_user</field>
|
||||
|
||||
</record>
|
||||
|
||||
<record id="user_role_wp" model="yuthon.user.role">
|
||||
<field name="name">外派</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
<field name="department_id">expatriate</field>
|
||||
</record>
|
||||
|
||||
|
||||
</odoo>
|
||||
@@ -4,6 +4,7 @@ from odoo import api, fields, models
|
||||
|
||||
class YuthonHrDepartment(models.Model):
|
||||
_inherit = "hr.department"
|
||||
_order = 'department_code'
|
||||
|
||||
department_phone = fields.Char(string="部门电话")
|
||||
department_fax = fields.Char(string="部门传真")
|
||||
@@ -13,3 +14,4 @@ class YuthonHrDepartment(models.Model):
|
||||
is_global_department = fields.Boolean(string="是否全局部门")
|
||||
create_time = fields.Datetime(string="创建时间", default=fields.Datetime.now)
|
||||
end_time = fields.Datetime(string="结束时间")
|
||||
department_code = fields.Char(string="部门序号")
|
||||
|
||||
@@ -20,13 +20,15 @@ class YuthonHrEmployee(models.Model):
|
||||
对原模型数据的隐藏,字段的开发和添加
|
||||
"""
|
||||
_inherit = "hr.employee"
|
||||
_order = 'number'
|
||||
|
||||
# odoo里是这样做的,一个用户可以多个公司绑定多个员工,每个员工都有自己的部门和岗位
|
||||
|
||||
number = fields.Char(string="编号")
|
||||
number = fields.Char(string="序号", store=True)
|
||||
user_number = fields.Char(string="员工编号", default=lambda self: self.env['ir.sequence'].next_by_code('employee_code'))
|
||||
use_user_type = fields.Selection([('formal', '正式职工'), ('labor', '劳务协议'),
|
||||
('part_time', '兼职协议'), ('employment', '兼职用工')], string="用工形式")
|
||||
user_number = fields.Char(string="员工编号")
|
||||
|
||||
job_lv_id = fields.Many2one('yuthon.job.lv', string="最新职级")
|
||||
# 个人信息
|
||||
user_salary = fields.Float(string="基本工资")
|
||||
@@ -35,7 +37,8 @@ class YuthonHrEmployee(models.Model):
|
||||
confirmation_date = fields.Date(string="转正时间")
|
||||
company_old = fields.Char(string="司龄", compute='_compute_company_old')
|
||||
user_sex = fields.Selection([('girl', '女'), ('boy', '男')], string="性别")
|
||||
user_state = fields.Selection([('in', '在职'), ('leave', '离职'), ('withdraw', '退休')], string="员工状态",compute='_compute_user_state')
|
||||
user_state = fields.Selection([('in', '在职'), ('leave', '离职'), ('withdraw', '退休')],
|
||||
string="员工状态", compute='_compute_user_state')
|
||||
user_number_start_time = fields.Date(string="身份中有效开始时间")
|
||||
user_number_end_time = fields.Date(string="身份证有效到期时间")
|
||||
nation = fields.Selection(nation_list, string="民族")
|
||||
@@ -44,7 +47,8 @@ class YuthonHrEmployee(models.Model):
|
||||
user_type = fields.Char(string="人员类别")
|
||||
retire_date = fields.Date(string="退休日期")
|
||||
retire_years = fields.Integer(string="离退休年限", compute='_compute_retire_years')
|
||||
political_aspects = fields.Selection([('cpc_dang', '中共党员'), ('nld', '民盟'), ('league_member', '共青团员'), ('people', '群众')], string="政治面貌")
|
||||
political_aspects = fields.Selection([('cpc_dang', '中共党员'), ('nld', '民盟'),
|
||||
('league_member', '共青团员'), ('people', '群众')], string="政治面貌")
|
||||
dang_data = fields.Date(string="入团(党)时间")
|
||||
user_origin = fields.Char(string="籍贯")
|
||||
user_location = fields.Char(string="户口所在地")
|
||||
@@ -102,6 +106,11 @@ class YuthonHrEmployee(models.Model):
|
||||
# 技能证书管理
|
||||
skills_certificates_ids = fields.One2many('yuthon.skills.certificates.line', 'employee_id', string="教育经历明细行")
|
||||
|
||||
@api.onchange('number')
|
||||
def onchange_number(self):
|
||||
if self.department_id.department_code:
|
||||
self.number = self.department_id.department_code + self.number
|
||||
|
||||
def action_hr_employee(self):
|
||||
return {
|
||||
"type": "ir.actions.act_window",
|
||||
@@ -165,11 +174,16 @@ class YuthonHrEmployee(models.Model):
|
||||
def _compute_user_state(self):
|
||||
for record in self:
|
||||
today = datetime.now().date()
|
||||
if record.new_start_contract_data >= record.new_end_contract_data:
|
||||
start_time = record.new_start_contract_data
|
||||
end_time = record.new_end_contract_data
|
||||
if start_time and end_time:
|
||||
if start_time >= end_time:
|
||||
raise ValidationError('合同开始日期不能大于合同结束日期')
|
||||
if record.new_start_contract_data <= today <= record.new_end_contract_data:
|
||||
if start_time <= today <= end_time:
|
||||
record.user_state = 'in'
|
||||
else:
|
||||
record.user_state = 'leave'
|
||||
else:
|
||||
record.user_state = ''
|
||||
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='name']" position="after">
|
||||
<field name="department_phone"/>
|
||||
<field name="department_code"/>
|
||||
<field name="department_fax" column_invisible="1"/>
|
||||
<field name="department_location"/>
|
||||
<field name="department_function" column_invisible="1"/>
|
||||
|
||||
@@ -200,9 +200,6 @@
|
||||
<xpath expr="//field[@name='activity_date_deadline']" position="attributes">
|
||||
<attribute name="column_invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='parent_id']" position="attributes">
|
||||
<attribute name="string">上级领导</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='job_id']" position="after">
|
||||
<field name="number" optional="hide"/>
|
||||
<field name="use_user_type" optional="hide"/>
|
||||
@@ -232,6 +229,9 @@
|
||||
<field name="graduate_date" optional="hide"/>
|
||||
<field name="graduate_school" optional="hide"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='name']" position="after">
|
||||
<field name="number"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -242,44 +242,4 @@
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.action_hr_employee()</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="yuthon_hr_employee_in_action" model="ir.actions.act_window">
|
||||
<field name="name">在职</field>
|
||||
<field name="res_model">hr.employee</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="domain">[('user_state','=','in')]</field>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_hr_employee_leave_action" model="ir.actions.act_window">
|
||||
<field name="name">离职</field>
|
||||
<field name="res_model">hr.employee</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="domain">[('user_state','=','leave')]</field>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_hr_employee_withdraw_action" model="ir.actions.act_window">
|
||||
<field name="name">退休</field>
|
||||
<field name="res_model">hr.employee</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="domain">[('user_state','=','withdraw')]</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="yuthon_hr_employee_in_menu"
|
||||
sequence="1"
|
||||
parent="hr.menu_hr_employee_user"
|
||||
name="在职"
|
||||
action="yuthon_hr_employee_in_action"/>
|
||||
|
||||
<menuitem id="yuthon_hr_employee_leave_menu"
|
||||
name="离职"
|
||||
sequence="3"
|
||||
parent="hr.menu_hr_employee_user"
|
||||
action="yuthon_hr_employee_leave_action"/>
|
||||
|
||||
<menuitem id="yuthon_hr_employee_withdraw_menu"
|
||||
sequence="5"
|
||||
name="退休"
|
||||
parent="hr.menu_hr_employee_user"
|
||||
action="yuthon_hr_employee_withdraw_action"/>
|
||||
</odoo>
|
||||
+112
-29
@@ -1,50 +1,133 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="yuthon_party_action" model="ir.actions.act_window">
|
||||
<field name="name">党群</field>
|
||||
<field name="res_model">yuthon.party</field><!-- 指定模型 -->
|
||||
<field name="view_mode">tree,form</field><!-- 指定视图 -->
|
||||
<field name="name">党建</field>
|
||||
<field name="res_model">yuthon.party</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 一级标题 -->
|
||||
<menuitem id="yuthon_party_menu"
|
||||
sequence="1"
|
||||
web_icon="yuthon_party,static/description/icon.png"
|
||||
name="党群"/>
|
||||
<!-- 二级标题 -->
|
||||
<menuitem id="yuthon_party_learn_menu"
|
||||
name="党建"/>
|
||||
<menuitem id="yuthon_party_meeting_menu_three"
|
||||
sequence="1"
|
||||
name="学习教育"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
|
||||
<menuitem id="yuthon_party_meeting_menu"
|
||||
sequence="5"
|
||||
name="三会一课"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
|
||||
<menuitem id="yuthon_party_meeting_menu_birthday"
|
||||
sequence="3"
|
||||
name="主题党日"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_meeting_menu_life"
|
||||
sequence="5"
|
||||
name="组织生活"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_meeting_menu_democracy"
|
||||
sequence="7"
|
||||
name="民主评选议员"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_learn_menu"
|
||||
sequence="9"
|
||||
name="学习教育"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_learn_menu_training"
|
||||
sequence="1"
|
||||
name="培训"
|
||||
parent="yuthon_party_learn_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_learn_menu_examination"
|
||||
sequence="3"
|
||||
name="考试"
|
||||
parent="yuthon_party_learn_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_learn_menu_archives"
|
||||
sequence="11"
|
||||
name="党员档案"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_learn_menu_fee"
|
||||
sequence="13"
|
||||
name="党费管理"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_learn_menu_receivable"
|
||||
sequence="1"
|
||||
name="应收"
|
||||
parent="yuthon_party_learn_menu_fee"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_learn_menu_received"
|
||||
sequence="3"
|
||||
name="已收"
|
||||
parent="yuthon_party_learn_menu_fee"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_learn_menu_collection"
|
||||
sequence="5"
|
||||
name="欠收"
|
||||
parent="yuthon_party_learn_menu_fee"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_learn_menu_bard"
|
||||
sequence="13"
|
||||
name="党费台账"
|
||||
parent="yuthon_party_learn_menu_fee"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_administration_menu"
|
||||
sequence="10"
|
||||
name="党组织强管理"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
|
||||
<menuitem id="yuthon_party_tuition_menu"
|
||||
sequence="15"
|
||||
name="学费管理"
|
||||
name="党组织管理"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
|
||||
<menuitem id="yuthon_party_flower_menu"
|
||||
sequence="20"
|
||||
name="花名册"
|
||||
parent="yuthon_party_menu"
|
||||
<menuitem id="yuthon_party_administration_menu_organization"
|
||||
sequence="1"
|
||||
name="党组织信息"
|
||||
parent="yuthon_party_administration_menu"
|
||||
action="yuthon_party_action"/>
|
||||
|
||||
<menuitem id="yuthon_party_assessment_menu"
|
||||
sequence="25"
|
||||
<menuitem id="yuthon_party_administration_menu_class"
|
||||
sequence="3"
|
||||
name="班子成员"
|
||||
parent="yuthon_party_administration_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_administration_menu_login"
|
||||
sequence="5"
|
||||
name="党员等登记"
|
||||
parent="yuthon_party_administration_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_administration_menu_develop"
|
||||
sequence="7"
|
||||
name="发展党员"
|
||||
parent="yuthon_party_administration_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_administration_menu_cultivate"
|
||||
sequence="9"
|
||||
name="培养考察列表"
|
||||
parent="yuthon_party_administration_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_administration_menu_application"
|
||||
sequence="11"
|
||||
name="入党申请列表"
|
||||
parent="yuthon_party_administration_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_administration_menu_test"
|
||||
sequence="17"
|
||||
name="考核"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_administration_menu_task"
|
||||
sequence="1"
|
||||
name="目标任务"
|
||||
parent="yuthon_party_administration_menu_test"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_administration_menu_seeting"
|
||||
sequence="19"
|
||||
name="配置"
|
||||
parent="yuthon_party_menu"
|
||||
action="yuthon_party_action"/>
|
||||
<menuitem id="yuthon_party_administration_menu_job"
|
||||
sequence="1"
|
||||
name="党内职务"
|
||||
parent="yuthon_party_administration_menu_seeting"
|
||||
action="yuthon_party_action"/>
|
||||
|
||||
</odoo>
|
||||
@@ -47,17 +47,17 @@
|
||||
action="yuthon_index_management_action"/>
|
||||
|
||||
<!-- 计划管理-->
|
||||
<!-- <menuitem-->
|
||||
<!-- id="yuthon_plan_management_menu"-->
|
||||
<!-- parent="yuthon_performance_menu_config_root"-->
|
||||
<!-- name="计划管理"-->
|
||||
<!-- sequence="30"/>-->
|
||||
<!-- <menuitem-->
|
||||
<!-- id="yuthon_plan_management"-->
|
||||
<!-- parent="yuthon_plan_management_menu"-->
|
||||
<!-- name="个人计划"-->
|
||||
<!-- sequence="10"-->
|
||||
<!-- action="yuthon_plan_management_action"/>-->
|
||||
<menuitem
|
||||
id="yuthon_plan_management_menu"
|
||||
parent="yuthon_performance_menu_config_root"
|
||||
name="计划管理"
|
||||
sequence="30"/>
|
||||
<menuitem
|
||||
id="yuthon_plan_management"
|
||||
parent="yuthon_plan_management_menu"
|
||||
name="个人计划"
|
||||
sequence="10"
|
||||
action="yuthon_plan_management_action"/>
|
||||
|
||||
|
||||
<!-- 绩效变更管理-->
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
'views/property_move_views.xml',
|
||||
'views/property_open_rent_views.xml',
|
||||
'views/property_record_views.xml',
|
||||
'views/property_type_views.xml',
|
||||
'views/menuitem.xml',
|
||||
],
|
||||
'demo': [],
|
||||
|
||||
@@ -4,3 +4,4 @@ from . import property_confirm
|
||||
from . import property_move
|
||||
from . import property_open_rent
|
||||
from . import property_record
|
||||
from . import property_type
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
from datetime import datetime
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
|
||||
|
||||
class PropertyType(models.Model):
|
||||
_name = 'property.type'
|
||||
_description = '物业状态'
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char(string='名称')
|
||||
create_time = fields.Datetime(string="创建日期", default=lambda self: fields.Datetime.now())
|
||||
start_time = fields.Datetime(string="生效日期")
|
||||
end_time = fields.Datetime(string="终止日期")
|
||||
is_enable = fields.Boolean(string="是否启用", compute='_compute_is_enable')
|
||||
|
||||
@api.depends('start_time', 'end_time')
|
||||
def _compute_is_enable(self):
|
||||
for rec in self:
|
||||
if rec.start_time >= rec.end_time:
|
||||
raise ValidationError('合同开始日期不能大于合同结束日期')
|
||||
if rec.start_time and rec.end_time:
|
||||
if rec.start_time < datetime.now() < rec.end_time:
|
||||
rec.is_enable = True
|
||||
else:
|
||||
rec.is_enable = False
|
||||
else:
|
||||
rec.is_enable = False
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,9 @@ class YuthonProperty(models.Model):
|
||||
property_asset_use = fields.Selection([('hire', '出租'), ('personal', '自用')], string='资产用途')
|
||||
property_use_type = fields.Selection([('work', '办公'), ('dorm', '宿舍'), ('cater', '餐饮')], string='使用类型')
|
||||
property_use_time = fields.Datetime(string="使用年限")
|
||||
state = fields.Selection([('could', '可租'), ('done', '已租'), ('none', '空置')], string='状态')
|
||||
property_rent_type = fields.Selection([('could', '可租'), ('no', '不可租'),
|
||||
('done', '已租'), ('none', '空置')], string="出租状态")
|
||||
state_id = fields.Many2one('property.type', string='状态')
|
||||
property_source = fields.Selection([('cut', '划入'), ('self', '自建'),
|
||||
('replace', '置换'), ('buy', '购入'),
|
||||
('entrust', '委托'), ('Rent', '租入')], string='来源')
|
||||
|
||||
@@ -5,4 +5,5 @@ access_property_confirm,property_confirm,model_property_confirm,base.group_user,
|
||||
access_property_move,property_move,model_property_move,base.group_user,1,1,1,1
|
||||
access_property_open_rent,property_open_rent,model_property_open_rent,base.group_user,1,1,1,1
|
||||
access_property_record,property_record,model_property_record,base.group_user,1,1,1,1
|
||||
access_property_type,property_type,model_property_type,base.group_user,1,1,1,1
|
||||
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="yuthon_property_action" model="ir.actions.act_window">
|
||||
<record id="property_assess_action" model="ir.actions.act_window">
|
||||
<field name="name">物业管理</field>
|
||||
<field name="res_model">yuthon.property</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
@@ -20,49 +20,26 @@
|
||||
<menuitem id="yuthon_property_menu_data"
|
||||
sequence="7"
|
||||
name="物业信息"
|
||||
parent="yuthon_property_menu"/>
|
||||
|
||||
<menuitem id="yuthon_property_all_menu"
|
||||
sequence="1"
|
||||
name="全部"
|
||||
parent="yuthon_property_menu_data"
|
||||
parent="yuthon_property_menu"
|
||||
action="yuthon_property_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_list_rentable_menu"
|
||||
sequence="1"
|
||||
name="可租"
|
||||
parent="yuthon_property_menu_data"
|
||||
action="yuthon_property_could_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_list_rented_menu"
|
||||
sequence="3"
|
||||
name="已租"
|
||||
parent="yuthon_property_menu_data"
|
||||
action="yuthon_property_done_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_list_empty_menu"
|
||||
sequence="5"
|
||||
name="空置"
|
||||
parent="yuthon_property_menu_data"
|
||||
action="yuthon_property_none_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_estate_menu"
|
||||
sequence="9"
|
||||
name="不动产证"
|
||||
parent="yuthon_property_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_science_menu"
|
||||
sequence="10"
|
||||
name="材料"
|
||||
parent="yuthon_property_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_merge_menu"
|
||||
sequence="15"
|
||||
name="拆分合并"
|
||||
parent="yuthon_property_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem
|
||||
id="property_approval_menu"
|
||||
@@ -110,7 +87,7 @@
|
||||
sequence="1"
|
||||
name="待评估"
|
||||
parent="yuthon_property_evaluated_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<!-- 二级标题 -->
|
||||
<menuitem id="yuthon_property_contract_menu"
|
||||
@@ -122,13 +99,13 @@
|
||||
sequence="1"
|
||||
name="评估合同"
|
||||
parent="yuthon_property_contract_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_contract_lease_menu"
|
||||
sequence="5"
|
||||
name="租凭合同"
|
||||
parent="yuthon_property_contract_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_contract_build_menu"
|
||||
sequence="10"
|
||||
@@ -139,49 +116,49 @@
|
||||
sequence="1"
|
||||
name="设计"
|
||||
parent="yuthon_property_contract_build_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_contract_cost_menu"
|
||||
sequence="5"
|
||||
name="造价"
|
||||
parent="yuthon_property_contract_build_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_contract_supervisor_menu"
|
||||
sequence="10"
|
||||
name="监理"
|
||||
parent="yuthon_property_contract_build_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_contract_construction_menu"
|
||||
sequence="15"
|
||||
name="施工"
|
||||
parent="yuthon_property_contract_build_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_contract_supplement_menu"
|
||||
sequence="20"
|
||||
name="补充"
|
||||
parent="yuthon_property_contract_build_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
<!--三级标题-->
|
||||
<menuitem id="yuthon_property_contract_upkeep_menu"
|
||||
sequence="1"
|
||||
name="维保合同"
|
||||
parent="yuthon_property_contract_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_contract_review_menu"
|
||||
sequence="5"
|
||||
name="年审合同"
|
||||
parent="yuthon_property_contract_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_contract_purchase_menu"
|
||||
sequence="10"
|
||||
name="采购合同"
|
||||
parent="yuthon_property_contract_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
<!-- 二级标题 -->
|
||||
<menuitem id="yuthon_property_inspection_menu"
|
||||
sequence="15"
|
||||
@@ -192,25 +169,25 @@
|
||||
sequence="1"
|
||||
name="计划"
|
||||
parent="yuthon_property_inspection_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_inspection_ledger_menu"
|
||||
sequence="5"
|
||||
name="巡检台账"
|
||||
parent="yuthon_property_inspection_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_inspection_rec_menu"
|
||||
sequence="15"
|
||||
name="整改"
|
||||
parent="yuthon_property_inspection_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_inspection_configure_menu"
|
||||
sequence="20"
|
||||
name="配置"
|
||||
parent="yuthon_property_inspection_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
<!-- 二级标题 -->
|
||||
<menuitem id="yuthon_property_cost_menu"
|
||||
sequence="17"
|
||||
@@ -221,37 +198,37 @@
|
||||
sequence="1"
|
||||
name="租金"
|
||||
parent="yuthon_property_cost_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_cost_deposit_menu"
|
||||
sequence="5"
|
||||
name="押金"
|
||||
parent="yuthon_property_cost_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_cost_hyd_menu"
|
||||
sequence="10"
|
||||
name="水电费"
|
||||
parent="yuthon_property_cost_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_cost_default_menu"
|
||||
sequence="15"
|
||||
name="违约金"
|
||||
parent="yuthon_property_cost_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_cost_main_menu"
|
||||
sequence="20"
|
||||
name="维修费"
|
||||
parent="yuthon_property_cost_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_cost_other_menu"
|
||||
sequence="25"
|
||||
name="其他"
|
||||
parent="yuthon_property_cost_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
<!-- 二级标题 -->
|
||||
<menuitem id="yuthon_property_form_menu"
|
||||
sequence="19"
|
||||
@@ -262,11 +239,22 @@
|
||||
sequence="1"
|
||||
name="经营报表"
|
||||
parent="yuthon_property_form_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_form_ledger_menu"
|
||||
sequence="5"
|
||||
name="台账"
|
||||
parent="yuthon_property_form_menu"
|
||||
action="yuthon_property_action"/>
|
||||
action="property_assess_action"/>
|
||||
|
||||
<menuitem id="yuthon_property_setting_menu"
|
||||
sequence="99"
|
||||
name="配置"
|
||||
parent="yuthon_property_menu_root"/>
|
||||
|
||||
<menuitem id="yuthon_property_type_setting_menu"
|
||||
sequence="1"
|
||||
name="物业状态配置"
|
||||
parent="yuthon_property_setting_menu"
|
||||
action="property_type_action"/>
|
||||
</odoo>
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="view_property_type_tree" model="ir.ui.view">
|
||||
<field name="name">property.type.tree</field>
|
||||
<field name="model">property.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="物业状态" editable="bottom">
|
||||
<field name="name"/>
|
||||
<field name="create_time"/>
|
||||
<field name="start_time" required="1"/>
|
||||
<field name="end_time" required="1"/>
|
||||
<field name="is_enable"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="property_type_action" model="ir.actions.act_window">
|
||||
<field name="name">物业调拨审批</field>
|
||||
<field name="res_model">property.type</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -16,7 +16,8 @@
|
||||
<field name="property_use_type"/>
|
||||
<field name="property_use_time"/>
|
||||
<field name="property_source"/>
|
||||
<field name="state"/>
|
||||
<field name="property_rent_type"/>
|
||||
<field name="state_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -46,7 +47,8 @@
|
||||
<field name="property_asset_type"/>
|
||||
<field name="property_use_type"/>
|
||||
<field name="property_use_time"/>
|
||||
<field name="state"/>
|
||||
<field name="property_rent_type"/>
|
||||
<field name="state_id"/>
|
||||
<field name="property_source"/>
|
||||
</group>
|
||||
</group>
|
||||
@@ -69,12 +71,15 @@
|
||||
<field name="name">yuthon.property.search</field>
|
||||
<field name="model">yuthon.property</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="物业查询">
|
||||
<filter string="可租" name="could" domain="[('state', '=', 'could')]"/>
|
||||
<filter string="已租" name="done" domain="[('state', '=', 'done')]"/>
|
||||
<filter string="空置" name="none" domain="[('state', '=', 'none')]"/>
|
||||
<search>
|
||||
<filter string="可租" name="could" domain="[('property_rent_type', '=', 'could')]"/>
|
||||
<filter string="不可租" name="could" domain="[('property_rent_type', '=', 'no')]"/>
|
||||
<filter string="已租" name="done" domain="[('property_rent_type', '=', 'done')]"/>
|
||||
<filter string="空置" name="none" domain="[('property_rent_type', '=', 'none')]"/>
|
||||
<separator/>
|
||||
<filter string="可租" name="could" domain="[('state_id', '=', 'could')]"/>
|
||||
<group expand="0">
|
||||
<filter name="group_statu" string="物业状态" context="{'group_by': 'state'}"/>
|
||||
<filter name="group_statu" string="物业状态" context="{'group_by': 'state_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -84,7 +89,7 @@
|
||||
<field name="name">yuthon.property.kanban</field>
|
||||
<field name="model">yuthon.property</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban create="false">
|
||||
<kanban>
|
||||
<field name="id"/>
|
||||
<!-- <field name="lst_price"/>-->
|
||||
<!-- <field name="activity_state"/>-->
|
||||
@@ -131,25 +136,4 @@
|
||||
<field name="search_view_id" ref="yuthon_property_search"/>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_property_could_action" model="ir.actions.act_window">
|
||||
<field name="name">可租</field>
|
||||
<field name="res_model">yuthon.property</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('state','=','could')]</field>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_property_done_action" model="ir.actions.act_window">
|
||||
<field name="name">已租</field>
|
||||
<field name="res_model">yuthon.property</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('state','=','done')]</field>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_property_none_action" model="ir.actions.act_window">
|
||||
<field name="name">空置</field>
|
||||
<field name="res_model">yuthon.property</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('state','=','none')]</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -1,27 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
|
||||
|
||||
class ProductTemplate(models.Model):
|
||||
_inherit = 'product.template'
|
||||
_description = '物业基本信息字段添加'
|
||||
|
||||
property_number = fields.Char(string="物业编号")
|
||||
property_name = fields.Char(string="物业简称")
|
||||
property_precinct = fields.Char(string="楼盘片区")
|
||||
property_floor = fields.Char(string="楼层")
|
||||
# 区,街道
|
||||
property_statu = fields.Char(string="物业状态")
|
||||
property_main_user = fields.Char(string="权属人")
|
||||
property_all_m = fields.Float(string="产权面积")
|
||||
# 单位
|
||||
property_rent_m = fields.Float(string="可租面积")
|
||||
# 单位
|
||||
property_certificate = fields.Char(string="产权证号")
|
||||
property_start_date = fields.Datetime(string="生效日期")
|
||||
property_end_date = fields.Datetime(string="失效日期")
|
||||
|
||||
|
||||
|
||||
@@ -16,16 +16,16 @@
|
||||
<field name="domain">[('partner_type', '=', 'employee')]</field>
|
||||
<field name="context">{'default_is_company': True}</field>
|
||||
</record>
|
||||
<record id="action_tenant" model="ir.actions.act_window">
|
||||
<field name="name">承租方</field>
|
||||
<field name="res_model">res.partner</field>
|
||||
<field name="view_mode">kanban,tree,form,activity</field>
|
||||
<field name="search_view_id" ref="base.view_res_partner_filter"/>
|
||||
<field name="domain">[('partner_type', '=', 'tenant')]</field>
|
||||
<field name="context">{'default_is_company': True}</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_res_partner.yuthon_res_partner_views_tree2')})]"/>
|
||||
</record>
|
||||
<!-- <record id="action_tenant" model="ir.actions.act_window">-->
|
||||
<!-- <field name="name">承租方</field>-->
|
||||
<!-- <field name="res_model">res.partner</field>-->
|
||||
<!-- <field name="view_mode">kanban,tree,form,activity</field>-->
|
||||
<!-- <field name="search_view_id" ref="base.view_res_partner_filter"/>-->
|
||||
<!-- <field name="domain">[('partner_type', '=', 'tenant')]</field>-->
|
||||
<!-- <field name="context">{'default_is_company': True}</field>-->
|
||||
<!-- <field name="view_ids" eval="[(5, 0, 0),-->
|
||||
<!-- (0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_res_partner.yuthon_res_partner_views_tree2')})]"/>-->
|
||||
<!-- </record>-->
|
||||
|
||||
<menuitem id="res_partner_menu_company"
|
||||
name="公司"
|
||||
|
||||
@@ -33,9 +33,6 @@
|
||||
'views/right_login_template.xml',
|
||||
'views/right_login_template.xml',
|
||||
'views/inherit_board_views.xml',
|
||||
|
||||
'views/menuitem_sequence.xml',
|
||||
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
@@ -1,113 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="spreadsheet_dashboard.spreadsheet_dashboard_menu_root" model="ir.ui.menu">
|
||||
<field name="name">工作台</field>
|
||||
<field name="sequence">0</field>
|
||||
</record>
|
||||
|
||||
<!-- Menus -->
|
||||
<record id="project.menu_main_pm" model="ir.ui.menu">
|
||||
<field name="name">项目管理</field>
|
||||
<field name="sequence">2</field>
|
||||
</record>
|
||||
|
||||
<record id="approvals.approvals_menu_root" model="ir.ui.menu">
|
||||
<field name="name">流程中心</field>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
|
||||
<record id="hr.menu_hr_root" model="ir.ui.menu">
|
||||
<field name="name">人力资源</field>
|
||||
<field name="sequence">5</field>
|
||||
</record>
|
||||
|
||||
<record id="documents.menu_root" model="ir.ui.menu">
|
||||
<field name="name">文档管理</field>
|
||||
<field name="sequence">6</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_renting.rental_menu_root" model="ir.ui.menu">
|
||||
<field name="name">物业系统</field>
|
||||
<field name="sequence">7</field>
|
||||
</record>
|
||||
|
||||
<record id="room.room_menu_root" model="ir.ui.menu">
|
||||
<field name="name">会议管理</field>
|
||||
<field name="sequence">8</field>
|
||||
</record>
|
||||
|
||||
<record id="purchase.menu_purchase_root" model="ir.ui.menu">
|
||||
<field name="name">采购</field>
|
||||
<field name="sequence">9</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_attendance.menu_hr_attendance_root" model="ir.ui.menu">
|
||||
<field name="name">出勤</field>
|
||||
<field name="sequence">11</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_work_entry_contract_enterprise.menu_hr_payroll_root" model="ir.ui.menu">
|
||||
<field name="name">工资</field>
|
||||
<field name="sequence">12</field>
|
||||
</record>
|
||||
|
||||
<record id="project_todo.menu_todo_todos" model="ir.ui.menu">
|
||||
<field name="name">待办</field>
|
||||
<field name="sequence">13</field>
|
||||
</record>
|
||||
|
||||
<record id="calendar.mail_menu_calendar" model="ir.ui.menu">
|
||||
<field name="name">日历</field>
|
||||
<field name="sequence">14</field>
|
||||
</record>
|
||||
|
||||
<record id="fleet.menu_root" model="ir.ui.menu">
|
||||
<field name="name">车辆管理</field>
|
||||
<field name="sequence">15</field>
|
||||
</record>
|
||||
|
||||
<record id="website_slides.website_slides_menu_root" model="ir.ui.menu">
|
||||
<field name="name">培训学习</field>
|
||||
<field name="sequence">16</field>
|
||||
</record>
|
||||
|
||||
<record id="website.menu_website_configuration" model="ir.ui.menu">
|
||||
<field name="name">门户网站</field>
|
||||
<field name="sequence">17</field>
|
||||
</record>
|
||||
|
||||
<record id="mail.menu_root_discuss" model="ir.ui.menu">
|
||||
<field name="name">讨论</field>
|
||||
<field name="sequence">18</field>
|
||||
</record>
|
||||
|
||||
<!-- <record id="project_todo.menu_todo_todos" model="ir.ui.menu">-->
|
||||
<!-- <field name="name">代办</field>-->
|
||||
<!-- <field name="sequence">19</field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- <record id="calendar.mail_menu_calendar" model="ir.ui.menu">-->
|
||||
<!-- <field name="name">日历</field>-->
|
||||
<!-- <field name="sequence">16</field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
|
||||
|
||||
<!-- <menuitem id="project.menu_main_pm" name="项目管理" sequence="2"/>-->
|
||||
<!-- <menuitem id="approvals.approvals_menu_root" name="流程中心" sequence="3"/>-->
|
||||
<!-- <menuitem id="hr.menu_hr_root" name="人力资源" sequence="5"/>-->
|
||||
<!-- <menuitem id="documents.menu_root" name="文档管理" sequence="6"/>-->
|
||||
<!-- <menuitem id="sale_renting.rental_menu_root" name="物业系统" sequence="7"/>-->
|
||||
|
||||
<!-- <menuitem id="room.room_menu_root" name="会议管理" sequence="8"/>-->
|
||||
<!-- <menuitem id="purchase.menu_purchase_root" name="办公用品管理" sequence="9"/>-->
|
||||
<!-- <menuitem id="account_asset.menu_action_account_asset_form" sequence="10" name="固定资产管理"/>-->
|
||||
<!-- <menuitem id="fleet.menu_root" name="车辆管理" sequence="11"/>-->
|
||||
<!-- <menuitem id="website_slides.website_slides_menu_root" name="培训学习" sequence="12"/>-->
|
||||
<!-- <menuitem id="website.menu_website_configuration" name="门户网站" sequence="13"/>-->
|
||||
|
||||
<!-- <menuitem id="sale_renting.rental_order_menu" name="承租信息"/>-->
|
||||
<!-- <menuitem id="sale_renting.menu_rental_products" name="物业资产"/>-->
|
||||
|
||||
</odoo>
|
||||
@@ -2,13 +2,9 @@
|
||||
<odoo>
|
||||
<record id="yuthon_work_action" model="ir.actions.act_window">
|
||||
<field name="name">协同办公</field>
|
||||
<field name="res_model">yuthon.work</field><!-- 指定模型 -->
|
||||
<field name="view_mode">tree,form</field><!-- 指定视图 -->
|
||||
<field name="res_model">yuthon.work</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- menuitem的parent(父级) 一个模型中应该是 menu_id 跨模型应该是 model_id.menu_id -->
|
||||
<!-- sequence 规范应该是顺序之间有间隔例如 1357,149... -->
|
||||
<!-- menu规范 一级二级三级 -->
|
||||
<!-- 最后一级会有action -->
|
||||
<!-- 一级标题 -->
|
||||
<menuitem id="yuthon_work_menu"
|
||||
sequence="4"
|
||||
|
||||
@@ -7,9 +7,24 @@
|
||||
==============
|
||||
* 工作台-仪表板
|
||||
""",
|
||||
'depends': ['base', 'board', 'account_accountant'],
|
||||
'depends': ['base',
|
||||
'board',
|
||||
'yuthon_notice',
|
||||
'soong_workflow',
|
||||
'yuthon_issue',
|
||||
'room',
|
||||
'hr_recruitment',
|
||||
'hr',
|
||||
'hr_attendance',
|
||||
'yuthon_hr_attendance',
|
||||
'yuthon_performance',
|
||||
'website',
|
||||
],
|
||||
'data': [
|
||||
'views/session_board.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'views/yuthon_none_views.xml',
|
||||
'views/work_menus.xml',
|
||||
'views/hr_menus.xml',
|
||||
],
|
||||
'application': True,
|
||||
'installable': True,
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
from . import yuthon_none
|
||||
@@ -0,0 +1,7 @@
|
||||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class YuthonNone(models.Model):
|
||||
_name = 'yuthon.none'
|
||||
|
||||
name = fields.Char(string='名称')
|
||||
@@ -0,0 +1,3 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_yuthon_none,yuthon_none,model_yuthon_none,base.group_user,1,1,1,1
|
||||
|
||||
|
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
@@ -0,0 +1,314 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- 招聘 -->
|
||||
<record id="hr_recruitment.menu_hr_recruitment_root" model="ir.ui.menu">
|
||||
<field name="active">False</field>
|
||||
</record>
|
||||
<!-- 人事 -->
|
||||
<record id="hr.menu_hr_root" model="ir.ui.menu">
|
||||
<field name="active">False</field>
|
||||
</record>
|
||||
<!-- 出勤 -->
|
||||
<record id="hr_attendance.menu_hr_attendance_root" model="ir.ui.menu">
|
||||
<field name="active">False</field>
|
||||
</record>
|
||||
<!-- 绩效 -->
|
||||
<record id="yuthon_performance.yuthon_performance_menu_config_root" model="ir.ui.menu">
|
||||
<field name="active">False</field>
|
||||
</record>
|
||||
|
||||
<!-- 人力资源 -->
|
||||
<menuitem id="human_resources_menu_root_board"
|
||||
name="人力资源"
|
||||
web_icon="yuthon_work_brand,static/description/hr.png"
|
||||
sequence="3"/>
|
||||
<!-- 招聘管理 -->
|
||||
<menuitem id="hr_recruitment_menu_root_board"
|
||||
name="招聘管理"
|
||||
parent="human_resources_menu_root_board"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_recruitment_app_menu_board"
|
||||
name="应用"
|
||||
parent="hr_recruitment_menu_root_board"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_recruitment_job_menu_board"
|
||||
name="按工作岗位"
|
||||
parent="hr_recruitment_app_menu_board"
|
||||
action="hr_recruitment.action_hr_job"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_recruitment_all_menu_board"
|
||||
name="全部申请"
|
||||
parent="hr_recruitment_app_menu_board"
|
||||
action="hr_recruitment.crm_case_categ0_act_job"
|
||||
sequence="3"/>
|
||||
<menuitem id="hr_recruitment_report_menu_board"
|
||||
name="报告"
|
||||
parent="hr_recruitment_menu_root_board"
|
||||
sequence="3"/>
|
||||
<menuitem id="hr_recruitment_report_analyse_menu_board"
|
||||
name="招聘分析"
|
||||
parent="hr_recruitment_report_menu_board"
|
||||
action="hr_recruitment.hr_applicant_action_analysis"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_recruitment_setting_menu_board"
|
||||
name="配置"
|
||||
parent="hr_recruitment_menu_root_board"
|
||||
sequence="5"/>
|
||||
<menuitem id="hr_recruitment_set_menu_board"
|
||||
name="设置"
|
||||
parent="hr_recruitment_setting_menu_board"
|
||||
action="hr_recruitment.action_hr_recruitment_configuration"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_recruitment_work_job_menu_board"
|
||||
name="工作岗位"
|
||||
parent="hr_recruitment_menu_root_board"
|
||||
sequence="3"/>
|
||||
<menuitem id="hr_recruitment_stage_menu_board"
|
||||
name="阶段"
|
||||
parent="hr_recruitment_work_job_menu_board"
|
||||
action="hr_recruitment.hr_recruitment_stage_act"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_recruitment_employment_menu_board"
|
||||
name="就业类型"
|
||||
parent="hr_recruitment_work_job_menu_board"
|
||||
action="hr.hr_contract_type_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_recruitment_app2_menu_board"
|
||||
name="应用"
|
||||
parent="hr_recruitment_setting_menu_board"
|
||||
sequence="5"/>
|
||||
<menuitem id="hr_recruitment_degree_menu_board"
|
||||
name="学历"
|
||||
parent="hr_recruitment_setting_menu_board"
|
||||
action="hr_recruitment.hr_recruitment_degree_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_recruitment_reason_menu_board"
|
||||
name="拒绝原因"
|
||||
parent="hr_recruitment_setting_menu_board"
|
||||
action="hr_recruitment.hr_applicant_refuse_reason_action"
|
||||
sequence="3"/>
|
||||
<menuitem id="hr_recruitment_label_menu_board"
|
||||
name="标签"
|
||||
parent="hr_recruitment_setting_menu_board"
|
||||
action="hr_recruitment.hr_applicant_category_action"
|
||||
sequence="5"/>
|
||||
<!-- 人事 -->
|
||||
<menuitem id="hr_menu_root_board"
|
||||
name="人事管理"
|
||||
parent="human_resources_menu_root_board"
|
||||
sequence="3"/>
|
||||
<menuitem id="hr_employee_menu_root_board"
|
||||
name="员工"
|
||||
parent="hr_menu_root_board"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_employee_menu_root_board2"
|
||||
name="员工"
|
||||
parent="hr_employee_menu_root_board"
|
||||
action="hr.open_view_employee_list_my"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_employee_organization_menu_root_board"
|
||||
name="组织架构"
|
||||
parent="hr_employee_menu_root_board"
|
||||
action="hr.open_view_employee_list_my"
|
||||
sequence="3"/>
|
||||
<menuitem id="hr_contract_menu_root_board"
|
||||
name="合同"
|
||||
parent="hr_employee_menu_root_board"
|
||||
action="hr.open_view_employee_list_my"
|
||||
sequence="5"/>
|
||||
<menuitem id="hr_department_menu_root_board"
|
||||
name="部门"
|
||||
parent="hr_menu_root_board"
|
||||
action="hr.hr_department_kanban_action"
|
||||
sequence="3"/>
|
||||
<menuitem id="hr_setting_menu_root_board"
|
||||
name="配置"
|
||||
parent="hr_menu_root_board"
|
||||
sequence="5"/>
|
||||
<menuitem id="hr_set_menu_root_board"
|
||||
name="设置"
|
||||
parent="hr_setting_menu_root_board"
|
||||
action="hr.hr_config_settings_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_set_employee_menu_root_board"
|
||||
name="员工"
|
||||
parent="hr_setting_menu_root_board"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_set_location_menu_root_board"
|
||||
name="工作地点"
|
||||
parent="hr_set_employee_menu_root_board"
|
||||
action="hr.hr_work_location_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="hr_set_lv_menu_root_board"
|
||||
name="职级配置"
|
||||
parent="hr_set_employee_menu_root_board"
|
||||
action="yuthon_hr_employee.view_yuthon_job_lv_action"
|
||||
sequence="3"/>
|
||||
<menuitem id="hr_set_role_menu_root_board"
|
||||
name="角色配置"
|
||||
parent="hr_set_employee_menu_root_board"
|
||||
action="soong_workflow.view_soong_user_role_action"
|
||||
sequence="5"/>
|
||||
<!-- 出勤 -->
|
||||
<menuitem id="hr_attendance_root_board"
|
||||
name="考勤管理"
|
||||
parent="human_resources_menu_root_board"
|
||||
sequence="5"/>
|
||||
<menuitem id="hr_attendance_record_root_board"
|
||||
name="考勤记录"
|
||||
parent="hr_attendance_root_board"
|
||||
action="hr_attendance.hr_attendance_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_attendance_approval_request_board"
|
||||
name="考勤审批记录"
|
||||
parent="hr_attendance_root_board"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_attendance_overtime_board"
|
||||
name="加班申请"
|
||||
parent="menu_hr_attendance_approval_request_board"
|
||||
sequence="1"
|
||||
action="yuthon_hr_attendance.approval_request_overtime"/>
|
||||
<menuitem id="menu_hr_attendance_going_board"
|
||||
name="外出申请"
|
||||
parent="menu_hr_attendance_approval_request_board"
|
||||
sequence="3"
|
||||
action="yuthon_hr_attendance.approval_request_going"/>
|
||||
<menuitem id="menu_hr_attendance_duty_board"
|
||||
name="值班申请"
|
||||
parent="menu_hr_attendance_approval_request_board"
|
||||
sequence="5"
|
||||
action="yuthon_hr_attendance.approval_request_duty"/>
|
||||
<menuitem id="menu_hr_attendance_leave_board"
|
||||
name="调休申请"
|
||||
parent="menu_hr_attendance_approval_request_board"
|
||||
sequence="7"
|
||||
action="yuthon_hr_attendance.approval_request_leave"/>
|
||||
<menuitem id="menu_hr_attendance_holiday_board"
|
||||
name="请假申请"
|
||||
parent="menu_hr_attendance_approval_request_board"
|
||||
sequence="9"
|
||||
action="yuthon_hr_attendance.approval_request_holiday"/>
|
||||
<menuitem id="menu_hr_attendance_remove_holiday_board"
|
||||
name="销假申请"
|
||||
parent="menu_hr_attendance_approval_request_board"
|
||||
sequence="11"
|
||||
action="yuthon_hr_attendance.approval_request_remove_holiday"/>
|
||||
<menuitem id="menu_hr_attendance_remove_card_board"
|
||||
name="补卡申请"
|
||||
parent="menu_hr_attendance_approval_request_board"
|
||||
sequence="13"
|
||||
action="yuthon_hr_attendance.approval_request_card"/>
|
||||
<menuitem id="attendance_iot_manager_views_board"
|
||||
name="考勤机设备管理"
|
||||
parent="hr_attendance_root_board"
|
||||
sequence="5"
|
||||
action="yuthon_hr_attendance.attendance_iot_manager_action"/>
|
||||
<menuitem id="menu_hr_attendance_work_board"
|
||||
name="考勤时间表配置"
|
||||
parent="hr_attendance_root_board"
|
||||
sequence="7"
|
||||
action="resource.action_resource_calendar_form"/>
|
||||
<menuitem id="tianhe_holiday_setting_menu_board"
|
||||
parent="hr_attendance_root_board"
|
||||
sequence="9"
|
||||
name="假期类型配置"
|
||||
action="yuthon_hr_attendance.holiday_setting_action"/>
|
||||
<!-- 培训管理 -->
|
||||
<menuitem id="training_manager_root_board"
|
||||
name="培训管理"
|
||||
parent="human_resources_menu_root_board"
|
||||
sequence="7"/>
|
||||
<menuitem id="employee_training_root_board"
|
||||
name="员工培训"
|
||||
parent="training_manager_root_board"
|
||||
action="yuthon_none_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="assess_root_board"
|
||||
name="考核"
|
||||
parent="training_manager_root_board"
|
||||
action="yuthon_none_action"
|
||||
sequence="3"/>
|
||||
<menuitem id="plan_root_board"
|
||||
name="计划"
|
||||
parent="training_manager_root_board"
|
||||
action="yuthon_none_action"
|
||||
sequence="5"/>
|
||||
<menuitem id="course_root_board"
|
||||
name="课程"
|
||||
parent="training_manager_root_board"
|
||||
action="yuthon_none_action"
|
||||
sequence="7"/>
|
||||
<!-- 薪资管理 -->
|
||||
<menuitem id="human_resources_salary_root_board"
|
||||
name="薪资管理"
|
||||
parent="human_resources_menu_root_board"
|
||||
action="yuthon_none_action"
|
||||
sequence="9"/>
|
||||
<!-- 绩效考核 -->
|
||||
<menuitem id="yuthon_performance_menu_config_root_board"
|
||||
name="绩效考核"
|
||||
parent="human_resources_menu_root_board"
|
||||
sequence="11"/>
|
||||
<menuitem id="yuthon_performance_duty_menu_board"
|
||||
parent="yuthon_performance_menu_config_root_board"
|
||||
name="绩效考核"
|
||||
sequence="1"/>
|
||||
<menuitem id="yuthon_organization_performance_menu_board"
|
||||
parent="yuthon_performance_duty_menu_board"
|
||||
name="组织绩效"
|
||||
sequence="1"
|
||||
action="yuthon_performance.yuthon_duty_management_action"/>
|
||||
<menuitem id="yuthon_employee_performance_menu_board"
|
||||
parent="yuthon_performance_duty_menu_board"
|
||||
name="员工绩效"
|
||||
sequence="3"
|
||||
action="yuthon_performance.yuthon_duty_management_action"/>
|
||||
<menuitem id="yuthon_Index_management_menu_board"
|
||||
parent="yuthon_performance_menu_config_root_board"
|
||||
name="指标库"
|
||||
sequence="3"/>
|
||||
<menuitem id="yuthon_organization_performance_library_board"
|
||||
parent="yuthon_Index_management_menu_board"
|
||||
name="组织绩效指标库"
|
||||
sequence="1"
|
||||
action="yuthon_performance.yuthon_index_management_action"/>
|
||||
<menuitem id="yuthon_employee_performance_library_board"
|
||||
parent="yuthon_Index_management_menu_board"
|
||||
name="员工绩效指标库"
|
||||
sequence="3"
|
||||
action="yuthon_performance.yuthon_index_management_action"/>
|
||||
<menuitem id="yuthon_plan_management_menu_board"
|
||||
parent="yuthon_performance_menu_config_root_board"
|
||||
name="计划管理"
|
||||
sequence="5"/>
|
||||
<menuitem id="yuthon_plan_management_board"
|
||||
parent="yuthon_plan_management_menu_board"
|
||||
name="个人计划"
|
||||
sequence="1"
|
||||
action="yuthon_performance.yuthon_plan_management_action"/>
|
||||
<menuitem id="yuthon_performance_approval_management_menu_board"
|
||||
parent="yuthon_performance_menu_config_root_board"
|
||||
name="指标变更管理"
|
||||
sequence="7"/>
|
||||
<menuitem id="yuthon_Index_approval_management_board"
|
||||
parent="yuthon_performance_approval_management_menu_board"
|
||||
name="指标库变更"
|
||||
sequence="1"
|
||||
action="yuthon_performance.yuthon_Index_approval_action"/>
|
||||
<menuitem id="yuthon_duty_approval_management_board"
|
||||
parent="yuthon_performance_approval_management_menu_board"
|
||||
name="部门责任书变更"
|
||||
sequence="3"
|
||||
action="yuthon_performance.yuthon_duty_approval_action"/>
|
||||
<menuitem id="yuthon_plan_approval_management_board"
|
||||
parent="yuthon_performance_approval_management_menu_board"
|
||||
name="个人计划变更"
|
||||
sequence="5"
|
||||
action="yuthon_performance.yuthon_plan_approval_action"/>
|
||||
<!-- 配置 -->
|
||||
<menuitem id="human_resources_setting_root_board"
|
||||
name="配置"
|
||||
parent="human_resources_menu_root_board"
|
||||
action="yuthon_none_action"
|
||||
sequence="13"/>
|
||||
</odoo>
|
||||
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- 工作流 -->
|
||||
<record id="soong_workflow.menu_soong_workflow_root" model="ir.ui.menu">
|
||||
<field name="active">False</field>
|
||||
</record>
|
||||
<!-- 议题 -->
|
||||
<record id="yuthon_issue.tianhe_issue_library_menu_root" model="ir.ui.menu">
|
||||
<field name="active">False</field>
|
||||
</record>
|
||||
<!-- 通知公告 -->
|
||||
<record id="yuthon_notice.yuthon_notice_menu_config_root" model="ir.ui.menu">
|
||||
<field name="active">False</field>
|
||||
</record>
|
||||
<!-- 会议室 -->
|
||||
<record id="room.room_menu_root" model="ir.ui.menu">
|
||||
<field name="active">False</field>
|
||||
</record>
|
||||
<!-- 网站 -->
|
||||
<record id="website.menu_website_configuration" model="ir.ui.menu">
|
||||
<field name="active">False</field>
|
||||
</record>
|
||||
|
||||
<!-- 协同办公-通知公告 -->
|
||||
<menuitem id="yuthon_notice_menu"
|
||||
name="通知公告"
|
||||
parent="spreadsheet_dashboard.spreadsheet_dashboard_menu_root"
|
||||
sequence="3"/>
|
||||
<menuitem id="yuthon_notice_my_menu_board"
|
||||
parent="yuthon_notice_menu"
|
||||
name="我的通知公告"
|
||||
action="yuthon_notice.approval_notice_action2"
|
||||
sequence="2"/>
|
||||
<menuitem id="yuthon_notice_manager_menu_board"
|
||||
parent="yuthon_notice_menu"
|
||||
name="通知公告管理"
|
||||
action="yuthon_notice.approval_notice_action"
|
||||
sequence="5"/>
|
||||
<menuitem id="yuthon_confirm_users_menu_board"
|
||||
parent="yuthon_notice_menu"
|
||||
name="公告确认信息"
|
||||
action="yuthon_notice.yuthon_confirm_users_action"
|
||||
sequence="9"/>
|
||||
<menuitem id="yuthon_notice_type_menu_board"
|
||||
parent="yuthon_notice_menu"
|
||||
name="公告类型管理"
|
||||
action="yuthon_notice.approval_notice_type_action"
|
||||
sequence="11"/>
|
||||
<!-- 工作流程 -->
|
||||
<menuitem id="menu_soong_workflow_root_board"
|
||||
name="工作流程"
|
||||
parent="spreadsheet_dashboard.spreadsheet_dashboard_menu_root"
|
||||
sequence="5"/>
|
||||
<menuitem id="menu_workflow_approval_request_my_board"
|
||||
name="我的审批"
|
||||
parent="menu_soong_workflow_root_board"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_workflow_approval_request_new_board"
|
||||
name="新的请求"
|
||||
parent="menu_workflow_approval_request_my_board"
|
||||
action="soong_workflow.action_kklw_workflow_approval_request"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_workflow_approval_my_request_board"
|
||||
name="我的请求"
|
||||
parent="menu_workflow_approval_request_my_board"
|
||||
action="soong_workflow.action_kklw_workflow_approval_request"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_soong_other_setting_board"
|
||||
sequence="3"
|
||||
name="其他配置"
|
||||
parent="menu_soong_workflow_root_board"/>
|
||||
<menuitem id="menu_soong_workflow_board"
|
||||
name="工作流配置"
|
||||
parent="menu_soong_other_setting_board"
|
||||
action="soong_workflow.action_soong_workflow"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_soong_approval_note_board"
|
||||
name="常用审批意见"
|
||||
parent="menu_soong_other_setting_board"
|
||||
action="soong_workflow.soong_note_action"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_soong_approval_group_board"
|
||||
name="审批分组"
|
||||
parent="menu_soong_other_setting_board"
|
||||
action="soong_workflow.soong_approval_group_action"
|
||||
sequence="5"/>
|
||||
<menuitem id="soong_workflow_record_menu_board"
|
||||
name="工作流记录"
|
||||
parent="menu_soong_workflow_root_board"
|
||||
action="soong_workflow.soong_workflow_record_action"
|
||||
sequence="5"/>
|
||||
<!-- 议题库 -->
|
||||
<menuitem id="tianhe_issue_library_menu_root_board"
|
||||
name="议题库"
|
||||
parent="spreadsheet_dashboard.spreadsheet_dashboard_menu_root"
|
||||
sequence="7"/>
|
||||
<menuitem id="tianhe_issue_library_all_board"
|
||||
parent="tianhe_issue_library_menu_root_board"
|
||||
name="全部"
|
||||
action="yuthon_issue.issue_library_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="tianhe_issue_library_menu_root_board_will_board"
|
||||
parent="tianhe_issue_library_menu_root_board"
|
||||
name="待上会"
|
||||
action="yuthon_issue.issue_library_action_will"
|
||||
sequence="5"/>
|
||||
<menuitem id="tianhe_issue_library_menu_root_board_on_meet_board"
|
||||
parent="tianhe_issue_library_menu_root_board"
|
||||
name="已上会"
|
||||
action="yuthon_issue.issue_library_action_done"
|
||||
sequence="10"/>
|
||||
<menuitem id="tianhe_other_issue_library_menu_board"
|
||||
parent="tianhe_issue_library_menu_root_board"
|
||||
name="子部门议题库"
|
||||
sequence="3"/>
|
||||
<menuitem id="tianhe_issue_library_all2_board"
|
||||
parent="tianhe_other_issue_library_menu_board"
|
||||
name="全部"
|
||||
action="yuthon_issue.issue_library_action2"
|
||||
sequence="1"/>
|
||||
<menuitem id="other_issue_library_menu_will_board"
|
||||
parent="tianhe_other_issue_library_menu_board"
|
||||
name="待上会"
|
||||
action="yuthon_issue.issue_library_action_will2"
|
||||
sequence="3"/>
|
||||
<menuitem id="other_issue_library_menu_on_meet_board"
|
||||
parent="tianhe_other_issue_library_menu_board"
|
||||
name="已上会"
|
||||
action="yuthon_issue.issue_library_action_done2"
|
||||
sequence="5"/>
|
||||
<menuitem id="issue_approval_menu_board"
|
||||
parent="tianhe_issue_library_menu_root_board"
|
||||
name="议题审批"
|
||||
action="yuthon_issue.issue_library_action"
|
||||
sequence="9"/>
|
||||
<menuitem id="issue_approval_party_menu_board"
|
||||
parent="issue_approval_menu_board"
|
||||
name="党总支议题审批"
|
||||
action="yuthon_issue.issue_approval_party_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="issue_approval_class_menu_board"
|
||||
parent="issue_approval_menu_board"
|
||||
name="领导班子议题审批"
|
||||
action="yuthon_issue.issue_approval_class_action"
|
||||
sequence="3"/>
|
||||
<menuitem id="issue_approval_boss_menu_board"
|
||||
parent="issue_approval_menu_board"
|
||||
name="董事会议题审批"
|
||||
action="yuthon_issue.issue_approval_boss_action"
|
||||
sequence="5"/>
|
||||
<!-- 会议室 -->
|
||||
<menuitem id="room_menu_root_board"
|
||||
name="会议室"
|
||||
parent="spreadsheet_dashboard.spreadsheet_dashboard_menu_root"
|
||||
sequence="9"/>
|
||||
<menuitem id="room_booking_menu_board"
|
||||
name="预定"
|
||||
action="room.room_booking_action"
|
||||
parent="room_menu_root_board"
|
||||
sequence="1"/>
|
||||
<menuitem id="room_room_menu_board"
|
||||
name="房间"
|
||||
action="room.room_room_action"
|
||||
parent="room_menu_root_board"
|
||||
sequence="2"/>
|
||||
</odoo>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="yuthon_none_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.none.tree</field>
|
||||
<field name="model">yuthon.none</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_none_action" model="ir.actions.act_window">
|
||||
<field name="name">待开发</field>
|
||||
<field name="res_model">yuthon.none</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user