summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrupal Oza <koz@odoo.com>2020-04-16 13:55:32 +0000
committerYannick Tivisse <yti@odoo.com>2020-05-18 12:11:22 +0000
commit6d17897dffd97ad52ad933f3e95ac1236f605806 (patch)
treef7aef6d7d1ca6dbfe40df7473f2debe664f6ba05
parentec29deb02445e237fb53f3106849f7ab327dd597 (diff)
[IMP] various: Clean the kanban view design
PURPOSE ========================= The goal of this task is to set up some kind of guidelines to make kanban views consistent. It is fine having different kanban views, but if a UI element is shared among several kanban views, it should behave/look the same so the user knows what to expect. Kanban views can be split into two types: ==> 'documents' kanbans, such as res.partner, crm.lead, etc. - those records are created/edited often, numerous - 'opening' the card means accessing the record ==> 'dashboard' kanbans,such as stock.picking.type,account.journal, etc. - those records are not created/edited often, there are much less numerous - usually presented as dashboard, where 'opening' the card means accessing a set of related 'documents' (clicking on a account.journal to access account.move, or stock.picking.type to access stock.picking) - configuration of the 'card record' is done through a dropdown to access configuration Here are some guidelines for consistency. Bear in mind that those are not rules, but guidelines for consistency that we'd like to keep in mind when designing. ==> 'documents' kanbans - the record is accessed through global click - the user avatar is at the bottom right - the activity widget is at the bottom left (in last position if there are other elements) ==> 'dashboard' kanbans - the record is accessed through a 'Configuration' option in the card dropdown - there is no global click, and therefore no focus shadow - the dropdown icon (o_kanban_manage_toggle_button) is always visible, with icon fa-ellipsis-v - the listview counterpart should be presented as a dedicated configuration menu, and shouldn't be in the 'dashboard action' - links in the body of the card are structured as follows: link with <count>+label, then any additional aggregated metrics (not link) to the right example https://drive.google.com/file/d/1ZP6HDHTtC7cQ6rDWgqLoPs6U8JCeNVkW/view?usp=sharing ==> global guidelines - the title font color is #212529, with 500 weight - the subtitle font color is #666666, with 400 weight - the font size is 1.083rem - text overflow is handled through linebreak, not ellipsis - numerical values are aligned to the right - the kanban state widget is at the bottom right SPECIFICATION ================= AS per guidelines Improved follwing kanban/dashbaord view - hr_job - hr_department - hr_work_entry - hr_appraisal - fleet_vehicle - product_template - sale_subscription_template - crm_team - res_partner - event - stock_picking_type - mrp_eco_type - maintenance_team - quality_alert_team - account_journal Added the department menu on employee with default kanban view Added sequence in hr_work_entry list view TaskID: 2206372 Related Enterprise PR: https://github.com/odoo/enterprise/pull/10341 Closes: #50536
-rw-r--r--addons/account/views/account_journal_dashboard_view.xml4
-rw-r--r--addons/crm/views/res_partner_views.xml2
-rw-r--r--addons/event/static/src/scss/event.scss4
-rw-r--r--addons/event/views/event_views.xml16
-rw-r--r--addons/fleet/views/fleet_vehicle_views.xml38
-rw-r--r--addons/hr/views/hr_department_views.xml54
-rw-r--r--addons/hr/views/hr_views.xml8
-rw-r--r--addons/hr_attendance/views/hr_department_view.xml10
-rw-r--r--addons/hr_expense/views/hr_department_views.xml25
-rw-r--r--addons/hr_holidays/views/hr_views.xml51
-rw-r--r--addons/hr_recruitment/views/hr_department_views.xml25
-rw-r--r--addons/hr_timesheet/views/hr_views.xml12
-rw-r--r--addons/hr_work_entry/views/hr_work_entry_views.xml5
-rw-r--r--addons/mail/views/res_partner_views.xml6
-rw-r--r--addons/maintenance/views/maintenance_views.xml54
-rw-r--r--addons/mrp/views/stock_picking_views.xml18
-rw-r--r--addons/point_of_sale/views/res_partner_view.xml2
-rw-r--r--addons/product/views/product_template_views.xml10
-rw-r--r--addons/purchase/views/res_partner_views.xml2
-rw-r--r--addons/sale/views/res_partner_views.xml2
-rw-r--r--addons/sales_team/views/crm_team_views.xml8
-rw-r--r--addons/stock/views/product_views.xml6
-rw-r--r--addons/stock/views/stock_picking_views.xml27
-rw-r--r--odoo/addons/base/views/res_partner_views.xml4
24 files changed, 158 insertions, 235 deletions
diff --git a/addons/account/views/account_journal_dashboard_view.xml b/addons/account/views/account_journal_dashboard_view.xml
index b70357f607e..51f8e22230a 100644
--- a/addons/account/views/account_journal_dashboard_view.xml
+++ b/addons/account/views/account_journal_dashboard_view.xml
@@ -202,8 +202,8 @@
<div class="col-6">
<field name="show_on_dashboard" widget="boolean_favorite" />
</div>
- <div class="col-6 text-right">
- <a t-if="widget.editable" type="edit">Settings</a>
+ <div class="col-6 text-right mt-1">
+ <a class="dropdown-item" t-if="widget.editable" type="edit">Configuration</a>
</div>
</div>
</t>
diff --git a/addons/crm/views/res_partner_views.xml b/addons/crm/views/res_partner_views.xml
index a96d704f9e5..22c454df051 100644
--- a/addons/crm/views/res_partner_views.xml
+++ b/addons/crm/views/res_partner_views.xml
@@ -53,7 +53,7 @@
<field name="opportunity_count"/>
<field name="meeting_count"/>
</field>
- <xpath expr="//div[hasclass('oe_kanban_partner_links')]" position="inside">
+ <xpath expr="//span[hasclass('oe_kanban_partner_links')]" position="inside">
<span class="badge badge-pill" t-if="record.opportunity_count.value>0"><i class="fa fa-fw fa-star" aria-label="Favorites" role="img" title="Favorites"/><t t-esc="record.opportunity_count.value"/></span>
<span class="badge badge-pill" t-if="record.meeting_count.value>0"><i class="fa fa-fw fa-calendar" aria-label="Meetings" role="img" title="Meetings"/><t t-esc="record.meeting_count.value"/></span>
</xpath>
diff --git a/addons/event/static/src/scss/event.scss b/addons/event/static/src/scss/event.scss
index ad32c3cf5db..821ad23e09c 100644
--- a/addons/event/static/src/scss/event.scss
+++ b/addons/event/static/src/scss/event.scss
@@ -3,10 +3,6 @@
min-height: 140px;
}
.o_kanban_content {
- .o_event_fontweight_500 {
- font-weight: 500;
- }
-
.o_event_fontsize_09 {
font-size: .9rem;
}
diff --git a/addons/event/views/event_views.xml b/addons/event/views/event_views.xml
index beb1d455f43..a8c925c1226 100644
--- a/addons/event/views/event_views.xml
+++ b/addons/event/views/event_views.xml
@@ -344,7 +344,9 @@
</div>
<div class="col-9 py-2 px-3 d-flex flex-column justify-content-between pt-3">
<div>
- <h4 class="o_event_fontweight_500 mb-0 o_text_overflow" t-att-title="record.name.value"><field name="name"/></h4>
+ <div class="o_kanban_record_title o_text_overflow" t-att-title="record.name.value">
+ <field name="name"/>
+ </div>
<div><i class="fa fa-map-marker" title="Location"/> <span class="o_text_overflow o_event_kanban_location" t-esc="record.address_id.value"/></div>
</div>
<h5 class="o_event_fontsize_11 p-0">
@@ -358,12 +360,14 @@
</a>
</div>
</h5>
- <div class="text-right">
- <div class="float-left"><field name="activity_ids" widget="kanban_activity"/></div>
- <field name="kanban_state" widget="state_selection"/>
- <span class="ml-2">
+ <div class="o_kanban_record_bottom">
+ <div class="oe_kanban_bottom_left">
+ <field name="activity_ids" widget="kanban_activity"/>
+ </div>
+ <div class="oe_kanban_bottom_right">
+ <field name="kanban_state" widget="state_selection"/>
<field name="user_id" widget="many2one_avatar_user"/>
- </span>
+ </div>
</div>
</div>
</div>
diff --git a/addons/fleet/views/fleet_vehicle_views.xml b/addons/fleet/views/fleet_vehicle_views.xml
index 2c43e859abc..07e40d1e0b6 100644
--- a/addons/fleet/views/fleet_vehicle_views.xml
+++ b/addons/fleet/views/fleet_vehicle_views.xml
@@ -213,9 +213,7 @@
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click o_kanban_record_has_image_fill">
- <div class="o_kanban_image">
- <img t-att-src="kanban_image('fleet.vehicle', 'image_128', record.id.raw_value)" alt="Vehicle"/>
- </div>
+ <div class="o_kanban_image" t-attf-style="background-image:url('#{kanban_image('fleet.vehicle', 'image_128', record.id.raw_value)}')"/>
<div class="oe_kanban_details">
<strong class="o_kanban_record_title">
<t t-if="license_plate"><field name="license_plate"/> :</t> <field name="model_id"/>
@@ -234,23 +232,23 @@
<t t-if="record.location.raw_value"><field name="location"/></t>
</li>
</ul>
- </div>
- <div class="o_kanban_button" t-if="!selection_mode">
- <a t-if="record.contract_count.raw_value>0" data-type="object"
- data-name="return_action_to_open" href="#" class="oe_kanban_action oe_kanban_action_a"
- data-context='{"xml_id":"fleet_vehicle_log_contract_action"}'>
- <field name="contract_count"/>
- Contract(s)
- <span t-if="record.contract_renewal_due_soon.raw_value and !record.contract_renewal_overdue.raw_value"
- class="fa fa-exclamation-triangle" t-att-style="'color:orange'" role="img" aria-label="Warning: renewal due soon" title="Warning: renewal due soon">
- </span>
- <span t-if="record.contract_renewal_overdue.raw_value"
- class="fa fa-exclamation-triangle" t-att-style="'color:red;'" role="img" aria-label="Attention: renewal overdue" title="Attention: renewal overdue">
- </span>
- </a>
- </div>
- <div class="o_kanban_inline_block" t-if="!selection_mode">
- <field name="activity_ids" widget="kanban_activity"/>
+ <div class="o_kanban_record_bottom" t-if="!selection_mode">
+ <div class="oe_kanban_bottom_left">
+ <a t-if="record.contract_count.raw_value>0" data-type="object"
+ data-name="return_action_to_open" href="#" class="oe_kanban_action oe_kanban_action_a"
+ data-context='{"xml_id":"fleet_vehicle_log_contract_action"}'>
+ <field name="contract_count"/>
+ Contract(s)
+ <span t-if="record.contract_renewal_due_soon.raw_value and !record.contract_renewal_overdue.raw_value"
+ class="fa fa-exclamation-triangle" t-att-style="'color:orange'" role="img" aria-label="Warning: renewal due soon" title="Warning: renewal due soon">
+ </span>
+ <span t-if="record.contract_renewal_overdue.raw_value"
+ class="fa fa-exclamation-triangle" t-att-style="'color:red;'" role="img" aria-label="Attention: renewal overdue" title="Attention: renewal overdue">
+ </span>
+ </a>
+ <field name="activity_ids" widget="kanban_activity"/>
+ </div>
+ </div>
</div>
</div>
</t>
diff --git a/addons/hr/views/hr_department_views.xml b/addons/hr/views/hr_department_views.xml
index 906e9a6956b..a3816851d09 100644
--- a/addons/hr/views/hr_department_views.xml
+++ b/addons/hr/views/hr_department_views.xml
@@ -73,42 +73,25 @@
</div>
</div>
<div class="container o_kanban_card_content" t-if="!selection_mode">
- <div class="row">
- <div class="col-6 o_kanban_primary_left">
+ <div class="row o_kanban_card_upper_content">
+ <div class="col-4 o_kanban_primary_left">
<button class="btn btn-primary" name="%(act_employee_from_department)d" type="action">Employees</button>
</div>
- <div class="col-6 o_kanban_primary_right">
+ <div class="col-8 o_kanban_primary_right">
</div>
</div>
- </div><div class="container o_kanban_card_manage_pane dropdown-menu" role="menu">
- <div class="row">
- <div role="menuitem" class="col-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 role="menuitem" class="col-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 role="menuitem" class="col-4 o_kanban_card_manage_section o_kanban_manage_reports">
+ </div>
+ <div class="o_kanban_card_manage_pane dropdown-menu" role="menu">
+ <div class="o_kanban_card_manage_section">
+ <div role="menuitem" class="o_kanban_card_manage_section o_kanban_manage_reports">
<div class="o_kanban_card_manage_title">
- <span>Reporting</span>
+ <strong><span>Reporting</span></strong>
</div>
</div>
</div>
-
- <div t-if="widget.editable" class="o_kanban_card_manage_settings row">
- <div role="menuitem" aria-haspopup="true" class="col-8">
- <ul class="oe_kanban_colorpicker" data-field="color" role="menu"/>
- </div>
- <div class="col-4 text-right">
- <a role="menuitem" type="edit">Settings</a>
- </div>
- </div>
+ <a t-if="widget.editable" role="menuitem" class="dropdown-item" type="edit">Configuration</a>
+ <ul t-if="widget.editable" class="oe_kanban_colorpicker" data-field="color" role="menu"/>
</div>
-
</div>
</t>
</templates>
@@ -116,7 +99,7 @@
</field>
</record>
- <record id="open_module_tree_department" model="ir.actions.act_window">
+ <record id="hr_department_kanban_action" model="ir.actions.act_window">
<field name="name">Departments</field>
<field name="res_model">hr.department</field>
<field name="view_mode">kanban,tree,form</field>
@@ -131,5 +114,20 @@
</p>
</field>
</record>
+ <record id="hr_department_tree_action" model="ir.actions.act_window">
+ <field name="name">Departments</field>
+ <field name="res_model">hr.department</field>
+ <field name="view_mode">tree,form,kanban</field>
+ <field name="search_view_id" ref="view_department_filter"/>
+ <field name="help" type="html">
+ <p class="o_view_nocontent_smiling_face">
+ Create a new department
+ </p><p>
+ Odoo's department structure is used to manage all documents
+ related to employees by departments: expenses, timesheets,
+ leaves, recruitments, etc.
+ </p>
+ </field>
+ </record>
</data>
</odoo>
diff --git a/addons/hr/views/hr_views.xml b/addons/hr/views/hr_views.xml
index 892bfd7c6c4..483caf54d83 100644
--- a/addons/hr/views/hr_views.xml
+++ b/addons/hr/views/hr_views.xml
@@ -79,12 +79,18 @@
<menuitem
id="menu_hr_department_tree"
- action="open_module_tree_department"
+ action="hr_department_tree_action"
parent="menu_human_resources_configuration"
sequence="2"
groups="group_hr_user"/>
<menuitem
+ id="menu_hr_department_kanban"
+ action="hr_department_kanban_action"
+ parent="menu_hr_root"
+ groups="group_hr_user"/>
+
+ <menuitem
id="menu_config_plan"
name="Activity Planning"
parent="menu_human_resources_configuration"
diff --git a/addons/hr_attendance/views/hr_department_view.xml b/addons/hr_attendance/views/hr_department_view.xml
index c066e0fd3ba..4b5fc67c9de 100644
--- a/addons/hr_attendance/views/hr_department_view.xml
+++ b/addons/hr_attendance/views/hr_department_view.xml
@@ -10,13 +10,9 @@
<data>
<xpath expr="//div[hasclass('o_kanban_manage_reports')]" position="inside">
- <div class="row">
- <div class="col-12 text-left">
- <a name="%(hr_attendance_action_graph_filtered)d" type="action">
- Attendances
- </a>
- </div>
- </div>
+ <a role="menuitem" class="dropdown-item" name="%(hr_attendance_action_graph_filtered)d" type="action">
+ Attendances
+ </a>
</xpath>
</data>
diff --git a/addons/hr_expense/views/hr_department_views.xml b/addons/hr_expense/views/hr_department_views.xml
index b603ee9b776..7ee559b9afc 100644
--- a/addons/hr_expense/views/hr_department_views.xml
+++ b/addons/hr_expense/views/hr_department_views.xml
@@ -12,38 +12,23 @@
</xpath>
<xpath expr="//div[hasclass('o_kanban_primary_right')]" position="inside">
- <div t-if="record.expense_sheets_to_approve_count.raw_value > 0" class="row">
+ <div t-if="record.expense_sheets_to_approve_count.raw_value > 0" class="row ml16">
<div class="col-9">
<a name="%(action_hr_expense_sheet_department_to_approve)d" type="action">
Expense Reports
</a>
</div>
- <div class="col-3">
+ <div class="col-3 text-right">
<t t-esc="record.expense_sheets_to_approve_count.raw_value"/>
</div>
</div>
</xpath>
- <xpath expr="//div[hasclass('o_kanban_manage_to_approve')]" position="inside">
- <div class="row">
- <div class="col-12 text-left">
- <a name="%(action_hr_expense_sheet_department_to_approve)d" type="action">
- <t t-esc="record.expense_sheets_to_approve_count.raw_value or 0"/> Expense Reports
- </a>
- </div>
- </div>
- </xpath>
-
<xpath expr="//div[hasclass('o_kanban_manage_reports')]" position="inside">
- <div class="row">
- <div class="col-12 text-left">
- <a name="%(action_hr_expense_sheet_department_filtered)d" type="action">
- Expense Reports
- </a>
- </div>
- </div>
+ <a role="menuitem" class="dropdown-item" name="%(action_hr_expense_sheet_department_filtered)d" type="action">
+ Expenses
+ </a>
</xpath>
-
</data>
</field>
</record>
diff --git a/addons/hr_holidays/views/hr_views.xml b/addons/hr_holidays/views/hr_views.xml
index f323bfdaf11..1c9a7690e52 100644
--- a/addons/hr_holidays/views/hr_views.xml
+++ b/addons/hr_holidays/views/hr_views.xml
@@ -29,69 +29,44 @@
</xpath>
<xpath expr="//div[hasclass('o_kanban_primary_right')]" position="inside">
- <div t-if="record.leave_to_approve_count.raw_value > 0" class="row">
+ <div t-if="record.leave_to_approve_count.raw_value > 0" class="row ml16">
<div class="col-9">
<a name="%(hr_leave_action_action_approve_department)d" type="action">
Time Off Requests
</a>
</div>
- <div class="col-3">
+ <div class="col-3 text-right">
<field name="leave_to_approve_count"/>
</div>
</div>
- <div t-if="record.allocation_to_approve_count.raw_value > 0" class="row">
+ <div t-if="record.allocation_to_approve_count.raw_value > 0" class="row ml16">
<div class="col-9">
<a name="%(hr_leave_allocation_action_approve_department)d" type="action">
Allocation Requests
</a>
</div>
- <div class="col-3">
+ <div class="col-3 text-right">
<field name="allocation_to_approve_count"/>
</div>
</div>
</xpath>
- <xpath expr="//div[hasclass('o_kanban_primary_right')]" position="after">
- <div class="col-12 o_kanban_primary_bottom bottom_block">
- <div class="row">
- <div class="col-3">
- <a name="%(hr_employee_action_from_department)d" type="action" title="Absent Employee(s), Whose time off request are either confirmed or validated on today">Absence</a>
- </div>
- <div class="col-9">
- <field name="absence_of_today" widget="progressbar" options="{'current_value': 'absence_of_today', 'max_value': 'total_employee', 'editable': false}"/>
- </div>
- </div>
- </div>
- </xpath>
-
- <xpath expr="//div[hasclass('o_kanban_manage_to_approve')]" position="inside">
- <div class="row">
- <div class="col-12 text-left">
- <a name="%(hr_leave_action_action_approve_department)d" type="action">
- <t t-esc="record.leave_to_approve_count.raw_value or 0"/> Time Off Requests
- </a>
+ <xpath expr="//div[hasclass('o_kanban_card_upper_content')]" position="after">
+ <div class="row o_kanban_primary_bottom bottom_block">
+ <div class="col-3">
+ <a name="%(hr_employee_action_from_department)d" type="action" title="Absent Employee(s), Whose time off requests are either confirmed or validated on today">Absence</a>
</div>
- </div>
-
- <div class="row">
- <div class="col-12 text-left">
- <a name="%(hr_leave_allocation_action_approve_department)d" type="action">
- <t t-esc="record.allocation_to_approve_count.raw_value or 0"/> Allocation Requests
- </a>
+ <div class="col-9">
+ <field name="absence_of_today" widget="progressbar" options="{'current_value': 'absence_of_today', 'max_value': 'total_employee', 'editable': false}"/>
</div>
</div>
</xpath>
<xpath expr="//div[hasclass('o_kanban_manage_reports')]" position="inside">
- <div class="row">
- <div class="col-12 text-left">
- <a name="%(hr_leave_action_action_department)d" type="action">
- Time Off
- </a>
- </div>
- </div>
+ <a role="menuitem" class="dropdown-item" name="%(hr_leave_action_action_department)d" type="action">
+ Time Off
+ </a>
</xpath>
-
</data>
</field>
</record>
diff --git a/addons/hr_recruitment/views/hr_department_views.xml b/addons/hr_recruitment/views/hr_department_views.xml
index 9d054dac385..d2225293f8f 100644
--- a/addons/hr_recruitment/views/hr_department_views.xml
+++ b/addons/hr_recruitment/views/hr_department_views.xml
@@ -14,38 +14,23 @@
</xpath>
<xpath expr="//div[hasclass('o_kanban_primary_right')]" position="inside">
- <div t-if="record.new_applicant_count.raw_value > 0" class="row">
+ <div t-if="record.new_applicant_count.raw_value > 0" class="row ml16">
<div class="col-9">
<a name="%(hr_applicant_action_from_department)d" type="action">
New Applicants
</a>
</div>
- <div class="col-3">
+ <div class="col-3 text-right">
<field name="new_applicant_count"/>
</div>
</div>
</xpath>
- <xpath expr="//div[hasclass('o_kanban_manage_to_do')]" position="inside">
- <div class="row">
- <div class="col-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[hasclass('o_kanban_manage_reports')]" position="inside">
- <div class="row">
- <div class="col-12 text-left">
- <a name="%(action_hr_recruitment_report_filtered_department)d" type="action">
- Recruitments
- </a>
- </div>
- </div>
+ <a role="menuitem" class="dropdown-item" name="%(action_hr_recruitment_report_filtered_department)d" type="action">
+ Recruitments
+ </a>
</xpath>
-
</data>
</field>
</record>
diff --git a/addons/hr_timesheet/views/hr_views.xml b/addons/hr_timesheet/views/hr_views.xml
index 683b6320df4..d4c43ad53d5 100644
--- a/addons/hr_timesheet/views/hr_views.xml
+++ b/addons/hr_timesheet/views/hr_views.xml
@@ -61,16 +61,10 @@
<field name="arch" type="xml">
<data>
<xpath expr="//div[hasclass('o_kanban_manage_reports')]" position="inside">
- <div class="row">
- <div class="col-12 text-left">
- <a name="%(act_hr_timesheet_report)d" type="action"
- context="{ 'search_default_department_id': [active_id], 'default_department_id': active_id}">
- Timesheets
- </a>
- </div>
- </div>
+ <a name="%(act_hr_timesheet_report)d" type="action" context="{ 'search_default_department_id': [active_id], 'default_department_id': active_id}">
+ Timesheets
+ </a>
</xpath>
-
</data>
</field>
</record>
diff --git a/addons/hr_work_entry/views/hr_work_entry_views.xml b/addons/hr_work_entry/views/hr_work_entry_views.xml
index b04e84e644f..74ee454589a 100644
--- a/addons/hr_work_entry/views/hr_work_entry_views.xml
+++ b/addons/hr_work_entry/views/hr_work_entry_views.xml
@@ -123,7 +123,7 @@
<record id="hr_work_entry_type_action" model="ir.actions.act_window">
<field name="name">Work Entry Types</field>
<field name="res_model">hr.work.entry.type</field>
- <field name="view_mode">kanban,tree,form</field>
+ <field name="view_mode">tree,kanban,form</field>
<field name="search_view_id" ref="hr_work_entry_type_view_search"/>
</record>
@@ -132,6 +132,7 @@
<field name="model">hr.work.entry.type</field>
<field name="arch" type="xml">
<tree>
+ <field name="sequence" widget="handle"/>
<field name="name"/>
<field name="code"/>
</tree>
@@ -173,7 +174,7 @@
<div t-attf-class="#{!selection_mode ? kanban_color(record.color.raw_value) : ''} oe_kanban_global_click">
<div class="o_dropdown_kanban dropdown" t-if="!selection_mode">
<a class="dropdown-toggle o-no-caret btn" role="button" data-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
- <span class="fa fa-bars fa-lg"/>
+ <span class="fa fa-ellipsis-v"/>
</a>
<div class="dropdown-menu" role="menu">
<ul class="oe_kanban_colorpicker" data-field="color"/>
diff --git a/addons/mail/views/res_partner_views.xml b/addons/mail/views/res_partner_views.xml
index 77f4efef7cd..b23897f03df 100644
--- a/addons/mail/views/res_partner_views.xml
+++ b/addons/mail/views/res_partner_views.xml
@@ -36,10 +36,8 @@
<field name="type" position="after">
<field name="activity_state"/>
</field>
- <xpath expr="//div[hasclass('oe_kanban_details')]" position="inside">
- <div class="mt-auto">
- <field name="activity_ids" widget="kanban_activity"/>
- </div>
+ <xpath expr="//span[hasclass('oe_kanban_partner_links')]" position="after">
+ <field name="activity_ids" widget="kanban_activity"/>
</xpath>
</field>
</record>
diff --git a/addons/maintenance/views/maintenance_views.xml b/addons/maintenance/views/maintenance_views.xml
index 22d5233ecd8..58e80c56c6d 100644
--- a/addons/maintenance/views/maintenance_views.xml
+++ b/addons/maintenance/views/maintenance_views.xml
@@ -840,39 +840,29 @@
</button>
</div>
<div class="col-6 o_kanban_primary_right">
- <div class="row">
- <div class="col-9">
- <a name="%(hr_equipment_request_action_cal)d" type="action">
- Scheduled
- </a>
- </div>
- <div class="col-3">
+ <div t-if="record.todo_request_count_date.raw_value > 0">
+ <a name="%(hr_equipment_request_action_cal)d" type="action">
<t t-esc="record.todo_request_count_date.value"/>
- </div>
- <div class="col-9">
- <a name="%(hr_equipment_todo_request_action_from_dashboard)d" type="action" context="{'search_default_high_priority': 1}">
- Top Priorities
- </a>
- </div>
- <div class="col-3">
+ Scheduled
+ </a>
+ </div>
+ <div t-if="record.todo_request_count_high_priority.raw_value > 0">
+ <a name="%(hr_equipment_todo_request_action_from_dashboard)d" type="action" context="{'search_default_high_priority': 1}">
<t t-esc="record.todo_request_count_high_priority.value"/>
- </div>
- <div class="col-9">
- <a name="%(hr_equipment_todo_request_action_from_dashboard)d" type="action" context="{'search_default_kanban_state_block': 1}">
- Blocked
- </a>
- </div>
- <div class="col-3">
+ Top Priorities
+ </a>
+ </div>
+ <div t-if="record.todo_request_count_block.raw_value > 0">
+ <a name="%(hr_equipment_todo_request_action_from_dashboard)d" type="action" context="{'search_default_kanban_state_block': 1}">
<t t-esc="record.todo_request_count_block.value"/>
- </div>
- <div class="col-9">
- <a name="%(hr_equipment_todo_request_action_from_dashboard)d" type="action" context="{'search_default_unscheduled': 1}">
- Unscheduled
- </a>
- </div>
- <div class="col-3">
+ Blocked
+ </a>
+ </div>
+ <div t-if="record.todo_request_count_unscheduled.raw_value > 0">
+ <a name="%(hr_equipment_todo_request_action_from_dashboard)d" type="action" context="{'search_default_unscheduled': 1}">
<t t-esc="record.todo_request_count_unscheduled.value"/>
- </div>
+ Unscheduled
+ </a>
</div>
</div>
</div>
@@ -880,7 +870,7 @@
<div class="row">
<div class="col-6 o_kanban_card_manage_section o_kanban_manage_view">
<div role="menuitem" class="o_kanban_card_manage_title">
- <span>View</span>
+ <span>Requests</span>
</div>
<div role="menuitem">
<a name="%(hr_equipment_todo_request_action_from_dashboard)d" type="action">
@@ -918,8 +908,8 @@
<div class="col-8" role="menuitem" aria-haspopup="true">
<ul role="menu" class="oe_kanban_colorpicker" data-field="color"/>
</div>
- <div role="menuitem" class="col-4 text-right">
- <a type="edit">Settings</a>
+ <div role="menuitem" class="col-4">
+ <a type="edit" class="dropdown-item">Configuration</a>
</div>
</div>
</div>
diff --git a/addons/mrp/views/stock_picking_views.xml b/addons/mrp/views/stock_picking_views.xml
index 215c2368208..d5ed2bd00b7 100644
--- a/addons/mrp/views/stock_picking_views.xml
+++ b/addons/mrp/views/stock_picking_views.xml
@@ -16,11 +16,13 @@
<div>
<div t-attf-class="o_kanban_card_header">
<div class="o_kanban_card_header_title">
- <a type="object" name="get_mrp_stock_picking_action_picking_type" class="o_primary" t-if="!selection_mode">
- <field name="name"/>
- </a>
+ <div class="o_primary" t-if="!selection_mode">
+ <a type="object" name="get_mrp_stock_picking_action_picking_type">
+ <field name="name"/>
+ </a>
+ </div>
<span class="o_primary" t-if="selection_mode"><field name="name"/></span>
- <div class="o_secondary"><field class="o_secondary" name="warehouse_id" readonly="1"/></div>
+ <div class="o_secondary"><field class="o_secondary" name="warehouse_id" readonly="1" groups="stock.group_stock_multi_warehouses"/></div>
</div>
<div class="o_kanban_manage_button_section" t-if="!selection_mode">
<a class="o_kanban_manage_toggle_button" href="#"><i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/></a>
@@ -60,7 +62,7 @@
<div class="row">
<div class="col-6 o_kanban_card_manage_section o_kanban_manage_view" name="picking_left_manage_pane">
<div role="menuitem" class="o_kanban_card_manage_title">
- <span>View</span>
+ <span>Orders</span>
</div>
<div role="menuitem">
<a name="%(mrp_production_action_picking_deshboard)d" type="action">All</a>
@@ -77,7 +79,7 @@
<span>New</span>
</div>
<div role="menuitem">
- <a name="%(action_mrp_production_form)d" context="{'default_picking_type_id': active_id}" type="action">Production Order</a>
+ <a name="%(action_mrp_production_form)d" context="{'default_picking_type_id': active_id}" type="action">Manufacturing Order</a>
</div>
</div>
</div>
@@ -86,8 +88,8 @@
<div role="menuitem" aria-haspopup="true" class="col-8">
<ul role="menu" class="oe_kanban_colorpicker" data-field="color"/>
</div>
- <div role="menuitem" class="col-4 text-right">
- <a type="edit">Settings</a>
+ <div class="col-4">
+ <a class="dropdown-item" role="menuitem" type="edit">Configuration</a>
</div>
</div>
</div>
diff --git a/addons/point_of_sale/views/res_partner_view.xml b/addons/point_of_sale/views/res_partner_view.xml
index 0da6074cf83..2a35f808651 100644
--- a/addons/point_of_sale/views/res_partner_view.xml
+++ b/addons/point_of_sale/views/res_partner_view.xml
@@ -32,7 +32,7 @@
<field name="state_id" position="before">
<field name="pos_order_count"/>
</field>
- <xpath expr="//div[hasclass('oe_kanban_partner_links')]" position="inside">
+ <xpath expr="//span[hasclass('oe_kanban_partner_links')]" position="inside">
<span t-if="record.pos_order_count.value>0" class="badge badge-pill"><i class="fa fa-fw fa-shopping-bag" role="img" aria-label="Shopping cart" title="Shopping cart"/><t t-esc="record.pos_order_count.value"/></span>
</xpath>
</field>
diff --git a/addons/product/views/product_template_views.xml b/addons/product/views/product_template_views.xml
index 3a39693d1d6..b5e3df764df 100644
--- a/addons/product/views/product_template_views.xml
+++ b/addons/product/views/product_template_views.xml
@@ -85,18 +85,16 @@
<div class="oe_kanban_details">
<strong class="o_kanban_record_title">
<field name="name"/>
- <small t-if="record.default_code.value">[<field name="default_code"/>]</small>
</strong>
+ <t t-if="record.default_code.value">[<field name="default_code"/>]</t>
<div t-if="record.product_variant_count.value &gt; 1" groups="product.group_product_variant">
<strong>
<t t-esc="record.product_variant_count.value"/> Variants
</strong>
</div>
- <div name="tags"/>
- <ul>
- <li>Price: <field name="lst_price" widget="monetary" options="{'currency_field': 'currency_id', 'field_digits': True}"></field></li>
- </ul>
- <div name="tags"/>
+ <div name="product_lst_price" class="mt-1">
+ Price: <field name="lst_price" widget="monetary" options="{'currency_field': 'currency_id', 'field_digits': True}"></field>
+ </div>
</div>
</div>
</t>
diff --git a/addons/purchase/views/res_partner_views.xml b/addons/purchase/views/res_partner_views.xml
index 14265d174a0..05b46795a76 100644
--- a/addons/purchase/views/res_partner_views.xml
+++ b/addons/purchase/views/res_partner_views.xml
@@ -40,7 +40,7 @@
<field name="mobile" position="after">
<field name="purchase_order_count"/>
</field>
- <xpath expr="//div[hasclass('oe_kanban_partner_links')]" position="inside">
+ <xpath expr="//span[hasclass('oe_kanban_partner_links')]" position="inside">
<span t-if="record.purchase_order_count.value>0" class="badge badge-pill"><i class="fa fa-fw fa-shopping-cart" role="img" aria-label="Shopping cart" title="Shopping cart"/><t t-esc="record.purchase_order_count.value"/></span>
</xpath>
</field>
diff --git a/addons/sale/views/res_partner_views.xml b/addons/sale/views/res_partner_views.xml
index b96265e62fa..cbfa2b17a04 100644
--- a/addons/sale/views/res_partner_views.xml
+++ b/addons/sale/views/res_partner_views.xml
@@ -26,7 +26,7 @@
<field name="mobile" position="after">
<field name="sale_order_count"/>
</field>
- <xpath expr="//div[hasclass('oe_kanban_partner_links')]" position="inside">
+ <xpath expr="//span[hasclass('oe_kanban_partner_links')]" position="inside">
<span t-if="record.sale_order_count.value>0" class="badge badge-pill"><i class="fa fa-fw fa-usd" role="img" aria-label="Sale orders" title="Sales orders"/><t t-esc="record.sale_order_count.value"/></span>
</xpath>
</field>
diff --git a/addons/sales_team/views/crm_team_views.xml b/addons/sales_team/views/crm_team_views.xml
index f495e5cd62d..7fadf58c4b3 100644
--- a/addons/sales_team/views/crm_team_views.xml
+++ b/addons/sales_team/views/crm_team_views.xml
@@ -135,10 +135,10 @@
</div>
<div class="container o_kanban_card_content">
<div class="row o_kanban_card_upper_content">
- <div class="col-5 o_kanban_primary_left" name="to_replace_in_sale_crm">
+ <div class="col-4 o_kanban_primary_left" name="to_replace_in_sale_crm">
<button type="object" class="btn btn-primary" name="action_primary_channel_button"><field name="dashboard_button_name"/></button>
</div>
- <div class="col-7 o_kanban_primary_right" style="padding-bottom:0;">
+ <div class="col-8 o_kanban_primary_right" style="padding-bottom:0;">
<t name="first_options"/>
<t name="second_options"/>
<t name="third_options"/>
@@ -174,8 +174,8 @@
<div role="menuitem" aria-haspopup="true" class="col-8">
<ul class="oe_kanban_colorpicker" data-field="color" role="menu"/>
</div>
- <div role="menuitem" class="col-4 text-right">
- <a type="edit">Settings</a>
+ <div role="menuitem" class="col-4">
+ <a class="dropdown-item" type="edit">Configuration</a>
</div>
</div>
</div>
diff --git a/addons/stock/views/product_views.xml b/addons/stock/views/product_views.xml
index e45dc39c3e4..f1d99f0e1b4 100644
--- a/addons/stock/views/product_views.xml
+++ b/addons/stock/views/product_views.xml
@@ -148,9 +148,9 @@
<xpath expr="//kanban" position="inside">
<field name="type"/>
</xpath>
- <ul position="inside">
- <li t-if="record.type.raw_value == 'product'">On hand: <field name="qty_available"/> <field name="uom_id"/></li>
- </ul>
+ <xpath expr="//div[@name='product_lst_price']" position="after">
+ <div t-if="record.type.raw_value == 'product'">On hand: <field name="qty_available"/> <field name="uom_id"/></div>
+ </xpath>
</field>
</record>
diff --git a/addons/stock/views/stock_picking_views.xml b/addons/stock/views/stock_picking_views.xml
index a53d1848cb2..61a5c9b345f 100644
--- a/addons/stock/views/stock_picking_views.xml
+++ b/addons/stock/views/stock_picking_views.xml
@@ -654,7 +654,7 @@
<div class="o_primary" t-if="selection_mode">
<field name="name"/>
</div>
- <div class="o_secondary"><field class="o_secondary" name="warehouse_id" readonly="1"/></div>
+ <div class="o_secondary"><field class="o_secondary" name="warehouse_id" readonly="1" groups="stock.group_stock_multi_warehouses"/></div>
</div>
<div class="o_kanban_manage_button_section" t-if="!selection_mode">
<a class="o_kanban_manage_toggle_button" href="#"><i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/></a>
@@ -674,36 +674,30 @@
</div>
<div t-if="record.count_picking_waiting.raw_value > 0" class="row">
- <div class="col-9">
+ <div class="col-12">
<a name="get_action_picking_tree_waiting" type="object">
+ <field name="count_picking_waiting"/>
Waiting
</a>
</div>
- <div class="col-3">
- <field name="count_picking_waiting"/>
- </div>
</div>
<div t-if="record.count_picking_late.raw_value > 0" class="row">
- <div class="col-9">
+ <div class="col-12">
<a class="oe_kanban_stock_picking_type_list" name="get_action_picking_tree_late" type="object">
+ <field name="count_picking_late"/>
Late
</a>
</div>
- <div class="col-3">
- <field name="count_picking_late"/>
- </div>
</div>
<div t-if="record.count_picking_backorders.raw_value > 0" class="row">
- <div class="col-9">
+ <div class="col-12">
<a class="oe_kanban_stock_picking_type_list" name="get_action_picking_tree_backorder" type="object">
+ <field name="count_picking_backorders"/>
Back Orders
</a>
</div>
- <div class="col-3">
- <field name="count_picking_backorders"/>
- </div>
</div>
</div>
</div>
@@ -711,7 +705,8 @@
<div class="row">
<div class="col-6 o_kanban_card_manage_section o_kanban_manage_view">
<div role="menuitem" class="o_kanban_card_manage_title">
- <span>View</span>
+ <span t-if="record.code.raw_value == 'internal'">Transfers</span>
+ <span t-else="">View</span>
</div>
<div role="menuitem">
<a name="get_stock_picking_action_picking_type" type="object">All</a>
@@ -740,8 +735,8 @@
<div class="col-8" role="menuitem" aria-haspopup="true">
<ul class="oe_kanban_colorpicker" data-field="color" role="menu"/>
</div>
- <div role="menuitem" class="col-4 text-center">
- <a type="edit">Settings</a>
+ <div role="menuitem" class="col-4">
+ <a class="dropdown-item" role="menuitem" type="edit">Configuration</a>
</div>
</div>
</div>
diff --git a/odoo/addons/base/views/res_partner_views.xml b/odoo/addons/base/views/res_partner_views.xml
index 65187748f9f..6b5efa41746 100644
--- a/odoo/addons/base/views/res_partner_views.xml
+++ b/odoo/addons/base/views/res_partner_views.xml
@@ -475,7 +475,9 @@
<li t-if="record.city.raw_value and record.country_id.raw_value"><field name="city"/>, <field name="country_id"/></li>
<li t-if="record.email.raw_value" class="o_text_overflow"><field name="email"/></li>
</ul>
- <div class="oe_kanban_partner_links"/>
+ <div class="o_row">
+ <span class="oe_kanban_partner_links"/>
+ </div>
</div>
</div>
</t>