Merge pull request !3169 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-06-09 03:54:05 +00:00
committed by Gitee
2 changed files with 83 additions and 91 deletions
+19 -18
View File
@@ -74,7 +74,7 @@ class YuthonWillTask(models.Model):
remarks = fields.Text(string='备注')
creation_time = fields.Date(string='创建时间', default=fields.Date.today())
employee_ids = fields.Many2many('hr.employee', 'will_task_employee_rel', 'custom_id', 'employee_id',
string='人员', store=True, index=True, domain=lambda self: self._get_employee_domain())
string='人员', store=True, index=True)
employee_ids2 = fields.Many2many('hr.employee', 'will_task_employee_rel2', 'custom_id', 'employee_id',
string='司机', store=True, index=True)
users_ids = fields.Many2many('res.users', string='用户', store=True, index=True, default=lambda self: self.env.user)
@@ -88,23 +88,24 @@ class YuthonWillTask(models.Model):
@api.onchange('is_this_company')
def _onchange_is_this_company(self):
"""当是否为本公司字段变化时,更新员工列表和domain"""
if self.is_this_company:
# 获取当前用户所属的公司列表
company_ids = self.env.companies.ids
# 过滤已选员工,只保留属于当前公司的员工
self.employee_ids = self.employee_ids.filtered(
lambda emp: emp.company_id.id in company_ids
)
# 返回domain,限制可选员工为当前公司的员工
return {
'domain': {
'employee_ids': [('company_id', 'in', company_ids)]
}
}
else:
# 当不限制为本公司时,清空domain,允许选择所有员工
return {'domain': {'employee_ids': []}}
pass
# """当是否为本公司字段变化时,更新员工列表和domain"""
# if self.is_this_company:
# # 获取当前用户所属的公司列表
# company_ids = self.env.companies.ids
# # 过滤已选员工,只保留属于当前公司的员工
# self.employee_ids = self.employee_ids.filtered(
# lambda emp: emp.company_id.id in company_ids
# )
# # 返回domain,限制可选员工为当前公司的员工
# return {
# 'domain': {
# 'employee_ids': [('company_id', 'in', company_ids)]
# }
# }
# else:
# # 当不限制为本公司时,清空domain,允许选择所有员工
# return {'domain': {'employee_ids': []}}
@api.onchange('employee_ids', 'user_id')
def _onchange_employee_ids(self):
@@ -42,83 +42,74 @@
</field>
</record>
<record id="view_yuthon_will_task_form" model="ir.ui.view">
<field name="name">yuthon.will.task.form</field>
<field name="model">yuthon.will.task</field>
<field name="arch" type="xml">
<form string="日程">
<sheet>
<widget name="web_ribbon" title="不紧急不重要" bg_color="text-bg-secondary"
invisible="priority != 'general'"/>
<widget name="web_ribbon" title="重要不紧急" bg_color="text-bg-success"
invisible="priority != 'important'"/>
<widget name="web_ribbon" title="紧急不重要" bg_color="text-bg-warning"
invisible="priority != 'urgent'"/>
<widget name="web_ribbon" title="重要且紧急" bg_color="text-bg-danger"
invisible="priority != 'very_urgent'"/>
<group col="3">
<group>
<field name="code" readonly="1"/>
</group>
<group>
<field name="is_this_company" string="本公司"/>
</group>
<group>
<field name="priority"/>
</group>
</group>
<div class="oe_title">
<label for="task_content"/>
<h1>
<field name="task_content" required="1"/>
</h1>
</div>
<field name="name">yuthon.will.task.form</field>
<field name="model">yuthon.will.task</field>
<field name="arch" type="xml">
<form string="日程">
<sheet>
<widget name="web_ribbon" title="不紧急不重要" bg_color="text-bg-secondary" invisible="priority != 'general'"/>
<widget name="web_ribbon" title="重要不紧急" bg_color="text-bg-success" invisible="priority != 'important'"/>
<widget name="web_ribbon" title="紧急不重要" bg_color="text-bg-warning" invisible="priority != 'urgent'"/>
<widget name="web_ribbon" title="重要且紧急" bg_color="text-bg-danger" invisible="priority != 'very_urgent'"/>
<group col="3">
<group>
<field name="code" readonly="1"/>
</group>
<group col="2">
<group>
<label for="start_date"/>
<div class="d-inline-flex w-100">
<field name="start_date" string="日期:" class="me-2"
style="max-width: 10rem !important;"/>时间
<field name="request_hour_from" string=" " class="ms-2"
style="max-width: 5rem !important;"/>至
<field name="request_hour_to" string=" " class="ms-2"
style="max-width: 5rem !important;"/>
</div>
</group>
<group>
<field name="task_time_ids" widget="many2many_tags"/>
</group>
</group>
<group>
<field name="user_id"/>
<field name="task_state" invisible="1"/>
<field name="employee_ids" widget="many2many_tags" options="{'no_create': True}"/>
<field name="user_role_ids" widget="many2many_tags" invisible="1"/>
<field name='users_ids' widget="many2many_tags" invisible="1"/>
<field name="is_this_company" string="本公司"/>
</group>
<group col="2">
<group>
<field name="address"/>
</group>
<group>
<field name='employee_ids2' widget="many2many_tags" domain="[('user_role_ids.name', 'in', ['司机'])]" options="{'no_create': True}"/>
</group>
<group>
<field name="remarks"/>
<field name='document_ids' widget="preview_many2many"/>
<field name="creation_time" invisible="1"/>
</group>
<group>
<field name="priority"/>
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user" options="{'post_refresh': 'recipients'}"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
</group>
<div class="oe_title">
<label for="task_content"/>
<h1>
<field name="task_content" required="1"/>
</h1>
</div>
<group col="2">
<group>
<label for="start_date"/>
<div class="d-inline-flex w-100">
<field name="start_date" string="日期:" class="me-2" style="max-width: 10rem !important;"/>时间
<field name="request_hour_from" string=" " class="ms-2" style="max-width: 5rem !important;"/>至
<field name="request_hour_to" string=" " class="ms-2" style="max-width: 5rem !important;"/>
</div>
</group>
<group>
<field name="task_time_ids" widget="many2many_tags"/>
</group>
</group>
<group>
<field name="user_id"/>
<field name="task_state" invisible="1"/>
<field name="employee_ids" widget="many2many_tags" options="{'no_create': True}"/>
<field name="user_role_ids" widget="many2many_tags" invisible="1"/>
<field name="users_ids" widget="many2many_tags" invisible="1"/>
</group>
<group col="2">
<group>
<field name="address"/>
</group>
<group>
<field name="employee_ids2" widget="many2many_tags" domain="[('user_role_ids.name', 'in', ['司机'])]" options="{'no_create': True}"/>
</group>
</group>
<group>
<field name="remarks"/>
<field name="document_ids" widget="preview_many2many"/>
<field name="creation_time" invisible="1"/>
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user" options="{'post_refresh': 'recipients'}"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id='view_yuthon_will_task_tree2' model='ir.ui.view'>
<field name='name'>yuthon.will.task.tree2</field>
<field name='model'>yuthon.will.task</field>
@@ -216,7 +207,7 @@
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user" options="{'post_refresh': 'recipients'}"/>
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>