添加功能

This commit is contained in:
zhouzhou
2024-11-30 19:43:00 +08:00
parent c315644eb9
commit f55bf43008
30 changed files with 465 additions and 87 deletions
@@ -22,7 +22,7 @@ class SoongApprovalUsers(models.Model):
res_model = fields.Char('Workflow Ref Model', index=True, related='res_model_id.model', precompute=True, store=True, readonly=True)
res_id = fields.Many2oneReference(string='Workflow Ref.', index=True, model_field='res_model')
approval_user_id = fields.Many2one('res.users', string='审批人')
approval_user = fields.Many2one('soong.user.role', string='审批角色')
approval_user = fields.Many2one('soong.user.role', string='审批角色', domain=[('user_type', '!=', 'lv_role')])
approval_user_datetime = fields.Datetime(string='审批时间')
approval_user_notice = fields.Char(string='审批意见')
approval_user_state = fields.Selection([('will', '待审批')], string='状态')
+2 -2
View File
@@ -8,6 +8,6 @@ class YuthonHrEmployee(models.Model):
"""
_inherit = "hr.employee"
user_role_id = fields.Many2one('soong.user.role', string="主角色", store=True)
user_role_ids = fields.Many2many('soong.user.role', string="辅助角色", store=True)
user_role_id = fields.Many2one('soong.user.role', string="主角色", store=True, domain=[('user_type', '!=', 'lv_role')])
user_role_ids = fields.Many2many('soong.user.role', string="辅助角色", store=True, domain=[('user_type', '!=', 'lv_role')])
department_ids = fields.Many2many('hr.department', string="辅助部门", store=True)
+1 -1
View File
@@ -6,4 +6,4 @@ class SoongNoteSetting(models.Model):
_name = 'soong.note.setting'
name = fields.Char(string="名称")
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围', domain=[('user_type', '!=', 'lv_role')])
+1 -1
View File
@@ -52,7 +52,7 @@ class SoongWorkflow(models.Model):
is_enable_transmitted_button = fields.Boolean(string="是否启用转交", default=True)
approvals_group_id = fields.Many2one('soong.approval.group', string="审批分组")
user_role_ids = fields.Many2many('soong.user.role', string="角色", store=True,
default=lambda self: [(6, 0, [self.env.ref('soong_workflow.soong_user_role_workflow_admin').id])])
default=lambda self: [(6, 0, [self.env.ref('soong_workflow.soong_user_role_workflow_admin').id])], domain=[('user_type', '!=', 'lv_role')])
def copy(self, default=None):
workflow_id = self.search([('model_id', '=', self.model_id.id)])
+1 -1
View File
@@ -252,7 +252,7 @@ class SoongWorkflowNodeButton(models.Model):
)
reviewer_id = fields.Many2one(comodel_name="res.users", string="Reviewer")
reviewer_group_id = fields.Many2one(comodel_name="res.groups", string="Reviewer group")
users_role_id = fields.Many2one(comodel_name="soong.user.role", string="主角色")
users_role_id = fields.Many2one(comodel_name="soong.user.role", string="主角色", domain=[('user_type', '!=', 'lv_role')])
reviewer_expression = fields.Text(
string="Review Expression",
default=CONDITION_CODE_TEMP,
@@ -22,16 +22,26 @@
<field name="check_out" optional="show" widget="time"/>
<button name="button_leave" type="object" string="请假" class="oe_highlight"/>
<button name="button_compensatory_leave" type="object" string="调休" class="oe_highlight"/>
<button name="hr_attendance_time" type="object" string="cs"/>
<button name="button_abnormal_approval" type="object" string="异常提醒" class="oe_highlight" column_invisible="not is_abnormal"/>
<button name="button_card_approval" type="object" string="补卡" class="oe_highlight" column_invisible="not is_no_card"/>
<!-- <field name="down_card_location" optional="show"/>-->
<!-- <field name="out_card_time" optional="show"/>-->
<!-- <field name="out_card_location" optional="show"/>-->
<!-- <field name="work_hours" optional="show"/>-->
</tree>
</field>
</record>
<!-- <record id="view_calendar_attendance_event_calendar" model="ir.ui.view">-->
<!-- <field name="name">hr.attendance.calendar</field>-->
<!-- <field name="model">hr.attendance</field>-->
<!-- <field name="priority" eval="2"/>-->
<!-- <field name="arch" type="xml">-->
<!-- <calendar string="日程"-->
<!-- date_start="start_time"-->
<!-- date_stop="end_time"-->
<!-- event_open_popup="true"-->
<!-- event_limit="5"-->
<!-- quick_create="false"-->
<!-- quick_create_view_id="%(yuthon_will_task.view_yuthon_will_task_form)d">-->
<!-- </calendar>-->
<!-- </field>-->
<!-- </record>-->
<!-- Actions -->
<record id="view_attendance_going_action" model="ir.actions.act_window">
<field name="name">出勤</field>
@@ -9,7 +9,7 @@ class AttendanceIotManagerWizard(models.TransientModel):
attendance_iot_id = fields.Many2one('attendance.iot', string="设备号")
department_ids = fields.Many2many('hr.department', string='部门范围')
employee_ids = fields.Many2many('hr.employee', string='人员范围')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围', domain=[('user_type', '!=', 'lv_role')])
iot_users_ids = fields.Many2many('res.users', string="人员", compute="compute_iot_users_ids", store=True)
@api.depends('department_ids', 'employee_ids', 'users_role_ids')
+1 -1
View File
@@ -38,7 +38,7 @@ class IssueLibrary(models.Model):
department_id = fields.Many2one('hr.department', string='部门', related='employee_id.department_id')
yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'),
('thlc', '天河粮储')], string="所属公司", related='employee_id.yuthon_company')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围', related='employee_id.user_role_ids')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围', related='employee_id.user_role_ids', domain=[('user_type', '!=', 'lv_role')])
approval_name = fields.Char(string="审批标题")
meeting_place = fields.Char(string="会议地点")
meeting_name = fields.Char(string="会议名称")
@@ -15,7 +15,7 @@ class YuthonLesseeNotice(models.Model):
department_id = fields.Many2one(related='user_id.employee_id.department_id', string="部门")
department_ids = fields.Many2many('hr.department', string='部门范围')
employee_ids = fields.Many2many('hr.employee', string='人员范围')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围', domain=[('user_type', '!=', 'lv_role')])
company_page = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储')], string="公司", compute="_compute_company", store=True)
notice_type_id = fields.Many2one('yuthon.notice.type', string="类型")
create_date = fields.Date(string="发布日期")
+1 -1
View File
@@ -23,7 +23,7 @@ class YuthonOfficial(models.Model):
copy_flats = fields.Char(string="抄送")
department_ids = fields.Many2many('hr.department', string='部门范围')
employee_ids = fields.Many2many('hr.employee', string='人员范围')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围', domain=[('user_type', '!=', 'lv_role')])
servings_number = fields.Integer(string="份数")
urgency = fields.Selection([('normal', '一般'), ('urgent', '紧急'), ('extra_urgent', '特急')], string="紧急程度")
secret_level = fields.Selection([('normal', '一般'), ('urgent', '秘密'), ('secret', '机密'), ('so_secret', '绝密')], string="密级")
@@ -25,11 +25,9 @@
<group string="行政信息">
<group col="2">
<field name="reference_cold"/>
<field name="major_event_category"/>
<field name="urgency"/>
<field name="secret_level"/>
<field name="time_date"/>
<field name="official_statu"/>
<field name="is_issues"/>
<field name="related_issues_id" invisible="not is_issues"/>
</group>
+2
View File
@@ -18,6 +18,8 @@
'views/yuthon_duty_management.xml',
'views/yuthon_performance_menus.xml',
'views/yuthon_plan_management.xml',
'views/yuthon_departmental_responsible_views.xml',
'views/yuthon_personal_logs_views.xml',
'views/yuthon_Index_approval.xml',
'views/yuthon_tissue_duty_approval.xml',
'views/yuthon_index_employee.xml',
+2
View File
@@ -12,3 +12,5 @@ from . import yuthon_employee_performance
from . import yuthon_grading_tasks
from . import yuthon_kpi_tasks
from . import yuthon_employee_appraisal
from . import yuthon_departmental_responsible
from . import yuthon_personal_logs
@@ -62,7 +62,7 @@ class NewIndexManagement(models.Model):
('two_index', '双向指标'), ], '计算类别')
new_check_norm = fields.Char('考核标准', required=True)
new_department_ids = fields.Many2many("hr.department", string="指标来源", required=True)
new_in_charge_role_id = fields.Many2one('soong.user.role', string='角色')
new_in_charge_role_id = fields.Many2one('soong.user.role', string='角色', domain=[('user_type', '!=', 'lv_role')])
new_employee_ids = fields.Many2many('hr.employee', string="人员")
new_start_index_time = fields.Date(string='生效时间', required=True)
new_end_index_time = fields.Date(string='失效时间')
@@ -13,7 +13,7 @@ class YuthonIndexManagement(models.Model):
index_definition = fields.Text('指标定义')
index_type = fields.Selection([('kpi', 'KPI'),
('gs', 'GS'), ('no', '否决指标')],'指标类别')
index_compute = fields.Char('指标计算公式')
index_compute = fields.Text('指标计算公式')
compute_type = fields.Selection([('bad_index', '反向指标'),
('good_index', '正向指标'),
('two_index', '双向指标'),],'计算类别')
@@ -21,7 +21,7 @@ class YuthonIndexManagement(models.Model):
yuthon_company = fields.Selection([('thtz', '集团本部'), ('thwg', '天河物管'),
('thlc', '天河粮储')], string="所属公司")
department_ids = fields.Many2many("hr.department", string="指标来源")
in_charge_role_id = fields.Many2one('soong.user.role', string='角色')
in_charge_role_id = fields.Many2one('soong.user.role', string='角色', domain=[('user_type', '!=', 'lv_role')])
employee_ids = fields.Many2many('hr.employee', string='人员范围')
start_index_time = fields.Date(string='生效时间', default=fields.Date.today())
end_index_time = fields.Date(string='失效时间')
@@ -0,0 +1,9 @@
from odoo import models, fields, api, exceptions, _
class YuthonDepartmentalResponsible(models.Model):
_name = 'yuthon.departmental.responsible'
_description = '本部门责任书'
name = fields.Char(string='责任书名称')
@@ -1,10 +1,12 @@
from odoo import models, fields, api, exceptions, _
from datetime import datetime
import datetime
class YuthonDutyManagement(models.Model):
_name = 'yuthon.duty.management'
_description = "组织绩效"
_rec_name = 'name'
_inherit = ['soong.workflow.mixin']
name = fields.Char('标题')
cycle = fields.Selection([('monthly', '月度'),
@@ -12,13 +14,18 @@ class YuthonDutyManagement(models.Model):
('up_half', '上半年'),
('down_half', '下半年'),
('year', '年度'), ], '周期', required=True)
select_time = fields.Selection([('January', '一月'), ('February', '二月'), ('March', '三月'), ('April', '四月'),
('May', '五月'), ('June', '六月'), ('July', '七月'), ('July', '八月'),
('September', '九月'), ('October', '十月'), ('November', '十一月'), ('December', '十二月')
, ('half', '上半年'), ('later', '下半年'), ('year', '年度')], string='月份',
default=lambda self: self._get_default_month())
select_quarter = fields.Selection([('one', '第一季度'), ('two', '第二季度'), ('three', '第三季度'), ('four', '第四季度')]
, string='季度')
yuthon_company = fields.Selection([('thtz', '集团本部'), ('thwg', '天河物管'),
('thlc', '天河粮储')], string="所属公司")
department_id = fields.Many2one("hr.department", string="部门", required=True)
department_id = fields.Many2one("hr.department", string="被考核部门", required=True)
start_index_time = fields.Date('指标生效时间')
end_index_time = fields.Date('指标失效时间')
users_role_ids = fields.Many2many('soong.user.role', string='被考核角色')
users_ids = fields.Many2many('hr.employee', string='被考核人员')
total_weights = fields.Float('总权重')
# 绩效考核
performance_kpi_ids = fields.One2many('yuthon.kpi.line', 'performance_kpi_id', string="KPI")
@@ -45,16 +52,35 @@ class YuthonDutyManagement(models.Model):
})
return performance_records
@api.model
def _get_default_month(self):
current_month = datetime.datetime.now().strftime("%B")
month_mapping_cn = {
"一月": "January",
"二月": "February",
"三月": "March",
"四月": "April",
"五月": "May",
"六月": "June",
"七月": "July",
"八月": "August",
"九月": "September",
"十月": "October",
"十一月": "November",
"十二月": "December",
}
return month_mapping_cn.get(current_month)
@api.model
def _get_assessment_time_options(self):
current_year = int(self.assessment_time) if self.assessment_time else datetime.now().year
current_year = int(self.assessment_time) if self.assessment_time else datetime.datetime.now().year
return [(str(year), str(year)) for year in range(current_year, current_year + 2)]
assessment_time = fields.Selection(
selection='_get_assessment_time_options',
string='考核时间',
string='考核周期',
required=True,
default=lambda self: str(datetime.now().year)
default=lambda self: str(datetime.datetime.now().year)
)
@api.model
@@ -20,7 +20,7 @@ class YuthonEmployeeApproval(models.Model):
change_employee_library_ids = fields.One2many("yuthon.index.employee",'change_employee_library_id',string="员工指标库库变更明细")
new_change_employee_library_ids = fields.One2many("new.employee.library.line",'new_change_employee_library_id',string="新员工指标库变更明细")
users_role_ids = fields.Many2many('soong.user.role', string='被考核角色')
users_role_ids = fields.Many2many('soong.user.role', string='被考核角色', domain=[('user_type', '!=', 'lv_role')])
@api.onchange('change_employee_library_ids')
def _onchange_change_employee_library_ids(self):
@@ -43,7 +43,7 @@ class NewEmployeeLibraryLine(models.Model):
new_change_employee_library_id = fields.Many2one('yuthon.employee.approval', string='关联员工指标库变更')
new_users_role_ids = fields.Many2many('soong.user.role', string='角色')
new_users_role_ids = fields.Many2many('soong.user.role', string='角色', domain=[('user_type', '!=', 'lv_role')])
new_department_ids = fields.Many2many('hr.department', string='部门')
new_employee_ids = fields.Many2many('hr.employee', string='人员')
new_dimension = fields.Char('评价维度', required=True)
@@ -64,7 +64,7 @@ class YuthonRoleDetailLines(models.Model):
role_id = fields.Many2one('yuthon.employee.performance', string="关联员工绩效(考核任务)")
organization_id = fields.Many2one('yuthon.duty.management', string='组织绩效考核角色明细行')
in_charge_role_id = fields.Many2one('soong.user.role', string='角色')
in_charge_role_id = fields.Many2one('soong.user.role', string='角色', domain=[('user_type', '!=', 'lv_role')])
employee_ids = fields.Many2many('hr.employee', string='人员', compute='_compute_employee_ids', store=True)
weight = fields.Float(string="权重" )
@@ -11,7 +11,7 @@ class YuthonIndexEmployee(models.Model):
score_range_on = fields.Float(string='分值范围')
score_range_off = fields.Float(string='分值范围')
description_score = fields.Text(string='分值说明')
in_charge_role_id = fields.Many2one('soong.user.role', string='角色')
in_charge_role_id = fields.Many2one('soong.user.role', string='角色', domain=[('user_type', '!=', 'lv_role')])
employee_ids = fields.Many2many('hr.employee', string='人员范围')
department_ids = fields.Many2many('hr.department', string='部门')
yuthon_company = fields.Selection([('thtz', '集团本部'), ('thwg', '天河物管'),
@@ -0,0 +1,11 @@
from odoo import models, fields, api, exceptions, _
class YuthonPersonalLogs(models.Model):
_name = 'yuthon.personal.logs'
_description = '个人日志表'
name = fields.Char(string='标题', required=True)
matters = fields.Text(string='事项')
time = fields.Datetime(string='时间')
comprehensive_exchange = fields.Text(string='当月总汇')
@@ -1,6 +1,7 @@
from odoo import models, fields, api, exceptions, _
import datetime
class YuthonPlanManagement(models.Model):
_name = 'yuthon.plan.management'
_description = "个人工作任务"
@@ -8,9 +9,9 @@ class YuthonPlanManagement(models.Model):
name = fields.Char('标题')
select_time = fields.Selection([('January', '一月'), ('February', '二月'), ('March', '三月'), ('April', '四月'),
('May','五月'), ('June','六月'), ('July','七月'), ('August','八月'),
('May', '五月'), ('June', '六月'), ('July', '七月'), ('July', '八月'),
('September', '九月'), ('October', '十月'), ('November', '十一月'), ('December', '十二月')
,('half','上半年'), ('later','下半年')],string='选择时间')
,('half', '上半年'), ('later', '下半年'), ('year', '年度')], string='选择时间', default=lambda self: self._get_default_month())
yuthon_company = fields.Selection([('thtz', '集团本部'), ('thwg', '天河物管'),
('thlc', '天河粮储')], string="所属公司")
work_tasks_line_ids = fields.One2many('yuthon.work.tasks.line','plan_id',string='工作任务明细')
@@ -27,16 +28,34 @@ class YuthonPlanManagement(models.Model):
}))
self.plan_management_ids = index_list
@api.model
def _get_default_month(self):
current_month = datetime.datetime.now().strftime("%B") # 获取当前月份的英文名称
month_mapping_cn = {
"一月": "January",
"二月": "February",
"三月": "March",
"四月": "April",
"五月": "May",
"六月": "June",
"七月": "July",
"八月": "August",
"九月": "September",
"十月": "October",
"十一月": "November",
"十二月": "December",
}
return month_mapping_cn.get(current_month)
class YuthonWorkTasksLine(models.Model):
_name = 'yuthon.work.tasks.line'
_description = "工作任务明细"
plan_id = fields.Many2one('yuthon.plan.management','关联个人工作任务')
select_time = fields.Selection(related='plan_id.select_time',string='选择时间')
task_type = fields.Selection([('kpi', 'KPI'),
('gs', 'GS'), ('no', '否决指标')],string='任务类型')
task_name = fields.Many2one('yuthon.index.management',string='任务名称')
plan = fields.Char('计划安排及具体措施行动')
task_type = fields.Selection(related='task_id.index_type',string='任务类型')
task_id = fields.Many2one('yuthon.index.management',string='任务名称')
plan = fields.Char(related='task_id.compute_act',string='计划安排及具体措施行动')
goal = fields.Text('目标',help="质量、数量、成本等方面要求")
resource_requirements = fields.Text('资源需求')
summarize = fields.Text('完成情况总结')
@@ -47,7 +66,9 @@ class YuthonPlanManagementLine(models.Model):
_description = "个人工作任务明细"
plan_id = fields.Many2one('yuthon.plan.management', '关联个人工作任务')
task_type = fields.Selection([('kpi', 'KPI'),
select_time = fields.Selection(related='plan_id.select_time', string='选择时间')
sequence = fields.Integer('序号')
tasks_type = fields.Selection([('kpi', 'KPI'),
('gs', 'GS'), ('no', '否决指标')], string='任务类型')
goal = fields.Text('目标', help="质量、数量、成本等方面要求")
@@ -26,3 +26,5 @@ access_new_kpi_duty_approval,new_kpi_duty_approval,model_new_kpi_duty_approval,b
access_new_gs_duty_approval,new_gs_duty_approval,model_new_gs_duty_approval,base.group_user,1,1,1,1
access_yuthon_work_tasks_line,yuthon_work_tasks_line,model_yuthon_work_tasks_line,base.group_user,1,1,1,1
access_yuthon_plan_management_line,yuthon_plan_management_line,model_yuthon_plan_management_line,base.group_user,1,1,1,1
access_yuthon_personal_logs,yuthon_personal_logs,model_yuthon_personal_logs,base.group_user,1,1,1,1
access_yuthon_departmental_responsible,yuthon_departmental_responsible,model_yuthon_departmental_responsible,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
26 access_new_gs_duty_approval new_gs_duty_approval model_new_gs_duty_approval base.group_user 1 1 1 1
27 access_yuthon_work_tasks_line yuthon_work_tasks_line model_yuthon_work_tasks_line base.group_user 1 1 1 1
28 access_yuthon_plan_management_line yuthon_plan_management_line model_yuthon_plan_management_line base.group_user 1 1 1 1
29 access_yuthon_personal_logs yuthon_personal_logs model_yuthon_personal_logs base.group_user 1 1 1 1
30 access_yuthon_departmental_responsible yuthon_departmental_responsible model_yuthon_departmental_responsible base.group_user 1 1 1 1
@@ -0,0 +1,49 @@
<!--<?xml version="1.0" encoding="utf-8"?>-->
<!--<odoo>-->
<!-- <data>-->
<!-- <record id="module_category_yuthon_performance" model="ir.module.category">-->
<!-- <field name="name">绩效权限</field>-->
<!-- </record>-->
<!-- <record id="group_yuthon_performance_tt_user" model="res.groups">-->
<!-- <field name="name">天投绩效用户</field>-->
<!-- <field name="category_id" ref="module_category_yuthon_performance"/>-->
<!-- </record>-->
<!-- <record id="group_yuthon_performance_tt_manager" model="res.groups">-->
<!-- <field name="name">天投绩效管理员</field>-->
<!-- <field name="category_id" ref="module_category_soong_workflow"/>-->
<!-- <field name="implied_ids" eval="[(4, ref('group_yuthon_performance_tt_user'))]"/>-->
<!-- <field name="users" eval="[(4, ref('base.user_admin'))]"/>-->
<!-- </record>-->
<!-- <record id="group_yuthon_performance_lc_user" model="res.groups">-->
<!-- <field name="name">粮储绩效用户</field>-->
<!-- <field name="category_id" ref="module_category_yuthon_performance"/>-->
<!-- </record>-->
<!-- <record id="group_yuthon_performance_lc_manager" model="res.groups">-->
<!-- <field name="name">粮储绩效管理员</field>-->
<!-- <field name="category_id" ref="module_category_soong_workflow"/>-->
<!-- <field name="implied_ids" eval="[(4, ref('group_yuthon_performance_lc_user'))]"/>-->
<!-- <field name="users" eval="[(4, ref('base.user_admin'))]"/>-->
<!-- </record>-->
<!-- <record id="group_yuthon_performance_wg_user" model="res.groups">-->
<!-- <field name="name">物管绩效用户</field>-->
<!-- <field name="category_id" ref="module_category_yuthon_performance"/>-->
<!-- </record>-->
<!-- <record id="group_yuthon_performance_wg_manager" model="res.groups">-->
<!-- <field name="name">物管绩效管理员</field>-->
<!-- <field name="category_id" ref="module_category_yuthon_performance"/>-->
<!-- <field name="implied_ids" eval="[(4, ref('group_yuthon_performance_wg_user'))]"/>-->
<!-- <field name="users" eval="[(4, ref('base.user_admin'))]"/>-->
<!-- </record>-->
<!-- &lt;!&ndash; Manager组的记录规则,允许查看所有数据 &ndash;&gt;-->
<!-- <record id="rule_yuthon_performance_manager" model="ir.rule">-->
<!-- <field name="name">Manager: 访问所有数据</field>-->
<!-- <field name="model_id" ref="model_soong_workflow"/>-->
<!-- <field name="groups" eval="[(4, ref('group_soong_workflow_manager'))]"/>-->
<!-- <field name="domain_force">[(1,'=',1)]</field>-->
<!-- <field name="perm_read" eval="True"/>-->
<!-- <field name="perm_write" eval="True"/>-->
<!-- <field name="perm_create" eval="True"/>-->
<!-- <field name="perm_unlink" eval="True"/>-->
<!-- </record>-->
<!-- </data>-->
<!--</odoo>-->
@@ -43,14 +43,13 @@
<group col="4">
<group>
<field name="sequence"/>
<field name="employee_ids" widget="many2many_tags"/>
<field name="dimension"/>
<field name="index_type"/>
<field name="check_norm"/>
</group>
<group>
<field name="compute_type"/>
<field name="department_ids" widget="many2many_tags"/>
<field name="employee_ids" widget="many2many_tags"/>
<field name="index_type"/>
</group>
<group>
<field name="yuthon_company"/>
@@ -59,11 +58,12 @@
</group>
<group>
<field name="end_index_time"/>
<field name="index_compute"/>
<field name="development_goals"/>
</group>
</group>
<group>
<field name="index_compute"/>
<field name="check_norm"/>
<field name="index_definition"/>
</group>
</sheet>
@@ -0,0 +1,30 @@
<odoo>
<!-- Views -->
<record id ="view_yuthon_departmental_responsible_tree" model="ir.ui.view">
<field name="name">yuthon.departmental.responsible.tree</field>
<field name="model">yuthon.departmental.responsible</field>
<field name="arch" type="xml">
<tree string="本部门责任书">
<field name="name"/>
</tree>
</field>
</record>
<record id ="view_yuthon_departmental_responsible_form" model="ir.ui.view">
<field name="name">yuthon.departmental.responsible.form</field>
<field name="model">yuthon.departmental.responsible</field>
<field name="arch" type="xml">
<form string="本部门责任书">
<sheet>
<group>
<field name="name"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_yuthon_departmental_responsible" model="ir.actions.act_window">
<field name="name">本部门责任书</field>
<field name="res_model">yuthon.departmental.responsible</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -14,7 +14,6 @@
</tree>
</field>
</record>
<record id="yuthon_duty_management_form" model="ir.ui.view">
<field name="name">yuthon.duty.management.form</field>
<field name="model">yuthon.duty.management</field>
@@ -31,17 +30,16 @@
<group>
<field name="yuthon_company"/>
<field name="department_id"/>
<field name="users_role_ids" widget="many2many_tags"/>
<field name="users_ids" widget="many2many_tags" invisible="1"/>
<field name="total_weights"/>
</group>
<group>
<field name="assessment_time"/>
<field name="cycle"/>
<field name="total_weights"/>
<field name="select_time" invisible="cycle != 'monthly'"/>
<field name="select_quarter" invisible="cycle != 'quarter'"/>
</group>
</group>
<notebook>
<page string="组织绩效(KPI)">
<group string="组织绩效(kpi)">
<field name="performance_kpi_ids" string=" ">
<tree editable="bottom">
<field name="performance_kpi_id" column_invisible="1"/>
@@ -54,8 +52,8 @@
<field name="year_top_limit"/>
</tree>
</field>
</page>
<page string="组织绩效(GS)">
</group>
<group string="组织绩效(GS)">
<field name="performance_gs_ids" string=" ">
<tree editable="bottom">
<field name="performance_gs_id" column_invisible="1"/>
@@ -70,8 +68,7 @@
<field name="quality_objectives2"/>
</tree>
</field>
</page>
</notebook>
</group>
<group string="考核角色详情">
<field name="organization_ids" string=" ">
<tree editable="bottom">
@@ -0,0 +1,36 @@
<odoo>
<!-- Views -->
<record id ="view_yuthon_personal_logs_tree" model="ir.ui.view">
<field name="name">yuthon.personal.logs.tree</field>
<field name="model">yuthon.personal.logs</field>
<field name="arch" type="xml">
<tree string="个人日志表">
<field name="name"/>
<field name="matters"/>
<field name="time"/>
<field name="comprehensive_exchange"/>
</tree>
</field>
</record>
<record id="view_yuthon_personal_logs_form" model="ir.ui.view">
<field name="name">yuthon.personal.logs.form</field>
<field name="model">yuthon.personal.logs</field>
<field name="arch" type="xml">
<form string="个人日志表">
<sheet>
<group>
<field name="name"/>
<field name="matters"/>
<field name="time"/>
<field name="comprehensive_exchange"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_yuthon_personal_logs" model="ir.actions.act_window">
<field name="name">个人日志表</field>
<field name="res_model">yuthon.personal.logs</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -35,8 +35,9 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'January')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="select_time"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -48,8 +49,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'February')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -61,8 +62,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'March')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -74,8 +75,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'April')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -87,8 +88,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'May')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -100,8 +101,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'June')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -113,8 +114,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'July')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -126,8 +127,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'August')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -139,8 +140,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'September')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -152,8 +153,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'October')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -165,8 +166,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'November')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -178,8 +179,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'December')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -191,8 +192,8 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'half')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -204,8 +205,21 @@
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'later')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
<field name="summarize"/>
</tree>
</field>
</page>
<page string="年度计划详情" invisible="select_time != 'year'">
<field name="work_tasks_line_ids" domain="[('select_time', '=', 'year')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_id"/>
<field name="task_type"/>
<field name="task_name"/>
<field name="plan"/>
<field name="goal"/>
<field name="resource_requirements"/>
@@ -214,11 +228,152 @@
</field>
</page>
</notebook>
<group string="个人工作任务">
<field name="plan_management_ids" string=" ">
<group string="个人工作任务" invisible="select_time != 'January'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'January')]">
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="task_type"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'February'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'February')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'March'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'March')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'April'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'April')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'May'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'May')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'June'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'June')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'July'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'July')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'July'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'July')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'July'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'July')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'October'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'October')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'November'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'November')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'December'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'December')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'half'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'half')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'later'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'later')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
</group>
<group string="个人工作任务" invisible="select_time != 'year'">
<field name="plan_management_ids" string=" " domain="[('select_time', '=', 'year')]" >
<tree editable="bottom">
<field name="plan_id" column_invisible="1"/>
<field name="sequence"/>
<field name="tasks_type"/>
<field name="goal"/>
</tree>
</field>
+33 -3
View File
@@ -62,10 +62,20 @@
name="个人工作任务"
sequence="5"
action="yuthon_performance.yuthon_plan_management_action1"/>
<menuitem id="action_yuthon_personal_logs_board1"
parent="yuthon_performance_menu_tt_root"
name="个人日志表"
sequence="6"
action="yuthon_performance.action_yuthon_personal_logs"/>
<menuitem id="yuthon_departmental_responsible_board1"
parent="yuthon_performance_menu_tt_root"
name="本部门绩效责任书"
sequence="9"
action="yuthon_performance.action_yuthon_departmental_responsible"/>
<menuitem id="yuthon_score_root_board1"
parent="yuthon_performance_menu_tt_root"
name="评分"
sequence="7"/>
sequence="15"/>
<menuitem id="yuthon_score_form_menu_board1"
parent="yuthon_score_root_board1"
name="组织绩效评分表"
@@ -144,10 +154,20 @@
name="个人工作任务"
sequence="5"
action="yuthon_performance.yuthon_plan_management_action2"/>
<menuitem id="action_yuthon_personal_logs_board2"
parent="yuthon_performance_menu_lc_config"
name="个人日志表"
sequence="6"
action="yuthon_performance.action_yuthon_personal_logs"/>
<menuitem id="yuthon_departmental_responsible_board2"
parent="yuthon_performance_menu_lc_config"
name="本部门绩效责任书"
sequence="9"
action="yuthon_performance.action_yuthon_departmental_responsible"/>
<menuitem id="yuthon_score_root_board2"
parent="yuthon_performance_menu_lc_config"
name="评分"
sequence="7"/>
sequence="15"/>
<menuitem id="yuthon_score_form_menu_board2"
parent="yuthon_score_root_board2"
name="组织绩效评分表"
@@ -224,10 +244,20 @@
name="个人工作任务"
sequence="5"
action="yuthon_performance.yuthon_plan_management_action3"/>
<menuitem id="action_yuthon_personal_logs_board3"
parent="yuthon_performance_menu_wg_config"
name="个人日志表"
sequence="6"
action="yuthon_performance.action_yuthon_personal_logs"/>
<menuitem id="yuthon_departmental_responsible_board3"
parent="yuthon_performance_menu_wg_config"
name="本部门绩效责任书"
sequence="9"
action="yuthon_performance.action_yuthon_departmental_responsible"/>
<menuitem id="yuthon_score_root_board3"
parent="yuthon_performance_menu_wg_config"
name="评分"
sequence="7"/>
sequence="15"/>
<menuitem id="yuthon_score_form_menu_board3"
parent="yuthon_score_root_board3"
name="组织绩效评分表"