[ADD] hr, hr_*: new dashboard view for hr departments

This commit is contained in:
Martin Geubelle
2015-05-12 18:00:08 +02:00
parent edd7e9b687
commit 0aa5bb7ada
27 changed files with 432 additions and 235 deletions
+1
View File
@@ -66,6 +66,7 @@ You can manage:
'mail_hr_view.xml',
'res_users_view.xml',
'views/hr.xml',
'hr_dashboard.xml',
],
'demo': ['hr_demo.xml'],
'test': [
+60
View File
@@ -0,0 +1,60 @@
<odoo>
<record id="hr_department_view_kanban" model="ir.ui.view" >
<field name="name">hr.department.kanban</field>
<field name="model">hr.department</field>
<field name="arch" type="xml">
<kanban class="oe_background_grey o_kanban_dashboard o_hr_kanban">
<field name="name"/>
<field name="company_id"/>
<field name="manager_id"/>
<field name="color"/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="#{kanban_color(record.color.raw_value)}">
<div class="o_kanban_card_header">
<div class="o_kanban_card_header_title">
<div class="o_primary"><field name="name"/></div>
<div class="o_secondary"><field name="company_id"/></div>
</div>
<div class="o_kanban_manage_button_section">
<a class="o_kanban_manage_toogle_button">More <i class="fa fa-caret-down"/></a>
</div>
</div>
<div class="container o_kanban_card_content o_visible">
<div class="row">
<div class="col-xs-6 o_kanban_primary_left">
<button class="btn btn-primary" name="%(act_employee_from_department)d" type="action">Employees</button>
</div>
<div class="col-xs-6 o_kanban_primary_right">
</div>
</div>
</div><div class="container o_kanban_card_manage_pane o_invisible">
<div class="row">
<div class="col-xs-4 o_kanban_card_manage_section o_kanban_manage_to_do">
<div class="o_kanban_card_manage_title">
<span>To Do</span>
</div>
</div>
<div class="col-xs-4 o_kanban_card_manage_section o_kanban_manage_to_approve">
<div class="o_kanban_card_manage_title">
<span>To Approve</span>
</div>
</div>
<div class="col-xs-4 o_kanban_card_manage_section o_kanban_manage_reports">
<div class="o_kanban_card_manage_title">
<span>Reports</span>
</div>
</div>
</div>
<div t-if="widget.view.is_action_enabled('edit')" class="row o_kanban_card_manage_settings">
<a type="edit">Settings</a>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
</odoo>
-50
View File
@@ -484,56 +484,6 @@
</field>
</record>
<record id="hr_department_view_kanban" model="ir.ui.view" >
<field name="name">hr.department.kanban</field>
<field name="model">hr.department</field>
<field name="arch" type="xml">
<kanban class="oe_background_grey">
<field name="name"/>
<field name="manager_id"/>
<field name="color"/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click oe_kanban_department">
<div class="oe_dropdown_toggle oe_dropdown_kanban">
<i class="fa fa-bars fa-lg"/>
<ul class="oe_dropdown_menu">
<li t-if="widget.view.is_action_enabled('edit')"><a type="edit">Department Settings</a></li>
<li t-if="widget.view.is_action_enabled('delete')"><a type="delete">Delete</a></li>
<li t-if="widget.view.is_action_enabled('edit')"><ul class="oe_kanban_colorpicker" data-field="color"/></li>
</ul>
</div>
<div class="oe_kanban_content container">
<div class="row">
<a type="action" name="%(act_employee_from_department)d"/>
<t t-if="record.manager_id.raw_value">
<img t-att-src="kanban_image('hr.employee', 'image_small', record.manager_id.raw_value[0])" t-att-title="record.manager_id.value" class="oe_avatar oe_kanban_avatar_smallbox pull-right"/>
</t>
<t t-if="record.manager_id.raw_value === false">
<img t-att-src='_s + "/base/static/src/img/avatar.png"' title="No manager" class="oe_avatar oe_kanban_avatar_smallbox pull-right"/>
</t>
<h3 class="text-center oe_kanban_ellipsis"><field name="name"/></h3>
</div>
<div class="row">
<div class="col-md-6 col-xs-6 oe_form_invisible" name="to_approve">
<strong>To Approve</strong>
</div>
<div class="col-md-6 col-xs-6 oe_form_invisible" name="to_do">
<strong>To Do</strong>
</div>
</div>
<div class="row">
<div name="gauge_to_approve" class="col-md-6 col-xs-6 oe_form_invisible"/>
<div name="gauge_to_do" class="col-md-6 col-xs-6 oe_form_invisible"/>
</div>
</div>
<div class="oe_clear"/>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record id="view_department_filter" model="ir.ui.view">
<field name="name">Departments</field>
<field name="model">hr.department</field>
-10
View File
@@ -3,16 +3,6 @@ odoo.define('hr.hr', function(require) {
var common = require('web_kanban.common');
common.KanbanRecord.include({
on_card_clicked: function() {
if (this.view.dataset.model === 'hr.department') {
this.$('.oe_kanban_department .oe_kanban_content a').first().click();
} else {
this._super.apply(this, arguments);
}
},
});
});
@@ -0,0 +1,7 @@
.o_hr_kanban {
.oe_kanban_record {
max-width: 500px !important;
min-width: 400px !important;
min-height: 200px !important;
}
}
@@ -1,11 +0,0 @@
.openerp {
.oe_kanban_view .oe_kanban_department {
width: 365px;
.container{
width: inherit;
}
.oe_kanban_content div:first-child{
margin-right: 0px
}
}
}
+1 -1
View File
@@ -4,7 +4,7 @@
<template id="assets_backend" name="hr assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/hr/static/src/css/hr.css"/>
<link rel="stylesheet" href="/hr/static/src/less/hr_department.less"/>
<link rel="stylesheet" href="/hr/static/src/less/hr_dashboard.less"/>
<script type="text/javascript" src="/hr/static/src/js/suggestions.js"></script>
<script type="text/javascript" src="/hr/static/src/js/hr.js"></script>
</xpath>
+1
View File
@@ -42,6 +42,7 @@ actions(Sign in/Sign out) performed by them.
'wizard/hr_attendance_error_view.xml',
'views/report_attendanceerrors.xml',
'views/hr_attendance.xml',
'hr_dashboard.xml',
],
'demo': ['hr_attendance_demo.xml'],
'test': [
+23
View File
@@ -0,0 +1,23 @@
<odoo>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//div[contains(@class, 'o_kanban_manage_reports')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(action_hr_attendance_graph)d" type="action">
Attendances
</a>
</div>
</div>
</xpath>
</data>
</field>
</record>
</odoo>
+1
View File
@@ -54,6 +54,7 @@ Key Features
'survey_data_appraisal.xml',
'hr_evaluation_data.xml',
'hr_evaluation_installer.xml',
'hr_dashboard.xml',
],
"demo": ["hr_evaluation_demo.xml"],
# 'test': [
+68
View File
@@ -0,0 +1,68 @@
<odoo>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//templates" position="before">
<field name="appraisal_to_start_count"/>
<field name="interview_request_count"/>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_primary_right')]" position="inside">
<div t-if="record.interview_request_count.raw_value > 0" class="row">
<div class="col-xs-9">
<a name="%(hr_evaluation_interview_action_from_department)d" type="action">
Interview Requests
</a>
</div>
<div class="col-xs-3">
<t t-esc="record.interview_request_count.raw_value"/>
</div>
</div>
<div t-if="record.appraisal_to_start_count.raw_value > 0" class="row">
<div class="col-xs-9">
<a name="%(hr_appraisal_action_from_department)d" type="action">
Appraisal to Start
</a>
</div>
<div class="col-xs-3">
<t t-esc="record.appraisal_to_start_count.raw_value"/>
</div>
</div>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_manage_to_do')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(hr_evaluation_interview_action_from_department)d" type="action">
<t t-esc="record.interview_request_count.raw_value or 0"/> Interview Requests
</a>
</div>
</div>
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(hr_appraisal_action_from_department)d" type="action">
<t t-esc="record.appraisal_to_start_count.raw_value or 0"/> Appraisal to Start
</a>
</div>
</div>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_manage_reports')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(action_evaluation_report_all)d" type="action">
Appraisals
</a>
</div>
</div>
</xpath>
</data>
</field>
</record>
</odoo>
@@ -436,35 +436,5 @@
<field name="domain">[('employee_id.department_id', '=', active_id)]</field>
</record>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//templates" position="before">
<field name="appraisal_to_start_count"/>
<field name="interview_request_count"/>
</xpath>
<xpath expr="//div[@name='to_do']" position="attributes">
<attribute name="class">col-md-6 col-xs-6</attribute>
</xpath>
<xpath expr="//div[@name='to_do']" position="inside">
<div>
<a name="%(hr_evaluation_interview_action_from_department)d" type="action">
<t t-esc="record.interview_request_count.raw_value or 0"/> Interview Requests
</a>
</div>
<div>
<a name="%(hr_appraisal_action_from_department)d" type="action">
<t t-esc="record.appraisal_to_start_count.raw_value or 0"/> Appraisal to Start
</a>
</div>
</xpath>
</data>
</field>
</record>
</data>
</openerp>
+1
View File
@@ -57,6 +57,7 @@ This module also uses analytic accounting and is compatible with the invoice on
'report/hr_expense_report_view.xml',
'hr_expense_installer_view.xml',
'views/report_expense.xml',
'hr_dashboard.xml',
],
'demo': ['hr_expense_demo.xml'],
'test': [
+49
View File
@@ -0,0 +1,49 @@
<odoo>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//templates" position="before">
<field name="expense_to_approve_count"/>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_primary_right')]" position="inside">
<div t-if="record.expense_to_approve_count.raw_value > 0" class="row">
<div class="col-xs-9">
<a name="%(hr_expense_action_from_department)d" type="action">
Expenses
</a>
</div>
<div class="col-xs-3">
<t t-esc="record.expense_to_approve_count.raw_value"/>
</div>
</div>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_manage_to_approve')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(hr_expense_action_from_department)d" type="action">
<t t-esc="record.expense_to_approve_count.raw_value or 0"/> Expenses
</a>
</div>
</div>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_manage_reports')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(action_hr_expense_report_all)d" type="action">
Expenses
</a>
</div>
</div>
</xpath>
</data>
</field>
</record>
</odoo>
-22
View File
@@ -276,27 +276,5 @@
</field>
</record>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//templates" position="before">
<field name="expense_to_approve_count"/>
</xpath>
<xpath expr="//div[@name='to_approve']" position="attributes">
<attribute name="class">col-md-6 col-xs-6</attribute>
</xpath>
<xpath expr="//div[@name='to_approve']" position="inside">
<div>
<a name="%(hr_expense_action_from_department)d" type="action"><t t-esc="record.expense_to_approve_count.raw_value or 0"/> Expenses</a>
</div>
</xpath>
</data>
</field>
</record>
</data>
</openerp>
+1
View File
@@ -58,6 +58,7 @@ A synchronization with an internal agenda (Meetings of the CRM module) is also p
'report/available_holidays_view.xml',
'wizard/hr_holidays_summary_department_view.xml',
'wizard/hr_holidays_summary_employees_view.xml',
'hr_dashboard.xml',
],
'demo': ['hr_holidays_demo.xml',],
'qweb': [
+76
View File
@@ -0,0 +1,76 @@
<odoo>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//templates" position="before">
<field name="leave_to_approve_count"/>
<field name="allocation_to_approve_count"/>
<field name="total_employee"/>
<field name="absence_of_today"/>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_primary_right')]" position="inside">
<div t-if="record.leave_to_approve_count.raw_value > 0" class="row">
<div class="col-xs-9">
<a name="%(hr_holidays_action_request_from_department)d" type="action">
Leave Requests
</a>
</div>
<div class="col-xs-3">
<field name="leave_to_approve_count"/>
</div>
</div>
<div t-if="record.allocation_to_approve_count.raw_value > 0" class="row">
<div class="col-xs-9">
<a name="%(hr_holidays_action_allocation_from_department)d" type="action">
Allocation Requests
</a>
</div>
<div class="col-xs-3">
<field name="allocation_to_approve_count"/>
</div>
</div>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_primary_right')]" position="after">
<div class="col-xs-12 o_kanban_primary_bottom">
<field name="absence_of_today" widget="progress" options="{'title': 'Absence', 'current_value': 'absence_of_today', 'max_value': 'total_employee'}"/>
</div>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_manage_to_approve')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(hr_holidays_action_request_from_department)d" type="action">
<t t-esc="record.leave_to_approve_count.raw_value or 0"/> Leave Requests
</a>
</div>
</div>
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(hr_holidays_action_allocation_from_department)d" type="action">
<t t-esc="record.allocation_to_approve_count.raw_value or 0"/> Allocation Requests
</a>
</div>
</div>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_manage_reports')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(action_hr_holidays_leaves_analysis)d" type="action">
Leaves
</a>
</div>
</div>
</xpath>
</data>
</field>
</record>
</odoo>
+7 -47
View File
@@ -693,53 +693,13 @@
<field name="search_view_id" ref="hr_employee_view_search"/>
</record>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//templates" position="before">
<field name="leave_to_approve_count"/>
<field name="allocation_to_approve_count"/>
<field name="total_employee"/>
</xpath>
<xpath expr="//div[@name='to_approve']" position="attributes">
<attribute name="class">col-md-6 col-xs-6</attribute>
</xpath>
<xpath expr="//div[@name='to_approve']" position="inside">
<div>
<a name="%(hr_holidays_action_request_from_department)d" type="action">
<t t-esc="record.leave_to_approve_count.raw_value or 0"/> Leave Requests
</a>
</div>
<div>
<a name="%(hr_holidays_action_allocation_from_department)d" type="action">
<t t-esc="record.allocation_to_approve_count.raw_value or 0"/> Allocation Requests
</a>
</div>
</xpath>
<xpath expr="//div[@name='gauge_to_approve']" position="attributes">
<attribute name="class">col-md-6 col-xs-6</attribute>
</xpath>
<xpath expr="//div[@name='gauge_to_approve']" position="inside">
<div class="row">
<a name="%(hr_employee_action_from_department)d" type="action">
<field name="absence_of_today"
options="{
'max_field': 'total_employee',
'label': 'Absence(s) of Today',
'levelcolors': ['#a9d70b', '#f9c802', '#ff0000']}"
widget="gauge"
style="width:160px; height: 120px; cursor: pointer;">Absence(s) of Today
</field>
</a>
</div>
</xpath>
</data>
</field>
<record model="ir.actions.act_window" id="action_hr_holidays_leaves_analysis">
<field name="name">Leaves Analysis</field>
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
<field name="view_mode">pivot,graph</field>
<field name="domain">[('holiday_type','=','employee')]</field>
<field name="search_view_id" ref="view_hr_holidays_filter"/>
</record>
</data>
+1
View File
@@ -58,6 +58,7 @@ You can define the different phases of interviews and easily rate the applicant
'survey_data_recruitment.xml',
'hr_recruitment_data.xml',
'views/hr_recruitment.xml',
'hr_dashboard.xml',
],
'demo': ['hr_recruitment_demo.xml'],
'test': ['test/recruitment_process.yml'],
+51
View File
@@ -0,0 +1,51 @@
<odoo>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//templates" position="before">
<field name="new_applicant_count"/>
<field name="new_hired_employee"/>
<field name="expected_employee"/>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_primary_right')]" position="inside">
<div t-if="record.new_applicant_count.raw_value > 0" class="row">
<div class="col-xs-9">
<a name="%(hr_applicant_action_from_department)d" type="action">
New Applicants
</a>
</div>
<div class="col-xs-3">
<field name="new_applicant_count"/>
</div>
</div>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_manage_to_do')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(hr_applicant_action_from_department)d" type="action">
<t t-esc="record.new_applicant_count.raw_value or 0"/> New Applicants
</a>
</div>
</div>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_manage_reports')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(action_hr_recruitment_report_all)d" type="action">
Recruitments
</a>
</div>
</div>
</xpath>
</data>
</field>
</record>
</odoo>
@@ -744,44 +744,5 @@
<field name="search_view_id" ref="hr_employee_view_search"/>
</record>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//templates" position="before">
<field name="new_applicant_count"/>
<field name="new_hired_employee"/>
<field name="expected_employee"/>
</xpath>
<xpath expr="//div[@name='to_do']" position="attributes">
<attribute name="class">col-md-6 col-xs-6</attribute>
</xpath>
<xpath expr="//div[@name='to_do']" position="inside">
<div>
<a name="%(hr_applicant_action_from_department)d" type="action">
<t t-esc="record.new_applicant_count.raw_value or 0"/> New Applicant
</a>
</div>
</xpath>
<xpath expr="//div[@name='gauge_to_do']" position="attributes">
<attribute name="class">col-md-6 col-xs-6</attribute>
</xpath>
<xpath expr="//div[@name='gauge_to_do']" position="inside">
<div class="row">
<a name="%(hr_employee_action_from_department)d" type="action">
<field name="new_hired_employee" widget="gauge"
options="{'max_field': 'expected_employee', 'label': 'Hired Employee(s)',}"
style="width:160px; height: 120px; cursor: pointer;">Newly Hired Employee(s)
</field>
</a>
</div>
</xpath>
</data>
</field>
</record>
</data>
</openerp>
+2 -1
View File
@@ -46,7 +46,8 @@ up a management by affair.
'hr_timesheet_view.xml',
'report/hr_timesheet_report_view.xml',
'hr_timesheet_installer.xml',
'hr_timesheet_data.xml'
'hr_timesheet_data.xml',
'hr_dashboard.xml',
],
'demo': [
'hr_timesheet_demo.xml',
+23
View File
@@ -0,0 +1,23 @@
<odoo>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//div[contains(@class, 'o_kanban_manage_reports')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(action_hr_timesheet_report_stat_all)d" type="action">
Timesheets
</a>
</div>
</div>
</xpath>
</data>
</field>
</record>
</odoo>
+1
View File
@@ -56,6 +56,7 @@ The validation can be configured in the company:
'hr_timesheet_sheet_data.xml',
'res_config_view.xml',
'views/hr_timesheet_sheet.xml',
'hr_dashboard.xml',
],
'demo': [
'hr_timesheet_sheet_demo.xml',
@@ -0,0 +1,39 @@
<odoo>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//templates" position="before">
<field name="timesheet_to_approve_count"/>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_primary_right')]" position="inside">
<div t-if="record.timesheet_to_approve_count.raw_value > 0" class="row">
<div class="col-xs-9">
<a name="%(hr_timesheet_action_from_department)d" type="action">
Timesheets
</a>
</div>
<div class="col-xs-3">
<t t-esc="record.timesheet_to_approve_count.raw_value"/>
</div>
</div>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_manage_to_approve')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(hr_timesheet_action_from_department)d" type="action">
<t t-esc="record.timesheet_to_approve_count.raw_value or 0"/> Timesheets
</a>
</div>
</div>
</xpath>
</data>
</field>
</record>
</odoo>
@@ -402,29 +402,5 @@
</field>
</record>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//templates" position="before">
<field name="timesheet_to_approve_count"/>
</xpath>
<xpath expr="//div[@name='to_approve']" position="attributes">
<attribute name="class">col-md-6 col-xs-6</attribute>
</xpath>
<xpath expr="//div[@name='to_approve']" position="inside">
<div>
<a name="%(hr_timesheet_action_from_department)d" type="action">
<t t-esc="record.timesheet_to_approve_count.raw_value or 0"/> Timesheet
</a>
</div>
</xpath>
</data>
</field>
</record>
</data>
</openerp>
@@ -78,6 +78,25 @@
<menuitem name="Reports" id="menu_l10n_in_hr_payroll_report" parent="hr_payroll.menu_hr_payroll_root" sequence="99" groups="base.group_hr_manager"/>
<menuitem action="action_payslip_report_all" id="menu_reporting_payslip" parent="menu_l10n_in_hr_payroll_report" sequence="5" groups="base.group_hr_manager"/>
<!--Hr Department Inherit Kanban view-->
<record id="hr_department_view_kanban" model="ir.ui.view">
<field name="name">hr.department.kanban.inherit</field>
<field name="model">hr.department</field>
<field name="inherit_id" ref="hr.hr_department_view_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//div[contains(@class, 'manage_reports')]" position="inside">
<div class="row">
<div class="col-xs-12 text-left">
<a name="%(action_payslip_report_all)d" type="action">
Payslip Analysis
</a>
</div>
</div>
</xpath>
</data>
</field>
</record>
</data>
</openerp>