From f7de7d31af6cce542468beadb2df96509d3c74a1 Mon Sep 17 00:00:00 2001 From: Marc Durepos Date: Thu, 29 Jun 2023 22:21:26 -0400 Subject: [PATCH] Mailcow mailbox client-side sync button. --- bemade_mailcow_blacklist/__manifest__.py | 7 ++- .../models/mailcow_mailbox.py | 1 + .../static/src/js/mailcow_mailbox.js | 51 +++++++++---------- .../static/src/xml/mailcow_mailbox.xml | 10 ++++ .../views/mailcow_mailbox_views.xml | 5 +- 5 files changed, 41 insertions(+), 33 deletions(-) create mode 100644 bemade_mailcow_blacklist/static/src/xml/mailcow_mailbox.xml diff --git a/bemade_mailcow_blacklist/__manifest__.py b/bemade_mailcow_blacklist/__manifest__.py index 58b576d..515e756 100644 --- a/bemade_mailcow_blacklist/__manifest__.py +++ b/bemade_mailcow_blacklist/__manifest__.py @@ -33,8 +33,11 @@ Main Features: ], "assets": { "web.assets_backend": [ - "bemade_mailcow_blacklist/static/src/js/mailcow_mailbox.js" - ] + "bemade_mailcow_blacklist/static/src/js/mailcow_mailbox.js", + ], + "web.assets_qweb": [ + "bemade_mailcow_blacklist/static/src/xml/mailcow_mailbox.xml", + ], }, 'demo': [], 'installable': True, diff --git a/bemade_mailcow_blacklist/models/mailcow_mailbox.py b/bemade_mailcow_blacklist/models/mailcow_mailbox.py index 778d3fd..64d8b45 100644 --- a/bemade_mailcow_blacklist/models/mailcow_mailbox.py +++ b/bemade_mailcow_blacklist/models/mailcow_mailbox.py @@ -27,6 +27,7 @@ class MailcowMailbox(models.Model): for record in self: record.address = f"{record.local_part}@{record.domain}" + @api.model def sync_mailboxes(self): """ Synchronize Mailcow mailboxes with Odoo diff --git a/bemade_mailcow_blacklist/static/src/js/mailcow_mailbox.js b/bemade_mailcow_blacklist/static/src/js/mailcow_mailbox.js index 94192dc..15ffe41 100644 --- a/bemade_mailcow_blacklist/static/src/js/mailcow_mailbox.js +++ b/bemade_mailcow_blacklist/static/src/js/mailcow_mailbox.js @@ -1,30 +1,27 @@ -odoo.define('bemade_mailcow_blacklist.mailcow_mailbox', function (require) { -"use strict"; +/** @odoo-module **/ - var core = require('web.core'); - var ListController = require('web.ListController'); - var ListView = require('web.ListView'); - var viewRegistry = require('web.view_registry'); +import ListController from 'web.ListController'; +import ListView from 'web.ListView'; +const viewRegistry = require('web.view_registry'); - var MailboxesListController = ListController.extend({ - buttons_template: 'mail.mailcow_mailbox_list_view_buttons', - events: _.extend({}, ListController.prototype.events, { - 'click .o_button_sync_mailboxes': '_onSyncMailboxes', - }), - _onSyncMailboxes: function () { - this._rpc({ - model: 'mail.mailcow.mailbox', - method: 'sync_mailboxes', - args: [], - }); - }, - }); - - var MailboxesListView = ListView.extend({ - config: _.extend({}, ListView.prototype.config, { - Controller: MailboxesListController, - }), - }); - - viewRegistry.add('mail.mailcow.mailbox', MailboxesListView); +const MailboxesListController = ListController.extend({ + buttons_template: 'mail.mailcow_mailbox_list_view_buttons', + events: _.extend({}, ListController.prototype.events, { + 'click .o_button_sync_mailboxes': '_onSyncMailboxes', + }), + _onSyncMailboxes: function () { + this._rpc({ + model: 'mail.mailcow.mailbox', + method: 'sync_mailboxes', + args: [], + }); + }, }); + +const MailboxesListView = ListView.extend({ + config: _.extend({}, ListView.prototype.config, { + Controller: MailboxesListController, + }), +}); + +viewRegistry.add('mail_mailcow_mailbox_tree', MailboxesListView); diff --git a/bemade_mailcow_blacklist/static/src/xml/mailcow_mailbox.xml b/bemade_mailcow_blacklist/static/src/xml/mailcow_mailbox.xml new file mode 100644 index 0000000..13cc1ab --- /dev/null +++ b/bemade_mailcow_blacklist/static/src/xml/mailcow_mailbox.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/bemade_mailcow_blacklist/views/mailcow_mailbox_views.xml b/bemade_mailcow_blacklist/views/mailcow_mailbox_views.xml index e64afc6..040c95c 100644 --- a/bemade_mailcow_blacklist/views/mailcow_mailbox_views.xml +++ b/bemade_mailcow_blacklist/views/mailcow_mailbox_views.xml @@ -4,10 +4,7 @@ mailcow.mailbox.view.tree mail.mailcow.mailbox - -
-
+