From b6eec420a8d081a3e93da9d2b32aec49ad9232dc Mon Sep 17 00:00:00 2001 From: Prakash Prajapati Date: Fri, 7 Feb 2020 09:39:12 +0100 Subject: [PATCH 1/3] [IMP] sale: add kanban view for sale.order.line for better display on mobile For a SO line on mobile it was displaying only the name of the line without the SO number. It wasn't very practical for the users so we added this view to display the display_name instead. Task-2188831 Co-authored-by: jdoutreloux --- addons/sale/views/sale_views.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/addons/sale/views/sale_views.xml b/addons/sale/views/sale_views.xml index e4890c305a7..ddf837f97d6 100644 --- a/addons/sale/views/sale_views.xml +++ b/addons/sale/views/sale_views.xml @@ -1057,6 +1057,26 @@ + + sale.order.line.kanban + sale.order.line + + + + +
+
+
+ +
+
+
+
+
+
+
+
+ product.product.sale.order product.product From 392f8d30f0fa127bb93bdde04d717fb0f30aed19 Mon Sep 17 00:00:00 2001 From: Prakash Prajapati Date: Fri, 7 Feb 2020 09:40:45 +0100 Subject: [PATCH 2/3] [IMP] sale_timesheet: add domain on sales order field A domain has been added to the Sales Order field on project task so that the task and the so have the same commercial_partner_id. Task-2188831 Co-authored-by: jdoutreloux --- addons/sale_timesheet/models/project.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/sale_timesheet/models/project.py b/addons/sale_timesheet/models/project.py index 48c1bf95259..2049780ecc6 100644 --- a/addons/sale_timesheet/models/project.py +++ b/addons/sale_timesheet/models/project.py @@ -160,7 +160,8 @@ class ProjectTask(models.Model): _inherit = "project.task" # override sale_order_id and make it computed stored field instead of regular field. - sale_order_id = fields.Many2one(compute='_compute_sale_order_id', store=True, readonly=False) + sale_order_id = fields.Many2one(compute='_compute_sale_order_id', store=True, readonly=False, + domain="['|', '|', ('partner_id', '=', partner_id), ('partner_id', 'child_of', commercial_partner_id), ('partner_id', 'parent_of', partner_id)]") analytic_account_id = fields.Many2one('account.analytic.account', related='sale_order_id.analytic_account_id') billable_type = fields.Selection([ ('task_rate', 'At Task Rate'), From 901f5bbd82304f1305b0190b9817666a901bed32 Mon Sep 17 00:00:00 2001 From: Prakash Prajapati Date: Fri, 7 Feb 2020 09:41:40 +0100 Subject: [PATCH 3/3] [IMP] web: change the default name of a column in kanban view This changes the name of the column in kanban view when the records are grouped by date. The column name of the records with no date went from false to Undefined. Task-2188831 Co-authored-by: jdoutreloux --- addons/web/static/src/js/views/kanban/kanban_column.js | 4 ++-- addons/web/static/src/js/views/kanban/kanban_renderer.js | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/js/views/kanban/kanban_column.js b/addons/web/static/src/js/views/kanban/kanban_column.js index 229046479f4..ab994628c8c 100644 --- a/addons/web/static/src/js/views/kanban/kanban_column.js +++ b/addons/web/static/src/js/views/kanban/kanban_column.js @@ -74,8 +74,8 @@ var KanbanColumn = Widget.extend({ this.record_options = _.clone(recordOptions); - if (options.grouped_by_m2o) { - // For many2one, a false value means that the field is not set. + if (options.grouped_by_m2o || options.grouped_by_date ) { + // For many2one and datetime, a false value means that the field is not set. this.title = value ? value : _t('Undefined'); } else { // False and 0 might be valid values for these fields. diff --git a/addons/web/static/src/js/views/kanban/kanban_renderer.js b/addons/web/static/src/js/views/kanban/kanban_renderer.js index b207f7f63d3..acf3fc7d7cd 100644 --- a/addons/web/static/src/js/views/kanban/kanban_renderer.js +++ b/addons/web/static/src/js/views/kanban/kanban_renderer.js @@ -503,9 +503,11 @@ var KanbanRenderer = BasicRenderer.extend({ // - is a date or datetime since we group by month or // - is readonly (on the field attrs or in the view) var draggable = true; + var grouped_by_date = false; if (groupByFieldAttrs) { if (groupByFieldAttrs.type === "date" || groupByFieldAttrs.type === "datetime") { draggable = false; + grouped_by_date = true; } else if (groupByFieldAttrs.readonly !== undefined) { draggable = !(groupByFieldAttrs.readonly); } @@ -523,6 +525,7 @@ var KanbanRenderer = BasicRenderer.extend({ group_by_tooltip: groupByTooltip, groupedBy: groupByField, grouped_by_m2o: this.groupedByM2O, + grouped_by_date: grouped_by_date, relation: relation, quick_create: this.quickCreateEnabled && viewUtils.isQuickCreateEnabled(state), });