odoo18/addons_extensions/user_timelines/views/user_timeline_views.xml

210 lines
9.8 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_user_timeline_entry_search" model="ir.ui.view">
<field name="name">user.timeline.entry.search</field>
<field name="model">user.timeline.entry</field>
<field name="arch" type="xml">
<search string="Timelines">
<field name="name"/>
<field name="employee_id"/>
<field name="company_id"/>
<field name="user_id"/>
<field name="project_id"/>
<field name="task_id"/>
<field name="leave_type_id"/>
<field name="focus_label"/>
<group>
<filter name="tasks_only" string="Tasks" domain="[('entry_type', '=', 'task')]"/>
<filter name="leaves_only" string="Leaves"
domain="[('entry_type', '=', 'leave'),('is_public_holiday', '=', False)]"/>
<filter name="public_holidays_only" string="Public Holidays"
domain="[('is_public_holiday', '=', True)]"/>
</group>
<group>
<filter name="public_holidays_remove" string="Hide Public Holidays"
domain="[('is_public_holiday', '=', False)]"/>
</group>
<group expand="0" string="Group By">
<filter name="group_employee" string="Employee" context="{'group_by': 'employee_id'}"/>
<filter name="group_company" string="Company" context="{'group_by': 'company_id'}"/>
<filter name="group_user" string="User" context="{'group_by': 'user_id'}"/>
<filter name="group_project" string="Project" context="{'group_by': 'project_id'}"/>
<filter name="group_type" string="Type" context="{'group_by': 'entry_type'}"/>
</group>
</search>
</field>
</record>
<record id="view_user_timeline_entry_list" model="ir.ui.view">
<field name="name">user.timeline.entry.list</field>
<field name="model">user.timeline.entry</field>
<field name="arch" type="xml">
<list string="Timelines" create="false" edit="false" delete="false">
<field name="name"/>
<field name="employee_id"/>
<field name="company_id" optional="hide"/>
<field name="user_id" optional="hide"/>
<field name="entry_type"/>
<field name="project_id" optional="show"/>
<field name="task_id" optional="show"/>
<field name="leave_type_id" optional="show"/>
<field name="is_public_holiday" optional="hide"/>
<field name="date_start"/>
<field name="date_stop"/>
<field name="source_label"/>
</list>
</field>
</record>
<record id="view_user_timeline_entry_calendar" model="ir.ui.view">
<field name="name">user.timeline.entry.calendar</field>
<field name="model">user.timeline.entry</field>
<field name="arch" type="xml">
<calendar string="Employee Timeline"
date_start="date_start"
date_stop="date_stop"
color="display_color"
mode="week"
create="false"
quick_create="false">
<field name="name"/>
<field name="company_id"/>
<field name="employee_id"/>
<field name="project_id"/>
<field name="leave_type_id"/>
<field name="entry_type"/>
</calendar>
</field>
</record>
<record id="view_user_timeline_entry_gantt" model="ir.ui.view">
<field name="name">user.timeline.entry.gantt</field>
<field name="model">user.timeline.entry</field>
<field name="arch" type="xml">
<gantt string="Employee Timeline"
date_start="date_start"
date_stop="date_stop"
default_scale="week"
scales="day,week,month,year"
default_group_by="employee_id"
color="display_color"
display_mode="sparse"
create="false"
edit="false"
delete="false"
pill_label="True"
total_row="True"
precision="{'day': 'hour:quarter', 'week': 'day:half', 'month': 'day:half'}">
<templates>
<div t-name="gantt-popover">
<div>
<strong>Timeline -</strong>
<t t-esc="name"/>
</div>
<div t-if="focus_label">
<strong>Focus -</strong>
<t t-esc="focus_label"/>
</div>
<div t-if="employee_id">
<strong>Employee -</strong>
<t t-esc="employee_id[1]"/>
</div>
<div t-if="company_id">
<strong>Company -</strong>
<t t-esc="company_id[1]"/>
</div>
<div t-if="project_id">
<strong>Project -</strong>
<t t-esc="project_id[1]"/>
</div>
<div t-if="task_id">
<strong>Task -</strong>
<t t-esc="task_id[1]"/>
</div>
<div t-if="leave_type_id">
<strong>Leave Type -</strong>
<t t-esc="leave_type_id[1]"/>
</div>
<div t-if="is_public_holiday"><strong>Scope -</strong>Company Holiday
</div>
<div>
<strong>Type -</strong>
<t t-esc="entry_type"/>
</div>
<div>
<t t-esc="date_start.toFormat('MMM dd, yyyy HH:mm')"/>
<i class="fa fa-long-arrow-right" title="Arrow"/>
<t t-esc="date_stop.toFormat('MMM dd, yyyy HH:mm')"/>
</div>
</div>
<div t-name="gantt-pulse">
<div t-if="entry_type == 'task'"
class="o_user_timeline_pill o_user_timeline_task"
t-attf-style="--user-timeline-color: {{ display_color_hex }};">
<span class="o_user_timeline_badge">Task</span>
<span class="o_user_timeline_title" t-esc="name"/>
</div>
<div t-if="entry_type == 'leave'"
class="o_user_timeline_pill o_user_timeline_leave"
t-attf-style="--user-timeline-color: {{ display_color_hex }};">
<span class="o_user_timeline_badge" t-esc="is_public_holiday ? 'Holiday' : 'Leave'"/>
<span class="o_user_timeline_title" t-esc="name"/>
</div>
</div>
</templates>
<field name="name"/>
<field name="company_id"/>
<field name="employee_id"/>
<field name="project_id"/>
<field name="task_id"/>
<field name="leave_type_id"/>
<field name="entry_type"/>
<field name="display_color_hex"/>
<field name="is_public_holiday"/>
<field name="focus_label"/>
</gantt>
</field>
</record>
<record id="action_user_timeline_entries" model="ir.actions.act_window">
<field name="name">Employee Timelines</field>
<field name="res_model">user.timeline.entry</field>
<field name="view_mode">gantt,calendar,list</field>
<field name="search_view_id" ref="view_user_timeline_entry_search"/>
<field name="domain">['|', ('company_id', '=', False), ('company_id', 'in', allowed_company_ids)]</field>
<field name="context">{'search_default_group_employee': 1,'search_default_public_holidays_remove': 1,
'default_is_public_holiday': 0}
</field>
</record>
<record id="action_user_timeline_entries_gantt" model="ir.actions.act_window.view">
<field name="sequence" eval="10"/>
<field name="view_mode">gantt</field>
<field name="act_window_id" ref="action_user_timeline_entries"/>
<field name="view_id" ref="view_user_timeline_entry_gantt"/>
</record>
<record id="action_user_timeline_entries_calendar" model="ir.actions.act_window.view">
<field name="sequence" eval="20"/>
<field name="view_mode">calendar</field>
<field name="act_window_id" ref="action_user_timeline_entries"/>
<field name="view_id" ref="view_user_timeline_entry_calendar"/>
</record>
<record id="action_user_timeline_entries_list" model="ir.actions.act_window.view">
<field name="sequence" eval="30"/>
<field name="view_mode">list</field>
<field name="act_window_id" ref="action_user_timeline_entries"/>
<field name="view_id" ref="view_user_timeline_entry_list"/>
</record>
<menuitem id="menu_user_timeline_entries"
name="Employee Timelines"
parent="hr.menu_hr_employee_payroll"
action="action_user_timeline_entries"
groups="hr.group_hr_user"
sequence="15"/>
</odoo>