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
-
+