summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorMartin Geubelle <mge@odoo.com>2015-05-12 13:29:29 +0200
committerMartin Geubelle <mge@odoo.com>2015-05-12 18:00:08 +0200
commit0aa5bb7ada9a32ca632c74c85a8d69a236bef740 (patch)
tree4b410b008e66309f01e98cfb479201b6423967a4 /addons
parentedd7e9b6872b014c57f74c4fd460f1dc972af4b4 (diff)
[ADD] hr, hr_*: new dashboard view for hr departments
Diffstat (limited to 'addons')
-rw-r--r--addons/hr/__openerp__.py1
-rw-r--r--addons/hr/hr_dashboard.xml60
-rw-r--r--addons/hr/hr_view.xml50
-rw-r--r--addons/hr/static/src/js/hr.js10
-rw-r--r--addons/hr/static/src/less/hr_dashboard.less7
-rw-r--r--addons/hr/static/src/less/hr_department.less11
-rw-r--r--addons/hr/views/hr.xml2
-rw-r--r--addons/hr_attendance/__openerp__.py1
-rw-r--r--addons/hr_attendance/hr_dashboard.xml23
-rw-r--r--addons/hr_evaluation/__openerp__.py1
-rw-r--r--addons/hr_evaluation/hr_dashboard.xml68
-rw-r--r--addons/hr_evaluation/hr_evaluation_view.xml30
-rw-r--r--addons/hr_expense/__openerp__.py1
-rw-r--r--addons/hr_expense/hr_dashboard.xml49
-rw-r--r--addons/hr_expense/hr_expense_view.xml22
-rw-r--r--addons/hr_holidays/__openerp__.py1
-rw-r--r--addons/hr_holidays/hr_dashboard.xml76
-rw-r--r--addons/hr_holidays/hr_holidays_view.xml54
-rw-r--r--addons/hr_recruitment/__openerp__.py1
-rw-r--r--addons/hr_recruitment/hr_dashboard.xml51
-rw-r--r--addons/hr_recruitment/hr_recruitment_view.xml39
-rw-r--r--addons/hr_timesheet/__openerp__.py3
-rw-r--r--addons/hr_timesheet/hr_dashboard.xml23
-rw-r--r--addons/hr_timesheet_sheet/__openerp__.py1
-rw-r--r--addons/hr_timesheet_sheet/hr_dashboard.xml39
-rw-r--r--addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml24
-rw-r--r--addons/l10n_in_hr_payroll/report/payslip_report_view.xml19
27 files changed, 432 insertions, 235 deletions
diff --git a/addons/hr/__openerp__.py b/addons/hr/__openerp__.py
index 6b118d426b8..80d809626c9 100644
--- a/addons/hr/__openerp__.py
+++ b/addons/hr/__openerp__.py
@@ -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': [
diff --git a/addons/hr/hr_dashboard.xml b/addons/hr/hr_dashboard.xml
new file mode 100644
index 00000000000..166b2c4fc31
--- /dev/null
+++ b/addons/hr/hr_dashboard.xml
@@ -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> \ No newline at end of file
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index 9293bb8848a..1834b64e00b 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -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>
diff --git a/addons/hr/static/src/js/hr.js b/addons/hr/static/src/js/hr.js
index 60c5af11688..9fda01cef95 100644
--- a/addons/hr/static/src/js/hr.js
+++ b/addons/hr/static/src/js/hr.js
@@ -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);
- }
- },
-});
-
});
diff --git a/addons/hr/static/src/less/hr_dashboard.less b/addons/hr/static/src/less/hr_dashboard.less
new file mode 100644
index 00000000000..0e9f5ecfc70
--- /dev/null
+++ b/addons/hr/static/src/less/hr_dashboard.less
@@ -0,0 +1,7 @@
+.o_hr_kanban {
+ .oe_kanban_record {
+ max-width: 500px !important;
+ min-width: 400px !important;
+ min-height: 200px !important;
+ }
+} \ No newline at end of file
diff --git a/addons/hr/static/src/less/hr_department.less b/addons/hr/static/src/less/hr_department.less
deleted file mode 100644
index 7f6b3bb0214..00000000000
--- a/addons/hr/static/src/less/hr_department.less
+++ /dev/null
@@ -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
- }
- }
-}
diff --git a/addons/hr/views/hr.xml b/addons/hr/views/hr.xml
index aa6238469a6..44fb6d8655e 100644
--- a/addons/hr/views/hr.xml
+++ b/addons/hr/views/hr.xml
@@ -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>
diff --git a/addons/hr_attendance/__openerp__.py b/addons/hr_attendance/__openerp__.py
index c443768c43a..a3c2af37940 100644
--- a/addons/hr_attendance/__openerp__.py
+++ b/addons/hr_attendance/__openerp__.py
@@ -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': [
diff --git a/addons/hr_attendance/hr_dashboard.xml b/addons/hr_attendance/hr_dashboard.xml
new file mode 100644
index 00000000000..6da49a4d0cc
--- /dev/null
+++ b/addons/hr_attendance/hr_dashboard.xml
@@ -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> \ No newline at end of file
diff --git a/addons/hr_evaluation/__openerp__.py b/addons/hr_evaluation/__openerp__.py
index 7b0a458a8b2..6cccefeee10 100644
--- a/addons/hr_evaluation/__openerp__.py
+++ b/addons/hr_evaluation/__openerp__.py
@@ -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': [
diff --git a/addons/hr_evaluation/hr_dashboard.xml b/addons/hr_evaluation/hr_dashboard.xml
new file mode 100644
index 00000000000..a9315bf8af2
--- /dev/null
+++ b/addons/hr_evaluation/hr_dashboard.xml
@@ -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> \ No newline at end of file
diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml
index d097bff7876..bc0155dd303 100644
--- a/addons/hr_evaluation/hr_evaluation_view.xml
+++ b/addons/hr_evaluation/hr_evaluation_view.xml
@@ -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>
diff --git a/addons/hr_expense/__openerp__.py b/addons/hr_expense/__openerp__.py
index f160b0f487a..d257e6a3bce 100644
--- a/addons/hr_expense/__openerp__.py
+++ b/addons/hr_expense/__openerp__.py
@@ -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': [
diff --git a/addons/hr_expense/hr_dashboard.xml b/addons/hr_expense/hr_dashboard.xml
new file mode 100644
index 00000000000..f299e94f336
--- /dev/null
+++ b/addons/hr_expense/hr_dashboard.xml
@@ -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> \ No newline at end of file
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index db1b60c8b50..ce409e3f603 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -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>
diff --git a/addons/hr_holidays/__openerp__.py b/addons/hr_holidays/__openerp__.py
index 60740c7e963..19d652f349f 100644
--- a/addons/hr_holidays/__openerp__.py
+++ b/addons/hr_holidays/__openerp__.py
@@ -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': [
diff --git a/addons/hr_holidays/hr_dashboard.xml b/addons/hr_holidays/hr_dashboard.xml
new file mode 100644
index 00000000000..a90e5a2b2ee
--- /dev/null
+++ b/addons/hr_holidays/hr_dashboard.xml
@@ -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> \ No newline at end of file
diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml
index bc32988154a..0bd96e13047 100644
--- a/addons/hr_holidays/hr_holidays_view.xml
+++ b/addons/hr_holidays/hr_holidays_view.xml
@@ -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>
diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py
index 3ab147ddf2f..27992b7184c 100644
--- a/addons/hr_recruitment/__openerp__.py
+++ b/addons/hr_recruitment/__openerp__.py
@@ -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'],
diff --git a/addons/hr_recruitment/hr_dashboard.xml b/addons/hr_recruitment/hr_dashboard.xml
new file mode 100644
index 00000000000..ccffcd9227e
--- /dev/null
+++ b/addons/hr_recruitment/hr_dashboard.xml
@@ -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> \ No newline at end of file
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 133515e264c..6a27b51f567 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -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>
diff --git a/addons/hr_timesheet/__openerp__.py b/addons/hr_timesheet/__openerp__.py
index cc37561d32d..7733755b005 100644
--- a/addons/hr_timesheet/__openerp__.py
+++ b/addons/hr_timesheet/__openerp__.py
@@ -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',
diff --git a/addons/hr_timesheet/hr_dashboard.xml b/addons/hr_timesheet/hr_dashboard.xml
new file mode 100644
index 00000000000..3a9b191be2e
--- /dev/null
+++ b/addons/hr_timesheet/hr_dashboard.xml
@@ -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> \ No newline at end of file
diff --git a/addons/hr_timesheet_sheet/__openerp__.py b/addons/hr_timesheet_sheet/__openerp__.py
index 43d89c9af71..f3cbb90d771 100644
--- a/addons/hr_timesheet_sheet/__openerp__.py
+++ b/addons/hr_timesheet_sheet/__openerp__.py
@@ -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',
diff --git a/addons/hr_timesheet_sheet/hr_dashboard.xml b/addons/hr_timesheet_sheet/hr_dashboard.xml
new file mode 100644
index 00000000000..fac145ae89d
--- /dev/null
+++ b/addons/hr_timesheet_sheet/hr_dashboard.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> \ No newline at end of file
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index daedf0686f0..40022afcda4 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -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>
diff --git a/addons/l10n_in_hr_payroll/report/payslip_report_view.xml b/addons/l10n_in_hr_payroll/report/payslip_report_view.xml
index 6b300bc3d0c..8a77f373ac3 100644
--- a/addons/l10n_in_hr_payroll/report/payslip_report_view.xml
+++ b/addons/l10n_in_hr_payroll/report/payslip_report_view.xml
@@ -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>