From 58153ea0ec4ee270c67edbe03ee01cadaa99b187 Mon Sep 17 00:00:00 2001
From: qsm-odoo <qsm@odoo.com>
Date: Thu, 1 Sep 2016 11:52:51 +0200
Subject: [PATCH] [FIX] web_kanban: correctly handle nocontent grouped kanban

The nocontent message was never there when the kanban had no content
in grouped mode and the create button was muted even if no column can
be added. Also it was wrongly displayed in ungrouped mode.
---
 .../static/src/less/sales_team_dashboard.less       |  6 +++++-
 addons/web_kanban/static/src/js/kanban_view.js      | 13 ++++++++-----
 addons/web_kanban/static/src/less/kanban_view.less  |  5 +++++
 3 files changed, 18 insertions(+), 6 deletions(-)

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 d424015a1a71..8741f49609dc 100644
--- a/addons/sales_team/static/src/less/sales_team_dashboard.less
+++ b/addons/sales_team/static/src/less/sales_team_dashboard.less
@@ -49,7 +49,7 @@
                 table-layout: fixed;
                 border-spacing: @sale-table-spacing 0px;
                 border-collapse: separate;
-                
+
                 > tbody > tr > td {
                     vertical-align: middle;
                     text-align: center;
@@ -104,4 +104,8 @@
             }
         }
     }
+
+    &.o_kanban_nocontent .o_sales_dashboard {
+        margin: 0;
+    }
 }
diff --git a/addons/web_kanban/static/src/js/kanban_view.js b/addons/web_kanban/static/src/js/kanban_view.js
index e416e50fd1dc..a4e41ef6305d 100644
--- a/addons/web_kanban/static/src/js/kanban_view.js
+++ b/addons/web_kanban/static/src/js/kanban_view.js
@@ -344,7 +344,7 @@ var KanbanView = View.extend({
     update_buttons: function() {
         if (this.$buttons) {
             // In grouped mode, set 'Create' button as btn-default if there is no column
-            var create_muted = !!this.grouped && this.widgets.length === 0;
+            var create_muted = !!this.grouped && this.widgets.length === 0 && this.is_action_enabled('group_create') && this.grouped_by_m2o;
             this.$buttons.find('.o-kanban-button-new')
                 .toggleClass('btn-primary', !create_muted)
                 .toggleClass('btn-default', create_muted);
@@ -388,7 +388,7 @@ var KanbanView = View.extend({
         // cleanup
         this.$el.css({display:'-webkit-flex'});
         this.$el.css({display:'flex'});
-        this.$el.removeClass('o_kanban_ungrouped o_kanban_grouped');
+        this.$el.removeClass('o_kanban_ungrouped o_kanban_grouped o_kanban_nocontent');
         _.invoke(this.widgets, 'destroy');
         this.$el.empty();
         this.widgets = [];
@@ -411,13 +411,16 @@ var KanbanView = View.extend({
         if (this.data.grouped) {
             this.$el.addClass('o_kanban_grouped');
             this.render_grouped(fragment);
-        } else if (this.data.is_empty) {
-            this.$el.addClass('o_kanban_ungrouped');
-            this.render_no_content(fragment);
         } else {
             this.$el.addClass('o_kanban_ungrouped');
             this.render_ungrouped(fragment);
         }
+        if (this.data.is_empty && this.widgets.length === 0 && (!this.data.grouped || !this.is_action_enabled('group_create') || !this.grouped_by_m2o)) {
+            this.$el.css("display", "block");
+            this.$el.addClass("o_kanban_nocontent");
+            this.render_no_content(fragment);
+        }
+
         this.$el.append(fragment);
     },
 
diff --git a/addons/web_kanban/static/src/less/kanban_view.less b/addons/web_kanban/static/src/less/kanban_view.less
index 1b8e0376ccbf..eccf02770b09 100644
--- a/addons/web_kanban/static/src/less/kanban_view.less
+++ b/addons/web_kanban/static/src/less/kanban_view.less
@@ -194,6 +194,11 @@
         }
     }
 
+    &.o_kanban_nocontent {
+        min-height: 0;
+        padding: 0;
+    }
+
     &.o_kanban_mobile .o_kanban_record {
         span, div.label {
             .o_text_overflow;
-- 
GitLab