From c0bca6321370961d5d3d63832b0fd3cfad6a458e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <remi@le-filament.com> Date: Tue, 1 Apr 2025 11:10:14 +0200 Subject: [PATCH] [ADD] multi release button --- __manifest__.py | 4 +++ .../src/js/list_multi_release_button.esm.js | 26 +++++++++++++++++ static/src/xml/list_multi_release_button.xml | 20 +++++++++++++ templates/header_template.xml | 29 ------------------- views/res_partner_release.xml | 7 ++--- wizard/multi_partner_release_wizard.xml | 13 ++------- 6 files changed, 55 insertions(+), 44 deletions(-) create mode 100644 static/src/js/list_multi_release_button.esm.js create mode 100644 static/src/xml/list_multi_release_button.xml delete mode 100644 templates/header_template.xml diff --git a/__manifest__.py b/__manifest__.py index f8fae2f..0195889 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -28,6 +28,10 @@ "views/menus.xml", ], "assets": { + "web.assets_backend": [ + "lefilament_release/static/src/js/list_multi_release_button.esm.js", + "lefilament_release/static/src/xml/list_multi_release_button.xml", + ], "web.assets_frontend": ["lefilament_release/static/src/css/portal.css"], }, "installable": True, diff --git a/static/src/js/list_multi_release_button.esm.js b/static/src/js/list_multi_release_button.esm.js new file mode 100644 index 0000000..2f4057d --- /dev/null +++ b/static/src/js/list_multi_release_button.esm.js @@ -0,0 +1,26 @@ +import {ListController} from "@web/views/list/list_controller"; +import {listView} from "@web/views/list/list_view"; +import {registry} from "@web/core/registry"; + +export class MultiReleaseListController extends ListController { + setup() { + super.setup(); + } + + onMultiCustomerClick() { + this.actionService.doAction({ + type: "ir.actions.act_window", + res_model: "multi.partner.release.wizard", + name: "Saisir pour plusieurs clients", + views: [[false, "form"]], + target: "new", + res_id: false, + }); + } +} + +registry.category("views").add("list_multi_release_button", { + ...listView, + Controller: MultiReleaseListController, + buttonTemplate: "button_multi_release.buttons", +}); diff --git a/static/src/xml/list_multi_release_button.xml b/static/src/xml/list_multi_release_button.xml new file mode 100644 index 0000000..b8761d2 --- /dev/null +++ b/static/src/xml/list_multi_release_button.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<odoo> + <t + t-name="button_multi_release.buttons" + t-inherit="web.ListView.Buttons" + t-inherit-mode="primary" + > + <xpath expr="//div[hasclass('o_list_buttons')]" position="after"> + <button + type="button" + class="btn btn-outline-info" + style="width: 200px;" + tabindex="3" + t-on-click="onMultiCustomerClick" + > + Saisir pour plusieurs clients + </button> + </xpath> + </t> +</odoo> diff --git a/templates/header_template.xml b/templates/header_template.xml deleted file mode 100644 index a60722d..0000000 --- a/templates/header_template.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<odoo> - <template id="header_template" name="lefilament_release.header_template"> - <div id="release" style="background-color: #fff; padding: 16px 0"> - <div class="container"> - <div class="row"> - <div class="col-12 text-center"> - <div - class="btn-group" - role="group" - aria-label="Releases" - style="padding-top: 5px; padding-bottom: 5px;" - > - <a - type="action" - name="%(lefilament_release.multi_partner_release_wizard_act_window)d" - class="btn btn-outline-info" - style="width: 250px;" - tabindex="4" - > - Saisir pour plusieurs clients - </a> - </div> - </div> - </div> - </div> - </div> - </template> -</odoo> diff --git a/views/res_partner_release.xml b/views/res_partner_release.xml index 65999aa..69189bc 100644 --- a/views/res_partner_release.xml +++ b/views/res_partner_release.xml @@ -66,10 +66,10 @@ options="{'string': 'Copier le lien'}" /> </group> - <hr colspan="12" /> + <hr colspan="2" /> <label for="description" class="font-weight-bold" /> <field name="description" /> - <hr colspan="12" /> + <hr colspan="2" /> <label for="release_module_ids" class="font-weight-bold" /> <field name="release_module_ids"> <list editable="top"> @@ -93,8 +93,7 @@ <field name="name">res.partner.release.tree</field> <field name="model">res.partner.release</field> <field name="arch" type="xml"> - <!-- TODO: make JS action to create releases for multiple customers --> - <list> + <list js_class="list_multi_release_button"> <field name="release_date" /> <field name="user_id" /> <field name="partner_id" /> diff --git a/wizard/multi_partner_release_wizard.xml b/wizard/multi_partner_release_wizard.xml index 8eff0d3..5d223c8 100644 --- a/wizard/multi_partner_release_wizard.xml +++ b/wizard/multi_partner_release_wizard.xml @@ -24,10 +24,10 @@ /> <field name="create_date" string="Créé le" /> </group> - <hr /> + <hr colspan="2" /> <label for="description" class="font-weight-bold" /> <field name="description" /> - <hr /> + <hr colspan="2" /> <label for="release_module_ids" class="font-weight-bold" /> <field name="release_module_ids"> <list editable="top"> @@ -52,13 +52,4 @@ </form> </field> </record> - - <!-- Action Window --> - <record id="multi_partner_release_wizard_act_window" model="ir.actions.act_window"> - <field name="name">Releases Client</field> - <field name="type">ir.actions.act_window</field> - <field name="res_model">multi.partner.release.wizard</field> - <field name="view_mode">form</field> - <field name="target">new</field> - </record> </odoo> -- GitLab