Merge pull request !2636 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-05-03 08:31:44 +00:00
committed by Gitee
24 changed files with 188 additions and 214 deletions
-1
View File
@@ -70,7 +70,6 @@ class Home(http.Controller):
def web_room_partner_create(self, room_id=None, **kw):
ensure_db()
values = {k: v for k, v in request.params.items()}
_logger.info("Initial values: %s", values)
if not (room_id or values['room_id']):
values['error'] = "缺少会议号"
response = request.render('room.partner_create_form_room', values)
+7
View File
@@ -36,6 +36,7 @@ class RoomBooking(models.Model):
required=True)
meeting_type_id = fields.Many2one('room.meeting.type', string="会议类型")
room_users_ids = fields.Many2many('res.users', string="出席人员")
room_users_names = fields.Char(string="出席人员char", compute="_compute_room_users", store=True)
other_company_id = fields.Many2one('res.partner', string="外部公司")
host = fields.Many2one('res.users', string="主持人")
stationed_group = fields.Boolean(string="驻组参会")
@@ -55,6 +56,12 @@ class RoomBooking(models.Model):
# 关联流程
relevancy_type = fields.Selection([('none', '无')], string="关联流程类型")
@api.depends('room_users_ids')
def _compute_room_users(self):
for i in self:
employee_list = [rec.name for rec in i.room_users_ids]
i.room_users_names = ','.join(employee_list)
@api.onchange('meeting_type_id')
def _onchange_meeting_type_id(self):
if self.meeting_type_id:
+7 -19
View File
@@ -32,6 +32,8 @@
string="Bookings"
plan="0">
<templates>
<field name="name"/>
<field name="room_users_names"/>
<div t-name="gantt-popover">
<div class="o_gantt_popover">
<ul class="ps-1 mb-0 list-unstyled">
@@ -44,18 +46,10 @@
<i class="fa fa-long-arrow-right" title="Until"/>
<t t-out="stop_datetime.toFormat(' f')"/>
</li>
<li>
<li>
<strong>参会人员:</strong>
<t t-out="room_users_names"/>
</li>
<li class="o_gantt_popover_content_item mt-2">
<strong>出席人员:</strong>
<t t-if="room_users_ids">
<t t-foreach="room_users_ids" t-as="user">
<t t-if="!loop.first">, </t>
<t t-out="user[1]"/>
</t>
</t>
</li>
</ul>
</div>
</div>
@@ -178,15 +172,9 @@
<group/>
<group/>
</group>
<group col="4">
<group>
<field name="room_users_ids" widget="many2many_tags"/>
</group>
<group>
<field name="other_company_user_ids" widget="many2many_tags" readonly="1"/>
</group>
<group/>
<group/>
<group>
<field name="room_users_ids" widget="many2many_tags"/>
<field name="other_company_user_ids" widget="many2many_tags" readonly="0"/>
</group>
<group col="5">
<group>
-5
View File
@@ -153,11 +153,6 @@
<div t-attf-class="clearfix oe_login_buttons text-center gap-1 d-grid mb-1">
<button type="submit" class="btn btn-primary">提交</button>
</div>
<t t-foreach="new_partner" t-as="p">
<label for="p_name" class="form-label">人员名称</label>
<input type="text" placeholder="名字" name="p_name" readonly="readonly" t-att-value="p.name" id="p_name" t-attf-class="form-control" />
</t>
</form>
</div>
</t>
+10 -9
View File
@@ -15,7 +15,7 @@ class YuthonUserRole(models.Model):
end_time = fields.Date(string="终止日期")
parent_id = fields.Many2one('soong.user.role', string='上级角色')
user_role_group_ids = fields.Many2many('soong.user.role.group', string='角色分组', index=True)
personnel_ids = fields.Many2many('hr.employee', string='在岗人员')
personnel_ids = fields.Many2many('hr.employee', string='在岗人员', store=True, index=True)
number_people = fields.Integer(string="在岗人数", compute='_compute_employee_ids')
personnel = fields.Text(string="在岗人员")
employee_ids = fields.One2many('hr.employee', 'user_role_id')
@@ -32,14 +32,6 @@ class YuthonUserRole(models.Model):
display_parts.append(f"({record.department_id.name})")
record.display_name = " ".join(display_parts)
def write(self, vals):
res = super(YuthonUserRole, self).write(vals)
if 'personnel_ids' in vals:
for record in self:
for personnel_id in record.personnel_ids:
personnel_id.write({'user_role_id': record.id})
return res
@api.depends('name')
def _compute_pinyin(self):
for employee in self:
@@ -61,6 +53,15 @@ class YuthonUserRole(models.Model):
if rec.personnel_ids:
rec.number_people = len(rec.personnel_ids)
@api.onchange('personnel_ids')
def _onchange_personnel_ids(self):
for record in self:
for personnel_id in record.personnel_ids:
employee = self.env['hr.employee'].search([('id', '=', personnel_id.id.origin)], limit=1)
if employee:
if self.id.origin != employee.user_role_id.id:
new_user_role_ids = employee.user_role_ids.ids + [self.id.origin]
employee.write({'user_role_ids': [(6, 0, new_user_role_ids)],})
class YuthonUserRoleGroup(models.Model):
_name = 'soong.user.role.group'
@@ -26,6 +26,7 @@ class SoongWorkflowLog(models.Model):
approval_state = fields.Selection([('0', '待办'), ('1', '办理中'), ('2', '已办结'), ('3', '结束')], string='审批状态', default='0')
comment = fields.Char(string="意见")
date_create = fields.Datetime(string="时间", default=lambda self: fields.Datetime.now())
active = fields.Boolean(string="归档", default=True)
@api.depends("workflow_id", "node_id", "node_btn_id")
def _compute_name(self):
@@ -289,6 +289,7 @@ class SoongWorkflowMixin(models.AbstractModel):
"target": "new",
"context": {
"default_res_id": self.id,
"default_code":self.code,
"default_res_model": self._name,
"default_log_ids": logs.ids,
"default_node_btn_id": btn_rec.id,
@@ -17,6 +17,7 @@
<field name="done_by"/>
<field name="lase_click_date"/>
<field name="comment"/>
<field name="active" column_invisible="1"/>
</tree>
</field>
</record>
@@ -115,7 +115,7 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">soong.workflow.record</field>
<field name="view_mode">tree,form,search</field>
<!-- <field name="domain">[("is_department_record", "=", True)]</field>-->
<field name="domain">[('reclaim_state', '=', False)]</field>
<field name="search_view_id" ref="soong_workflow_record_search"/>
</record>
<record id="soong_workflow_record_action_reclaim" model="ir.actions.act_window">
@@ -123,7 +123,7 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">soong.workflow.record</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('users_ids', 'in', [uid]), ('reclaim_state', '=', True)]</field>
<field name="domain">[('reclaim_state', '=', True)]</field>
<field name="search_view_id" ref="soong_workflow_record_search"/>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('soong_workflow.soong_workflow_record_tree_restore')})]"/>
@@ -15,11 +15,12 @@ class SoongWorkflowCommentWizard(models.TransientModel):
name = fields.Char(string="name")
res_model = fields.Char()
res_id = fields.Integer()
code = fields.Char()
log_ids = fields.Many2many(comodel_name="soong.workflow.log")
node_btn_id = fields.Many2one(comodel_name="soong.workflow.node.button")
node_btn_name = fields.Char(string="动作名称", related='node_btn_id.name')
user_id = fields.Many2one('res.users',string='用户',default=lambda self: self.env.user)
user_role_id = fields.Many2one('soong.user.role', string="角色", compute='_compute_user_role_id', store=True)
user_role_ids = fields.Many2many('soong.user.role', string="角色", compute='_compute_user_role_ids', store=True)
node_link_len = fields.Char(string="转交2")
is_supervising = fields.Boolean(string="是否督办")
comment_note_id = fields.Many2one('soong.note', string="常用意见", default='妥否,呈领导审批')
@@ -47,13 +48,13 @@ class SoongWorkflowCommentWizard(models.TransientModel):
if self.comment_note_id:
self.comment_note = self.comment_note_id.name
@api.depends('user_id.employee_id.user_role_id')
def _compute_user_role_id(self):
@api.depends('user_id.employee_ids.user_role_ids')
def _compute_user_role_ids(self):
for record in self:
if record.user_id and record.user_id.employee_ids:
record.user_role_id = record.user_id.employee_ids.user_role_id
if record.user_id:
record.user_role_ids = record.user_id.employee_ids.user_role_ids
else:
record.user_role_id = False
record.user_role_ids = False
@api.onchange('record_id')
def _onchange_record_id(self):
@@ -102,7 +103,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
'|', ('department_id', '=', record_id.department_id.id), ('department_ids', 'in', record_id.department_id.id), ('company_id', '=', self.env.user.company_id.id)]) # 不自动匹配
elif link_users_group_ids:
# 不自动匹配
employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', 'in', link_users_group_ids.user_role_ids.ids), ('user_role_ids', 'in', link_users_group_ids.user_role_ids.ids),])
employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', 'in', link_users_group_ids.user_role_ids.ids), ('user_role_ids', 'in', link_users_group_ids.user_role_ids.ids)])
# 自动匹配
employee_user_role_id = self.env['hr.employee'].search([('id', 'in', employee_user_role_ids.ids),
'|', ('department_id', '=', record_id.department_id.id),
@@ -135,6 +136,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
first_node = self.sudo().env["soong.workflow.log"].search([("model", "=", self.res_model), ("res_id", "=", self.res_id)])
if not now_record_obj:
self.sudo().env["soong.workflow.log"].create({
"code": self.code,
"model": self.res_model,
"res_id": self.res_id,
"node_id": self.node_btn_id.node_id.id if first_node else record_id.workflow_id.node_ids[0].id,
@@ -153,6 +155,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
next_node_id = record_id.workflow_id.node_ids.search([('name', 'ilike', self.trans_link_id.name),
('workflow_id', '=', record_id.workflow_id.id)])
self.sudo().env["soong.workflow.log"].create({
"code": self.code,
"model": self.res_model,
"res_id": self.res_id,
"node_id": next_node_id.id,
@@ -180,6 +183,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
"approval_state_copy": "0",
})
self.sudo().env["soong.workflow.log2"].create({
"code": self.code,
"model": self.res_model,
"res_id": self.res_id,
"node_id": self.node_btn_id.node_id.id,
@@ -210,6 +214,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
"node_btn_name": "1"})
# if not self.sudo().env["soong.workflow.log"].search([('node_id', '=', next_node_id.id)]):
self.sudo().env["soong.workflow.log"].create({
"code": self.code,
"model": self.res_model,
"res_id": self.res_id,
"node_id": next_node_id.id,
@@ -235,6 +240,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
"approval_state": "2",
"lase_click_date": fields.Datetime.now()})
self.sudo().env["soong.workflow.log"].create({
"code": self.code,
"model": self.res_model,
"res_id": self.res_id,
"node_id": record_id.workflow_id.node_ids[-1].id,
@@ -257,6 +263,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
"approval_state_copy": "0",
})
self.sudo().env["soong.workflow.log2"].create({
"code": self.code,
"model": self.res_model,
"res_id": self.res_id,
"node_id": self.node_btn_id.node_id.id,
@@ -9,10 +9,10 @@
<field name="arch" type="xml">
<form string="意见">
<group invisible="node_btn_name in ['分发', '结束', '收回']">
<field name="comment_note_id" required="node_btn_name not in ['结束', '收回']" domain="[('note_setting_id.users_role_ids', 'in', user_role_id)]"/>
<field name="comment_note_id" domain="[('note_setting_id.users_role_ids', 'in', user_role_ids)]"/>
<field name="comment_note" required="node_btn_name not in ['结束', '收回']"/>
<field name="user_id" invisible="1"/>
<field name="user_role_id" invisible="1"/>
<field name="user_role_ids" widget="many2many_tags" invisible="1"/>
<field name="node_btn_id" invisible="1"/>
<field name="node_btn_name" invisible="1"/>
<field name="node_link_len" invisible="1"/>
@@ -17,6 +17,17 @@ class SoongWorkflowRecordDeleteWizard(models.TransientModel):
def add_comment(self):
for record in self:
if record.name == "OK":
self.env["soong.workflow.record"].sudo().search([("id", "=", record.record_id.id)]).write({
"active": False
})
if record.record_id.reclaim_state == False:
self.env["soong.workflow.record"].sudo().search([("id", "=", record.record_id.id)]).write({
"reclaim_state": True
})
log_ids = self.env["soong.workflow.log"].sudo().search([("code", "=", record.record_id.code)])
for log_id in log_ids:
log_id.sudo().write({
"active": False
})
else:
self.env["soong.workflow.record"].sudo().search(
[("id", "=", record.record_id.id), ('reclaim_state', "=", True)]).write({
"active": False
})
@@ -5,9 +5,9 @@
text-overflow: clip !important; // 移除省略号(或直接不设置)
min-width: max-content !important; // 按内容撑开列宽(可选)
}
tr .o_data_cell {
white-space: pre-wrap !important;
}
//tr .o_data_cell {
// white-space: pre-wrap !important;
//}
}
}
+117 -105
View File
@@ -54,119 +54,131 @@
<field name="work_end" invisible="1"/>
<field name="custom_document_ids" widget="preview_many2many" options="{'show_select_btn': false}"/>
<field name="holiday_allowance"/>
<field name="is_hour"/>
<field name="is_day"/>
</group>
</group>
<group string="按天请假" invisible="not is_day"/>
<group>
<field name="is_day"/>
</group>
<group invisible="not is_day" col="2">
<group>
<!-- <field name="leave_ids" invisible="not is_day"-->
<!-- context="{-->
<!-- 'default_holiday_type': 'employee',-->
<!-- 'default_employee_id': employee_id,-->
<!-- 'holiday_status_id_default_request_unit': 'day'-->
<!-- }">-->
<field name="leave_ids" invisible="not is_day"
context="{
'default_holiday_type': 'employee',
'default_employee_id': employee_id,
}">
<tree editable="bottom">
<field name="employee_id" readonly="1" force_save="1" column_invisible="1"/>
<field name="state" column_invisible="True"/>
<field name="employee_company_id" column_invisible="True"/>
<field name="name" column_invisible="True"/>
<field name="holiday_type" column_invisible="True"/>
<field name="user_id" column_invisible="True"/>
<field name="batch_id" class="list_width2" column_invisible="True"/>
<field name="request_hour_from" column_invisible="True"/>
<field name="request_unit_hours" column_invisible="True"/>
<field name="holiday_status_id"
domain="[
'|',
('requires_allocation', '=', 'no'),
'&amp;',
('has_valid_allocation', '=', True),
'|',
('allows_negative', '=', True),
'&amp;',
('virtual_remaining_leaves', '&gt;', 0),
('allows_negative', '=', False),
]"
context="{'employee_id': employee_id}"
options="{'no_create': True, 'no_open': True, 'request_type': 'leave'}"
readonly="state in ['cancel', 'refuse', 'validate', 'validate1']"
width="300px"
/>
<!-- <field name="holiday_status_id"-->
<!-- domain="[-->
<!-- ('request_unit', '=', 'day'),-->
<!-- '|',-->
<!-- ('requires_allocation', '=', 'no'),-->
<!-- '&amp;',-->
<!-- ('has_valid_allocation', '=', True),-->
<!-- '|',-->
<!-- ('allows_negative', '=', True),-->
<!-- '&amp;',-->
<!-- ('virtual_remaining_leaves', '&gt;', 0),-->
<!-- ('allows_negative', '=', False),-->
<!-- ]"-->
<!-- context="{'employee_id': employee_id}"-->
<!-- options="{'no_create': True, 'no_open': True, 'request_type': 'leave'}"-->
<!-- readonly="state in ['cancel', 'refuse', 'validate', 'validate1']"-->
<!-- width="200px"-->
<!-- />-->
<field name="request_date_from" width="300px" string="开始日期"/>
<field name="request_date_to" width="300px" string="结束日期"/>
<field name="number_of_days_display" string="天" width="100px"/>
<field name="leave_documents_ids" widget="preview_many2many" options="{'preview_type': 'button', 'preview_string': ' '}" string=" " width="100px" readonly='true'/>
<field name="request_hour_to" column_invisible="True"/>
</tree>
</field>
<group string="按小时请假" invisible="not is_hour"/>
<field name="hour_leave_ids" invisible="not is_hour"
context="{
'default_holiday_type': 'employee',
'default_employee_id': employee_id,
'default_request_unit_hours': True,
'no_change_request_unit_hours': True,
'holiday_status_id_default_request_unit': 'hour'
}">
<tree editable="bottom">
<field name="employee_id" readonly="1" force_save="1" column_invisible="1"/>
<field name="state" column_invisible="True"/>
<field name="employee_company_id" column_invisible="True"/>
<field name="name" column_invisible="True"/>
<field name="holiday_type" column_invisible="True"/>
<field name="user_id" column_invisible="True"/>
<field name="batch_id" column_invisible="True"/>
<field name="holiday_status_id" domain="[
('request_unit', '=', 'hour'),
'|',
('requires_allocation', '=', 'no'),
'&amp;',
('has_valid_allocation', '=', True),
'|',
('allows_negative', '=', True),
'&amp;',
('virtual_remaining_leaves', '&gt;', 0),
('allows_negative', '=', False),
]"
context="{'employee_id': employee_id}"
options="{'no_create': True, 'no_open': True, 'request_type': 'leave'}"
readonly="state in ['cancel', 'refuse', 'validate', 'validate1']"
width="300px"
/>
<field name="request_unit_hours" column_invisible="True" force_save="1"/>
<field name="request_date_from" width="300px" string="请假日期"/>
<field name="request_hour_from" width="200px"/>
<field name="request_hour_from_real" column_invisible="True"/>
<field name="request_hour_to" width="200px"/>
<field name="request_date_to" column_invisible="True"/>
<field name="number_of_hours_text" string="小时" width="100px"/>
<field name="leave_documents_ids" widget="preview_many2many" options="{'preview_type': 'button', 'preview_string': ' '}" string=" " width="100px" readonly="1"/>
<field name="number_of_days_display" column_invisible="True"/>
</tree>
</field>
<field name="leave_ids" invisible="not is_day"
context="{
'default_holiday_type': 'employee',
'default_employee_id': employee_id,
}" string=" ">
<tree editable="bottom">
<field name="employee_id" readonly="1" force_save="1" column_invisible="1"/>
<field name="state" column_invisible="True"/>
<field name="employee_company_id" column_invisible="True"/>
<field name="name" column_invisible="True"/>
<field name="holiday_type" column_invisible="True"/>
<field name="user_id" column_invisible="True"/>
<field name="batch_id" class="list_width2" column_invisible="True"/>
<field name="request_hour_from" column_invisible="True"/>
<field name="request_unit_hours" column_invisible="True"/>
<field name="holiday_status_id"
domain="[
'|',
('requires_allocation', '=', 'no'),
'&amp;',
('has_valid_allocation', '=', True),
'|',
('allows_negative', '=', True),
'&amp;',
('virtual_remaining_leaves', '&gt;', 0),
('allows_negative', '=', False),
]"
context="{'employee_id': employee_id}"
options="{'no_create': True, 'no_open': True, 'request_type': 'leave'}"
readonly="state in ['cancel', 'refuse', 'validate', 'validate1']"
width="100px"
/>
<!-- <field name="holiday_status_id"-->
<!-- domain="[-->
<!-- ('request_unit', '=', 'day'),-->
<!-- '|',-->
<!-- ('requires_allocation', '=', 'no'),-->
<!-- '&amp;',-->
<!-- ('has_valid_allocation', '=', True),-->
<!-- '|',-->
<!-- ('allows_negative', '=', True),-->
<!-- '&amp;',-->
<!-- ('virtual_remaining_leaves', '&gt;', 0),-->
<!-- ('allows_negative', '=', False),-->
<!-- ]"-->
<!-- context="{'employee_id': employee_id}"-->
<!-- options="{'no_create': True, 'no_open': True, 'request_type': 'leave'}"-->
<!-- readonly="state in ['cancel', 'refuse', 'validate', 'validate1']"-->
<!-- width="200px"-->
<!-- />-->
<field name="request_date_from" width="100px" string="开始日期"/>
<field name="request_date_to" width="100px" string="结束日期"/>
<field name="number_of_days_display" string="天" width="100px"/>
<field name="leave_documents_ids" widget="preview_many2many" options="{'preview_type': 'button', 'preview_string': ' '}" string=" " width="100px" readonly='true'/>
<field name="request_hour_to" column_invisible="True"/>
</tree>
</field>
</group>
<group/>
</group>
<group>
<field name="is_hour"/>
</group>
<group invisible="not is_hour" string=" ">
<group>
<field name="hour_leave_ids" invisible="not is_hour"
context="{
'default_holiday_type': 'employee',
'default_employee_id': employee_id,
'default_request_unit_hours': True,
'no_change_request_unit_hours': True,
'holiday_status_id_default_request_unit': 'hour'
}">
<tree editable="bottom">
<field name="employee_id" readonly="1" force_save="1" column_invisible="1"/>
<field name="state" column_invisible="True"/>
<field name="employee_company_id" column_invisible="True"/>
<field name="name" column_invisible="True"/>
<field name="holiday_type" column_invisible="True"/>
<field name="user_id" column_invisible="True"/>
<field name="batch_id" column_invisible="True"/>
<field name="holiday_status_id" domain="[
('request_unit', '=', 'hour'),
'|',
('requires_allocation', '=', 'no'),
'&amp;',
('has_valid_allocation', '=', True),
'|',
('allows_negative', '=', True),
'&amp;',
('virtual_remaining_leaves', '&gt;', 0),
('allows_negative', '=', False),
]"
context="{'employee_id': employee_id}"
options="{'no_create': True, 'no_open': True, 'request_type': 'leave'}"
readonly="state in ['cancel', 'refuse', 'validate', 'validate1']"
width="100px"
/>
<field name="request_unit_hours" column_invisible="True" force_save="1"/>
<field name="request_date_from" width="100px" string="请假日期"/>
<field name="request_hour_from" width="200px"/>
<field name="request_hour_from_real" column_invisible="True"/>
<field name="request_hour_to" width="200px"/>
<field name="request_date_to" column_invisible="True"/>
<field name="number_of_hours_text" string="小时" width="100px"/>
<field name="leave_documents_ids" widget="preview_many2many" options="{'preview_type': 'button', 'preview_string': ' '}" string=" " width="100px" readonly="1"/>
<field name="number_of_days_display" column_invisible="True"/>
</tree>
</field>
</group>
<group/>
</group>
<group>
<field name="department_id" invisible="1"/>
<field name="user_role_id" invisible="1"/>
@@ -18,7 +18,7 @@
<field name="district_party_id"/>
<field name="remarks"/>
<field name="scope"/>
<field name="company_id"/>
<field name="company_id" optional="hide"/>
<field name="start_date" optional="hide"/>
<field name="end_date" optional="hide"/>
</tree>
@@ -40,7 +40,7 @@
<group col="2">
<group>
<field name="sequence" force_save="1"/>
<field name="decision_type_on_id" force_save="1"/>
<field name="decision_type_on_id" force_save="1" invisible="1"/>
<field name="council_id"/>
</group>
<group>
+1 -2
View File
@@ -1,2 +1 @@
from . import models
from . import wizard
from . import models
-1
View File
@@ -15,7 +15,6 @@
'views/yuthon_will_task_views.xml',
'views/yuthon_task_time_views.xml',
'views/yuthon_task_menu.xml',
'wizard/task_room_wizard.xml',
],
'assets': {
'web.assets_backend': [
@@ -1,7 +1,6 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_yuthon_task_time,yuthon_task_time,model_yuthon_task_time,yuthon_will_task.group_yuthon_will_task_user,1,1,1,1
access_yuthon_will_task,yuthon_will_task,model_yuthon_will_task,yuthon_will_task.group_yuthon_will_task_user,1,1,1,1
access_task_room_wizard,task_room_wizard,model_task_room_wizard,yuthon_will_task.group_yuthon_will_task_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_task_time yuthon_task_time model_yuthon_task_time yuthon_will_task.group_yuthon_will_task_user 1 1 1 1
3 access_yuthon_will_task yuthon_will_task model_yuthon_will_task yuthon_will_task.group_yuthon_will_task_user 1 1 1 1
access_task_room_wizard task_room_wizard model_task_room_wizard yuthon_will_task.group_yuthon_will_task_user 1 1 1 1
4
5
6
@@ -5,11 +5,11 @@
<field name="name">日程组</field>
</record>
<record id="group_yuthon_will_task_user" model="res.groups">
<field name="name">日程用户</field>
<field name="name">日程-用户</field>
<field name="category_id" ref="module_yuthon_will_task"/>
</record>
<record id="group_yuthon_will_task_leader" model="res.groups">
<field name="name">日程组管理员</field>
<field name="name">日程-管理员</field>
<field name="category_id" ref="module_yuthon_will_task"/>
<field name="implied_ids" eval="[(4, ref('group_yuthon_will_task_user'))]"/>
</record>
@@ -10,12 +10,12 @@ export class CustomTaskListController extends ListController {
openTaskForm() {
this.actionService.doAction({
type: 'ir.actions.act_window',
res_model: 'task.room.wizard',
res_model: 'yuthon.will.task',
name: '日程会议',
view_mode: 'form',
view_type: 'form',
views: [[false, 'form']],
target: 'new',
target: 'current',
context: {},
});
}
@@ -27,7 +27,7 @@ export class CustomTaskListController extends ListController {
view_mode: 'form',
view_type: 'form',
views: [[false, 'form']],
target: 'new',
target: 'current',
context: {},
});
}
@@ -5,7 +5,7 @@
<button type="button" class="btn btn-primary" style="margin-left: 10px;" t-on-click="openTaskForm">
新建日程
</button>
<button type="button" class="btn btn-primary" style="margin-left: 10px;" t-on-click="openMeetForm">
<button type="button" class="btn btn-primary" style="margin-left: 10px;" t-on-click="openMeetingArrangementForm">
新建会议
</button>
</xpath>
-1
View File
@@ -1 +0,0 @@
from . import task_room_wizard
@@ -1,25 +0,0 @@
from odoo import api, fields, models
class TaskRoomWizard(models.Model):
_name = 'task.room.wizard'
_description = '安排日程会议弹窗'
def create_will_task(self):
form_id = self.env.ref('yuthon_will_task.view_yuthon_will_task_form').id
return {
"type": "ir.actions.act_window",
"name": "日程安排",
"res_model": "yuthon.will.task",
"views": [[form_id, "form"]],
}
def create_room(self):
form_id = self.env.ref('room.room_booking_view_form').id
return {
"type": "ir.actions.act_window",
"name": "会议安排",
"res_model": "room.booking",
"views": [[form_id, "form"]],
}
@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_task_room_wizard" model="ir.ui.view">
<field name="name">安排日程会议</field>
<field name="model">task.room.wizard</field>
<field name="arch" type="xml">
<form string="安排日程会议">
<group col="2">
<group>
<button name="create_will_task" type="object" string="日程" class="btn btn-primary button_width"/>
</group>
<group>
<button name="create_room" type="object" string="会议" class="btn btn-primary button_width"/>
</group>
</group>
<footer/>
</form>
</field>
</record>
</odoo>