summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/hr/hr_dashboard.xml10
-rw-r--r--addons/hr/static/src/less/hr_dashboard.less8
-rw-r--r--addons/hr_attendance/hr_attendance.py1
-rw-r--r--addons/hr_attendance/hr_attendance_view.xml13
-rw-r--r--addons/hr_attendance/hr_dashboard.xml2
-rw-r--r--addons/hr_evaluation/hr_dashboard.xml2
-rw-r--r--addons/hr_evaluation/report/hr_evaluation_report_view.xml16
-rw-r--r--addons/hr_expense/hr_dashboard.xml2
-rw-r--r--addons/hr_expense/report/hr_expense_report_view.xml15
-rw-r--r--addons/hr_holidays/hr_dashboard.xml4
-rw-r--r--addons/hr_holidays/hr_holidays_view.xml13
-rw-r--r--addons/hr_recruitment/hr_dashboard.xml2
-rw-r--r--addons/hr_recruitment/hr_recruitment_dashboard.xml94
-rw-r--r--addons/hr_recruitment/report/hr_recruitment_report_view.xml24
-rw-r--r--addons/hr_timesheet/hr_dashboard.xml2
-rw-r--r--addons/hr_timesheet/report/hr_timesheet_report_view.xml11
-rw-r--r--addons/project/project_dashboard.xml27
-rw-r--r--addons/project/report/project_cumulative.xml15
-rw-r--r--addons/project/static/src/js/project.js10
-rw-r--r--addons/project/static/src/less/project_dashboard.less138
-rw-r--r--addons/project_issue/project_dashboard.xml7
-rw-r--r--addons/project_timesheet/project_dashboard.xml15
-rw-r--r--addons/sale/sales_team_dashboard.xml3
-rw-r--r--addons/sales_team/sales_team_dashboard.xml7
-rw-r--r--addons/sales_team/static/src/less/sales_team_dashboard.less8
-rw-r--r--addons/stock/static/src/css/stock.css9
-rw-r--r--addons/stock/static/src/less/stock_dashboard.less6
-rw-r--r--addons/stock/stock_dashboard.xml37
-rw-r--r--addons/stock_account/stock_dashboard.xml8
29 files changed, 308 insertions, 201 deletions
diff --git a/addons/hr/hr_dashboard.xml b/addons/hr/hr_dashboard.xml
index e7bfa41de2f..884e0cbc68c 100644
--- a/addons/hr/hr_dashboard.xml
+++ b/addons/hr/hr_dashboard.xml
@@ -46,8 +46,14 @@
</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 t-if="widget.view.is_action_enabled('edit')" class="o_kanban_card_manage_settings row">
+ <div class="col-xs-8">
+ <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
+ </div>
+ <div class="col-xs-4 text-right">
+ <a type="edit">Settings</a>
+ </div>
</div>
</div>
diff --git a/addons/hr/static/src/less/hr_dashboard.less b/addons/hr/static/src/less/hr_dashboard.less
index 0e9f5ecfc70..eada8b85395 100644
--- a/addons/hr/static/src/less/hr_dashboard.less
+++ b/addons/hr/static/src/less/hr_dashboard.less
@@ -1,7 +1,7 @@
-.o_hr_kanban {
+.oe_kanban_view.o_kanban_dashboard.o_hr_kanban {
.oe_kanban_record {
- max-width: 500px !important;
- min-width: 400px !important;
- min-height: 200px !important;
+ max-width: 500px;
+ min-width: 400px;
+ min-height: 200px;
}
} \ No newline at end of file
diff --git a/addons/hr_attendance/hr_attendance.py b/addons/hr_attendance/hr_attendance.py
index 28031499368..8e17fc0d68f 100644
--- a/addons/hr_attendance/hr_attendance.py
+++ b/addons/hr_attendance/hr_attendance.py
@@ -79,6 +79,7 @@ class hr_attendance(osv.osv):
'action': fields.selection([('sign_in', 'Sign In'), ('sign_out', 'Sign Out'), ('action','Action')], 'Action', required=True),
'action_desc': fields.many2one("hr.action.reason", "Action Reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'),
'employee_id': fields.many2one('hr.employee', "Employee", required=True, select=True),
+ 'department_id': fields.many2one('hr.department', "Department", related="employee_id.department_id"),
'worked_hours': fields.function(_worked_hours_compute, type='float', string='Worked Hours', store=True),
}
_defaults = {
diff --git a/addons/hr_attendance/hr_attendance_view.xml b/addons/hr_attendance/hr_attendance_view.xml
index 6d4d06fed00..5832a35e0fc 100644
--- a/addons/hr_attendance/hr_attendance_view.xml
+++ b/addons/hr_attendance/hr_attendance_view.xml
@@ -51,6 +51,7 @@
<search string="Hr Attendance Search">
<field name="name" string="Attendance"/>
<field name="action"/>
+ <field name="department_id"/>
<filter string="Today" name="today" domain="[('name','&gt;=',datetime.datetime.now().replace(hour=0, minute=0, second=0)),('name','&lt;=',datetime.datetime.now().replace(hour=23, minute=59, second=59))]" />
<filter string="Current Month" domain="[('name','&gt;=', datetime.datetime.now().strftime('%Y-%m-01'))]" />
<separator/>
@@ -107,6 +108,18 @@
<field name="view_id"></field> <!-- force empty -->
</record>
+ <record id="action_hr_attendance_graph_filtered" model="ir.actions.act_window">
+ <field name="name">Attendance Analysis</field>
+ <field name="res_model">hr.attendance</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">pivot,graph</field>
+ <field name="context">{
+ 'search_default_department_id': [active_id],
+ 'default_department_id': active_id}
+ </field>
+ <field name="view_id"></field> <!-- force empty -->
+ </record>
+
<menuitem id="timesheet_menu_root" name="Timesheets" sequence="10" icon="fa-user" groups="base.group_user,base.group_hr_user,base.group_hr_manager"/>
<menuitem id="menu_hr_time_tracking" name="Time Tracking" parent="timesheet_menu_root" sequence="5" />
diff --git a/addons/hr_attendance/hr_dashboard.xml b/addons/hr_attendance/hr_dashboard.xml
index 6da49a4d0cc..ae1bae28c17 100644
--- a/addons/hr_attendance/hr_dashboard.xml
+++ b/addons/hr_attendance/hr_dashboard.xml
@@ -10,7 +10,7 @@
<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">
+ <a name="%(action_hr_attendance_graph_filtered)d" type="action">
Attendances
</a>
</div>
diff --git a/addons/hr_evaluation/hr_dashboard.xml b/addons/hr_evaluation/hr_dashboard.xml
index a9315bf8af2..528ed191810 100644
--- a/addons/hr_evaluation/hr_dashboard.xml
+++ b/addons/hr_evaluation/hr_dashboard.xml
@@ -55,7 +55,7 @@
<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">
+ <a name="%(action_evaluation_report_filtered)d" type="action">
Appraisals
</a>
</div>
diff --git a/addons/hr_evaluation/report/hr_evaluation_report_view.xml b/addons/hr_evaluation/report/hr_evaluation_report_view.xml
index 33c4d33f519..85943d0f16c 100644
--- a/addons/hr_evaluation/report/hr_evaluation_report_view.xml
+++ b/addons/hr_evaluation/report/hr_evaluation_report_view.xml
@@ -63,6 +63,22 @@
<field name="search_view_id" ref="view_evaluation_report_search"/>
</record>
+ <record id="action_evaluation_report_filtered" model="ir.actions.act_window">
+ <field name="name">Appraisal Analysis</field>
+ <field name="res_model">hr.evaluation.report</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">pivot,graph</field>
+ <field name="context">{
+ 'search_default_year':1,
+ 'search_default_month':1,
+ 'search_default_employee':1,
+ 'search_default_department_id': [active_id],
+ 'default_department_id': active_id
+ }
+ </field>
+ <field name="search_view_id" ref="view_evaluation_report_search"/>
+ </record>
+
<record model="ir.actions.act_window.view" id="action_evaluation_view_report_pivot">
<field name="sequence" eval="2"/>
<field name="view_mode">pivot</field>
diff --git a/addons/hr_expense/hr_dashboard.xml b/addons/hr_expense/hr_dashboard.xml
index f299e94f336..35e1fff64d8 100644
--- a/addons/hr_expense/hr_dashboard.xml
+++ b/addons/hr_expense/hr_dashboard.xml
@@ -36,7 +36,7 @@
<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">
+ <a name="%(action_hr_expense_report_filtered)d" type="action">
Expenses
</a>
</div>
diff --git a/addons/hr_expense/report/hr_expense_report_view.xml b/addons/hr_expense/report/hr_expense_report_view.xml
index d155ed5026d..19d93b0ff81 100644
--- a/addons/hr_expense/report/hr_expense_report_view.xml
+++ b/addons/hr_expense/report/hr_expense_report_view.xml
@@ -67,6 +67,21 @@
<field name="search_view_id" ref="view_hr_expense_report_search"/>
</record>
+ <record id="action_hr_expense_report_filtered" model="ir.actions.act_window">
+ <field name="name">Expenses Analysis</field>
+ <field name="res_model">hr.expense.report</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">pivot,graph</field>
+ <field name="context">{
+ 'search_default_year':1,
+ 'search_default_month':1,
+ 'search_default_employee':1,
+ 'search_default_department_id': [active_id],
+ 'default_department_id': active_id}
+ </field>
+ <field name="search_view_id" ref="view_hr_expense_report_search"/>
+ </record>
+
<menuitem action="action_hr_expense_report_all" id="menu_hr_expense_analysis" parent="menu_hr_expense_report" sequence="1"/>
</data>
diff --git a/addons/hr_holidays/hr_dashboard.xml b/addons/hr_holidays/hr_dashboard.xml
index a90e5a2b2ee..c44a02871d0 100644
--- a/addons/hr_holidays/hr_dashboard.xml
+++ b/addons/hr_holidays/hr_dashboard.xml
@@ -38,7 +38,7 @@
<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'}"/>
+ <field name="absence_of_today" widget="progress" options="{'title': 'Absence', 'current_value': 'absence_of_today', 'max_value': 'total_employee', 'editable': false}"/>
</div>
</xpath>
@@ -63,7 +63,7 @@
<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">
+ <a name="%(action_hr_holidays_leaves_analysis_filtered)d" type="action">
Leaves
</a>
</div>
diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml
index 0bd96e13047..86d34f1070c 100644
--- a/addons/hr_holidays/hr_holidays_view.xml
+++ b/addons/hr_holidays/hr_holidays_view.xml
@@ -702,5 +702,18 @@
<field name="search_view_id" ref="view_hr_holidays_filter"/>
</record>
+ <record model="ir.actions.act_window" id="action_hr_holidays_leaves_analysis_filtered">
+ <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="context">{
+ 'search_default_department_id': [active_id],
+ 'default_department_id': active_id}
+ </field>
+ <field name="search_view_id" ref="view_hr_holidays_filter"/>
+ </record>
+
</data>
</openerp>
diff --git a/addons/hr_recruitment/hr_dashboard.xml b/addons/hr_recruitment/hr_dashboard.xml
index ccffcd9227e..55b7b80ebef 100644
--- a/addons/hr_recruitment/hr_dashboard.xml
+++ b/addons/hr_recruitment/hr_dashboard.xml
@@ -38,7 +38,7 @@
<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">
+ <a name="%(action_hr_recruitment_report_filtered_department)d" type="action">
Recruitments
</a>
</div>
diff --git a/addons/hr_recruitment/hr_recruitment_dashboard.xml b/addons/hr_recruitment/hr_recruitment_dashboard.xml
index c319f8ace53..75d4a4564a1 100644
--- a/addons/hr_recruitment/hr_recruitment_dashboard.xml
+++ b/addons/hr_recruitment/hr_recruitment_dashboard.xml
@@ -1,6 +1,6 @@
<odoo>
- <record model="ir.actions.act_window" id="action_hr_job_new_application">
+ <record model="ir.actions.act_window" id="action_hr_job_new_application">
<field name="name">New Application</field>
<field name="res_model">hr.applicant</field>
<field name="view_type">form</field>
@@ -43,49 +43,49 @@
</div>
</div>
<div class="container o_kanban_card_content o_visible">
- <t t-if="record.state.raw_value == 'recruit'">
- <div class="row">
- <div class="col-xs-6 o_kanban_primary_left">
- <button class="btn btn-primary" name="%(action_hr_job_applications)d" type="action"><t t-esc="record.application_ids.raw_value.length"/> Application(s)</button>
- </div>
- <div class="col-xs-6 o_kanban_primary_right">
- <div t-if="record.document_ids.raw_value.length > 0" class="row">
- <div class="col-xs-9">
- <a name="action_get_attachment_tree_view" type="object">
- Document(s)
- </a>
- </div>
- <div class="col-xs-3">
- <span><t t-esc="record.document_ids.raw_value.length"/></span>
- </div>
- </div>
+ <t t-if="record.state.raw_value == 'recruit'">
+ <div class="row">
+ <div class="col-xs-6 o_kanban_primary_left">
+ <button class="btn btn-primary" name="%(action_hr_job_applications)d" type="action"><t t-esc="record.application_ids.raw_value.length"/> Application(s)</button>
+ </div>
+ <div class="col-xs-6 o_kanban_primary_right">
+ <div t-if="record.document_ids.raw_value.length > 0" class="row">
+ <div class="col-xs-9">
+ <a name="action_get_attachment_tree_view" type="object">
+ Document(s)
+ </a>
+ </div>
+ <div class="col-xs-3">
+ <span><t t-esc="record.document_ids.raw_value.length"/></span>
+ </div>
+ </div>
- <div class="row">
- <div class="col-xs-12">
- <a t-if="record.survey_id.raw_value" name="action_print_survey" type="object" class="oe_kanban_action">Print Interview</a>
- </div>
- </div>
+ <div class="row">
+ <div class="col-xs-12">
+ <a t-if="record.survey_id.raw_value" name="action_print_survey" type="object" class="oe_kanban_action">Print Interview</a>
+ </div>
+ </div>
- <div class="row">
- <div class="col-xs-12">
- <a t-if="record.state.raw_value == 'recruit'" name="job_open" type="object">Recruitment Done</a>
- </div>
- </div>
- </div>
- </div>
- <div class="row">
- <div class="col-xs-12 o_kanban_primary_bottom">
- <field name="no_of_hired_employee" widget="progress" options="{'title': 'Hired Employees:', 'current_value': 'no_of_hired_employee', 'max_value': 'no_of_recruitment', 'editable': true, 'edit_max_value': true, 'on_change': 'action_set_no_of_recruitment'}"/>
- </div>
- </div>
- </t>
- <t t-if="record.state.raw_value == 'open'">
- <div class="row">
- <div class="col-xs-12 o_kanban_primary_left">
- <button class="btn btn-primary" name="job_recruitment" type="object">Start Recruitment</button>
- </div>
- </div>
- </t>
+ <div class="row">
+ <div class="col-xs-12">
+ <a t-if="record.state.raw_value == 'recruit'" name="job_open" type="object">Recruitment Done</a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-xs-12 o_kanban_primary_bottom">
+ <field name="no_of_hired_employee" widget="progress" options="{'title': 'Hired Employees', 'current_value': 'no_of_hired_employee', 'max_value': 'no_of_recruitment', 'editable': true, 'edit_max_value': true, 'on_change': 'action_set_no_of_recruitment'}"/>
+ </div>
+ </div>
+ </t>
+ <t t-if="record.state.raw_value == 'open'">
+ <div class="row">
+ <div class="col-xs-12 o_kanban_primary_left">
+ <button class="btn btn-primary" name="job_recruitment" type="object">Start Recruitment</button>
+ </div>
+ </div>
+ </t>
</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_view">
@@ -94,13 +94,13 @@
</div>
<div>
- <a name="%(action_hr_job_applications)d" type="action">Applications</a>
+ <a name="%(action_hr_job_applications)d" type="action">Applications</a>
</div>
<div>
- <a name="action_get_attachment_tree_view" type="object">Documents</a>
+ <a name="action_get_attachment_tree_view" type="object">Documents</a>
</div>
<div>
- <a name="action_print_survey" type="object">Print Interview</a>
+ <a name="action_print_survey" type="object">Print Interview</a>
</div>
</div>
<div class="col-xs-4 o_kanban_card_manage_section o_kanban_manage_new">
@@ -109,7 +109,7 @@
</div>
<div>
- <a name="%(action_hr_job_new_application)d" type="action">Application</a>
+ <a name="%(action_hr_job_new_application)d" type="action">Application</a>
</div>
</div>
<div class="col-xs-4 o_kanban_card_manage_section o_kanban_manage_reports">
@@ -118,7 +118,7 @@
</div>
<div>
- <a name="%(action_hr_recruitment_report_all)d" type="action">Recruitment</a>
+ <a name="%(action_hr_recruitment_report_filtered_job)d" type="action">Recruitment</a>
</div>
</div>
</div>
diff --git a/addons/hr_recruitment/report/hr_recruitment_report_view.xml b/addons/hr_recruitment/report/hr_recruitment_report_view.xml
index 039816a1714..a252880d85f 100644
--- a/addons/hr_recruitment/report/hr_recruitment_report_view.xml
+++ b/addons/hr_recruitment/report/hr_recruitment_report_view.xml
@@ -85,6 +85,30 @@
<field name="search_view_id" ref="view_hr_recruitment_report_search"/>
<field name="context">{}</field> <!-- force empty -->
</record>
+
+ <record id="action_hr_recruitment_report_filtered_department" model="ir.actions.act_window">
+ <field name="name">Recruitment Analysis</field>
+ <field name="res_model">hr.recruitment.report</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">pivot,graph</field>
+ <field name="search_view_id" ref="view_hr_recruitment_report_search"/>
+ <field name="context">{
+ 'search_default_department_id': [active_id],
+ 'default_department_id': active_id}
+ </field>
+ </record>
+
+ <record id="action_hr_recruitment_report_filtered_job" model="ir.actions.act_window">
+ <field name="name">Recruitment Analysis</field>
+ <field name="res_model">hr.recruitment.report</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">pivot,graph</field>
+ <field name="search_view_id" ref="view_hr_recruitment_report_search"/>
+ <field name="context">{
+ 'search_default_job_id': [active_id],
+ 'default_job_id': active_id}
+ </field>
+ </record>
<menuitem action="action_hr_recruitment_report_all" id="menu_hr_recruitment_report_all" parent="report_hr_recruitment" sequence="0"/>
</data>
diff --git a/addons/hr_timesheet/hr_dashboard.xml b/addons/hr_timesheet/hr_dashboard.xml
index 3a9b191be2e..b0192973ab9 100644
--- a/addons/hr_timesheet/hr_dashboard.xml
+++ b/addons/hr_timesheet/hr_dashboard.xml
@@ -10,7 +10,7 @@
<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">
+ <a name="%(action_hr_timesheet_report_stat_filtered)d" type="action">
Timesheets
</a>
</div>
diff --git a/addons/hr_timesheet/report/hr_timesheet_report_view.xml b/addons/hr_timesheet/report/hr_timesheet_report_view.xml
index 6f044d28473..069dfd92377 100644
--- a/addons/hr_timesheet/report/hr_timesheet_report_view.xml
+++ b/addons/hr_timesheet/report/hr_timesheet_report_view.xml
@@ -59,6 +59,17 @@
<field name="context">{}</field> <!-- force empty -->
</record>
+ <record id="action_hr_timesheet_report_stat_filtered" model="ir.actions.act_window">
+ <field name="name">Timesheet Analysis</field>
+ <field name="res_model">hr.timesheet.report</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">pivot,graph</field>
+ <field name="context">{
+ 'search_default_department_id': [active_id],
+ 'default_department_id': active_id}
+ </field>
+ </record>
+
<menuitem id="menu_timesheets_reports" name="Reports"
parent="hr_attendance.timesheet_menu_root" sequence="99" groups="base.group_hr_manager"/>
<menuitem action="action_hr_timesheet_report_stat_all" id="menu_hr_timesheet_report_all"
diff --git a/addons/project/project_dashboard.xml b/addons/project/project_dashboard.xml
index 8dce59b8187..3d54eb45621 100644
--- a/addons/project/project_dashboard.xml
+++ b/addons/project/project_dashboard.xml
@@ -11,6 +11,7 @@
<field name="date"/>
<field name="color"/>
<field name="task_count"/>
+ <field name="label_tasks"/>
<field name="task_ids"/>
<field name="alias_id"/>
<field name="alias_name"/>
@@ -18,7 +19,7 @@
<field name="doc_count"/>
<templates>
<t t-name="kanban-box">
- <div t-attf-class="o_kanban_flexbox #{kanban_color(record.color.raw_value)}">
+ <div t-attf-class="o_kanban_flexbox #{kanban_color(record.color.raw_value)} oe_kanban_global_click">
<div class="o_project_kanban_main">
<div class="o_kanban_card_content o_visible">
<div class="o_kanban_primary_left">
@@ -30,20 +31,20 @@
</div>
</div>
</div><div class="o_kanban_card_manage_pane o_invisible">
- <div class="o_kanban_card_manage_section o_kanban_manage_view">
- <div t-if="widget.view.is_action_enabled('edit')" groups="base.group_user">
- <a type="edit">Edit Project</a>
- </div>
- </div>
<div class="o_kanban_card_manage_section o_kanban_manage_reports">
- <div class="o_kanban_card_manage_title">
- <span>Reports</span>
+ <div>
+ <a type="edit">Settings</a>
</div>
<div>
<a name="%(dblc_proj)d" type="action">Tasks</a>
</div>
<div>
- <a name="%(action_view_task_history_cumulative)d" type="action">Cumulative Flow</a>
+ <a name="%(action_view_task_history_cumulative_filter)d" type="action">Cumulative Flow</a>
+ </div>
+ </div>
+ <div t-if="widget.view.is_action_enabled('edit')" class="o_kanban_card_manage_settings">
+ <div class="col-xs-12">
+ <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
</div>
</div>
</div>
@@ -55,12 +56,12 @@
</div>
<div class="o_project_kanban_boxes">
- <a t-if="record.use_tasks.raw_value" class="o_project_kanban_box" name="%(act_project_project_2_project_task_all)d" type="action">
- <span class="o_value"><field name="task_count"/></span>
- <span class="o_label"><field name="label_tasks"/></span>
+ <a t-if="record.use_tasks.raw_value and record.task_count.raw_value" class="o_project_kanban_box" name="%(act_project_project_2_project_task_all)d" type="action">
+ <span class="o_value"><t t-esc="record.task_count.value"/></span>
+ <span class="o_label"><t t-esc="record.label_tasks.value"/></span>
</a>
<a t-if="record.doc_count.raw_value" class="o_project_kanban_box" name="attachment_tree_view" type="object">
- <span class="o_value"><field name="doc_count"/></span>
+ <span class="o_value"><t t-esc="record.doc_count.value"/></span>
<span class="o_label">Documents</span>
</a>
</div>
diff --git a/addons/project/report/project_cumulative.xml b/addons/project/report/project_cumulative.xml
index 7da815defed..5cabe21ec73 100644
--- a/addons/project/report/project_cumulative.xml
+++ b/addons/project/report/project_cumulative.xml
@@ -67,6 +67,21 @@
<field name="context">{"search_default_open":1, "search_default_this_month": 1}</field>
<field name="view_id"></field> <!-- force empty -->
</record>
+ <record id="action_view_task_history_cumulative_filter" model="ir.actions.act_window">
+ <field name="name">Cumulative Flow</field>
+ <field name="res_model">project.task.history.cumulative</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">pivot,graph</field>
+ <field name="filter" eval="False"/>
+ <field name="context">{
+ 'search_default_open':1,
+ 'search_default_this_month': 1,
+ 'search_default_project_id': [active_id],
+ 'default_project_id': active_id,
+ }
+ </field>
+ <field name="view_id"></field> <!-- force empty -->
+ </record>
<menuitem action="action_view_task_history_cumulative"
id="menu_action_view_task_history_cumulative"
parent="base.menu_project_report"/>
diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js
index 26ae050a119..20927cebc2c 100644
--- a/addons/project/static/src/js/project.js
+++ b/addons/project/static/src/js/project.js
@@ -5,4 +5,14 @@ var KanbanView = require('web_kanban.KanbanView');
var data = require('web.data');
var session = require('web.session');
+
+kanban_common.KanbanRecord.include({
+ on_card_clicked: function() {
+ if (this.view.dataset.model === 'project.project') {
+ this.$('.o_project_kanban_boxes a').first().click();
+ } else {
+ this._super.apply(this, arguments);
+ }
+ },
+});
});
diff --git a/addons/project/static/src/less/project_dashboard.less b/addons/project/static/src/less/project_dashboard.less
index ade6a7995f6..11d3b468903 100644
--- a/addons/project/static/src/less/project_dashboard.less
+++ b/addons/project/static/src/less/project_dashboard.less
@@ -1,84 +1,80 @@
-.o_project_kanban {
+.oe_kanban_view.o_kanban_dashboard.o_project_kanban {
- &.o_kanban_dashboard {
+ @odoo-brand-optional: #21b799;
- @odoo-brand-optional: #21b799;
+ .o_kanban_flexbox {
+ display: flex;
+ position: relative;
+ }
- .o_kanban_flexbox {
- display: flex;
- position: relative;
- }
+ .oe_kanban_record {
+ min-width: 300px;
+ max-width: 350px;
+ }
- .oe_kanban_record {
- padding: 0 !important;
- min-width: 300px;
- max-width: 350px;
- }
+ /*
+ .oe_kanban_record:hover .o_project_kanban_manage {
+ visibility: visible;
+ }
+ */
- /*
- .oe_kanban_record:hover .o_project_kanban_manage {
- visibility: visible;
- }
- */
+ .o_project_kanban_main {
+ margin-bottom: 40px; // give space for manage section at the bottom
+ width: 75%;
- .o_project_kanban_main {
- margin-bottom: 40px; // give space for manage section at the bottom
- width: 75%;
+ .o_primary {
+ font-size: larger;
+ }
- .o_primary {
- font-size: larger;
- }
-
- .o_project_kanban_manage {
- visibility: visible;
- position: absolute;
- bottom: 0;
- margin-left: 10px;
- margin-bottom: 10px;
- }
- .o_kanban_card_manage_pane {
- border-color: #EEEEEE;
- border-bottom-style: solid;
- border-bottom-width: 1px;
+ .o_project_kanban_manage {
+ visibility: visible;
+ position: absolute;
+ bottom: 0;
+ margin-left: 10px;
+ margin-bottom: 10px;
+ }
+ .o_kanban_card_manage_pane {
+ border-color: lightgrey;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
- .o_kanban_card_manage_title {
- margin: 0;
- }
- }
- }
+ .o_kanban_card_manage_title {
+ margin: 0;
+ }
+ }
+ }
- .o_project_kanban_boxes {
- display: flex;
- flex-direction: column;
- justify-content: flex-end;
- align-content: stretch;
+ .o_project_kanban_boxes {
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ align-content: stretch;
- width: 25%;
+ width: 25%;
- .o_value {
- font-size: x-large;
- color: white;
- display: block;
- }
- .o_label {
- color: white;
- }
+ .o_value {
+ font-size: x-large;
+ color: white;
+ display: block;
+ }
+ .o_label {
+ color: white;
+ }
- .o_project_kanban_box {
- text-align: center;
- padding: 15px 0 15px 0;
- flex: 1 1 auto;
- display: flex;
- align-items: center;
- flex-direction: column;
- justify-content: center;
- }
- .o_project_kanban_box:nth-child(even) {
- background-color: grey;
- }
- .o_project_kanban_box:nth-child(odd) {
- background-color: @odoo-brand-optional;
- }
- }
- }
+ .o_project_kanban_box {
+ text-align: center;
+ padding: 15px 0 15px 0;
+ flex: 1 1 auto;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ justify-content: center;
+ }
+ .o_project_kanban_box:nth-child(even) {
+ background-color: grey;
+ }
+ .o_project_kanban_box:nth-child(odd) {
+ background-color: @odoo-brand-optional;
+ }
+ }
} \ No newline at end of file
diff --git a/addons/project_issue/project_dashboard.xml b/addons/project_issue/project_dashboard.xml
index 3422f6c5d20..ef496ed5c81 100644
--- a/addons/project_issue/project_dashboard.xml
+++ b/addons/project_issue/project_dashboard.xml
@@ -14,6 +14,13 @@
<span class="o_label"><field name="label_issues"/></span>
</a>
</xpath>
+
+ <xpath expr="//div[contains(@class, 'o_kanban_manage_reports')]" position="inside">
+ <div>
+ <a name="%(action_project_issue_report)d" type="action">Issues</a>
+ </div>
+ </xpath>
+
</field>
</record>
</odoo> \ No newline at end of file
diff --git a/addons/project_timesheet/project_dashboard.xml b/addons/project_timesheet/project_dashboard.xml
index d43f7dc6a82..aec13ff42c3 100644
--- a/addons/project_timesheet/project_dashboard.xml
+++ b/addons/project_timesheet/project_dashboard.xml
@@ -15,13 +15,14 @@
<field name="inherit_id" ref="project.view_project_kanban"/>
<field name="arch" type="xml">
<data>
- <xpath expr="//div[contains(@class, 'o_kanban_manage_view')]" position="inside">
- <div>
- <a name="open_contract" type="object">Edit Contract</a>
- </div>
- <div>
- <a name="open_timesheets" type="object">Timesheets</a>
- </div>
+ <field name="use_tasks" position="after">
+ <field name="total_hours"/>
+ </field>
+ <xpath expr="//div[contains(@class, 'o_project_kanban_boxes')]" position="inside">
+ <a t-if="record.total_hours.value and record.total_hours.value &gt; 0" class="o_project_kanban_box" name="open_timesheets" type="object">
+ <span class="o_value"><t t-raw="record.total_hours.value"/></span>
+ <span class="o_label">Hours</span>
+ </a>
</xpath>
</data>
</field>
diff --git a/addons/sale/sales_team_dashboard.xml b/addons/sale/sales_team_dashboard.xml
index cd4a2ba89ae..169e2e9ddd1 100644
--- a/addons/sale/sales_team_dashboard.xml
+++ b/addons/sale/sales_team_dashboard.xml
@@ -43,8 +43,7 @@
<xpath expr="//div[contains(@class, 'o_kanban_primary_right')]" position="after">
<div class="col-xs-12 o_kanban_primary_bottom" t-if="record.invoiced_target.raw_value">
- <!-- TODO: use progressbar widget when available on kanban view -->
- <field name="invoiced_forecast" widget="progress" options="{'title': 'Forecast', 'current_value': 'invoiced_forecast', 'max_value': 'invoiced_target', 'editable': 'true', 'on_change': 'action_forecast'}"/>
+ <field name="invoiced_forecast" widget="progress" options="{'title': 'Forecast', 'current_value': 'invoiced_forecast', 'max_value': 'invoiced_target', 'editable': true, 'on_change': 'action_forecast'}"/>
</div>
<div t-if="!record.invoiced_target.raw_value" class="col-xs-12 o_kanban_primary_bottom">
Define an invoicing target in the sales team settings to see the period's achievement and forecast at a glance.
diff --git a/addons/sales_team/sales_team_dashboard.xml b/addons/sales_team/sales_team_dashboard.xml
index 211ee24a899..fa14cd91284 100644
--- a/addons/sales_team/sales_team_dashboard.xml
+++ b/addons/sales_team/sales_team_dashboard.xml
@@ -48,7 +48,12 @@
</div>
<div t-if="widget.view.is_action_enabled('edit')" class="o_kanban_card_manage_settings row">
- <a type="edit">Settings</a>
+ <div class="col-xs-8">
+ <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
+ </div>
+ <div class="col-xs-4 text-right">
+ <a type="edit">Settings</a>
+ </div>
</div>
</div>
</div>
diff --git a/addons/sales_team/static/src/less/sales_team_dashboard.less b/addons/sales_team/static/src/less/sales_team_dashboard.less
index 4fedcc80691..19dbb66757a 100644
--- a/addons/sales_team/static/src/less/sales_team_dashboard.less
+++ b/addons/sales_team/static/src/less/sales_team_dashboard.less
@@ -1,7 +1,7 @@
-.o_salesteam_kanban {
+.oe_kanban_view.o_kanban_dashboard.o_salesteam_kanban {
.oe_kanban_record {
- min-height: 200px !important;
- min-width: 500px !important;
- max-width: 600px !important;
+ min-height: 200px;
+ min-width: 500px;
+ max-width: 600px;
}
} \ No newline at end of file
diff --git a/addons/stock/static/src/css/stock.css b/addons/stock/static/src/css/stock.css
index 4cf5ad24c02..532eb4f18d1 100644
--- a/addons/stock/static/src/css/stock.css
+++ b/addons/stock/static/src/css/stock.css
@@ -10,15 +10,6 @@
.openerp .oe_stock_scan_image:hover {
opacity: 1
}
-.oe_gauge_labels {
- width: 100%;
-}
-.oe_gauge_labels .oe_gauge_label_column {
- width: 49%;
- text-align: center;
- display: inline-block;
- margin: -7px;
-}
.oe_stock_scan_image_btn {
/*height : 42px;*/
diff --git a/addons/stock/static/src/less/stock_dashboard.less b/addons/stock/static/src/less/stock_dashboard.less
index 96c023e3c7b..cf272240922 100644
--- a/addons/stock/static/src/less/stock_dashboard.less
+++ b/addons/stock/static/src/less/stock_dashboard.less
@@ -1,6 +1,6 @@
-.o_stock_kanban {
+.oe_kanban_view.o_kanban_dashboard.o_stock_kanban {
.oe_kanban_record {
- max-width: 500px !important;
- min-width: 350px !important;
+ max-width: 500px;
+ min-width: 350px;
}
} \ No newline at end of file
diff --git a/addons/stock/stock_dashboard.xml b/addons/stock/stock_dashboard.xml
index 19f94de6314..ddf35c7beb9 100644
--- a/addons/stock/stock_dashboard.xml
+++ b/addons/stock/stock_dashboard.xml
@@ -6,6 +6,7 @@
<kanban class="oe_background_grey o_kanban_dashboard o_stock_kanban" create="0">
<field name="complete_name"/>
<field name="color"/>
+ <field name="code"/>
<field name="count_picking_ready"/>
<field name="count_picking_draft"/>
<field name="count_picking_waiting"/>
@@ -26,18 +27,14 @@
<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="%(action_picking_tree)d" type="action">Transfers</button>
+ <button class="btn btn-primary" name="%(action_picking_tree_ready)d" type="action">
+ <span t-if="record.code.raw_value =='incoming'"><t t-esc="record.count_picking_ready.value"/> To Receive</span>
+ <span t-if="record.code.raw_value =='outgoing'"><t t-esc="record.count_picking_ready.value"/> To Do</span>
+ <span t-if="record.code.raw_value =='internal'"><t t-esc="record.count_picking_ready.value"/> Transfers</span>
+ </button>
</div>
<div class="col-xs-6 o_kanban_primary_right">
<div t-if="record.count_picking_ready.raw_value > 0" class="row">
- <div class="col-xs-9">
- <a name="%(action_picking_tree_ready)d" type="action">
- Ready
- </a>
- </div>
- <div class="col-xs-3">
- <field name="count_picking_ready"/>
- </div>
</div>
<div t-if="record.count_picking_waiting.raw_value > 0" class="row">
@@ -76,7 +73,7 @@
</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_view">
+ <div class="col-xs-6 o_kanban_card_manage_section o_kanban_manage_view">
<div class="o_kanban_card_manage_title">
<span>View</span>
</div>
@@ -93,7 +90,7 @@
<a name="%(action_picking_tree_backorder)d" type="action">Back Orders</a>
</div>
</div>
- <div class="col-xs-4 o_kanban_card_manage_section o_kanban_manage_new">
+ <div class="col-xs-6 o_kanban_card_manage_section o_kanban_manage_new">
<div class="o_kanban_card_manage_title">
<span>New</span>
</div>
@@ -101,21 +98,15 @@
<a name="%(action_picking_form)d" type="action" >Transfer</a>
</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>
- <a name="%(action_stock_level_forecast_report)d" type="action" >Stock Level Forecast</a>
- </div>
- <div>
- <a name="%(action_stock_line_date)d" type="action" >Latest Inventories &amp; Moves</a>
- </div>
- </div>
</div>
<div t-if="widget.view.is_action_enabled('edit')" class="o_kanban_card_manage_settings row">
- <a type="edit">Settings</a>
+ <div class="col-xs-8">
+ <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
+ </div>
+ <div class="col-xs-4 text-right">
+ <a type="edit">Settings</a>
+ </div>
</div>
</div>
</div>
diff --git a/addons/stock_account/stock_dashboard.xml b/addons/stock_account/stock_dashboard.xml
index 61f50659377..a99d05973db 100644
--- a/addons/stock_account/stock_dashboard.xml
+++ b/addons/stock_account/stock_dashboard.xml
@@ -24,14 +24,6 @@
</a>
</div>
</xpath>
-
- <xpath expr="//div[contains(@class, 'o_kanban_manage_reports')]" position="inside">
- <div>
- <a name="%(action_wizard_stock_valuation_history)d" type="action">
- Inventory Valuation
- </a>
- </div>
- </xpath>
</field>
</record>