summaryrefslogtreecommitdiff
path: root/addons/hr_expense/static/src/js
diff options
context:
space:
mode:
authorjbm-odoo <jbm@odoo.com>2020-02-18 16:29:19 +0000
committerjbm-odoo <jbm@odoo.com>2020-02-28 10:36:52 +0000
commitb2414b118d3e82ff06de7fafc5c8aae50207ad7f (patch)
tree04f038730f9b78806dde8ec82fe7c93fc9268b89 /addons/hr_expense/static/src/js
parentf348621e0bd8c7960bc2a863195d995f8697f8a8 (diff)
[IMP] hr_expense: Add dashboard for My Expenses
closes odoo/odoo#45659 Taskid: 2198487 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Diffstat (limited to 'addons/hr_expense/static/src/js')
-rw-r--r--addons/hr_expense/static/src/js/documents_upload.js40
-rw-r--r--addons/hr_expense/static/src/js/expense_views.js85
2 files changed, 85 insertions, 40 deletions
diff --git a/addons/hr_expense/static/src/js/documents_upload.js b/addons/hr_expense/static/src/js/documents_upload.js
deleted file mode 100644
index 515c34bb013..00000000000
--- a/addons/hr_expense/static/src/js/documents_upload.js
+++ /dev/null
@@ -1,40 +0,0 @@
-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 viewRegistry = require('web.view_registry');
-
- var ExpensesListController = ListController.extend(DocumentUploadMixin, {
- buttons_template: 'ExpensesListView.buttons',
- events: _.extend({}, ListController.prototype.events, {
- 'click .o_button_upload_expense': '_onUpload',
- 'change .o_expense_documents_upload .o_form_binary_form': '_onAddAttachment',
- }),
- });
-
- var ExpensesListView = ListView.extend({
- config: _.extend({}, ListView.prototype.config, {
- Controller: ExpensesListController,
- }),
- });
-
- 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/expense_views.js b/addons/hr_expense/static/src/js/expense_views.js
new file mode 100644
index 00000000000..4a5c72c8a73
--- /dev/null
+++ b/addons/hr_expense/static/src/js/expense_views.js
@@ -0,0 +1,85 @@
+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 viewRegistry = require('web.view_registry');
+ var core = require('web.core');
+ var ListRenderer = require('web.ListRenderer');
+ var session = require('web.session');
+
+ var QWeb = core.qweb;
+
+ var ExpensesListController = ListController.extend(DocumentUploadMixin, {
+ buttons_template: 'ExpensesListView.buttons',
+ events: _.extend({}, ListController.prototype.events, {
+ 'click .o_button_upload_expense': '_onUpload',
+ 'change .o_expense_documents_upload .o_form_binary_form': '_onAddAttachment',
+ }),
+ });
+
+ var ExpenseListRenderer = ListRenderer.extend({
+ _render: function () {
+ var self = this;
+ return this._super.apply(this, arguments).then(function () {
+ return self._rpc({
+ model: 'hr.expense',
+ method: 'get_expense_dashbord',
+ context: self.context,
+ });
+ }).then(function (result) {
+ self.$el.parent().find('.o_expense_container').remove();
+ var elem = QWeb.render('hr_expense.dashboard_list_header', {
+ expenses: result,
+ render_monetary_field: self.render_monetary_field,
+ });
+ self.$el.before(elem);
+ });
+ },
+ render_monetary_field: function (value, currency_id) {
+ value = value.toFixed(2);
+ var currency = session.get_currency(currency_id);
+ if (currency) {
+ if (currency.position === "after") {
+ value += currency.symbol;
+ } else {
+ value = currency.symbol + value;
+ }
+ }
+ return value;
+ }
+ });
+
+ var ExpensesListViewDashboardUpload = ListView.extend({
+ config: _.extend({}, ListView.prototype.config, {
+ Renderer: ExpenseListRenderer,
+ Controller: ExpensesListController,
+ }),
+ });
+
+ var ExpensesListViewDashboard = ListView.extend({
+ config: _.extend({}, ListView.prototype.config, {
+ Renderer: ExpenseListRenderer,
+ }),
+ });
+
+ 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_dashboard_upload', ExpensesListViewDashboardUpload);
+ viewRegistry.add('hr_expense_tree_dashboard', ExpensesListViewDashboard);
+ viewRegistry.add('hr_expense_kanban', ExpensesKanbanView);
+});