summaryrefslogtreecommitdiff
path: root/addons/hr_expense
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 /addons/hr_expense
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>
Diffstat (limited to 'addons/hr_expense')
-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"/>