添加功能
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
'report/meet_check_report.xml',
|
||||
'wizard/room_booking_sign_wizard.xml',
|
||||
'wizard/room_booking_partner_create_wizard.xml',
|
||||
'wizard/room_select_range_wizard_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
'demo/room_office.xml',
|
||||
|
||||
+23
-26
@@ -35,10 +35,7 @@ class RoomBooking(models.Model):
|
||||
meeting_type = fields.Selection([('up', '线上'), ('down', '线下'), ('exterior', '外部')], default='down', string="会议形式",
|
||||
required=True)
|
||||
meeting_type_id = fields.Many2one('room.meeting.type', string="会议类型",)
|
||||
department_ids = fields.Many2many('hr.department', string='部门范围')
|
||||
employee_ids = fields.Many2many('hr.employee', string='人员范围')
|
||||
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
|
||||
room_users_ids = fields.Many2many('res.users', string="会议参加人员", compute="compute_room_users_ids", store=True)
|
||||
room_users_ids = fields.Many2many('res.users', string="会议参加人员",store=True)
|
||||
other_company_id = fields.Many2one('res.partner', string="外部公司")
|
||||
other_company_user_ids = fields.One2many(related="other_company_id.child_ids", string="其他人员")
|
||||
|
||||
@@ -104,28 +101,28 @@ class RoomBooking(models.Model):
|
||||
html_content = file.read().replace('姓名', html_select)
|
||||
self.write({'meeting_data': html_content})
|
||||
|
||||
@api.depends('department_ids', 'employee_ids', 'users_role_ids')
|
||||
def compute_room_users_ids(self):
|
||||
department_users_list = users_role_list = []
|
||||
for users in self:
|
||||
if users.department_ids:
|
||||
# 查看是否下级部门
|
||||
for depart in users.department_ids:
|
||||
department_users_data = users.env['hr.employee'].search([('department_id', '=', depart.id)])
|
||||
department_users_list = [de.user_id.id for de in department_users_data]
|
||||
if depart.child_ids:
|
||||
for child in depart.child_ids:
|
||||
department_child_users_data = users.env['hr.employee'].search(
|
||||
[('department_id', '=', child.id)])
|
||||
department_users_list += [de.user_id.id for de in department_child_users_data]
|
||||
employee_users_list = users.employee_ids.user_id.ids
|
||||
if users.users_role_ids:
|
||||
for user_id in users.users_role_ids:
|
||||
user_role_data = users.env['hr.employee'].search(['|', ('user_role_id', '=', user_id.id), ('user_role_ids', '=', user_id.id)])
|
||||
users_role_list = [ro.user_id.id for ro in user_role_data]
|
||||
publish_user_list = department_users_list + employee_users_list + users_role_list
|
||||
false_none_list = [x for x in publish_user_list if x != False]
|
||||
users.room_users_ids = [(6, 0, list(set(false_none_list)))]
|
||||
# @api.depends('department_ids', 'employee_ids', 'users_role_ids')
|
||||
# def compute_room_users_ids(self):
|
||||
# department_users_list = users_role_list = []
|
||||
# for users in self:
|
||||
# if users.department_ids:
|
||||
# # 查看是否下级部门
|
||||
# for depart in users.department_ids:
|
||||
# department_users_data = users.env['hr.employee'].search([('department_id', '=', depart.id)])
|
||||
# department_users_list = [de.user_id.id for de in department_users_data]
|
||||
# if depart.child_ids:
|
||||
# for child in depart.child_ids:
|
||||
# department_child_users_data = users.env['hr.employee'].search(
|
||||
# [('department_id', '=', child.id)])
|
||||
# department_users_list += [de.user_id.id for de in department_child_users_data]
|
||||
# employee_users_list = users.employee_ids.user_id.ids
|
||||
# if users.users_role_ids:
|
||||
# for user_id in users.users_role_ids:
|
||||
# user_role_data = users.env['hr.employee'].search(['|', ('user_role_id', '=', user_id.id), ('user_role_ids', '=', user_id.id)])
|
||||
# users_role_list = [ro.user_id.id for ro in user_role_data]
|
||||
# publish_user_list = department_users_list + employee_users_list + users_role_list
|
||||
# false_none_list = [x for x in publish_user_list if x != False]
|
||||
# users.room_users_ids = [(6, 0, list(set(false_none_list)))]
|
||||
|
||||
@api.onchange('department_ids', 'employee_ids', 'users_role_ids', 'room_users_ids')
|
||||
def onchange_partner_ids(self):
|
||||
|
||||
@@ -9,3 +9,4 @@ access_room_meeting_sign,access.room.meeting.sign,model_room_meeting_sign,base.g
|
||||
access_room_meeting_type,access.room.meeting.type,model_room_meeting_type,base.group_user,1,1,1,1
|
||||
access_room_booking_sign_wizard,room.booking.sign.wizard,model_room_booking_sign_wizard,,1,1,1,1
|
||||
access_room_booking_partner_create_wizard,room.booking.partner.create.wizard,model_room_booking_partner_create_wizard,,1,1,1,1
|
||||
access_room_select_range_wizard,room_select_range_wizard,model_room_select_range_wizard,base.group_user,1,1,1,1
|
||||
|
||||
|
@@ -154,10 +154,7 @@
|
||||
</group>
|
||||
<group name="meeting">
|
||||
<group>
|
||||
<field name="department_ids" widget="many2many_tags"/>
|
||||
<field name="employee_ids" widget="many2many_tags"/>
|
||||
<field name="users_role_ids" widget="many2many_tags"/>
|
||||
<field name="room_users_ids" widget="many2many_tags" readonly="1"/>
|
||||
<field name="room_users_ids" widget="many2many_tags"/>
|
||||
<field name="partner_ids" widget="many2many_tags" force_save="1" invisible="1"/>
|
||||
<field name="other_company_user_ids" widget="many2many_tags" readonly="1"/>
|
||||
<field name="is_notice"/>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
from . import room_booking_sign_wizard
|
||||
from . import room_booking_partner_create_wizard
|
||||
|
||||
from . import room_select_range_wizard
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
from odoo import api, fields, models, tools
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class RoomSelectRangeWizard(models.Model):
|
||||
_name = 'room.select.range.wizard'
|
||||
_description = '选择范围弹窗'
|
||||
|
||||
department_ids = fields.Many2many('hr.department', string='部门范围')
|
||||
employee_ids = fields.Many2many('hr.employee', string='人员范围')
|
||||
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
|
||||
room_booking_id = fields.Many2one('room.booking')
|
||||
room_users_ids = fields.Many2many('res.users', string="会议参加人员", compute="compute_room_users_ids", store=True)
|
||||
|
||||
@api.depends('department_ids', 'employee_ids', 'users_role_ids')
|
||||
def compute_room_users_ids(self):
|
||||
department_users_list = users_role_list = []
|
||||
for users in self:
|
||||
if users.department_ids:
|
||||
# 查看是否下级部门
|
||||
for depart in users.department_ids:
|
||||
department_users_data = users.env['hr.employee'].search([('department_id', '=', depart.id)])
|
||||
department_users_list = [de.user_id.id for de in department_users_data]
|
||||
if depart.child_ids:
|
||||
for child in depart.child_ids:
|
||||
department_child_users_data = users.env['hr.employee'].search(
|
||||
[('department_id', '=', child.id)])
|
||||
department_users_list += [de.user_id.id for de in department_child_users_data]
|
||||
employee_users_list = users.employee_ids.user_id.ids
|
||||
if users.users_role_ids:
|
||||
for user_id in users.users_role_ids:
|
||||
user_role_data = users.env['hr.employee'].search(
|
||||
['|', ('user_role_id', '=', user_id.id), ('user_role_ids', '=', user_id.id)])
|
||||
users_role_list = [ro.user_id.id for ro in user_role_data]
|
||||
publish_user_list = department_users_list + employee_users_list + users_role_list
|
||||
false_none_list = [x for x in publish_user_list if x != False]
|
||||
users.room_users_ids = [(6, 0, list(set(false_none_list)))]
|
||||
|
||||
def action_select_values(self):
|
||||
self.ensure_one()
|
||||
self.room_booking_id.write({
|
||||
'room_users_ids': [(6, 0, self.room_users_ids.ids)],
|
||||
})
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="view_issue_select_range_wizard_form" model="ir.ui.view">
|
||||
<field name="name">issue.select.range.wizard.form</field>
|
||||
<field name="model">issue.select.range.wizard</field>
|
||||
<record id="view_room_select_range_wizard_form" model="ir.ui.view">
|
||||
<field name="name">room.select.range.wizard.form</field>
|
||||
<field name="model">room.select.range.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<group col="2">
|
||||
@@ -1,4 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import models
|
||||
from . import wizard
|
||||
@@ -20,7 +20,6 @@
|
||||
'views/inherit_room_booking.xml',
|
||||
'views/issue_approval_decision_views.xml',
|
||||
'views/issue_approval_decision_type_views.xml',
|
||||
'wizard/issue_select_range_wizard_views.xml',
|
||||
'views/menus.xml',
|
||||
],
|
||||
'assets': {
|
||||
|
||||
@@ -7,14 +7,14 @@ class RoomBooking(models.Model):
|
||||
|
||||
room_booking_library_ids = fields.One2many('issue.library', 'room_booking_id')
|
||||
decision_results = fields.Selection([('agree', '通过'), ('disagree', '未通过')], string="决策结果")
|
||||
select_range_id = fields.Many2one('issue.select.range.wizard', string="选择人员范围")
|
||||
select_range_id = fields.Many2one('room.select.range.wizard', string="选择人员范围")
|
||||
|
||||
def open_select_range_wizard(self):
|
||||
return {
|
||||
'name': '选择范围',
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'issue.select.range.wizard',
|
||||
'res_model': 'room.select.range.wizard',
|
||||
'target': 'new',
|
||||
'context': {'default_room_booking_id': self.id},
|
||||
}
|
||||
|
||||
@@ -5,5 +5,4 @@ access_issue_approval_decision,issue_approval_decision,model_issue_approval_deci
|
||||
access_issue_approval_decision_type,issue_approval_decision_type,model_issue_approval_decision_type,base.group_user,1,1,1,1
|
||||
access_issue_library_approval_line,issue_library_approval_line,model_issue_library_approval_line,base.group_user,1,1,1,1
|
||||
access_issue_approval,issue_approval,model_issue_approval,base.group_user,1,1,1,1
|
||||
access_issue_approval_line,issue_approval_line,model_issue_approval_line,base.group_user,1,1,1,1
|
||||
access_issue_select_range_wizard,issue_select_range_wizard,model_issue_select_range_wizard,base.group_user,1,1,1,1
|
||||
access_issue_approval_line,issue_approval_line,model_issue_approval_line,base.group_user,1,1,1,1
|
||||
|
@@ -19,15 +19,6 @@
|
||||
</field>
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='department_ids']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='employee_ids']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='users_role_ids']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//group[@name='meeting']" position="before">
|
||||
<div>
|
||||
<button name="open_select_range_wizard" type="object">参与范围</button>
|
||||
|
||||
@@ -218,23 +218,6 @@
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- 已上会议题库 -->
|
||||
<record id="view_issue_library_tree3" model="ir.ui.view">
|
||||
<field name="name">issue.library.tree</field>
|
||||
<field name="model">issue.library</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="议题库">
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="meeting_name"/>
|
||||
<field name="meeting_place"/>
|
||||
<field name="creart_datetime"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="issue_library_action2" model="ir.actions.act_window">
|
||||
<field name="name">议题库</field>
|
||||
<field name="res_model">issue.library</field>
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
from . import issue_select_range_wizard
|
||||
@@ -1,20 +0,0 @@
|
||||
from odoo import api, fields, models, tools
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class IssueSelectRangeWizard(models.Model):
|
||||
_name = 'issue.select.range.wizard'
|
||||
_description = '选择范围弹窗'
|
||||
|
||||
department_ids = fields.Many2many('hr.department', string='部门范围')
|
||||
employee_ids = fields.Many2many('hr.employee', string='人员范围')
|
||||
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
|
||||
room_booking_id = fields.Many2one('room.booking')
|
||||
|
||||
def action_select_values(self):
|
||||
self.ensure_one()
|
||||
self.room_booking_id.write({
|
||||
'department_ids': [(6, 0, self.department_ids.ids)],
|
||||
'employee_ids': [(6, 0, self.employee_ids.ids)],
|
||||
'users_role_ids': [(6, 0, self.users_role_ids.ids)],
|
||||
})
|
||||
Reference in New Issue
Block a user