diff --git a/web_responsive/README.rst b/web_responsive/README.rst index 69dc22b93f86..452194172d88 100644 --- a/web_responsive/README.rst +++ b/web_responsive/README.rst @@ -1,7 +1,3 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - ============== Web Responsive ============== @@ -17,7 +13,7 @@ Web Responsive .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png :target: https://odoo-community.org/page/development-status :alt: Production/Stable -.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github @@ -62,16 +58,24 @@ This module adds responsiveness to web backend. |image5| +- Optionally, when opening an invoice (account.move), its most recent + PDF attachment is automatically displayed in the side document viewer. + Enable \*\* File Viewer / Auto-open Invoice Preview*\* on the user's + *Preferences* tab (*Settings -> Users -> Companies -> Users*), per + user. + + |image6| + **Features for mobile**: \* View type picker dropdown displays comfortably - Control panel buttons use icons to save space. - |image6| + |image7| - Followers and send button is displayed on mobile. Avatar is hidden. - |image7| + |image8| - Big inputs on form in edit mode @@ -83,23 +87,23 @@ comfortably be more intuitive or accessible by fingers of one hand. F.x. Alt + S for Save - |image8| + |image9| - Autofocus on search menu box when opening the app menu - |image9| + |image10| - When the chatter is on the side part, the document viewer fills that part for side-by-side reading instead of full screen. You can still put it on full width preview clicking on the new maximize button. - |image10| + |image11| - When the user chooses to send a public message the color of the composer is different from the one when the message is an internal log. - |image11| + |image12| .. |image| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/redirecthome.gif .. |image1| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/appmenu.gif @@ -107,12 +111,13 @@ comfortably .. |image3| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/listview.gif .. |image4| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/formview.gif .. |image5| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/listview.gif -.. |image6| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/form_buttons.gif -.. |image7| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/chatter.png -.. |image8| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/shortcuts.gif -.. |image9| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/appsearch.gif -.. |image10| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/document_viewer.gif -.. |image11| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/chatter-colors.png +.. |image6| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/auto_open_invoice_preview.png +.. |image7| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/form_buttons.gif +.. |image8| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/chatter.png +.. |image9| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/shortcuts.gif +.. |image10| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/appsearch.gif +.. |image11| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/document_viewer.gif +.. |image12| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_responsive/static/img/chatter-colors.png **Table of contents** @@ -128,6 +133,16 @@ The following keyboard shortcuts are implemented: - Choose app result - ``Enter`` - ``Esc`` to close app drawer +Auto-open invoice preview +------------------------- + +Enable *Auto-open Invoice Preview* in your user preferences (*Your +Profile → Preferences*). When enabled, opening an invoice +(``account.move``) automatically shows its most recent PDF attachment in +the file viewer on the side of the form. The setting is per user and +takes effect on the next invoice you open. If an invoice has several PDF +attachments, the viewer navigation cycles through all of them. + Known issues / Roadmap ====================== @@ -185,6 +200,8 @@ Contributors - Mohamed Alkobrosli +- Khanh Bui + Maintainers ----------- diff --git a/web_responsive/__manifest__.py b/web_responsive/__manifest__.py index b7860572a48a..7eb73306d951 100644 --- a/web_responsive/__manifest__.py +++ b/web_responsive/__manifest__.py @@ -44,8 +44,8 @@ "/web_responsive/static/src/components/menu_fuse_searchbar/*", "/web_responsive/static/src/components/menu_searchbar/*", "/web_responsive/static/src/components/hotkey/*", - "/web_responsive/static/src/components/file_viewer/*", "/web_responsive/static/src/components/chatter/*", + "/web_responsive/static/src/components/file_viewer/*", "/web_responsive/static/src/components/control_panel/*", "/web_responsive/static/src/components/command_palette/*", "/web_responsive/static/src/views/form/*", diff --git a/web_responsive/i18n/de.po b/web_responsive/i18n/de.po index 481e708f052e..14e5bdc669d4 100644 --- a/web_responsive/i18n/de.po +++ b/web_responsive/i18n/de.po @@ -1,35 +1,23 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * web_responsive +# * web_responsive # -# Translators: -# Niki Waibel , 2017 msgid "" msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-02-03 01:37+0000\n" -"PO-Revision-Date: 2023-06-20 11:09+0000\n" -"Last-Translator: Nils Coenen \n" -"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" -"Language: de\n" +"POT-Creation-Date: 2026-09-15 08:54+0000\n" +"PO-Revision-Date: 2026-09-15 08:54+0000\n" +"Last-Translator: \n" +"Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" - -#. module: web_responsive -#. odoo-javascript -#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0 -#, python-format -msgid "Action" -msgstr "" +"Plural-Forms: \n" #. module: web_responsive #. odoo-javascript #: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0 -#, python-format msgid "App Icon" msgstr "" @@ -50,6 +38,20 @@ msgstr "" msgid "Apps Menu Theme" msgstr "" +#. module: web_responsive +#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_auto_open_invoice_preview +msgid "Auto-open Invoice Preview" +msgstr "Rechnungsvorschau automatisch öffnen" + +#. module: web_responsive +#: model:ir.model.fields,help:web_responsive.field_res_users__is_auto_open_invoice_preview +msgid "" +"Automatically open the PDF preview of the invoice attachment when the " +"invoice is opened." +msgstr "" +"Die PDF-Vorschau des Rechnungsanhangs automatisch öffnen, wenn die " +"Rechnung geöffnet wird." + #. module: web_responsive #: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical #: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences @@ -70,17 +72,20 @@ msgstr "" #. module: web_responsive #. odoo-javascript #: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0 -#, python-format msgid "Discard" msgstr "Verwerfen" #. module: web_responsive #. odoo-javascript #: code:addons/web_responsive/static/src/components/command_palette/main.xml:0 -#, python-format msgid "Exit" msgstr "" +#. module: web_responsive +#: model_terms:ir.ui.view,arch_db:web_responsive.view_users_form_web_responsive +msgid "File Viewer" +msgstr "Datei-Viewer" + #. module: web_responsive #: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse #: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences @@ -90,26 +95,23 @@ msgstr "" #. module: web_responsive #: model:ir.model,name:web_responsive.model_ir_http msgid "HTTP Routing" -msgstr "" +msgstr "HTTP-Routing" #. module: web_responsive #. odoo-javascript #: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0 -#, python-format msgid "Home Menu" msgstr "Home-Menü" #. module: web_responsive #. odoo-javascript #: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0 -#, python-format msgid "Log note" msgstr "Protokollnotiz" #. module: web_responsive #. odoo-javascript #: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0 -#, python-format msgid "Maximize" msgstr "maximieren" @@ -121,21 +123,18 @@ msgstr "" #. module: web_responsive #. odoo-javascript #: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0 -#, python-format msgid "Minimize" msgstr "minimieren" #. module: web_responsive #. odoo-javascript #: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0 -#, python-format msgid "New" msgstr "Neu" #. module: web_responsive #. odoo-javascript #: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0 -#, python-format msgid "Nothing to show" msgstr "" @@ -152,7 +151,6 @@ msgstr "" #. module: web_responsive #. odoo-javascript #: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0 -#, python-format msgid "Save" msgstr "Speichern" @@ -170,14 +168,12 @@ msgstr "" #. odoo-javascript #: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0 #: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0 -#, python-format msgid "Search menus..." msgstr "Such-Menüs..." #. module: web_responsive #. odoo-javascript #: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0 -#, python-format msgid "Send message" msgstr "Nachricht senden" @@ -189,7 +185,7 @@ msgstr "" #. module: web_responsive #: model:ir.model,name:web_responsive.model_res_users msgid "User" -msgstr "" +msgstr "Benutzer" #. module: web_responsive #: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences @@ -205,74 +201,3 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences msgid "uses a standard algorithm" msgstr "" - -#, python-format -#~ msgid "Activities" -#~ msgstr "Aktivitäten" - -#, python-format -#~ msgid "All" -#~ msgstr "Alles" - -#, python-format -#~ msgid "Attachment counter loading..." -#~ msgstr "Anhangszähler wird geladen..." - -#, python-format -#~ msgid "Attachments" -#~ msgstr "Anhänge" - -#, python-format -#~ msgid "CLEAR" -#~ msgstr "LÖSCHEN" - -#, python-format -#~ msgid "SEE RESULT" -#~ msgstr "SIEHE ERGEBNIS" - -#, python-format -#~ msgid "Search..." -#~ msgstr "Suche..." - -#, python-format -#~ msgid "View switcher" -#~ msgstr "Ansichtsumschalter" - -#, python-format -#~ msgid "Create" -#~ msgstr "Erstellen" - -#~ msgid "Chatter Position" -#~ msgstr "Chatter-Position" - -#, python-format -#~ msgid "Edit" -#~ msgstr "Ändern" - -#~ msgid "Normal" -#~ msgstr "normal" - -#, python-format -#~ msgid "Quick actions" -#~ msgstr "Schnell-Aktion" - -#~ msgid "Sided" -#~ msgstr "Seitlich" - -#~ msgid "Users" -#~ msgstr "Benutzer" - -#~ msgid "Close" -#~ msgstr "Schließen" - -#~ msgid "Toggle App Drawer" -#~ msgstr "App Ordner umschalten" - -#~ msgid "Toggle Navigation" -#~ msgstr "Navigation umschalten" - -#~ msgid "Apps" -#~ msgstr "Apps" - -#~ msgid "More " -#~ msgstr "Mehr " diff --git a/web_responsive/i18n/web_responsive.pot b/web_responsive/i18n/web_responsive.pot index 4c41af9905a1..234946b70e57 100644 --- a/web_responsive/i18n/web_responsive.pot +++ b/web_responsive/i18n/web_responsive.pot @@ -6,6 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-09-15 08:52+0000\n" +"PO-Revision-Date: 2026-09-15 08:52+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -36,6 +38,18 @@ msgstr "" msgid "Apps Menu Theme" msgstr "" +#. module: web_responsive +#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_auto_open_invoice_preview +msgid "Auto-open Invoice Preview" +msgstr "" + +#. module: web_responsive +#: model:ir.model.fields,help:web_responsive.field_res_users__is_auto_open_invoice_preview +msgid "" +"Automatically open the PDF preview of the invoice attachment when the " +"invoice is opened." +msgstr "" + #. module: web_responsive #: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical #: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences @@ -65,6 +79,11 @@ msgstr "" msgid "Exit" msgstr "" +#. module: web_responsive +#: model_terms:ir.ui.view,arch_db:web_responsive.view_users_form_web_responsive +msgid "File Viewer" +msgstr "" + #. module: web_responsive #: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse #: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences diff --git a/web_responsive/models/ir_http.py b/web_responsive/models/ir_http.py index 98fff28ac8d9..ac1c88697ee5 100644 --- a/web_responsive/models/ir_http.py +++ b/web_responsive/models/ir_http.py @@ -16,4 +16,5 @@ def session_info(self): "search_type": user.apps_menu_search_type, "theme": user.apps_menu_theme, }, + "auto_open_invoice_preview": user.is_auto_open_invoice_preview, } diff --git a/web_responsive/models/res_users.py b/web_responsive/models/res_users.py index 725eb98d3ad3..584eae7ab672 100644 --- a/web_responsive/models/res_users.py +++ b/web_responsive/models/res_users.py @@ -32,6 +32,13 @@ class ResUsers(models.Model): readonly=False, ) + is_auto_open_invoice_preview = fields.Boolean( + string="Auto-open Invoice Preview", + help="Automatically open the PDF preview of the invoice attachment " + "when the invoice is opened.", + default=True, + ) + @api.depends("action_id") def _compute_redirect_home(self): """ diff --git a/web_responsive/readme/CONTRIBUTORS.md b/web_responsive/readme/CONTRIBUTORS.md index 11b1e7dc59a2..e01060157528 100644 --- a/web_responsive/readme/CONTRIBUTORS.md +++ b/web_responsive/readme/CONTRIBUTORS.md @@ -23,3 +23,5 @@ - Angel Patel \<\> - Mohamed Alkobrosli \<\> + +- Khanh Bui \<\> diff --git a/web_responsive/readme/DESCRIPTION.md b/web_responsive/readme/DESCRIPTION.md index 9e2714aad6a8..14f26e3edcfd 100644 --- a/web_responsive/readme/DESCRIPTION.md +++ b/web_responsive/readme/DESCRIPTION.md @@ -29,6 +29,13 @@ their profile settings. ![image](../static/img/listview.gif) +- Optionally, when opening an invoice (account.move), its most recent + PDF attachment is automatically displayed in the side document + viewer. Enable ** File Viewer / Auto-open Invoice Preview** on the user's + *Preferences* tab (*Settings -> Users -> Companies -> Users*), per user. + + ![image](../static/img/auto_open_invoice_preview.png) + **Features for mobile**: \* View type picker dropdown displays comfortably diff --git a/web_responsive/readme/USAGE.md b/web_responsive/readme/USAGE.md index 4b2b6b3cc4df..92c69b67b42c 100644 --- a/web_responsive/readme/USAGE.md +++ b/web_responsive/readme/USAGE.md @@ -3,3 +3,13 @@ The following keyboard shortcuts are implemented: - Navigate app search results - Arrow keys - Choose app result - `Enter` - `Esc` to close app drawer + +## Auto-open invoice preview + +Enable *Auto-open Invoice Preview* in your user preferences +(*Your Profile → Preferences*). When enabled, opening an invoice +(`account.move`) automatically shows its most recent PDF attachment +in the file viewer on the side of the form. The setting is per user +and takes effect on the next invoice you open. If an invoice has +several PDF attachments, the viewer navigation cycles through all of +them. diff --git a/web_responsive/static/description/index.html b/web_responsive/static/description/index.html index 837fef2d745a..26b9b7f56d56 100644 --- a/web_responsive/static/description/index.html +++ b/web_responsive/static/description/index.html @@ -3,7 +3,7 @@ -README.rst +Web Responsive -
+
+

Web Responsive

- - -Odoo Community Association - -
-

Web Responsive

-

Production/Stable License: LGPL-3 OCA/web Translate me on Weblate Try me on Runboat

+

Production/Stable License: LGPL-3 OCA/web Translate me on Weblate Try me on Runboat

This module adds responsiveness to web backend.

Features for all devices:

    @@ -398,15 +393,22 @@

    Web Responsive

  • Bigger checkboxes in list view

    image5

  • +
  • Optionally, when opening an invoice (account.move), its most recent +PDF attachment is automatically displayed in the side document viewer. +Enable ** File Viewer / Auto-open Invoice Preview** on the user’s +Preferences tab (Settings -> Users -> Companies -> Users), per +user.

    +

    image6

    +

Features for mobile: * View type picker dropdown displays comfortably

  • Control panel buttons use icons to save space.

    -

    image6

    +

    image7

  • Followers and send button is displayed on mobile. Avatar is hidden.

    -

    image7

    +

    image8

  • Big inputs on form in edit mode

  • @@ -418,54 +420,66 @@

    Web Responsive

    with Firefox Tab switching. Standard Odoo keyboard hotkeys changed to be more intuitive or accessible by fingers of one hand. F.x. Alt + S for Save

    -

    image8

    +

    image9

  • Autofocus on search menu box when opening the app menu

    -

    image9

    +

    image10

  • When the chatter is on the side part, the document viewer fills that part for side-by-side reading instead of full screen. You can still put it on full width preview clicking on the new maximize button.

    -

    image10

    +

    image11

  • When the user chooses to send a public message the color of the composer is different from the one when the message is an internal log.

    -

    image11

    +

    image12

Table of contents

-

Usage

+

Usage

The following keyboard shortcuts are implemented:

  • Navigate app search results - Arrow keys
  • Choose app result - Enter
  • Esc to close app drawer
+
+

Auto-open invoice preview

+

Enable Auto-open Invoice Preview in your user preferences (Your +Profile → Preferences). When enabled, opening an invoice +(account.move) automatically shows its most recent PDF attachment in +the file viewer on the side of the form. The setting is per user and +takes effect on the next invoice you open. If an invoice has several PDF +attachments, the viewer navigation cycles through all of them.

+
-

Known issues / Roadmap

+

Known issues / Roadmap

  • App navigation with keyboard.
  • Handle long titles on forms in a better way
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -473,9 +487,9 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • LasLabs
  • Tecnativa
  • @@ -484,7 +498,7 @@

    Authors

-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -520,6 +535,5 @@

Maintainers

-
diff --git a/web_responsive/static/img/auto_open_invoice_preview.png b/web_responsive/static/img/auto_open_invoice_preview.png new file mode 100644 index 000000000000..c2720904b7c0 Binary files /dev/null and b/web_responsive/static/img/auto_open_invoice_preview.png differ diff --git a/web_responsive/static/src/components/file_viewer/auto_open.esm.js b/web_responsive/static/src/components/file_viewer/auto_open.esm.js new file mode 100644 index 000000000000..d6d94edb3c6a --- /dev/null +++ b/web_responsive/static/src/components/file_viewer/auto_open.esm.js @@ -0,0 +1,77 @@ +/* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). */ + +import {onMounted, onWillUpdateProps} from "@odoo/owl"; +import {patch} from "@web/core/utils/patch"; +import {useService} from "@web/core/utils/hooks"; +import {Chatter} from "@mail/chatter/web_portal/chatter"; +import {useFileViewer} from "@web/core/file_viewer/file_viewer_hook"; +import {registry} from "@web/core/registry"; +import {user} from "@web/core/user"; + +patch(Chatter.prototype, { + setup() { + super.setup(); + this.fileViewer = useFileViewer(); + this.orm = useService("orm"); + onMounted(() => this.autoOpenPreview()); + onWillUpdateProps((nextProps) => this.autoOpenPreview(nextProps)); + }, + + async autoOpenPreview(props = this.props) { + this.forceClosePreviewer(); + + const resId = props.threadId; + const resModel = props.threadModel; + + if (resModel !== "account.move" || !resId || !user.userId) { + return; + } + + const [userData] = await this.orm + .read("res.users", [user.userId], ["is_auto_open_invoice_preview"]) + .catch(() => [{}]); + + if (!userData || !userData.is_auto_open_invoice_preview) { + return; + } + + const attachments = await this.orm.searchRead( + "ir.attachment", + [ + ["res_model", "=", "account.move"], + ["res_id", "=", resId], + ["mimetype", "=", "application/pdf"], + ], + ["id", "name", "mimetype"], + {order: "id desc"} + ); + if (!attachments.length) { + return; + } + + // Create all as store records (as in the working example) + const files = attachments.map((att) => + this.store.Attachment.insert({ + id: att.id, + name: att.name, + filename: att.name, + mimetype: att.mimetype, + }) + ); + + // Display the first file; pass ALL to navigation + this.fileViewer.open(files[0], files); + }, + + forceClosePreviewer() { + // Remove ALL open FileViewer instances from the main components + // registry. This is language-independent (no DOM, no title text) + // and closes every viewer, including "zombie" instances left + // behind by previous Chatter mounts. + for (const [key] of registry.category("main_components").getEntries()) { + if (key.startsWith("web.file_viewer")) { + registry.category("main_components").remove(key); + } + } + }, +}); diff --git a/web_responsive/views/res_users_views.xml b/web_responsive/views/res_users_views.xml index e835770ca144..29275062ea7a 100644 --- a/web_responsive/views/res_users_views.xml +++ b/web_responsive/views/res_users_views.xml @@ -71,6 +71,27 @@ + + + + + + + + + + + + res.users.form.simple.modif.web.responsive + res.users + + + + + + + +