summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarad Mahendra <mba@openerp.com>2019-12-13 07:26:12 +0000
committerBarad Mahendra <mba@openerp.com>2019-12-31 04:36:00 +0000
commit5af891c490317e00a3fba8cc7e68aa68d7c9ca19 (patch)
tree9044e0975bb9c5d07176fc96ce8a0b35ab785253
parent40d2f95a8d0dc643865dcc180a248208499f0dda (diff)
[IMP] hr_expense: add upload button on expenses kanban view
Purpose of the task is to improve the mobile user experience of the Expenses app by adding the upload button to the Expenses kanban view. Task ID: 2152155 closes odoo/odoo#41839 Closes: #41839 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
-rw-r--r--addons/hr_expense/models/hr_expense.py4
-rw-r--r--addons/hr_expense/static/src/js/documents_upload.js19
-rw-r--r--addons/hr_expense/static/src/js/upload_mixin.js2
-rw-r--r--addons/hr_expense/static/src/xml/documents_upload_views.xml13
-rw-r--r--addons/hr_expense/views/hr_expense_views.xml2
5 files changed, 35 insertions, 5 deletions
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 @@
</button>
</t>
</t>
+
+ <t t-extend="KanbanView.buttons" t-name="ExpensesKanbanView.buttons">
+ <t t-jquery="button" t-operation="after">
+ <t t-js="ctx">
+ if (window.odoo._modules.indexOf("base_import") >= 0) {
+ r.push(context.engine.tools.call(context, 'ImportView.import_button', dict));
+ };
+ </t>
+ <button type="button" class="btn btn-secondary o_button_upload_expense">
+ Upload
+ </button>
+ </t>
+ </t>
</templates>
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 @@
<field name="name">hr.expense.kanban</field>
<field name="model">hr.expense</field>
<field name="arch" type="xml">
- <kanban class="o_kanban_mobile">
+ <kanban class="o_kanban_mobile" js_class="hr_expense_kanban">
<field name="name"/>
<field name="employee_id"/>
<field name="total_amount"/>