Merge branch 'dev' of https://gitee.com/jinan-pengyusen-data/gzth into dev
This commit is contained in:
+16
-16
@@ -97,22 +97,22 @@ class RoomBooking(models.Model):
|
||||
self.room_users_ids = [(5, 0, 0)]
|
||||
self.host = False
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
bookings = super(RoomBooking, self).create(vals_list)
|
||||
for room, bookings in bookings.grouped("room_id").items():
|
||||
room._notify_booking_view("create", bookings)
|
||||
data = vals_list[0]
|
||||
if data.get('partner_ids'):
|
||||
self.env['calendar.event'].create({
|
||||
'name': data['name'],
|
||||
'start': data['start_datetime'],
|
||||
'stop': data['stop_datetime'],
|
||||
'partner_ids': data['partner_ids'],
|
||||
'sth_type': 'meet',
|
||||
'room_booking_id': bookings.id,
|
||||
})
|
||||
return bookings
|
||||
# @api.model_create_multi
|
||||
# def create(self, vals_list):
|
||||
# bookings = super(RoomBooking, self).create(vals_list)
|
||||
# for room, bookings in bookings.grouped("room_id").items():
|
||||
# room._notify_booking_view("create", bookings)
|
||||
# data = vals_list[0]
|
||||
# if data.get('partner_ids'):
|
||||
# self.env['calendar.event'].create({
|
||||
# 'name': data['name'],
|
||||
# 'start': data['start_datetime'],
|
||||
# 'stop': data['stop_datetime'],
|
||||
# 'partner_ids': data['partner_ids'],
|
||||
# 'sth_type': 'meet',
|
||||
# 'room_booking_id': bookings.id,
|
||||
# })
|
||||
# return bookings
|
||||
|
||||
@api.onchange('room_id')
|
||||
def onchange_meeting_data(self):
|
||||
|
||||
@@ -110,15 +110,15 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
next_log = all_sorted_logs[current_log_index + 1]
|
||||
if next_log.approval_state == "0":
|
||||
record.is_back = True
|
||||
if record._name in ['yuthon.official.incoming.normal', 'yuthon.sub.enterprises']:
|
||||
current_user_in_logs2 = any(log.done_by.id == self.env.uid for log in record.log_ids2)
|
||||
organizer_user_in_logs = any(log.done_by.id == self.env.user.id for log in record.log_ids.filtered(lambda l: l.name == '承办'))
|
||||
all_handling_logs_approval_0 = all(log.approval_state == '0' for log in record.log_ids.filtered(lambda l: l.name == '承办'))
|
||||
all_logs2_approval_0 = all(log.approval_state == '0' for log in record.log_ids2)
|
||||
if all_logs2_approval_0 and all_handling_logs_approval_0 and not current_user_in_logs2 and not organizer_user_in_logs:
|
||||
record.is_back = True
|
||||
else:
|
||||
record.is_back = False
|
||||
if record._name in ['yuthon.official.incoming.normal', 'yuthon.sub.enterprises']:
|
||||
current_user_in_logs2 = any(log.done_by.id == self.env.uid for log in record.log_ids2)
|
||||
organizer_user_in_logs = any(log.done_by.id == self.env.user.id for log in record.log_ids.filtered(lambda l: l.name == '承办'))
|
||||
all_handling_logs_approval_0 = all(log.approval_state == '0' for log in record.log_ids.filtered(lambda l: l.name == '承办'))
|
||||
all_logs2_approval_0 = all(log.approval_state == '0' for log in record.log_ids2)
|
||||
if all_logs2_approval_0 and all_handling_logs_approval_0 and not current_user_in_logs2 and not organizer_user_in_logs:
|
||||
record.is_back = True
|
||||
else:
|
||||
record.is_back = False
|
||||
|
||||
def _compute_is_active(self):
|
||||
current_user_id = self.env.user.id
|
||||
|
||||
@@ -17,21 +17,26 @@
|
||||
<field name="workflow_id" string="审批类型"/>
|
||||
<field name="text" optional="hide"/>
|
||||
<field name="documents_ids" optional="hide"/>
|
||||
<filter name="is_start" string="草稿" domain="[('approve_state', '=', 'start')]" />
|
||||
<filter name="is_to_do" string="待办" domain="[('soong_state', '=', 'to_do')]"/>
|
||||
<filter name="is_start" string="草稿" domain="[('approve_state', '=', 'start')]"/>
|
||||
<filter name="is_to_do" string="待办" domain="[('soong_state', '=', 'to_do')]"/>
|
||||
<group expand="0" string="审批分组">
|
||||
<filter string="误餐费" name='group_by_meal' context="{'group_by':'meal'}"/>
|
||||
<filter string="审批类型分组" name='group_by_approvals_group_id' context="{'group_by':'approvals_group_id'}"/>
|
||||
<filter string="审批类型分组" name='group_by_approvals_group_id'
|
||||
context="{'group_by':'approvals_group_id'}"/>
|
||||
<filter string="状态" name="group_soong_state" context="{'group_by':'soong_state'}"/>
|
||||
</group>
|
||||
<header_search>
|
||||
<quick_filter string="状态">
|
||||
<filter string="草稿" name="approve_state" domain="[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('approve_state', '=', 'start')]" />
|
||||
<filter string="待办" name="to_do" domain="[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('approve_state', '=', 'pending'), ('employee_ids.user_id', '=', uid)]" />
|
||||
<filter string="已办" name="done" domain="[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('approve_state', '=', 'pending'), ('employee_ids.user_id', '!=', uid)]"/>
|
||||
<filter string="结束" name="end" domain="[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('approve_state', '=', 'end')]"/>
|
||||
</quick_filter>
|
||||
</header_search>
|
||||
<quick_filter string="状态">
|
||||
<filter string="草稿" name="approve_state"
|
||||
domain="[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('approve_state', '=', 'start')]"/>
|
||||
<filter string="待办" name="to_do"
|
||||
domain="[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('approve_state', '=', 'pending'), ('employee_ids.user_id', '=', uid)]"/>
|
||||
<filter string="已办" name="done"
|
||||
domain="[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('approve_state', '=', 'pending'), ('employee_ids.user_id', '!=', uid)]"/>
|
||||
<filter string="结束" name="end"
|
||||
domain="[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('approve_state', '=', 'end')]"/>
|
||||
</quick_filter>
|
||||
</header_search>
|
||||
<searchpanel>
|
||||
<field name="workflow_id" string="审批类型" enable_counters="1"/>
|
||||
</searchpanel>
|
||||
@@ -57,16 +62,17 @@
|
||||
<filter string="审批状态" name='group_by_approve_state' context="{'group_by':'approve_state'}"/>
|
||||
<filter string="审批类型" name='group_by_workflow_id' context="{'group_by':'workflow_id'}"/>
|
||||
<filter string="误餐费" name='group_by_meal' context="{'group_by':'meal'}"/>
|
||||
<filter string="审批类型分组" name='group_by_approvals_group_id' context="{'group_by':'approvals_group_id'}"/>
|
||||
<filter string="审批类型分组" name='group_by_approvals_group_id'
|
||||
context="{'group_by':'approvals_group_id'}"/>
|
||||
<filter string="状态" name="group_soong_state" context="{'group_by':'soong_state'}"/>
|
||||
</group>
|
||||
<header_search class="header-search-inline">
|
||||
<field name="workflow_id" string="审批类型"/>
|
||||
<header_search class="header-search-inline">
|
||||
<!-- <field name="workflow_id" string="审批类型"/>-->
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="employee_ids" string="当前经办人"/>
|
||||
<field name="create_uid" string="创建人"/>
|
||||
</header_search>
|
||||
</header_search>
|
||||
<searchpanel>
|
||||
<field name="workflow_id" string="审批类型" enable_counters="1"/>
|
||||
</searchpanel>
|
||||
@@ -81,13 +87,16 @@
|
||||
decoration-danger="approve_state == 'end'" delete="false"
|
||||
create="false" default_order="write_date2 desc, id desc" expand="1" limit="10">
|
||||
<header>
|
||||
<button name="admin_end" type="object" string="管理员强制结束" class="oe_highlight" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="delete_record" type="object" string="删除" class="oe_highlight" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="admin_end" type="object" string="管理员强制结束" class="oe_highlight"
|
||||
groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="delete_record" type="object" string="删除" class="oe_highlight"
|
||||
groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
</header>
|
||||
<field name="code"/>
|
||||
<field name="workflow_id" string="审批类型"/>
|
||||
<field name="workflow_id" string="审批类型"/>
|
||||
<field name="name"/>
|
||||
<field name="approve_state" string="审批状态" widget="badge" decoration-danger="approve_state == 'end'" decoration-success="approve_state == 'pending'"/>
|
||||
<field name="approve_state" string="审批状态" widget="badge"
|
||||
decoration-danger="approve_state == 'end'" decoration-success="approve_state == 'pending'"/>
|
||||
<field name="create_uid"/>
|
||||
<field name="employee_ids" widget="many2many_tags" string="当前经办人" class="list_ids_width"/>
|
||||
<field name="soong_state"/>
|
||||
@@ -104,10 +113,13 @@
|
||||
<field name="is_manager" column_invisible="1"/>
|
||||
<field name="meal" column_invisible="1"/>
|
||||
<field name="workflow_happen_date" string="发生日期" column_invisible="1"/>
|
||||
<button name="backend" type="object" string="后台" class="btn-primary" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="delete_record" type="object" string="删除" class="btn-primary" confirm="你确定要删除吗?" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="backend" type="object" string="后台" class="btn-primary"
|
||||
groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="delete_record" type="object" string="删除" class="btn-primary"
|
||||
confirm="你确定要删除吗?" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="reminders_record" type="object" string="催办" class="btn-primary"
|
||||
groups="soong_workflow.group_soong_workflow_manager" invisible="approve_state in ['start', 'end']"/>
|
||||
groups="soong_workflow.group_soong_workflow_manager"
|
||||
invisible="approve_state in ['start', 'end']"/>
|
||||
<button name="revoke_record" type="object" string="撤销" class="btn-primary"
|
||||
groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="log" type="object" string="日志" class="btn-primary"
|
||||
@@ -167,21 +179,26 @@
|
||||
decoration-danger="approve_state == 'end'" delete="false"
|
||||
create="false" default_order="write_date2 desc, id desc" expand="1" limit="10">
|
||||
<header>
|
||||
<button name="admin_end" type="object" string="管理员强制结束" class="oe_highlight" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="delete_record" type="object" string="删除" class="oe_highlight" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="admin_end" type="object" string="管理员强制结束" class="oe_highlight"
|
||||
groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="delete_record" type="object" string="删除" class="oe_highlight"
|
||||
groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
</header>
|
||||
<field name="code"/>
|
||||
<field name="workflow_id" string="审批类型"/>
|
||||
<field name="name"/>
|
||||
<field name="approve_state" string="审批状态" widget="badge" decoration-danger="approve_state == 'end'" decoration-success="approve_state == 'pending'"/>
|
||||
<field name="approve_state" string="审批状态" widget="badge"
|
||||
decoration-danger="approve_state == 'end'" decoration-success="approve_state == 'pending'"/>
|
||||
<field name="create_uid"/>
|
||||
<field name="employee_ids" widget="many2many_tags" string="当前经办人" class="list_ids_width"/>
|
||||
<field name="soong_state"/>
|
||||
<field name="is_manager" column_invisible="1"/>
|
||||
<field name="is_unlink" column_invisible="1"/>
|
||||
<button name="delete_record" type="object" string="删除" class="btn-primary" confirm="你确定要删除吗?"
|
||||
invisible="not is_unlink"/>
|
||||
<button name="reminders_record" type="object" string="催办" class="btn-primary" invisible="soong_state != 'done' or create_uid != uid or approve_state == 'end'"/>
|
||||
<button name="delete_record" type="object" string="删除" class="btn-primary"
|
||||
confirm="你确定要删除吗?"
|
||||
invisible="not is_unlink"/>
|
||||
<button name="reminders_record" type="object" string="催办" class="btn-primary"
|
||||
invisible="soong_state != 'done' or create_uid != uid or approve_state == 'end'"/>
|
||||
<button name="revoke_record" type="object" string="撤销" class="btn-primary"
|
||||
groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
</tree>
|
||||
@@ -198,13 +215,15 @@
|
||||
<field name="code"/>
|
||||
<field name="workflow_id" string="审批类型"/>
|
||||
<field name="name"/>
|
||||
<field name="approve_state" string="审批状态" widget="badge" decoration-danger="approve_state == 'end'" decoration-success="approve_state == 'pending'"/>
|
||||
<field name="approve_state" string="审批状态" widget="badge"
|
||||
decoration-danger="approve_state == 'end'" decoration-success="approve_state == 'pending'"/>
|
||||
<field name="create_uid"/>
|
||||
<field name="employee_ids" widget="many2many_tags" string="当前经办人" class="list_ids_width"/>
|
||||
<field name="soong_state"/>
|
||||
<field name="is_manager" column_invisible="1"/>
|
||||
<field name="is_log2" column_invisible="1"/>
|
||||
<button name="greater_record" type="object" string="更多" class="btn-primary" invisible="not is_log2"/>
|
||||
<button name="greater_record" type="object" string="更多" class="btn-primary"
|
||||
invisible="not is_log2"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -216,13 +235,16 @@
|
||||
decoration-danger="approve_state == 'end'" delete="false"
|
||||
create="false" default_order="write_date2 desc, id desc" expand="1" limit="10">
|
||||
<header>
|
||||
<button name="admin_end" type="object" string="管理员强制结束" class="oe_highlight" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="delete_record" type="object" string="删除" class="oe_highlight" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="admin_end" type="object" string="管理员强制结束" class="oe_highlight"
|
||||
groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="delete_record" type="object" string="删除" class="oe_highlight"
|
||||
groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
</header>
|
||||
<field name="code"/>
|
||||
<field name="workflow_id" string="审批类型"/>
|
||||
<field name="name"/>
|
||||
<field name="approve_state" string="审批状态" widget="badge" decoration-danger="approve_state == 'end'" decoration-success="approve_state == 'pending'"/>
|
||||
<field name="approve_state" string="审批状态" widget="badge"
|
||||
decoration-danger="approve_state == 'end'" decoration-success="approve_state == 'pending'"/>
|
||||
<field name="create_uid"/>
|
||||
<field name="employee_ids" widget="many2many_tags" string="当前经办人" class="list_ids_width"/>
|
||||
<field name="soong_state"/>
|
||||
@@ -276,7 +298,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree string="工作流回收站" action="open_record" type="object"
|
||||
decoration-muted="approve_state == 'end'" decoration-warning="approve_state != 'end'"
|
||||
create="false" default_order="write_date2 desc" limit="10">
|
||||
create="false" default_order="write_date2 desc" limit="10">
|
||||
<field name="name"/>
|
||||
<field name="workflow_id" string="审批类型"/>
|
||||
<field name="node_id" string="当前节点"/>
|
||||
@@ -293,24 +315,27 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- <record id="soong_workflow_record_my_action" model="ir.actions.act_window">-->
|
||||
<!-- <field name="name">我的流程</field>-->
|
||||
<!-- <field name="type">ir.actions.act_window</field>-->
|
||||
<!-- <field name="res_model">soong.workflow.record</field>-->
|
||||
<!-- <field name="view_mode">tree,kanban,search</field>-->
|
||||
<!--<!– <field name="context">{'check_employee': 1, 'search_default_is_start':1, 'search_default_is_to_do':1}</field>–>-->
|
||||
<!-- <field name="context">{'header_search_default_approve_state': 1, 'header_search_default_to_do':1, 'check_employee': 1}</field>-->
|
||||
<!-- <field name="domain">[('users_ids', 'in', uid), ('reclaim_state', '=', False)]</field>-->
|
||||
<!-- <field name="search_view_id" ref="soong_workflow_record_search"/>-->
|
||||
<!-- <field name="view_id" ref="soong_workflow_record_my_tree"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record id="soong_workflow_record_my_action" model="ir.actions.act_window">-->
|
||||
<!-- <field name="name">我的流程</field>-->
|
||||
<!-- <field name="type">ir.actions.act_window</field>-->
|
||||
<!-- <field name="res_model">soong.workflow.record</field>-->
|
||||
<!-- <field name="view_mode">tree,kanban,search</field>-->
|
||||
<!--<!– <field name="context">{'check_employee': 1, 'search_default_is_start':1, 'search_default_is_to_do':1}</field>–>-->
|
||||
<!-- <field name="context">{'header_search_default_approve_state': 1, 'header_search_default_to_do':1, 'check_employee': 1}</field>-->
|
||||
<!-- <field name="domain">[('users_ids', 'in', uid), ('reclaim_state', '=', False)]</field>-->
|
||||
<!-- <field name="search_view_id" ref="soong_workflow_record_search"/>-->
|
||||
<!-- <field name="view_id" ref="soong_workflow_record_my_tree"/>-->
|
||||
<!-- </record>-->
|
||||
<record id="soong_workflow_record_is_logs_action" model="ir.actions.act_window">
|
||||
<field name="name">抄送流程</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,kanban,search</field>
|
||||
<field name="context">{'header_search_default_approve_state': 1, 'header_search_default_to_do':1, 'check_employee': 1}</field>
|
||||
<field name="domain">[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('is_log2', '=', True)]</field>
|
||||
<field name="context">{'header_search_default_approve_state': 1, 'header_search_default_to_do':1,
|
||||
'check_employee': 1}
|
||||
</field>
|
||||
<field name="domain">[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('is_log2', '=', True)]
|
||||
</field>
|
||||
<field name="search_view_id" ref="soong_workflow_record_search1"/>
|
||||
<field name="view_id" ref="soong_workflow_record_log2_tree"/>
|
||||
</record>
|
||||
@@ -319,7 +344,9 @@
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,kanban,search</field>
|
||||
<field name="context">{'header_search_default_approve_state': 1, 'header_search_default_to_do':1, 'check_employee': 1}</field>
|
||||
<field name="context">{'header_search_default_approve_state': 1, 'header_search_default_to_do':1,
|
||||
'check_employee': 1}
|
||||
</field>
|
||||
<field name="domain">[('is_to_do', '=', True)]</field>
|
||||
<field name="search_view_id" ref="soong_workflow_record_search1"/>
|
||||
<field name="view_id" ref="soong_workflow_record_my_tree"/>
|
||||
@@ -329,8 +356,12 @@
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,kanban,search</field>
|
||||
<field name="context">{'header_search_default_approve_state': 1, 'header_search_default_to_do':1, 'check_employee': 1}</field>
|
||||
<field name="domain">[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('soong_state', 'in', ['done', 'active'])]</field>
|
||||
<field name="context">{'header_search_default_approve_state': 1, 'header_search_default_to_do':1,
|
||||
'check_employee': 1}
|
||||
</field>
|
||||
<field name="domain">[('users_ids', 'in', uid), ('reclaim_state', '=', False), ('soong_state', 'in',
|
||||
['done', 'active'])]
|
||||
</field>
|
||||
<field name="search_view_id" ref="soong_workflow_record_search1"/>
|
||||
<field name="view_id" ref="soong_workflow_record_my_tree"/>
|
||||
</record>
|
||||
@@ -349,7 +380,9 @@
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,kanban,search</field>
|
||||
<field name="domain">[('reclaim_state', '=', False), '|', ('approvals_group_id.name', '=', '人力资源'), ('approvals_group_id.name', '=', '考勤'), ('approve_state', '!=', 'start')]</field>
|
||||
<field name="domain">[('reclaim_state', '=', False), '|', ('approvals_group_id.name', '=', '人力资源'),
|
||||
('approvals_group_id.name', '=', '考勤'), ('approve_state', '!=', 'start')]
|
||||
</field>
|
||||
<field name="search_view_id" ref="soong_workflow_record_search"/>
|
||||
</record>
|
||||
<record id="soong_workflow_other_record_action" model="ir.actions.act_window">
|
||||
@@ -357,7 +390,9 @@
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,kanban,search</field>
|
||||
<field name="domain">[('reclaim_state', '=', False), ('approvals_group_id.name', '!=', '人力资源'), ('approvals_group_id.name', '!=', '考勤')]</field>
|
||||
<field name="domain">[('reclaim_state', '=', False), ('approvals_group_id.name', '!=', '人力资源'),
|
||||
('approvals_group_id.name', '!=', '考勤')]
|
||||
</field>
|
||||
<field name="context">{'search_default_my_department_shifts': True,}</field>
|
||||
<field name="search_view_id" ref="soong_workflow_record_search1"/>
|
||||
</record>
|
||||
@@ -366,7 +401,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="context">{'search_default_group_by_group_soong_state': True, 'search_default_group_by_workflow_id': True}</field>-->
|
||||
<!-- <field name="context">{'search_default_group_by_group_soong_state': True, 'search_default_group_by_workflow_id': True}</field>-->
|
||||
<field name="domain">[('reclaim_state', '=', False)]</field>
|
||||
<field name="search_view_id" ref="soong_workflow_record_search1"/>
|
||||
<field name="view_id" ref="soong_workflow_record_tree"/>
|
||||
@@ -413,11 +448,11 @@
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.append_date()</field>
|
||||
</record>
|
||||
<!-- <record id="all_holiday_update_self_users_ids" model="ir.actions.server">-->
|
||||
<!-- <field name="name">一次性</field>-->
|
||||
<!-- <field name="model_id" ref="soong_workflow.model_soong_workflow_record"/>-->
|
||||
<!-- <field name="binding_model_id" ref="soong_workflow.model_soong_workflow_record"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">action = model.update_self_users_ids()</field>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record id="all_holiday_update_self_users_ids" model="ir.actions.server">-->
|
||||
<!-- <field name="name">一次性</field>-->
|
||||
<!-- <field name="model_id" ref="soong_workflow.model_soong_workflow_record"/>-->
|
||||
<!-- <field name="binding_model_id" ref="soong_workflow.model_soong_workflow_record"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">action = model.update_self_users_ids()</field>-->
|
||||
<!-- </record>-->
|
||||
</odoo>
|
||||
|
||||
@@ -574,13 +574,13 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
user_log2.write({
|
||||
'commit': self.comment,
|
||||
'approval_state': "2",
|
||||
'lase_click_date': current_datetime + timedelta(hours=8),
|
||||
'lase_click_date': current_datetime,
|
||||
})
|
||||
if user_log1:
|
||||
user_log1.write({
|
||||
'comment': self.comment,
|
||||
'approval_state': "2",
|
||||
'lase_click_date': current_datetime + timedelta(hours=8),
|
||||
'lase_click_date': current_datetime,
|
||||
})
|
||||
for employee in self.circulated_employee_ids:
|
||||
action_id = self.env['ir.actions.act_window'].search([('res_model', '=', self.res_model)])[0]
|
||||
|
||||
@@ -13,7 +13,7 @@ class IssueApprovalDecision(models.Model):
|
||||
specifics = fields.Text(string='具体事项')
|
||||
by_law = fields.Selection([('yes', '是'), ('no', '否')], string='是否经过法律审核')
|
||||
is_filing = fields.Selection([('yes', '备'), ('no', '否')], string='是否备案')
|
||||
council_id = fields.Many2one('issue.library.type', string='党总委员会')
|
||||
council_id = fields.Many2one('issue.library.type', string='党总支')
|
||||
team_meet_id = fields.Many2one('issue.library.type', string='经营班子会')
|
||||
board_meet_id = fields.Many2one('issue.library.type', string='董事会')
|
||||
district_state_id = fields.Many2one('issue.library.type', string="区国资局",)
|
||||
|
||||
@@ -29,8 +29,9 @@ class IssueBossApproval(models.Model):
|
||||
for record in self:
|
||||
if record.line_ids:
|
||||
for line in record.line_ids:
|
||||
line.issue_state = 'will'
|
||||
|
||||
if line.issue_id.is_state_updated == False:
|
||||
line.issue_id.is_state_updated = True
|
||||
line.issue_id.issue_state = 'will'
|
||||
|
||||
class IssueBossApprovalLine(models.Model):
|
||||
_name = 'issue.boss.approval.line'
|
||||
|
||||
@@ -29,7 +29,9 @@ class IssueClassApproval(models.Model):
|
||||
for record in self:
|
||||
if record.line_ids:
|
||||
for line in record.line_ids:
|
||||
line.issue_state = 'will'
|
||||
if line.issue_id.is_state_updated == False:
|
||||
line.issue_id.is_state_updated = True
|
||||
line.issue_id.issue_state = 'will'
|
||||
|
||||
class IssueClassApprovalLine(models.Model):
|
||||
_name = 'issue.class.approval.line'
|
||||
|
||||
@@ -75,6 +75,8 @@ class IssueLibrary(models.Model):
|
||||
is_push_boss = fields.Boolean(string="董事推送")
|
||||
is_push_depart = fields.Boolean(string="部门推送")
|
||||
|
||||
is_state_updated = fields.Boolean(string='状态是否已更新', default=False)
|
||||
|
||||
def issue_party_approval(self):
|
||||
issue_active_ids = self.env["issue.library"].browse(
|
||||
self._context.get('active_ids', self._context.get('active_id'))
|
||||
@@ -98,6 +100,35 @@ class IssueLibrary(models.Model):
|
||||
'view_mode': 'form',
|
||||
'context': {
|
||||
'default_state':'申请人',
|
||||
'default_name_title': '党总支议题审批',
|
||||
'default_line_ids': line_list,
|
||||
}
|
||||
}
|
||||
|
||||
def issue_party1_approval(self):
|
||||
issue_active_ids = self.env["issue.library"].browse(
|
||||
self._context.get('active_ids', self._context.get('active_id'))
|
||||
)
|
||||
line_list = []
|
||||
for record in issue_active_ids:
|
||||
if record.issue_state != 'to_approval':
|
||||
raise UserError("该议题状态不能审批")
|
||||
record.issue_state = 'approval'
|
||||
line_list.append((0, 0, {
|
||||
'issue_id': record.id,
|
||||
'name': record.name,
|
||||
'will_based': record.will_based,
|
||||
'department_id': record.department_id.id,
|
||||
}))
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': '党议题审批',
|
||||
"target": "current",
|
||||
'res_model': 'issue.party.approval',
|
||||
'view_mode': 'form',
|
||||
'context': {
|
||||
'default_state':'申请人',
|
||||
'default_name_title': '党支部议题审批',
|
||||
'default_line_ids': line_list,
|
||||
}
|
||||
}
|
||||
@@ -195,7 +226,7 @@ class IssueLibrary(models.Model):
|
||||
continue
|
||||
|
||||
if record.issue_state in ['will', 'on_meet']:
|
||||
if record.push_invisible:
|
||||
if record.push_invisible :
|
||||
record.issue_state = 'on_meet'
|
||||
else:
|
||||
record.issue_state = 'will'
|
||||
@@ -266,9 +297,15 @@ class IssueLibrary(models.Model):
|
||||
|
||||
if push_update_vals:
|
||||
rec.write(push_update_vals)
|
||||
rec.write({
|
||||
'issue_state': 'will'
|
||||
})
|
||||
if not rec.is_state_updated:
|
||||
rec.write({
|
||||
'issue_state': 'to_approval',
|
||||
})
|
||||
else:
|
||||
rec.write({
|
||||
'issue_state': 'will'}
|
||||
)
|
||||
|
||||
|
||||
@api.onchange('is_legal_trial')
|
||||
def _onchange_is_legal_trial(self):
|
||||
@@ -576,7 +613,7 @@ class IssueLibraryLine(models.Model):
|
||||
|
||||
issue_library_id = fields.Many2one('issue.library')
|
||||
issue_approval_decision_id = fields.Many2one('issue.approval.decision', string="上会依据")
|
||||
council_id = fields.Many2one(related='issue_approval_decision_id.council_id', string='党总委员会')
|
||||
council_id = fields.Many2one(related='issue_approval_decision_id.council_id', string='党总支')
|
||||
team_meet_id = fields.Many2one(related='issue_approval_decision_id.team_meet_id', string='经营班子会')
|
||||
board_meet_id = fields.Many2one(related='issue_approval_decision_id.board_meet_id', string='董事会')
|
||||
district_state_id = fields.Many2one(related='issue_approval_decision_id.district_state_id', string="区国资局")
|
||||
|
||||
@@ -8,7 +8,7 @@ class IssuePartyApproval(models.Model):
|
||||
_description = '党议题审批'
|
||||
_inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin']
|
||||
|
||||
name = fields.Char(string='标题', required=True)
|
||||
name = fields.Char(string='标题', compute='_compute_name')
|
||||
code = fields.Char(string='编号', required=True, copy=False,
|
||||
default=lambda self: self.env['ir.sequence'].next_by_code('issue_party_approval_code'))
|
||||
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
|
||||
@@ -25,11 +25,19 @@ class IssuePartyApproval(models.Model):
|
||||
name_title = fields.Char(default=_get_default_name_title)
|
||||
self_users_ids = fields.Many2many('res.users', string="当前经办人", default=lambda self: [(6, 0, [self.env.user.id])])
|
||||
|
||||
@api.depends("name_title", "code")
|
||||
def _compute_name(self):
|
||||
for record in self:
|
||||
record.name = record.name_title + " " + record.code
|
||||
|
||||
|
||||
def end_approval(self):
|
||||
for record in self:
|
||||
if record.line_ids:
|
||||
for line in record.line_ids:
|
||||
line.issue_state = 'will'
|
||||
if line.issue_id.is_state_updated == False:
|
||||
line.issue_id.is_state_updated = True
|
||||
line.issue_id.issue_state = 'will'
|
||||
|
||||
class IssuePartyApprovalLine(models.Model):
|
||||
_name = 'issue.party.approval.line'
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_issue_library_tree" model="ir.ui.view">
|
||||
<field name="name">issue.library.tree</field>
|
||||
<field name="model">issue.library</field>
|
||||
@@ -45,9 +44,9 @@
|
||||
decoration-info="issue_state == 'will'"
|
||||
decoration-success="issue_state == 'done'"
|
||||
decoration-muted="issue_state == 'cancel'">
|
||||
<header>
|
||||
<button name="all_issue_pull" string="提交议题审批" type="object"/>
|
||||
</header>
|
||||
<!-- <header>-->
|
||||
<!-- <button name="all_issue_pull" string="提交议题审批" type="object"/>-->
|
||||
<!-- </header>-->
|
||||
<field name="name" column_invisible="1"/>
|
||||
<field name="department_id"/>
|
||||
<field name="name_text" class="list_width"/>
|
||||
@@ -70,7 +69,7 @@
|
||||
<field name="is_push_depart" column_invisible="1"/>
|
||||
<field name="push_invisible" column_invisible="1"/>
|
||||
<!-- <button name="single_issue_pull" string="提交" type="object" class="oe_highlight"/>-->
|
||||
<button name="library_push" string="推送" type="object" class="oe_highlight" invisible="push_invisible"/>
|
||||
<button name="library_push" string="推送" type="object" class="oe_highlight" invisible="not push_invisible"/>
|
||||
<button name="revoke" string="撤销" type="object" class="oe_highlight" invisible="issue_state == 'draft'"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="oe_highlight"/>
|
||||
<button name="unlink" string="删除" type="object" class="oe_highlight"/>
|
||||
@@ -200,8 +199,8 @@
|
||||
<field name="ordinal"/>
|
||||
<field name="issue_library_id" column_invisible="1"/>
|
||||
<field name="issue_approval_decision_id" class="list_ids_width"/>
|
||||
<field name="council_id" readonly="1" groups="yuthon_salary.group_jtbb_user" string="党总委员会"/>
|
||||
<field name="council_id" readonly="1" groups="yuthon_salary.group_wg_user, yuthon_salary.group_lc_user" string="党支委员会"/>
|
||||
<field name="council_id" readonly="1" groups="yuthon_salary.group_jtbb_user" string="党总支"/>
|
||||
<field name="council_id" readonly="1" groups="yuthon_salary.group_wg_user, yuthon_salary.group_lc_user" string="党支部"/>
|
||||
<field name="team_meet_id" readonly="1"/>
|
||||
<field name="board_meet_id" readonly="1"/>
|
||||
<field name="district_state_id" readonly="1"/>
|
||||
@@ -294,7 +293,37 @@
|
||||
<field name="name">issue.library.tree</field>
|
||||
<field name="model">issue.library</field>
|
||||
<field name="arch" type="xml">
|
||||
|
||||
<tree string="议题库"
|
||||
decoration-info="issue_state == 'will'"
|
||||
decoration-success="issue_state == 'done'"
|
||||
decoration-muted="issue_state == 'cancel'">
|
||||
<header>
|
||||
<button name="all_meeting_issue" type="object" string="批量上会" class="oe_highlight"/>
|
||||
<button name="issue_party1_approval" type="object" string="批量审批" class="oe_highlight"/>
|
||||
</header>
|
||||
<field name="name"/>
|
||||
<field name="department_id"/>
|
||||
<field name="creart_datetime"/>
|
||||
<field name="is_party" groups="yuthon_salary.group_jtbb_user" string="党总支"/>
|
||||
<field name="is_party" groups="yuthon_salary.group_lc_user,yuthon_salary.group_wg_user" string="党支委会"/>
|
||||
<field name="party_char"/>
|
||||
<field name="is_district_state"/>
|
||||
<field name="is_district_government"/>
|
||||
<field name="is_district_party"/>
|
||||
<field name="issue_state"/>
|
||||
<field name="company_id" optional="hide"/>
|
||||
<button name="single_meeting_issue" string="上会" type="object" class="oe_highlight" invisible="issue_state == 'on_meet'"/>
|
||||
<button name="correction" string="修正" type="object" class="oe_highlight"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="oe_highlight"/>
|
||||
<button name="unlink" string="删除" type="object" class="oe_highlight"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!--党总委议题菜单-->
|
||||
<record id="view_issue_library_tree2" model="ir.ui.view">
|
||||
<field name="name">issue.library.tree</field>
|
||||
<field name="model">issue.library</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="议题库"
|
||||
decoration-info="issue_state == 'will'"
|
||||
decoration-success="issue_state == 'done'"
|
||||
@@ -435,7 +464,7 @@
|
||||
<field name="domain">[('is_push_party', '=', True), ('is_push_depart', '=', True)]</field>
|
||||
<field name="search_view_id" ref="view_issue_library_filter"/>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree3')}),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree2')}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form3')})]"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="name" invisible="1"/>
|
||||
<field name="is_back" invisible="1"/>
|
||||
<field name="users_id" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
|
||||
@@ -40,7 +40,7 @@ class YuthonNotice(http.Controller):
|
||||
'title': data.name,
|
||||
'code': data.code,
|
||||
'create_date1': fields.Date.to_string(data.create_date1),
|
||||
'notice_text': data.notice_text1,
|
||||
'notice_text': data.notice_text1 if data.notice_text1 else ' ',
|
||||
'documents': documents,
|
||||
'user_name': data.users_id.name,
|
||||
'read_number': data.read_number,
|
||||
@@ -55,7 +55,6 @@ class YuthonNotice(http.Controller):
|
||||
@http.route('/yuthon/notice/list', methods=['POST'], type='http', auth='none', csrf=False)
|
||||
def yuthon_notice_list(self, **kwargs):
|
||||
notice_ids = request.env['yuthon.notice'].sudo().search([])
|
||||
|
||||
data_list = []
|
||||
for notice in notice_ids:
|
||||
result = {
|
||||
@@ -63,6 +62,7 @@ class YuthonNotice(http.Controller):
|
||||
'create_date1': fields.Date.to_string(notice.create_date1) if notice.create_date1 else None,
|
||||
'users_id': notice.users_id.name,
|
||||
'name': notice.name,
|
||||
'state': 'no'
|
||||
}
|
||||
data_list.append(result)
|
||||
return json.dumps({'data': data_list, 'code': 200, 'message': 'success'})
|
||||
|
||||
@@ -73,12 +73,12 @@ class YuthonWillTask(http.Controller):
|
||||
|
||||
@http.route('/will/task/list', methods=['POST'], type='http', auth='public', csrf=False)
|
||||
def will_task_list(self, **kwargs):
|
||||
employee_id = kwargs.get('employee_id')
|
||||
employee_id = request.env['hr.employee'].search([('user_id', '=', int(kwargs.get('users_id')))])
|
||||
start = kwargs.get('start')
|
||||
request_hour_selection = request.env['yuthon.will.task'].sudo().fields_get(allfields=['request_hour_from'])['request_hour_from']['selection']
|
||||
result_list = []
|
||||
# for task in request.env['yuthon.will.task'].sudo().search(['|', ('employee_ids', 'in', [employee_id]), ('employee_id.id', '=', employee_id)]):
|
||||
task_ids = request.env['yuthon.will.task'].sudo().search([], offset=start, limit=7)
|
||||
# task_ids = request.env['yuthon.will.task'].sudo().search([], offset=start, limit=20)
|
||||
task_ids = request.env['yuthon.will.task'].sudo().search(['|', ('employee_ids', 'in', employee_id.id), ('employee_id.id', '=', employee_id.id)], offset=start, limit=20)
|
||||
for task in task_ids:
|
||||
weekday_str = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"][task.start_date.weekday()]
|
||||
result = {
|
||||
@@ -106,9 +106,7 @@ class YuthonWillTask(http.Controller):
|
||||
def will_task_record(self, **kwargs):
|
||||
task_id = kwargs.get('id')
|
||||
task = request.env['yuthon.will.task'].sudo().search([('id', '=', task_id)])
|
||||
request_hour_selection = request.env['yuthon.will.task'].sudo().fields_get(allfields=['request_hour_from'])['request_hour_from'][
|
||||
'selection']
|
||||
|
||||
request_hour_selection = request.env['yuthon.will.task'].sudo().fields_get(allfields=['request_hour_from'])['request_hour_from']['selection']
|
||||
file_list = []
|
||||
pdf = ['application/pdf']
|
||||
for file in task.document_ids:
|
||||
|
||||
@@ -39,7 +39,7 @@ class YuthonWillTask(models.Model):
|
||||
('23', '23:00'), ('23.25', '23:15'), ('23.5', '23:30'), ('23.75', '23:45')]
|
||||
request_hour_from = fields.Selection(time_list, string='开始时间', default='9')
|
||||
request_hour_to = fields.Selection(time_list, string='结束时间', default='18')
|
||||
priority = fields.Selection([('important', '重要不紧急'),('urgent', '紧急不重要'), ('very_urgent', '重要且紧急')], string='优先级')
|
||||
priority = fields.Selection([('important', '重要不紧急'), ('urgent', '紧急不重要'), ('very_urgent', '重要且紧急')], string='优先级')
|
||||
code = fields.Char(string="任务编号", default=lambda self: self.env['ir.sequence'].next_by_code('task_code'))
|
||||
user_id = fields.Many2one('res.users', string="创建人", default=lambda self: self.env.user)
|
||||
company_id = fields.Many2one('res.company', string="公司", default=lambda self: self.env.company)
|
||||
@@ -183,12 +183,12 @@ class YuthonWillTask(models.Model):
|
||||
url=url, btntxt="详细信息")
|
||||
|
||||
def button_add_comment(self):
|
||||
for employee_id in self.employee_ids:
|
||||
for employee_id in self.employee_ids + self.employee_ids2:
|
||||
data_date = '时间:' + str(self.start_date) + '\n'
|
||||
data_name = "事项名称: " + self.name + '\n'
|
||||
data_user_ids = '参与人: ' + ', '.join(self.employee_ids.mapped('name')) + '\n'
|
||||
data_employee_id = ('司机:' + ', '.join(self.employee_ids2.mapped('name')) + '\n') if self.employee_ids2 else ''
|
||||
data_nota = ('备注:' + self.remarks) if self.remarks else ('') + '\n'
|
||||
data_nota = ('备注:' + self.remarks + '\n') if self.remarks else ('') + '\n'
|
||||
data = data_date + data_name + data_user_ids + data_nota + data_employee_id
|
||||
url = f'https://phone.thtzjt.com/phone/Schedule/{self.id}/{employee_id.id}'
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task', user_id=employee_id.wecom_userid,
|
||||
|
||||
@@ -5,29 +5,32 @@
|
||||
<field name='model'>yuthon.will.task</field>
|
||||
<field name='arch' type='xml'>
|
||||
<tree string='日程'
|
||||
decoration-muted = "task_state == 'cancel'"
|
||||
decoration-muted="task_state == 'cancel'"
|
||||
decoration-danger="priority == 'very_urgent'"
|
||||
decoration-info="priority == 'urgent'"
|
||||
decoration-success="priority == 'important'" limit="15">
|
||||
<field name='start_date' column_invisible="1"/>
|
||||
<field name='task_time' />
|
||||
<field name='task_time'/>
|
||||
<field name='name' required="1"/>
|
||||
<field name='employee_ids' widget="many2many_tags" required="1" options="{'no_create': True}"/>
|
||||
<field name="address"/>
|
||||
<field name='remarks'/>
|
||||
<!-- <field name='document_ids' widget="many2many_tags"/>-->
|
||||
<!-- <field name='employee_ids2' widget="many2many_tags" domain="[('user_role_ids.name', 'in', ['司机'])]" options="{'no_create': True}"/>-->
|
||||
<!-- <field name='task_time_ids' widget="many2many_tags" required="1"/>-->
|
||||
<!-- <field name='document_ids' widget="many2many_tags"/>-->
|
||||
<!-- <field name='employee_ids2' widget="many2many_tags" domain="[('user_role_ids.name', 'in', ['司机'])]" options="{'no_create': True}"/>-->
|
||||
<!-- <field name='task_time_ids' widget="many2many_tags" required="1"/>-->
|
||||
<field name='priority'/>
|
||||
<field name='task_state' readonly="1"/>
|
||||
<!-- <field name='users_ids' widget="many2many_tags" column_invisible="1"/>-->
|
||||
<!-- <field name='user_role_ids' widget="many2many_tags" column_invisible="1"/>-->
|
||||
<!-- <field name="employee_id" optional="hide"/>-->
|
||||
<!-- <field name='creation_time' optional="hide"/>-->
|
||||
<button name="button_add_comment" string="提醒" type="object" class="oe_highlight" invisible="task_state in ['done', 'cancel']"/>
|
||||
<!-- <button name="back_wecom_msg" string="测试撤销" type="object" class="oe_highlight"/>-->
|
||||
<button name="button_add_comment_cancel" string="取消" type="object" class="oe_highlight" invisible="task_state == 'cancel'"/>
|
||||
<button name="schedule_reminders" string="提醒任务" type="object" class="oe_highlight" groups="base.group_system"/>
|
||||
<!-- <field name='users_ids' widget="many2many_tags" column_invisible="1"/>-->
|
||||
<!-- <field name='user_role_ids' widget="many2many_tags" column_invisible="1"/>-->
|
||||
<!-- <field name="employee_id" optional="hide"/>-->
|
||||
<!-- <field name='creation_time' optional="hide"/>-->
|
||||
<button name="button_add_comment" string="提醒" type="object" class="oe_highlight"
|
||||
invisible="task_state in ['done', 'cancel']"/>
|
||||
<!-- <button name="back_wecom_msg" string="测试撤销" type="object" class="oe_highlight"/>-->
|
||||
<button name="button_add_comment_cancel" string="取消" type="object" class="oe_highlight"
|
||||
invisible="task_state == 'cancel'"/>
|
||||
<button name="schedule_reminders" string="提醒任务" type="object" class="oe_highlight"
|
||||
groups="base.group_system"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -45,96 +48,108 @@
|
||||
</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-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"/>
|
||||
<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-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="name"/>
|
||||
<h1>
|
||||
<field name="name" required="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group col="2">
|
||||
<group>
|
||||
<label for="start_date"/>
|
||||
<div class="d-inline-flex w-100">
|
||||
<!-- <field name="msg_id"/>-->
|
||||
<field name="start_date" string="日期" class="me-2"
|
||||
style="max-width: 6rem !important;"/>
|
||||
<field name="task_week" string="" class="me-2" style="max-width: 4rem !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="is_this_company" string="本公司"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="task_state" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="employee_ids" widget="many2many_tags" options="{'no_create': True}"
|
||||
domain="[('company_id', '=', company_id)] if is_this_company else []"/>
|
||||
<field name="user_role_ids" widget="many2many_tags" invisible="1"/>
|
||||
</group>
|
||||
<group col="2">
|
||||
<group>
|
||||
<field name="address"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="employee_ids2" widget="many2many_tags"
|
||||
domain="[('company_id', '=', company_id), ('user_role_ids.name', 'in', ['司机'])] if is_this_company else [('user_role_ids.name', 'in', ['司机'])]"
|
||||
options="{'no_create': True}"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="priority"/>
|
||||
<field name="remarks"/>
|
||||
<field name="document_ids" widget="preview_many2many"/>
|
||||
<field name="creation_time" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" required="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group col="2">
|
||||
<group>
|
||||
<label for="start_date"/>
|
||||
<div class="d-inline-flex w-100">
|
||||
<!-- <field name="msg_id"/>-->
|
||||
<field name="start_date" string="日期" class="me-2" style="max-width: 6rem !important;"/>
|
||||
<field name="task_week" string="" class="me-2" style="max-width: 4rem !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="employee_id"/>
|
||||
<field name="task_state" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="employee_ids" widget="many2many_tags" options="{'no_create': True}" domain="[('company_id', '=', company_id)] if is_this_company else []"/>
|
||||
<field name="user_role_ids" widget="many2many_tags" invisible="1"/>
|
||||
</group>
|
||||
<group col="2">
|
||||
<group>
|
||||
<field name="address"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="employee_ids2" widget="many2many_tags" domain="[('company_id', '=', company_id), ('user_role_ids.name', 'in', ['司机'])] if is_this_company else [('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>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</sheet>
|
||||
</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>
|
||||
<field name='arch' type='xml'>
|
||||
<tree string='日程'
|
||||
decoration-muted = "task_state == 'cancel'"
|
||||
decoration-muted="task_state == 'cancel'"
|
||||
decoration-danger="priority == 'very_urgent'"
|
||||
decoration-info="priority == 'urgent'"
|
||||
decoration-success="priority == 'important'" create="false" edit="false" js_class="custom_task_tree_button" limit="15">
|
||||
decoration-success="priority == 'important'" create="false" edit="false"
|
||||
js_class="custom_task_tree_button" limit="15">
|
||||
<field name='start_date' column_invisible="1"/>
|
||||
<field name='task_time' />
|
||||
<field name='task_time'/>
|
||||
<field name='name' required="1"/>
|
||||
<field name='employee_ids' widget="many2many_tags" required="1" options="{'no_create': True}"/>
|
||||
<field name="address"/>
|
||||
<field name='remarks'/>
|
||||
<!-- <field name='document_ids' widget="many2many_tags"/>-->
|
||||
<!-- <field name='employee_ids2' widget="many2many_tags" domain="[('user_role_ids.name', 'in', ['司机'])]" options="{'no_create': True}"/>-->
|
||||
<!-- <field name='task_time_ids' widget="many2many_tags" required="1"/>-->
|
||||
<!-- <field name='document_ids' widget="many2many_tags"/>-->
|
||||
<!-- <field name='employee_ids2' widget="many2many_tags" domain="[('user_role_ids.name', 'in', ['司机'])]" options="{'no_create': True}"/>-->
|
||||
<!-- <field name='task_time_ids' widget="many2many_tags" required="1"/>-->
|
||||
<field name='priority'/>
|
||||
<field name='task_state' readonly="1"/>
|
||||
<!-- <field name='users_ids' widget="many2many_tags" column_invisible="1"/>-->
|
||||
<!-- <field name='user_role_ids' widget="many2many_tags" column_invisible="1"/>-->
|
||||
<!-- <field name="employee_id" optional="hide"/>-->
|
||||
<!-- <field name='creation_time' optional="hide"/>-->
|
||||
<button name="button_add_comment" string="提醒" type="object" class="oe_highlight" invisible="task_state in ['done', 'cancel']"/>
|
||||
<button name="button_add_comment_cancel" string="取消" type="object" class="oe_highlight" invisible="task_state == 'cancel'"/>
|
||||
<!-- <field name='users_ids' widget="many2many_tags" column_invisible="1"/>-->
|
||||
<!-- <field name='user_role_ids' widget="many2many_tags" column_invisible="1"/>-->
|
||||
<!-- <field name="employee_id" optional="hide"/>-->
|
||||
<!-- <field name='creation_time' optional="hide"/>-->
|
||||
<button name="button_add_comment" string="提醒" type="object" class="oe_highlight"
|
||||
invisible="task_state in ['done', 'cancel']"/>
|
||||
<button name="button_add_comment_cancel" string="取消" type="object" class="oe_highlight"
|
||||
invisible="task_state == 'cancel'"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -167,10 +182,10 @@
|
||||
<field name="name" required="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group col="2">
|
||||
<group>
|
||||
<label for="start_date"/>
|
||||
<div class="d-inline-flex w-100">
|
||||
<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="task_week" string="" class="me-2" style="max-width: 4rem !important;"/>
|
||||
@@ -178,12 +193,12 @@
|
||||
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>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field name="task_time_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="employee_id" domain="[('company_id', '=', company_id)]"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
@@ -196,19 +211,21 @@
|
||||
<field name="address"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name='employee_ids2' widget="many2many_tags" domain="[('user_role_ids.name', 'in', ['司机'])]" options="{'no_create': True}"/>
|
||||
<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"/>-->
|
||||
<!-- <field name="activity_ids"/>-->
|
||||
<!-- <field name="message_ids"/>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="oe_chatter">-->
|
||||
<!-- <field name="message_follower_ids" groups="base.group_user"/>-->
|
||||
<!-- <field name="activity_ids"/>-->
|
||||
<!-- <field name="message_ids"/>-->
|
||||
<!-- </div>-->
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -234,7 +251,7 @@
|
||||
<field name='view_mode'>tree,calendar,form</field>
|
||||
<field name='domain'>[('users_ids', 'in', [uid])]</field>
|
||||
<field name="context">{'search_default_next_seven_days': 1}</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_will_task.view_yuthon_will_task_tree2')}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_will_task.view_yuthon_will_task_form2')})]"/>
|
||||
</record>
|
||||
@@ -254,7 +271,9 @@
|
||||
<field name='name'>领导日程</field>
|
||||
<field name='res_model'>yuthon.will.task</field>
|
||||
<field name='view_mode'>tree,calendar,form</field>
|
||||
<field name='domain'>[('user_role_ids.name', 'in', ['董事长', '分管领导', '总经理', '部门副经理', '副总经理', '司机'])]</field>
|
||||
<field name='domain'>[('user_role_ids.name', 'in', ['董事长', '分管领导', '总经理', '部门副经理', '副总经理',
|
||||
'司机'])]
|
||||
</field>
|
||||
<field name="context">{'search_default_next_seven_days': 1}</field>
|
||||
</record>
|
||||
<record id="all_yuthon_will_task" model="ir.actions.server">
|
||||
|
||||
Reference in New Issue
Block a user