diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py index 5d505bbc4cc..fd62bc344a1 100644 --- a/addons/hr_expense/models/hr_expense.py +++ b/addons/hr_expense/models/hr_expense.py @@ -163,7 +163,7 @@ class HrExpense(models.Model): if self.product_id and self.product_uom_id.category_id != self.product_id.uom_id.category_id: raise UserError(_('Selected Unit of Measure does not belong to the same category as the product Unit of Measure.')) - def create_expense_from_attachments(self, attachment_ids=None): + def create_expense_from_attachments(self, attachment_ids=None, view_type='tree'): ''' Create the expenses from files. :return: An action redirecting to hr.expense tree/form view. ''' @@ -200,7 +200,7 @@ class HrExpense(models.Model): 'domain': [('id', 'in', expenses.ids)], 'res_model': 'hr.expense', 'type': 'ir.actions.act_window', - 'views': [[False, "tree"], [False, "form"]], + 'views': [[False, view_type], [False, "form"]], } # ---------------------------------------- diff --git a/addons/hr_expense/static/src/js/documents_upload.js b/addons/hr_expense/static/src/js/documents_upload.js index ef7fef75601..515c34bb013 100644 --- a/addons/hr_expense/static/src/js/documents_upload.js +++ b/addons/hr_expense/static/src/js/documents_upload.js @@ -1,8 +1,10 @@ odoo.define('hr_expense.expenses.tree', function (require) { "use strict"; + var DocumentUploadMixin = require('hr_expense.documents.upload.mixin'); + var KanbanController = require('web.KanbanController'); + var KanbanView = require('web.KanbanView'); var ListController = require('web.ListController'); var ListView = require('web.ListView'); - var DocumentUploadMixin = require('hr_expense.documents.upload.mixin'); var viewRegistry = require('web.view_registry'); var ExpensesListController = ListController.extend(DocumentUploadMixin, { @@ -19,5 +21,20 @@ odoo.define('hr_expense.expenses.tree', function (require) { }), }); + var ExpensesKanbanController = KanbanController.extend(DocumentUploadMixin, { + buttons_template: 'ExpensesKanbanView.buttons', + events: _.extend({}, KanbanController.prototype.events, { + 'click .o_button_upload_expense': '_onUpload', + 'change .o_expense_documents_upload .o_form_binary_form': '_onAddAttachment', + }), + }); + + var ExpensesKanbanView = KanbanView.extend({ + config: _.extend({}, KanbanView.prototype.config, { + Controller: ExpensesKanbanController, + }), + }); + viewRegistry.add('hr_expense_tree', ExpensesListView); + viewRegistry.add('hr_expense_kanban', ExpensesKanbanView); }); diff --git a/addons/hr_expense/static/src/js/upload_mixin.js b/addons/hr_expense/static/src/js/upload_mixin.js index f3c1718201c..c94df1c6616 100644 --- a/addons/hr_expense/static/src/js/upload_mixin.js +++ b/addons/hr_expense/static/src/js/upload_mixin.js @@ -46,7 +46,7 @@ var DocumentUploadMixin = { return this._rpc({ model: 'hr.expense', method: 'create_expense_from_attachments', - args: ["", attachent_ids], + args: ["", attachent_ids, this.viewType], context: this.initialState.context, }).then(function(result) { self.do_action(result); diff --git a/addons/hr_expense/static/src/xml/documents_upload_views.xml b/addons/hr_expense/static/src/xml/documents_upload_views.xml index 38c2ba0bda1..8f2dc880d07 100644 --- a/addons/hr_expense/static/src/xml/documents_upload_views.xml +++ b/addons/hr_expense/static/src/xml/documents_upload_views.xml @@ -25,4 +25,17 @@ + + + + + if (window.odoo._modules.indexOf("base_import") >= 0) { + r.push(context.engine.tools.call(context, 'ImportView.import_button', dict)); + }; + + + + diff --git a/addons/hr_expense/views/hr_expense_views.xml b/addons/hr_expense/views/hr_expense_views.xml index 0d028032770..165f84ec53d 100644 --- a/addons/hr_expense/views/hr_expense_views.xml +++ b/addons/hr_expense/views/hr_expense_views.xml @@ -158,7 +158,7 @@ hr.expense.kanban hr.expense - +