From bca87fd5abb50a2849edb2e91f6254164a19e0a4 Mon Sep 17 00:00:00 2001 From: William Braeckman Date: Thu, 29 Sep 2022 13:45:05 +0000 Subject: [PATCH] [IMP] hr_fleet: migrate hr_fleet_kanban to wowl2 closes odoo/odoo#101681 X-original-commit: 443123b64e2984026541c44c524f20c7f08eda0b Signed-off-by: Kevin Baptiste Signed-off-by: William Braeckman (wbr) --- addons/hr_fleet/__manifest__.py | 3 +- .../static/src/js/attachment_kanban.js | 57 ------------------- .../hr_fleet_kanban_controller.js | 38 +++++++++++++ .../hr_fleet_kanban_controller.xml | 11 ++++ .../hr_fleet_kanban/hr_fleet_kanban_view.js | 12 ++++ .../static/src/xml/attachment_kanban.xml | 22 ------- 6 files changed, 62 insertions(+), 81 deletions(-) delete mode 100644 addons/hr_fleet/static/src/js/attachment_kanban.js create mode 100644 addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.js create mode 100644 addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.xml create mode 100644 addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_view.js delete mode 100644 addons/hr_fleet/static/src/xml/attachment_kanban.xml diff --git a/addons/hr_fleet/__manifest__.py b/addons/hr_fleet/__manifest__.py index 7fa9ce07a0a..7cfaaeddaa2 100644 --- a/addons/hr_fleet/__manifest__.py +++ b/addons/hr_fleet/__manifest__.py @@ -19,8 +19,7 @@ ], 'assets': { 'web.assets_backend': [ - 'hr_fleet/static/src/js/attachment_kanban.js', - 'hr_fleet/static/src/xml/attachment_kanban.xml', + 'hr_fleet/static/src/views/**/*', ], }, 'auto_install': True, diff --git a/addons/hr_fleet/static/src/js/attachment_kanban.js b/addons/hr_fleet/static/src/js/attachment_kanban.js deleted file mode 100644 index df182e22d1f..00000000000 --- a/addons/hr_fleet/static/src/js/attachment_kanban.js +++ /dev/null @@ -1,57 +0,0 @@ -/** @odoo-module */ - -import KanbanController from 'web.KanbanController'; -import KanbanView from 'web.KanbanView'; -import viewRegistry from 'web.view_registry'; -import { qweb } from 'web.core'; -import config from 'web.config' - -const HRFleetKanbanController = KanbanController.extend({ - buttons_template: 'HRFleetKanbanView.buttons', - events: _.extend({}, KanbanController.prototype.events, { - 'click .o_button_upload_fleet_attachment': '_onUpload', - 'change .o_fleet_documents_upload .o_form_binary_form': '_onAddAttachment', - }), - /** - * @override - */ - init: function () { - this._super.apply(this, arguments); - this.isMobile = config.device.isMobileDevice; - }, - - start: function () { - // define a unique uploadId and a callback method - this.fileUploadID = _.uniqueId('hr_fleet_document_upload'); - $(window).on(this.fileUploadID, () => this.trigger_up('reload')); - return this._super.apply(this, arguments); - }, - - _onUpload: function (event) { - // If hidden upload form doesn't exist, create it - var $formContainer = this.$('.o_content').find('.o_fleet_documents_upload'); - if (!$formContainer.length) { - $formContainer = $(qweb.render('HRFleet.DocumentsHiddenUploadForm', {widget: this})); - $formContainer.appendTo(this.$('.o_content')); - } - // Trigger the input to select a file - this.$('.o_fleet_documents_upload .o_input_file').click(); - }, - - _onAddAttachment: function(ev) { - // Auto submit form once we've selected an attachment - const $input = $(ev.currentTarget).find('input.o_input_file'); - if ($input.val() !== '') { - const $binaryForm = this.$('.o_fleet_documents_upload form.o_form_binary_form'); - $binaryForm.submit(); - } - } -}); - -const HRFleetKanbanView = KanbanView.extend({ - config: _.extend({}, KanbanView.prototype.config, { - Controller: HRFleetKanbanController, - }), -}) - -viewRegistry.add('hr_fleet_kanban_view', HRFleetKanbanView); diff --git a/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.js b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.js new file mode 100644 index 00000000000..821148373da --- /dev/null +++ b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.js @@ -0,0 +1,38 @@ +/** @odoo-module **/ + +import { KanbanController } from "@web/views/kanban/kanban_controller"; +import { useBus, useService } from "@web/core/utils/hooks"; + +const { useRef } = owl; + +export class HrFleetKanbanController extends KanbanController { + setup() { + super.setup(...arguments); + this.uploadFileInput = useRef("uploadFileInput"); + this.uploadService = useService("file_upload"); + useBus( + this.uploadService.bus, + "FILE_UPLOAD_LOADED", + () => { + this.model.load(); + }, + ); + } + + async onInputChange(ev) { + if (!ev.target.files) { + return; + } + this.uploadService.upload( + "/web/binary/upload_attachment", + ev.target.files, + { + buildFormData: (formData) => { + formData.append("model", "fleet.vehicle.assignation.log"); + formData.append("id", this.props.context.active_id); + }, + }, + ); + ev.target.value = ""; + } +} diff --git a/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.xml b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.xml new file mode 100644 index 00000000000..6e0872fba22 --- /dev/null +++ b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.xml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_view.js b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_view.js new file mode 100644 index 00000000000..63e7275e776 --- /dev/null +++ b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_view.js @@ -0,0 +1,12 @@ +/** @odoo-module **/ + +import { registry } from "@web/core/registry"; +import { kanbanView } from "@web/views/kanban/kanban_view"; +import { HrFleetKanbanController } from "@hr_fleet/views/hr_fleet_kanban/hr_fleet_kanban_controller"; + +export const hrFleetKanbanView = { + ...kanbanView, + Controller: HrFleetKanbanController, + buttonTemplate: "hr_fleet.HrFleetKanbanController.Buttons", +}; +registry.category("views").add("hr_fleet_kanban_view", hrFleetKanbanView); diff --git a/addons/hr_fleet/static/src/xml/attachment_kanban.xml b/addons/hr_fleet/static/src/xml/attachment_kanban.xml deleted file mode 100644 index cf9cf639acc..00000000000 --- a/addons/hr_fleet/static/src/xml/attachment_kanban.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - -
- - - - /web/binary/upload_attachment - - - -
-
- - - - - -