<field name="arch" type="xml">
<search string="Search Leave">
<group>
+ <field name="date_from"/>
+ <separator orientation="vertical"/>
+ <filter string="My Leaves" icon="terp-personal" name="my_leaves" domain="[('employee_id.user_id','=', uid)]" help="My Leaves"/>
+ <filter string="My Department Leaves" icon="terp-personal+" help="My Department Leaves" domain="[('department_id.manager_id','=',uid)]"/>
<filter icon="terp-check" domain="[('state','=','draft')]" string="To Confirm"/>
<filter icon="terp-camera_test" domain="[('state','=','confirm')]" string="To Approve" name="approve"/>
<filter icon="terp-camera_test" domain="[('state','=','validate')]" string="Validated" name="validated"/>
- <separator orientation="vertical"/>
<filter icon="terp-go-year" name="year" string="Year" domain="[('holiday_status_id.active','=',True)]" help="Filters only on allocations and requests that belong to an holiday type that is 'active' (active field is True)"/>
- <filter icon="terp-go-month" name="This Month" string="Month" domain="[('date_from','<=',(datetime.date.today()+relativedelta(day=31)).strftime('%%Y-%%m-%%d')),('date_from','>=',(datetime.date.today()-relativedelta(day=1)).strftime('%%Y-%%m-%%d'))]"/>
- <filter icon="terp-go-month" name="This Month-1" string=" Month-1"
- domain="[('date_from','<=', (datetime.date.today() - relativedelta(day=31, months=1)).strftime('%%Y-%%m-%%d')),('date_from','>=',(datetime.date.today() - relativedelta(day=1,months=1)).strftime('%%Y-%%m-%%d'))]"
- help="Holidays during last month"/>
<separator orientation="vertical"/>
- <field name="employee_id">
- <filter icon="terp-personal" name="my_leaves" domain="[('employee_id.user_id','=', uid)]" help="My Leaves"/>
- </field>
- <field name="department_id" widget="selection">
- <filter icon="terp-personal+" help="My Department Leaves" domain="[('department_id.manager_id','=',uid)]"/>
- </field>
+ <field name="employee_id"/>
+ <field name="department_id" widget="selection"/>
<field name="holiday_status_id" widget="selection"/>
</group>
<newline/>
<separator orientation="vertical"/>
<filter name="group_type" string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'holiday_status_id'}"/>
<separator orientation="vertical"/>
- <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
+ <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
</group>
</search>
</field>
<field name="type">form</field>
<field name="priority">1</field>
<field name="arch" type="xml">
- <form string="Leave Request">
+ <form version="7.0">
+ <header>
+ <button string="Submit to Manager" name="confirm" states="draft" type="workflow" class="oe_highlight"/>
+ <button string="Approve" name="validate" states="confirm" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
+ <button string="Validate" name="second_validate" states="validate1" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
+ <button string="Refuse" name="refuse" states="confirm,validate1" type="workflow" groups="base.group_hr_user,base.group_hr_manager" class="oe_highlight"/>
+ <button string="Reset to New" name="set_to_draft" states="refuse,validate" type="object" groups="base.group_hr_user" />
+ <field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/>
+ </header>
+ <sheet string="Leave Request" layout="auto">
<group col="8" colspan="4">
<field name="name" attrs="{'readonly':[('state','!=','draft'),('state','!=','confirm')]}"/>
<field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('state','!=','draft')]}" width="130" string="Mode" groups="base.group_hr_user"/>
<group attrs="{'invisible':[('holiday_type','=','employee')]}">
- <field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly':[('state','!=','draft')]}"/>
+ <field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly':[('state','!=','draft'), ('state','!=','confirm')]}"/>
</group>
<group attrs="{'invisible':[('holiday_type','=','category')]}">
<field name="employee_id" attrs="{'required':[('holiday_type','=','employee')]}" groups="base.group_hr_user"/>
<field name="manager_id2" attrs="{'invisible':[('double_validation', '!=', True)]}" groups="base.group_no_one"/>
<separator string="Reasons" colspan="4"/>
<field name="notes" nolabel="1" colspan="4"/>
- <group colspan="4" col="8">
- <field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/>
- <button string="Refuse" name="refuse" states="confirm,validate1" type="workflow" icon="gtk-no" groups="base.group_hr_user,base.group_hr_manager"/>
- <button string="Confirm" name="confirm" states="draft" type="workflow" icon="gtk-yes"/>
- <button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
- <button string="Approved" name="second_validate" states="validate1" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
- <button string="Set to Draft" name="set_to_draft" states="refuse,validate" type="object" icon="gtk-convert" groups="base.group_hr_user"/>
- </group>
- <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
</page>
</notebook>
+ </sheet>
+ <div class="oe_sheet_width">
+ <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
+ </div>
</form>
</field>
</record>
<field name="model">hr.holidays</field>
<field name="type">form</field>
<field name="arch" type="xml">
- <form string="Allocation Request">
- <group col="8" colspan="4">
+ <form string="Allocation Request" version="7.0">
+ <header>
+ <button string="Submit to Manager" name="confirm" states="draft" type="workflow" class="oe_highlight"/>
+ <button string="Approve" name="validate" states="confirm" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
+ <button string="Validate" name="second_validate" states="validate1" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
+ <button string="Refuse" name="refuse" states="confirm,validate1" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
+ <button string="Reset to New" name="set_to_draft" states="cancel,validate,refuse" type="object" groups="base.group_hr_user" />
+ <field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/>
+ </header>
+ <sheet>
+ <group>
<field name="name"/>
<field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('state','!=','draft')]}" string="Allocation Mode" groups="base.group_hr_manager"/>
- <group attrs="{'invisible':[('holiday_type','=','category')]}">
- <field name="employee_id" attrs="{'required':[('holiday_type','=','employee')]}"/>
- </group>
- <group attrs="{'invisible':[('holiday_type','=','employee')]}">
- <field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly':[('state','!=','draft')]}"/>
- </group>
+ <field name="employee_id" attrs="{'required':[('holiday_type','=','employee')], 'invisible':[('holiday_type','=','category')]}"/>
+ <field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly':[('state','!=','draft')], 'invisible':[('holiday_type','=','employee')]}"/>
</group>
- <notebook colspan="4">
+ <notebook>
<page string="General">
- <field name="holiday_status_id" on_change="onchange_sec_id(holiday_status_id)" context="{'employee_id':employee_id}"/>
- <field name="department_id" attrs="{'readonly':[('holiday_type','=','category')]}"/>
- <field name="number_of_days_temp"/>
- <field name="double_validation" invisible="1"/>
- <newline/>
- <field name="manager_id"/>
- <field name="manager_id2" attrs="{'invisible':[('double_validation', '!=', True)]}"/>
- <separator string="Reasons" colspan="4"/>
- <field name="notes" nolabel="1" colspan="4"/>
- <group colspan="4" col="8">
- <field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/>
- <button string="Refuse" name="refuse" states="confirm,validate1" type="workflow" icon="gtk-no" groups="base.group_hr_user"/>
- <button string="Confirm" name="confirm" states="draft" type="workflow" icon="gtk-yes"/>
- <button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
- <button string="Approved" name="second_validate" states="validate1" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
- <button string="Set to Draft" name="set_to_draft" states="cancel,validate,refuse" type="object" icon="gtk-convert" groups="base.group_hr_user"/>
+ <group col="4">
+ <field name="holiday_status_id" on_change="onchange_sec_id(holiday_status_id)" context="{'employee_id':employee_id}"/>
+ <field name="department_id" attrs="{'readonly':['|', ('holiday_type','=','category'), ('state','not in' ,('draft', 'confirm'))]}"/>
+ <field name="number_of_days_temp"/>
+ <field name="double_validation" invisible="1"/>
+ <field name="manager_id"/>
+ <field name="manager_id2" attrs="{'invisible':[('double_validation', '!=', True)]}"/>
</group>
- <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
+ <separator string="Reasons"/>
+ <field name="notes"/>
</page>
</notebook>
+ </sheet>
+ <div class="oe_sheet_width">
+ <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
+ </div>
</form>
</field>
</record>
<field name="user_id" invisible="1"/>
<!--field name="type"/-->
<field name="state"/>
- <button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply" groups="base.group_hr_user,base.group_hr_manager"/>
- <button string="Approved" name="second_validate" states="validate1" type="workflow" icon="gtk-apply" groups="base.group_hr_user,base.group_hr_manager"/>
</tree>
</field>
</record>
<field name="model">hr.holidays</field>
<field name="type">form</field>
<field name="arch" type="xml">
- <form string="Leaves Management">
- <field name="name"/>
- <field name="holiday_status_id"/>
- <field name="type"/>
- <field name="date_from" on_change="onchange_date_from(date_to, date_from)" attrs="{'readonly':[('type','=','add')], 'required':[('type','=','remove')]}"/>
- <field name="date_to" on_change="onchange_date_from(date_to, date_from)" attrs="{'readonly':[('type','=','add')], 'required':[('type','=','remove')]}"/>
- <field name="number_of_days_temp"/>
- <notebook colspan="4">
- <page string="General">
- <field name="manager_id"/>
- <field name="notes" colspan="4"/>
- <newline/>
- <field name="state" colspan="2"/>
- <group colspan="2">
- <button string="Confirm" name="confirm" states="draft" type="workflow" icon="gtk-yes"/>
- <button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply"/>
- <button string="Refuse" name="refuse" states="confirm,validate,draft" type="workflow" icon="gtk-no"/>
- <button string="Set to Draft" name="set_to_draft" states="cancel" type="object" icon="gtk-convert"/>
- </group>
- </page>
- </notebook>
+ <form string="Leaves Management" version="7.0">
+ <header>
+ <button string="Submit to Manager" name="confirm" states="draft" type="workflow" icon="gtk-yes"/>
+ <button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply"/>
+ <button string="Refuse" name="refuse" states="confirm,validate,draft" type="workflow" icon="gtk-no"/>
+ <button string="Reset to New" name="set_to_draft" states="cancel" type="object" icon="gtk-convert"/>
+ <field name="state"/>
+ </header>
+ <group col="4">
+ <field name="name"/>
+ <field name="holiday_status_id"/>
+ <field name="type"/>
+ <field name="date_from" on_change="onchange_date_from(date_to, date_from)" attrs="{'readonly':[('type','=','add')], 'required':[('type','=','remove')]}"/>
+ <field name="date_to" on_change="onchange_date_from(date_to, date_from)" attrs="{'readonly':[('type','=','add')], 'required':[('type','=','remove')]}"/>
+ <field name="number_of_days_temp"/>
+ <field name="manager_id"/>
+ </group>
+ <field name="notes"/>
</form>
</field>
</record>
<field name="manager_id" invisible="1"/>
<field name="user_id" invisible="1"/>
<field name="state"/>
- <button string="Confirm" name="confirm" states="draft" type="workflow" icon="gtk-yes"/>
- <button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
- <button string="Refuse" name="refuse" states="confirm" type="workflow" icon="gtk-no" groups="base.group_hr_user"/>
</tree>
</field>
</record>
<field name="manager_id" invisible="1"/>
<field name="user_id" invisible="1"/>
<!--field name="type"/-->
- <button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
- <button string="Approved" name="second_validate" states="validate1" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
</tree>
</field>
</record>
- <!-- My leave dashboard -->
<menuitem name="Leaves" parent="hr.menu_hr_root" id="menu_open_ask_holidays" sequence="20"/>
<record model="ir.actions.act_window" id="open_ask_holidays">
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
<field name="view_id" ref="edit_holiday_new"/>
- <field name="context">{"search_default_department_id": department_id}</field>
+ <field name="context">{}</field>
<field name="domain">[('type','=','remove')]</field>
<field name="search_view_id" ref="view_hr_holidays_filter"/>
<field name="help">Leave requests can be recorded by employees and validated by their managers. Once a leave request is validated, it appears automatically in the agenda of the employee. You can define several allowance types (paid holidays, sickness, etc.) and manage allowances per type.</field>
<field name="act_window_id" ref="open_ask_holidays"/>
</record>
- <menuitem name="Leave Requests" parent="menu_open_ask_holidays" id="menu_open_ask_holidays_new" action="open_ask_holidays"/>
+ <menuitem name="My Leave Requests" parent="menu_open_ask_holidays" id="menu_open_ask_holidays_new" action="open_ask_holidays"/>
<record model="ir.actions.act_window" id="request_approve_holidays">
<field name="name">Requests Approve</field>
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
- <field name="context">{'default_type': 'add', 'search_default_approve':1,"search_default_department_id": department_id}</field>
+ <field name="context">{'default_type': 'add', 'search_default_approve':1}</field>
<field name="domain">[('type','=','remove')]</field>
<field name="view_id" ref="edit_holiday_new"/>
<field name="search_view_id" ref="view_hr_holidays_filter"/>
<field name="name">Allocation Requests</field>
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
- <field name="context">{'default_type':'add',"search_default_department_id": department_id}</field>
+ <field name="context">{'default_type':'add'}</field>
<field name="domain">[('type','=','add')]</field>
<field name="view_id" ref="allocation_leave_new"/>
<field name="search_view_id" ref="view_hr_holidays_filter"/>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Leave Type">
- <field name="name"/>
+ <field name="name" string="Leave Types"/>
+ <separator orientation="vertical"/>
<field name="categ_id" widget="selection"/>
</search>
</field>
<field name="model">hr.holidays.status</field>
<field name="type">form</field>
<field name="arch" type="xml">
- <form string="Leave Type">
- <group colspan="4" col="6">
+ <form string="Leave Type" version="7.0">
+ <group col="4">
<field name="name"/>
<field name="color_name"/>
<field name="categ_id" widget="selection"/>
</group>
- <notebook colspan="4">
+ <notebook>
<page string="Details">
- <group colspan="2" col="2" name="selection">
- <separator string="Validation" colspan="2"/>
- <field name="double_validation"/>
- <field name="limit"/>
- </group>
- <group name="second" colspan="2" col="2">
- <separator string="Misc" colspan="2"/>
- <field name="active"/>
+ <group>
+ <group name="selection" string="Validation">
+ <field name="double_validation"/>
+ <field name="limit"/>
+ </group>
+ <group name="second" string="Misc">
+ <field name="active"/>
+ </group>
</group>
</page>
</notebook>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Leave Type">
- <field name="name"/>
+ <field name="name" string="Leave Types"/>
+ <separator orientation="vertical"/>
<field name="categ_id" widget="selection"/>
</search>
</field>
<field name="arch" type="xml">
<field name="coach_id" position="after">
<field name="remaining_leaves"/>
- <field name="current_leave_id"/>
- <field name="current_leave_state" attrs="{'invisible':[('current_leave_id','=',False)]}"/>
</field>
</field>
</record>
<field name="inherit_id" ref="hr.hr_kanban_view_employees"/>
<field name="arch" type="xml">
<xpath expr="//templates" position="before">
+ <field name="current_leave_id"/>
<field name="current_leave_state"/>
- <field name="last_login"/>
+ <field name="leave_date_from"/>
+ <field name="leave_date_to"/>
</xpath>
- <xpath expr="//div[@class='oe_employee_details']/ul/li" position="before">
- <li t-if="record.current_leave_id.raw_value || record.last_login.raw_value">
- <span t-if="record.current_leave_id.raw_value" t-att-class="record.current_leave_state.raw_value=='validate'?'oe_kanban_color_3':'oe_kanban_color_2'">
- <span class="oe_kanban_button" style="font-size: 100%%">
- <field name="current_leave_id" groups="base.group_user"/>
- </span>
- </span>
- <span t-if="record.last_login.raw_value && record.last_login.raw_value.is().today()" class="oe_kanban_button" style="font-size: 100%%">
- <t t-esc="record.last_login.raw_value.toString('HH:mm')"/>
- </span>
- </li>
+ <xpath expr="//div[@class='oe_employee_details']/ul/li[@id='last_login']" position="inside">
+ <span t-if="record.current_leave_id.raw_value" style="font-size: 100%%"
+ t-att-class="record.current_leave_state.raw_value=='validate'?'oe_kanban_button oe_kanban_color_3':'oe_kanban_button oe_kanban_color_2'"
+ t-att-title="record.leave_date_from.raw_value.toString('ddd dS MMM') + ' - ' + record.leave_date_to.raw_value.toString('ddd dS MMM')">
+ <field name="current_leave_id"/>
+ </span>
</xpath>
</field>
</record>
+ <act_window
+ id="act_hr_leave_request_to_meeting"
+ name="Leave Meetings"
+ src_model="hr.holidays"
+ res_model="crm.meeting"
+ domain="[('leave_id', '=', active_id)]"
+ view_mode="tree,form,calendar,gantt"
+ view_type="form"/>
+
</data>
</openerp>