[ADD] hr, hr_*: new dashboard view for hr departments
This commit is contained in:
@@ -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': [
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
@@ -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': [
|
||||
|
||||
@@ -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>
|
||||
@@ -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': [
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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': [
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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': [
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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'],
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user