summaryrefslogtreecommitdiff
path: root/addons/crm/static/src/js/crm_kanban.js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/crm/static/src/js/crm_kanban.js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/crm/static/src/js/crm_kanban.js')
-rw-r--r--addons/crm/static/src/js/crm_kanban.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/addons/crm/static/src/js/crm_kanban.js b/addons/crm/static/src/js/crm_kanban.js
new file mode 100644
index 00000000..dbc50064
--- /dev/null
+++ b/addons/crm/static/src/js/crm_kanban.js
@@ -0,0 +1,52 @@
+odoo.define('crm.crm_kanban', function (require) {
+ "use strict";
+
+ /**
+ * This Kanban Model make sure we display a rainbowman
+ * message when a lead is won after we moved it in the
+ * correct column and when it's grouped by stage_id (default).
+ */
+
+ var KanbanModel = require('web.KanbanModel');
+ var KanbanView = require('web.KanbanView');
+ var viewRegistry = require('web.view_registry');
+
+ var CrmKanbanModel = KanbanModel.extend({
+ /**
+ * Check if the kanban view is grouped by "stage_id" before checking if the lead is won
+ * and displaying a possible rainbowman message.
+ * @override
+ */
+ moveRecord: async function (recordID, groupID, parentID) {
+ var result = await this._super(...arguments);
+ if (this.localData[parentID].groupedBy[0] === this.defaultGroupedBy[0]) {
+ const message = await this._rpc({
+ model: 'crm.lead',
+ method : 'get_rainbowman_message',
+ args: [[parseInt(this.localData[recordID].res_id)]],
+ });
+ if (message) {
+ this.trigger_up('show_effect', {
+ message: message,
+ type: 'rainbow_man',
+ });
+ }
+ }
+ return result;
+ },
+ });
+
+ var CrmKanbanView = KanbanView.extend({
+ config: _.extend({}, KanbanView.prototype.config, {
+ Model: CrmKanbanModel,
+ }),
+ });
+
+ viewRegistry.add('crm_kanban', CrmKanbanView);
+
+ return {
+ CrmKanbanModel: CrmKanbanModel,
+ CrmKanbanView: CrmKanbanView,
+ };
+
+});