194 lines
11 KiB
XML
194 lines
11 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<odoo>
|
|
<record id='view_yuthon_will_task_list' model='ir.ui.view'>
|
|
<field name='name'>yuthon.will.task.list</field>
|
|
<field name='model'>yuthon.will.task</field>
|
|
<field name='arch' type='xml'>
|
|
<list string='日程'
|
|
decoration-muted="task_state == 'cancel'"
|
|
decoration-danger="priority == 'very_urgent'"
|
|
decoration-info="priority == 'urgent'"
|
|
decoration-success="priority == 'important'">
|
|
<field name="task_time" />
|
|
<field name="start_date" string="任务日期" />
|
|
<field name="request_hour_from" string="开始时间" />
|
|
<field name="task_time_ids" string="提醒配置" widget="many2many_tags"
|
|
context="{'default_will_task_ids': [(4, id)]}" />
|
|
<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="priority" />
|
|
<field name="task_state" readonly="1" />
|
|
<field name="users_ids" widget="many2many_tags" column_invisible="1" />
|
|
<field name="user_id" optional="hide" />
|
|
<field name="creation_time" optional="hide" />
|
|
<button name="button_add_comment" string="提醒" type="object" class="oe_highlight"
|
|
invisible="task_state == 'cancel'" />
|
|
<button name="button_add_comment_cancel" string="取消" type="object"
|
|
class="oe_highlight" invisible="task_state != 'will'" />
|
|
</list>
|
|
</field>
|
|
</record>
|
|
|
|
<record id='yuthon_will_task_search' model='ir.ui.view'>
|
|
<field name='name'>yuthon.will.task.search</field>
|
|
<field name='model'>yuthon.will.task</field>
|
|
<field name='arch' type='xml'>
|
|
<search string='日程'>
|
|
<field name="name" />
|
|
<field name="start_date" string="任务日期" />
|
|
<field name="priority" />
|
|
<field name="task_state" />
|
|
<field name="employee_ids" widget="many2many_tags" string="参与人" />
|
|
<filter name="next_seven_days" string="周内事项"
|
|
domain="[('start_date', '>=', context_today().strftime('%Y-%m-%d')),
|
|
('start_date', '<=', (context_today() + relativedelta(days=7)).strftime('%Y-%m-%d'))]" />
|
|
<filter name="next_thirty_days" string="月内事项"
|
|
domain="[('start_date', '>=', context_today().strftime('%Y-%m-%d')),
|
|
('start_date', '<=', (context_today() + relativedelta(days=30)).strftime('%Y-%m-%d'))]" />
|
|
<filter name="today_task" string="今日任务"
|
|
domain="[('start_date', '=', context_today().strftime('%Y-%m-%d'))]" />
|
|
</search>
|
|
</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" />
|
|
</group>
|
|
<group>
|
|
<field name="priority" />
|
|
</group>
|
|
</group>
|
|
<div class="oe_title">
|
|
<label for="name" />
|
|
<h1>
|
|
<field name="name" required="1" />
|
|
</h1>
|
|
</div>
|
|
<group string="测试计算字段" groups="base.group_system">
|
|
<field name="task_time_data" />
|
|
</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"
|
|
context="{'default_will_task_ids': [(4, id)] if id else []}" />
|
|
</group>
|
|
</group>
|
|
<group>
|
|
<field name="user_id" />
|
|
<field name="task_state" invisible="1" />
|
|
<field name="company_id" invisible="1" />
|
|
<field name="employee_ids" string="参与人员" widget="many2many_tags"
|
|
options="{'no_create': True, 'placeholder': '选择参与的员工'}" />
|
|
<field name="employee_ids2" string="司机" widget="many2many_tags"
|
|
options="{'no_create': True, 'placeholder': '选择司机(可选)'}" />
|
|
</group>
|
|
<group col="2" class="mt-4">
|
|
<group>
|
|
<field name="address" />
|
|
</group>
|
|
</group>
|
|
<group class="mt-2">
|
|
<field name="remarks" />
|
|
<field name="document_ids" />
|
|
<field name="creation_time" invisible="1" />
|
|
</group>
|
|
<notebook class="mt-4">
|
|
<page string="任务步骤明细">
|
|
<field name="task_step_ids">
|
|
<list editable="bottom"
|
|
decoration-success="state == 'done'"
|
|
decoration-danger="state == 'rejected'">
|
|
<field name="node" string="节点" required="1" />
|
|
<field name="opinion" string="意见" />
|
|
<field name="user_id" string="姓名" required="1" />
|
|
<field name="step_time" string="时间" />
|
|
<field name="state" string="状态" />
|
|
</list>
|
|
<kanban class="o_kanban_mobile" color="state">
|
|
<field name="node" />
|
|
<field name="opinion" />
|
|
<field name="user_id" />
|
|
<field name="step_time" />
|
|
<field name="state" />
|
|
<templates>
|
|
<t t-name="kanban-box">
|
|
<div class="o_kanban_record d-md-none card h-100">
|
|
<div class="card-header"
|
|
t-att-class="{'bg-success': state == 'done', 'bg-danger': state == 'rejected', 'bg-warning': state == 'processing', 'bg-secondary': state == 'todo'}">
|
|
<strong>
|
|
<field name="node" />
|
|
</strong>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="mb-2">
|
|
<small>经办人: [<field name="user_id" />] </small>
|
|
</div>
|
|
<div class="mb-2">
|
|
<small>
|
|
<field name="step_time"
|
|
widget="datetime" format="short" />
|
|
</small>
|
|
</div>
|
|
<div t-if="record.opinion.raw_value"
|
|
class="mb-2">
|
|
<small>[<field name="user_id" />]</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id='view_yuthon_will_task_action' model='ir.actions.act_window'>
|
|
<field name='name'>我的日程</field>
|
|
<field name='res_model'>yuthon.will.task</field>
|
|
<field name='view_mode'>list,form</field>
|
|
<field name='domain'>['|',('users_ids', 'in', [uid]), ('user_id', '=', uid)]</field>
|
|
<field name="context">{'search_default_next_seven_days': 1}</field>
|
|
<field name="view_id" ref="view_yuthon_will_task_list" />
|
|
</record>
|
|
|
|
<record id='view_yuthon_will_task_action2' model='ir.actions.act_window'>
|
|
<field name='name'>日程管理</field>
|
|
<field name='res_model'>yuthon.will.task</field>
|
|
<field name='view_mode'>list,form</field>
|
|
<field name="context">{'search_default_next_seven_days': 1}</field>
|
|
<field name="view_id" ref="view_yuthon_will_task_list" />
|
|
<field name="groups_id" eval="[(6,0,[ref('base.group_system')])]" />
|
|
</record>
|
|
</odoo> |