diff options
| author | jbm-odoo <jbm@odoo.com> | 2020-02-18 16:29:19 +0000 |
|---|---|---|
| committer | jbm-odoo <jbm@odoo.com> | 2020-02-28 10:36:52 +0000 |
| commit | b2414b118d3e82ff06de7fafc5c8aae50207ad7f (patch) | |
| tree | 04f038730f9b78806dde8ec82fe7c93fc9268b89 /addons/hr_expense/static/src/js | |
| parent | f348621e0bd8c7960bc2a863195d995f8697f8a8 (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.js | 40 | ||||
| -rw-r--r-- | addons/hr_expense/static/src/js/expense_views.js | 85 |
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); +}); |
