odoo/addons/hr_timesheet_sheet/views/hr_timesheet_sheet_views.xml

261 lines
13 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="hr_timesheet_account_form" model="ir.ui.view">
<field name="name">hr.timesheet.account.form</field>
<field name="model">hr_timesheet_sheet.sheet.account</field>
<field name="arch" type="xml">
<form string="Timesheet by Accounts">
<group col="4">
<field name="sheet_id"/>
<field name="name" groups="analytic.group_analytic_accounting"/>
<field name="total" sum="Total"/>
</group>
</form>
</field>
</record>
<record id="hr_timesheet_account_filter" model="ir.ui.view">
<field name="name">hr.timesheet.account.filter</field>
<field name="model">hr_timesheet_sheet.sheet.account</field>
<field name="arch" type="xml">
<search string="Search Account">
<field name="name" groups="analytic.group_analytic_accounting"/>
<field name="sheet_id" />
</search>
</field>
</record>
<record id="hr_timesheet_account_tree" model="ir.ui.view">
<field name="name">hr.timesheet.account.tree</field>
<field name="model">hr_timesheet_sheet.sheet.account</field>
<field name="arch" type="xml">
<tree string="Timesheet by Accounts">
<field name="sheet_id"/>
<field name="name" groups="analytic.group_analytic_accounting"/>
<field name="total" sum="Total"/>
</tree>
</field>
</record>
<record id="hr_timesheet_sheet_tree_simplified" model="ir.ui.view">
<field name="name">hr.timesheet.sheet.tree</field>
<field name="model">hr_timesheet_sheet.sheet</field>
<field name="arch" type="xml">
<tree decoration-info="state == 'draft'" decoration-muted="state == 'done'" decoration-bf="message_needaction == True" string="Timesheets">
<field name="employee_id"/>
<field name="date_from"/>
<field name="date_to"/>
<field name="department_id" invisible="1"/>
<field name="state"/>
<field name="message_needaction" invisible="1"/>
</tree>
</field>
</record>
<record id="hr_timesheet_sheet_form" model="ir.ui.view">
<field name="name">hr.timesheet.sheet.form</field>
<field name="model">hr_timesheet_sheet.sheet</field>
<field name="arch" type="xml">
<form string="Timesheet">
<header>
<button name="action_timesheet_confirm" states="draft" string="Submit to Manager" type="object" class="oe_highlight"/>
<button name="action_timesheet_done" states="confirm" string="Approve" type="object" groups="hr_timesheet.group_hr_timesheet_user" class="oe_highlight"/>
<button name="action_timesheet_draft" states="done" string="Set to Draft" type="object" groups="hr_timesheet.group_hr_timesheet_user"/>
<button name="action_timesheet_draft" states="confirm" string="Refuse" type="object" groups="hr_timesheet.group_hr_timesheet_user"/>
<field name="state" widget="statusbar" statusbar_visible="new,confirm,done"/>
</header>
<sheet>
<div class="oe_title">
<label for="employee_id" class="oe_edit_only"/>
<h1><field name="employee_id" class="oe_inline" placeholder="Employee's Name"/></h1>
<field name="user_id" invisible="1"/>
</div>
<group>
<group>
<label for="date_from" string="Timesheet Period"/>
<div><field name="date_from" class="oe_inline"/> to <field name="date_to" class="oe_inline"/></div>
<field name="name" invisible="1"/>
<field name="department_id" invisible="1"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
</group>
<notebook>
<page string="Summary">
<widget type="weekly_timesheet" attrs="{'readonly': [['state', 'not in', ['new', 'draft']]]}">
</widget>
</page>
<page string="Details" class="o_hr_timesheet_sheet_details">
<field context="{'employee_id': employee_id, 'user_id':user_id, 'timesheet_date_from': date_from, 'timesheet_date_to': date_to}" name="timesheet_ids" nolabel="1">
<tree editable="bottom" string="Timesheet Activities">
<field name="date"/>
<field name="name"/>
<field name="project_id" required="1"/>
<field name="unit_amount" widget="float_time" string="Hours" sum="Hours"/>
<field name="user_id" invisible="1"/>
</tree>
<form string="Timesheet Activities">
<group>
<field name="date"/>
<field name="name"/>
<field name="project_id"/>
<field name="unit_amount" widget="float_time" string="Hours"/>
<field name="user_id" invisible="1"/>
</group>
</form>
</field>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
</record>
<record id="view_hr_timesheet_sheet_filter" model="ir.ui.view">
<field name="name">hr_timesheet_sheet.sheet.filter</field>
<field name="model">hr_timesheet_sheet.sheet</field>
<field name="arch" type="xml">
<search string="Search Timesheet">
<field name="date_from"/>
<filter name="new" string="In Draft" domain="[('state','in',('draft', 'new'))]" help="Unvalidated Timesheets"/>
<filter name="to_approve" string="To Approve" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/>
<filter string="Unread Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
<field name="employee_id"/>
<field name="department_id"/>
<group expand="0" string="Group By">
<filter string="Employees" domain="[]" context="{'group_by':'employee_id'}"/>
<filter string="Department" domain="[]" context="{'group_by':'department_id'}"/>
</group>
</search>
</field>
</record>
<record id="act_hr_timesheet_sheet_my_timesheets" model="ir.actions.act_window">
<field name="name">My Timesheets</field>
<field name="res_model">hr_timesheet_sheet.sheet</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('employee_id.user_id', '=', uid)]</field>
<field name="search_view_id" ref="view_hr_timesheet_sheet_filter"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
new timesheet.
</p><p>
You must record timesheets every day and confirm at the end
of the week. Once the timesheet is confirmed, it should be
validated by a manager.
</p><p>
Timesheets can also be invoiced to customers, depending on the
configuration of each project's related contract.
</p>
</field>
</record>
<menuitem name="My Current Timesheet" id="menu_act_hr_timesheet_sheet_form_my_current" parent="hr_timesheet.menu_hr_time_tracking" action="ir_actions_server_timesheet_sheet" sequence="2"/>
<menuitem action="act_hr_timesheet_sheet_my_timesheets" id="menu_act_hr_timesheet_sheet_my_timesheets" parent="hr_timesheet.menu_hr_time_tracking"
sequence="3"/>
<record id="act_hr_timesheet_sheet_form" model="ir.actions.act_window">
<field name="name">Timesheets to Approve</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr_timesheet_sheet.sheet</field>
<field name="view_type">form</field>
<field name="view_id" eval="False"/>
<field name="context">{'search_default_to_approve':1}</field>
<field name="search_view_id" ref="view_hr_timesheet_sheet_filter"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
New timesheet to approve.
</p><p>
You must record timesheets every day and confirm at the end
of the week. Once the timesheet is confirmed, it should be
validated by a manager.
</p><p>
Timesheets can also be invoiced to customers, depending on the
configuration of each project's related contract.
</p>
</field>
</record>
<record model="ir.actions.act_window.view" id="action_open_timesheet_sheet_holidays_tree">
<field name="sequence" eval="2"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="hr_timesheet_sheet_tree_simplified"/>
<field name="act_window_id" ref="act_hr_timesheet_sheet_form"/>
</record>
<menuitem id="menu_hr_to_approve" name="To Approve" parent="hr_timesheet.timesheet_menu_root" sequence="7"/>
<menuitem action="act_hr_timesheet_sheet_form" id="menu_act_hr_timesheet_sheet_form" parent="menu_hr_to_approve"
sequence="11" groups="hr_timesheet.group_hr_timesheet_user"/>
<!--
account.analytic.line inheritancy
-->
<record id="hr_timesheet_line_form" model="ir.ui.view">
<field name="name">account.analytic.line.form</field>
<field name="model">account.analytic.line</field>
<field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_form"/>
<field name="arch" type="xml">
<field name="date" position="after">
<field name="sheet_id" />
</field>
</field>
</record>
<record id="hr_timesheet_line_search" model="ir.ui.view">
<field name="name">account.analytic.line.search</field>
<field name="model">account.analytic.line</field>
<field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_search"/>
<field name="arch" type="xml">
<field name="date" position="before">
<field name="sheet_id"/>
</field>
</field>
</record>
<!-- Timesheet Button on Employee Form -->
<record id="act_hr_employee_2_hr_timesheet" model="ir.actions.act_window">
<field name="res_model">hr_timesheet_sheet.sheet</field>
<field name="view_type">form</field>
<field name="name">Timesheets</field>
<field name="view_mode">tree,form</field>
<field name="context">{'search_default_employee_id': [active_id], 'default_employee_id': active_id}</field>
</record>
<record id="hr_timesheet_sheet_employee_extd_form" model="ir.ui.view">
<field name="name">hr.timesheet.sheet.employee.extd_form</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button name="%(act_hr_employee_2_hr_timesheet)d"
type="action"
class="oe_stat_button"
icon="fa-clock-o"
groups="hr_timesheet.group_hr_timesheet_user">
<field name="timesheet_count" widget="statinfo" string="Timesheets"/>
</button>
</div>
</field>
</record>
<record id="hr_timesheet_action_from_department" model="ir.actions.act_window">
<field name="name">Timesheets to Approve</field>
<field name="res_model">hr_timesheet_sheet.sheet</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context">{
'search_default_department_id': [active_id],
'default_department_id': active_id,
'search_default_to_approve': 1}
</field>
</record>
</odoo>