Merge pull request !368 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2024-10-31 13:55:35 +00:00
committed by Gitee
8 changed files with 203 additions and 11 deletions
+3 -1
View File
@@ -11,13 +11,15 @@
'license': 'LGPL-3',
'author': 'pengyuthon',
'website': 'https://www.pengyuthon.com',
'depends': ['base', 'hr', 'hr_recruitment'],
'depends': ['base', 'hr', 'hr_recruitment','soong_workflow'],
'data': [
'data/yuthon.job.lv.csv',
'data/job_lv_groups_data.xml',
'data/employee_code_data.xml',
'data/applicant_tage_setting_data.xml',
'data/publish_applicant_setting_data.xml',
'security/ir.model.access.csv',
'security/job_lv_security_group.xml',
'views/yuthon_hr_employee_views.xml',
'views/yuthon_hr_department_views.xml',
'views/yuthon_job_lv_views.xml',
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="job_lv_setting_sequence1" model="soong.user.role">
<field name="name">职级管理员</field>
<field name="user_type">departmental_role</field>
</record>
<record id="job_lv_setting_sequence2" model="soong.user.role">
<field name="name">天河投资职级</field>
<field name="user_type">departmental_role</field>
</record>
<record id="job_lv_setting_sequence3" model="soong.user.role">
<field name="name">天河物管职级</field>
<field name="user_type">departmental_role</field>
</record>
<record id="job_lv_setting_sequence4" model="soong.user.role">
<field name="name">天河粮储职级</field>
<field name="user_type">departmental_role</field>
</record>
</odoo>
+1 -1
View File
@@ -8,5 +8,5 @@ from . import inherit_hr_applicant
from . import applicant_tage_setting
from . import publish_applicant_setting
from . import yuthon_job_postings
from . import inherit_hr_employee
@@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
from odoo import api, fields, models
class YuthonHrEmployee(models.Model):
_inherit = "hr.employee"
user_role_ids_changed = fields.Boolean(compute='_compute_user_roles')
@api.depends('user_role_ids')
def _compute_job_lv_roles(self):
group_mapping = {
'职级管理员': 'group_topic_admin',
'天河投资职级': 'group_party_topic',
'天河物管职级': 'group_team_topic',
'天河粮储职级': 'group_board_topic',
}
old_users_ids = self.user_role_ids
for employee in self:
for role in employee.user_role_ids:
group_id = group_mapping.get(role.name)
if group_id:
group = self.env.ref('yuthon_issue.' + group_id, raise_if_not_found=False)
if group:
# 未知因素屏蔽选择值
group.write({'users': [(4, employee.user_id.id)]})
self.user_role_ids = old_users_ids
self.user_role_ids_changed = True
+1 -1
View File
@@ -9,7 +9,7 @@ class YuthonJobLv(models.Model):
_description = "职级管理"
_order = 'lv desc'
lv = fields.Integer(string="级别")
lv = fields.Char(string="级别")
name = fields.Char(string="职级名称")
base_wage = fields.Float(string="基本工资")
job_wage = fields.Float(string="职级工资")
@@ -1,5 +1,5 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_yuthon_job_lv,yuthon_job_lv,model_yuthon_job_lv,base.group_user,1,1,1,1
access_yuthon_job_lv,yuthon_job_lv,model_yuthon_job_lv,,1,1,1,1
access_hr_job_type,hr_job_type,model_hr_job_type,base.group_user,1,1,1,1
access_yuthon_hr_employee_wizard,yuthon_hr_employee_wizard,model_yuthon_hr_employee_wizard,base.group_user,1,1,1,1
access_yuthon_emergency_contact_line,yuthon_emergency_contact_line,model_yuthon_emergency_contact_line,base.group_user,1,1,1,1
@@ -11,4 +11,4 @@ access_yuthon_directly_detail_lines,yuthon_directly_detail_lines,model_yuthon_di
access_yuthon_recent_work_detail_line,yuthon_recent_work_detail_line,model_yuthon_recent_work_detail_line,base.group_user,1,1,1,1
access_publish_applicant_setting,publish_applicant_setting,model_publish_applicant_setting,base.group_user,1,1,1,1
access_applicant_tage_setting,applicant_tage_setting,model_applicant_tage_setting,base.group_user,1,1,1,1
access_yuthon_job_postings,yuthon_job_postings,model_yuthon_job_postings,base.group_user,1,1,1,1
access_yuthon_job_postings,yuthon_job_postings,model_yuthon_job_postings,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_yuthon_job_lv yuthon_job_lv model_yuthon_job_lv base.group_user 1 1 1 1
3 access_hr_job_type hr_job_type model_hr_job_type base.group_user 1 1 1 1
4 access_yuthon_hr_employee_wizard yuthon_hr_employee_wizard model_yuthon_hr_employee_wizard base.group_user 1 1 1 1
5 access_yuthon_emergency_contact_line yuthon_emergency_contact_line model_yuthon_emergency_contact_line base.group_user 1 1 1 1
11 access_yuthon_recent_work_detail_line yuthon_recent_work_detail_line model_yuthon_recent_work_detail_line base.group_user 1 1 1 1
12 access_publish_applicant_setting publish_applicant_setting model_publish_applicant_setting base.group_user 1 1 1 1
13 access_applicant_tage_setting applicant_tage_setting model_applicant_tage_setting base.group_user 1 1 1 1
14 access_yuthon_job_postings yuthon_job_postings model_yuthon_job_postings base.group_user 1 1 1 1
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="module_category_yuthon_job_lv" model="ir.module.category">
<field name="name">职级权限</field>
</record>
<!-- 天河投资职级群组 -->
<record id="group_party_topic" model="res.groups">
<field name="name">天河投资职级</field>
<field name="category_id" ref="module_category_yuthon_job_lv"/>
</record>
<!-- 天河物管职级群组 -->
<record id="group_team_topic" model="res.groups">
<field name="name">天河物管职级</field>
<field name="category_id" ref="module_category_yuthon_job_lv"/>
</record>
<!-- 天河粮储职级群组 -->
<record id="group_board_topic" model="res.groups">
<field name="name">天河粮储职级</field>
<field name="category_id" ref="module_category_yuthon_job_lv"/>
</record>
<!-- 职级群组 -->
<record id="group_topic_admin" model="res.groups">
<field name="name">职级管理员</field>
<field name="category_id" ref="module_category_yuthon_job_lv"/>
<field name="implied_ids" eval="[(4, ref('group_party_topic')), (4, ref('group_team_topic')), (4, ref('group_team_topic')) ,
(4, ref('group_board_topic'))]"/>
<field name="users" eval="[(4, ref('base.user_admin'))]"/>
</record>
</odoo>
@@ -1,14 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Views -->
<!-- 全部 -->
<record id="view_yuthon_job_lv_tree" model="ir.ui.view">
<field name="name">yuthon.job.lv.tree</field>
<field name="model">yuthon.job.lv</field>
<field name="arch" type="xml">
<tree editable="bottom">
<!-- <header>-->
<!-- <button name="pub_lv_approval" string="提交职级调整申请" type="object"/>-->
<!-- </header>-->
<field name="lv"/>
<field name="name"/>
<field name="base_wage"/>
@@ -45,11 +42,126 @@
<field name="view_mode">tree</field>
<field name="context">{'search_default_group_company': True, 'search_default_group_lv': True}</field>
</record>
<!-- Menus -->
<!--天河投资 -->
<record id="view_yuthon_job_lv_tree2" model="ir.ui.view">
<field name="name">yuthon.job.lv.tree</field>
<field name="model">yuthon.job.lv</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="lv"/>
<field name="name"/>
<field name="base_wage"/>
<field name="job_wage"/>
<field name="post_wage"/>
<field name="performance_bonus"/>
<field name="phone_subsidy"/>
<field name="attendance_bonus"/>
<field name="all_wage"/>
<field name="yuthon_company"/>
<field name="create_time"/>
<field name="end_time"/>
<field name="company_page"/>
</tree>
</field>
</record>
<record id="view_yuthon_job_lv_action2" model="ir.actions.act_window">
<field name="name">职级管理</field>
<field name="res_model">yuthon.job.lv</field>
<field name="view_mode">tree</field>
<field name="domain">[('yuthon_company', '=', 'tz')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_hr_employee.view_yuthon_job_lv_tree2')})]"/>
<field name="context">{'search_default_group_company': True, 'search_default_group_lv': True}</field>
</record>
<!--天河物管 -->
<record id="view_yuthon_job_lv_tree3" model="ir.ui.view">
<field name="name">yuthon.job.lv.tree</field>
<field name="model">yuthon.job.lv</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="lv"/>
<field name="name"/>
<field name="base_wage"/>
<field name="job_wage"/>
<field name="post_wage"/>
<field name="phone_subsidy"/>
<field name="attendance_bonus"/>
<field name="all_wage"/>
<field name="yuthon_company"/>
<field name="create_time"/>
<field name="end_time"/>
<field name="company_page"/>
</tree>
</field>
</record>
<record id="view_yuthon_job_lv_action3" model="ir.actions.act_window">
<field name="name">职级管理</field>
<field name="res_model">yuthon.job.lv</field>
<field name="view_mode">tree</field>
<field name="domain">[('yuthon_company', '=', 'wg')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_hr_employee.view_yuthon_job_lv_tree3')})]"/>
<field name="context">{'search_default_group_company': True, 'search_default_group_lv': True}</field>
</record>
<!--天河粮储 -->
<record id="view_yuthon_job_lv_tree4" model="ir.ui.view">
<field name="name">yuthon.job.lv.tree</field>
<field name="model">yuthon.job.lv</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="lv"/>
<field name="name"/>
<field name="base_wage"/>
<field name="job_wage"/>
<field name="post_wage"/>
<field name="performance_bonus"/>
<field name="phone_subsidy"/>
<field name="attendance_bonus"/>
<field name="all_wage"/>
<field name="yuthon_company"/>
<field name="create_time"/>
<field name="end_time"/>
<field name="company_page"/>
</tree>
</field>
</record>
<record id="view_yuthon_job_lv_action4" model="ir.actions.act_window">
<field name="name">职级管理</field>
<field name="res_model">yuthon.job.lv</field>
<field name="view_mode">tree</field>
<field name="domain">[('yuthon_company', '=', 'thlc')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_hr_employee.view_yuthon_job_lv_tree4')})]"/>
<field name="context">{'search_default_group_company': True, 'search_default_group_lv': True}</field>
</record>
<!-- Menus -->
<menuitem
id="menu_yuthon_job_lv"
name="职级管理"
action="view_yuthon_job_lv_action"
parent="hr.menu_config_employee"
sequence="6"/>
<menuitem
id="menu_yuthon_job_lv_all"
name="全部"
parent="menu_yuthon_job_lv"
action="view_yuthon_job_lv_action"
sequence="1"/>
<menuitem
id="menu_yuthon_job_lv_all2"
name="天河投资职级"
parent="menu_yuthon_job_lv"
action="view_yuthon_job_lv_action2"
sequence="3"/>
<menuitem
id="menu_yuthon_job_lv_all3"
name="天河物管职级"
parent="menu_yuthon_job_lv"
action="view_yuthon_job_lv_action3"
sequence="5"/>
<menuitem
id="menu_yuthon_job_lv_all4"
name="天河粮储职级"
parent="menu_yuthon_job_lv"
action="view_yuthon_job_lv_action4"
sequence="7"/>
</odoo>