Skip to content

Commit ebd56a2

Browse files
authored
Merge pull request #1693 from OCA/16.0
Syncing from upstream OCA/web (16.0)
2 parents a9698f6 + 6dd47cb commit ebd56a2

27 files changed

Lines changed: 1364 additions & 14 deletions

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ addon | version | maintainers | summary
5555
[web_listview_range_select](web_listview_range_select/) | 16.0.1.0.0 | | Enables selecting a range of records using the shift key
5656
[web_m2x_options](web_m2x_options/) | 16.0.1.1.3 | | web_m2x_options
5757
[web_m2x_options_manager](web_m2x_options_manager/) | 16.0.1.0.0 | | Adds an interface to manage the "Create" and "Create and Edit" options for specific models and fields.
58+
[web_merge_notebook_tab](web_merge_notebook_tab/) | 16.0.1.0.0 | <a href='https://github.com/legalsylvain'><img src='https://github.com/legalsylvain.png' width='32' height='32' style='border-radius:50%;' alt='legalsylvain'/></a> | Merge many tabs into a single one, for notebook present in form views of any models
5859
[web_no_bubble](web_no_bubble/) | 16.0.1.0.0 | | Remove the bubbles from the web interface
5960
[web_notify](web_notify/) | 16.0.3.2.0 | | Send notification messages to user
6061
[web_notify_channel_message](web_notify_channel_message/) | 16.0.1.1.0 | | Send an instant notification to channel users when a new message is posted

setup/_metapackage/VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
16.0.20260309.0
1+
16.0.20260310.0

setup/_metapackage/setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
'odoo-addon-web_listview_range_select>=16.0dev,<16.1dev',
4242
'odoo-addon-web_m2x_options>=16.0dev,<16.1dev',
4343
'odoo-addon-web_m2x_options_manager>=16.0dev,<16.1dev',
44+
'odoo-addon-web_merge_notebook_tab>=16.0dev,<16.1dev',
4445
'odoo-addon-web_no_bubble>=16.0dev,<16.1dev',
4546
'odoo-addon-web_notify>=16.0dev,<16.1dev',
4647
'odoo-addon-web_notify_channel_message>=16.0dev,<16.1dev',
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../web_merge_notebook_tab
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import setuptools
2+
3+
setuptools.setup(
4+
setup_requires=['setuptools-odoo'],
5+
odoo_addon=True,
6+
)

web_merge_notebook_tab/README.rst

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
.. image:: https://odoo-community.org/readme-banner-image
2+
:target: https://odoo-community.org/get-involved?utm_source=readme
3+
:alt: Odoo Community Association
4+
5+
=========================
6+
Web - Merge Notebook Tabs
7+
=========================
8+
9+
..
10+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
11+
!! This file is generated by oca-gen-addon-readme !!
12+
!! changes will be overwritten. !!
13+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
14+
!! source digest: sha256:f406624af42cae79f616a3134d7c48cb3dc2ef906ffd7a3b041b96cc03f9b4a1
15+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16+
17+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
18+
:target: https://odoo-community.org/page/development-status
19+
:alt: Beta
20+
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
21+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
22+
:alt: License: AGPL-3
23+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
24+
:target: https://github.com/OCA/web/tree/16.0/web_merge_notebook_tab
25+
:alt: OCA/web
26+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
27+
:target: https://translation.odoo-community.org/projects/web-16-0/web-16-0-web_merge_notebook_tab
28+
:alt: Translate me on Weblate
29+
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
30+
:target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=16.0
31+
:alt: Try me on Runboat
32+
33+
|badge1| |badge2| |badge3| |badge4| |badge5|
34+
35+
This module extend the Odoo Community Edition ``web`` module to improve display of Form views
36+
that contains notebooks.
37+
38+
Odoo is very modular, that is great, but for some Forms, Odoo designs the view with a lot of tabs in a notebook,
39+
one per functional topic.
40+
41+
If many modules are installed, it generates a lot of tabs. Consequently:
42+
43+
* it force users to click a lot of time in all the tabs, to configure all the data.
44+
* it is not possible for a user to see quickly, if an item is correctly configured.
45+
46+
It is specially problematic for product or partner form views.
47+
48+
This module allows to 'merge' many tabs into a single tab, to avoid such UX troubles.
49+
50+
Demo exemple with the form view of the ``product.template`` model:
51+
52+
**Without the module**
53+
54+
.. figure:: https://raw.githubusercontent.com/OCA/web/16.0/web_merge_notebook_tab/static/description/without_module.png
55+
56+
57+
**With the module**
58+
59+
.. figure:: https://raw.githubusercontent.com/OCA/web/16.0/web_merge_notebook_tab/static/description/with_module.png
60+
61+
**Table of contents**
62+
63+
.. contents::
64+
:local:
65+
66+
Configuration
67+
=============
68+
69+
* Go to "Settings > Technical > User Interface > Merge Notebook tab Settings"
70+
71+
* Create a new setting:
72+
* Select the model of the view you want to change
73+
* Select the view you want to change
74+
* Set the description of the tab, that will be displayed to the user. (``string`` parameter)
75+
* (optionaly) Set the name of the tab, that will be used technically.
76+
(``name`` parameter). If not set, it will be generated automatically.
77+
* (optionaly) Set the name of the tab, where the new tab will be inserted.
78+
(``tab_name_position`` parameter). If not set, the tab will be inserted
79+
at the first position.
80+
* set the names of the tabs you want to merge, as a python list.
81+
82+
.. figure:: https://raw.githubusercontent.com/OCA/web/16.0/web_merge_notebook_tab/static/description/setting.png
83+
84+
Known issues / Roadmap
85+
======================
86+
87+
* Manage conditional display, if some part are hidden for some groups.
88+
89+
Bug Tracker
90+
===========
91+
92+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
93+
In case of trouble, please check there if your issue has already been reported.
94+
If you spotted it first, help us to smash it by providing a detailed and welcomed
95+
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_merge_notebook_tab%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
96+
97+
Do not contact contributors directly about support or help with technical issues.
98+
99+
Credits
100+
=======
101+
102+
Authors
103+
~~~~~~~
104+
105+
* GRAP
106+
107+
Contributors
108+
~~~~~~~~~~~~
109+
110+
* Sylvain LE GAL (https://www.twitter.com/legalsylvain)
111+
112+
Maintainers
113+
~~~~~~~~~~~
114+
115+
This module is maintained by the OCA.
116+
117+
.. image:: https://odoo-community.org/logo.png
118+
:alt: Odoo Community Association
119+
:target: https://odoo-community.org
120+
121+
OCA, or the Odoo Community Association, is a nonprofit organization whose
122+
mission is to support the collaborative development of Odoo features and
123+
promote its widespread use.
124+
125+
.. |maintainer-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px
126+
:target: https://github.com/legalsylvain
127+
:alt: legalsylvain
128+
129+
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
130+
131+
|maintainer-legalsylvain|
132+
133+
This module is part of the `OCA/web <https://github.com/OCA/web/tree/16.0/web_merge_notebook_tab>`_ project on GitHub.
134+
135+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

web_merge_notebook_tab/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Copyright (C) 2023 - Today: GRAP (http://www.grap.coop)
2+
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
3+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
4+
5+
{
6+
"name": "Web - Merge Notebook Tabs",
7+
"summary": "Merge many tabs into a single one, for notebook present"
8+
" in form views of any models",
9+
"version": "16.0.1.0.0",
10+
"author": "GRAP, Odoo Community Association (OCA)",
11+
"maintainers": ["legalsylvain"],
12+
"website": "https://github.com/OCA/web",
13+
"license": "AGPL-3",
14+
"category": "Extra Tools",
15+
"depends": ["web"],
16+
"data": [
17+
"views/view_ir_ui_view_merge_notebook_tab.xml",
18+
"security/ir.model.access.csv",
19+
],
20+
# "demo": ["demo/demo_ir_ui_view_merge_notebook_tab.xml"],
21+
"installable": True,
22+
"application": True,
23+
}

web_merge_notebook_tab/i18n/fr.po

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * web_merge_notebook_tab
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 16.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2023-12-26 22:45+0000\n"
10+
"PO-Revision-Date: 2023-12-26 22:45+0000\n"
11+
"Last-Translator: \n"
12+
"Language-Team: \n"
13+
"Language: \n"
14+
"MIME-Version: 1.0\n"
15+
"Content-Type: text/plain; charset=UTF-8\n"
16+
"Content-Transfer-Encoding: \n"
17+
"Plural-Forms: \n"
18+
19+
#. module: web_merge_notebook_tab
20+
#. odoo-python
21+
#: code:addons/web_merge_notebook_tab/models/ir_ui_view_merge_notebook_tab.py:0
22+
#, python-format
23+
msgid "'%(position)s' : Incorrect position."
24+
msgstr "'%(position)s' : Position incorrect."
25+
26+
#. module: web_merge_notebook_tab
27+
#. odoo-python
28+
#: code:addons/web_merge_notebook_tab/models/ir_ui_view_merge_notebook_tab.py:0
29+
#, python-format
30+
msgid "'%(tab_names)s' : Incorrect Tab Names to merge."
31+
msgstr "'%(tab_names)s' : Noms d'onglet à fusionner incorrect."
32+
33+
#. module: web_merge_notebook_tab
34+
#. odoo-python
35+
#: code:addons/web_merge_notebook_tab/models/ir_ui_view_merge_notebook_tab.py:0
36+
#, python-format
37+
msgid "'%s' : Incorrect Tab Name."
38+
msgstr "'%s' : Nom d'onglet incorrect."
39+
40+
#. module: web_merge_notebook_tab
41+
#: model:ir.model,name:web_merge_notebook_tab.model_base
42+
msgid "Base"
43+
msgstr "Base"
44+
45+
#. module: web_merge_notebook_tab
46+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__create_uid
47+
msgid "Created by"
48+
msgstr "Créé par"
49+
50+
#. module: web_merge_notebook_tab
51+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__create_date
52+
msgid "Created on"
53+
msgstr "Créé le"
54+
55+
#. module: web_merge_notebook_tab
56+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__display_name
57+
msgid "Display Name"
58+
msgstr "Nom affiché"
59+
60+
#. module: web_merge_notebook_tab
61+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__id
62+
msgid "ID"
63+
msgstr "ID"
64+
65+
#. module: web_merge_notebook_tab
66+
#: model:ir.model.fields,help:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__view_xml_id
67+
msgid "ID of the view defined in xml file"
68+
msgstr "ID de la vue définie dans le fichier XML"
69+
70+
#. module: web_merge_notebook_tab
71+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab____last_update
72+
msgid "Last Modified on"
73+
msgstr "Dernière modification le"
74+
75+
#. module: web_merge_notebook_tab
76+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__write_uid
77+
msgid "Last Updated by"
78+
msgstr "Dernière mise à jour par"
79+
80+
#. module: web_merge_notebook_tab
81+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__write_date
82+
msgid "Last Updated on"
83+
msgstr "Dernière mise à jour le"
84+
85+
#. module: web_merge_notebook_tab
86+
#: model:ir.actions.act_window,name:web_merge_notebook_tab.action_ir_ui_view_merge_notebook_tab
87+
#: model:ir.model,name:web_merge_notebook_tab.model_ir_ui_view_merge_notebook_tab
88+
#: model:ir.ui.menu,name:web_merge_notebook_tab.menu_ir_ui_view_merge_notebook_tab
89+
msgid "Merge Notebook Tab Settings"
90+
msgstr "Paramétrages de fusion d'onglet"
91+
92+
#. module: web_merge_notebook_tab
93+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__merge_tab_names
94+
msgid "Merge Tab Names"
95+
msgstr "Noms des onglets à fusionner"
96+
97+
#. module: web_merge_notebook_tab
98+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__model_id
99+
msgid "Model"
100+
msgstr "Modèle"
101+
102+
#. module: web_merge_notebook_tab
103+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__model
104+
msgid "Model Name"
105+
msgstr "Nom du modèle"
106+
107+
#. module: web_merge_notebook_tab
108+
#: model:ir.model.fields,help:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__tab_name_position
109+
msgid ""
110+
"Name of the tab after which the new tab will be inserted. Let empty to "
111+
"position the tab first."
112+
msgstr ""
113+
"Nom de l'onglet après lequel le nouvel onglet sera inséré. Laisser vide pour "
114+
"positionner le nouvel onglet en premier."
115+
116+
#. module: web_merge_notebook_tab
117+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__tab_name
118+
msgid "Tab Name"
119+
msgstr "Nom de l'onglet"
120+
121+
#. module: web_merge_notebook_tab
122+
#. odoo-python
123+
#: code:addons/web_merge_notebook_tab/models/ir_ui_view_merge_notebook_tab.py:0
124+
#, python-format
125+
msgid "Tab Name '%(position)s' is not available."
126+
msgstr "Le nom de l'onglet '%(position)s' n'est pas disponible"
127+
128+
#. module: web_merge_notebook_tab
129+
#. odoo-python
130+
#: code:addons/web_merge_notebook_tab/models/ir_ui_view_merge_notebook_tab.py:0
131+
#, python-format
132+
msgid "Tab Name '%(tab_name)s' is not available."
133+
msgstr "Le nom de l'onglet '%(tab_name)s' n'est pas disponible"
134+
135+
#. module: web_merge_notebook_tab
136+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__tab_name_position
137+
msgid "Tab Name Position"
138+
msgstr "Nom de l'onglet positionnel"
139+
140+
#. module: web_merge_notebook_tab
141+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__tab_names_available
142+
msgid "Tab Names Available"
143+
msgstr "Onglets disponibles"
144+
145+
#. module: web_merge_notebook_tab
146+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__tab_string
147+
msgid "Tab String"
148+
msgstr "Libellé de l'onglet"
149+
150+
#. module: web_merge_notebook_tab
151+
#: model:ir.model.fields,help:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__tab_name
152+
msgid ""
153+
"Technical field. 'name' field of the <page> element that will be inserted."
154+
msgstr "Champ technique. Champ 'Nom' de l'élément <page> qui sera inséré."
155+
156+
#. module: web_merge_notebook_tab
157+
#: model:ir.model.fields,help:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__tab_string
158+
msgid ""
159+
"Text displayed in the header of the tab. 'string' field of the <page> "
160+
"element that will be inserted."
161+
msgstr ""
162+
"Texte affiché dans l'entete de l'onglet. Cela correspond au champ 'string' "
163+
"de l'élément <page> qui sera inséré."
164+
165+
#. module: web_merge_notebook_tab
166+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__view_id
167+
msgid "View"
168+
msgstr "Vue"
169+
170+
#. module: web_merge_notebook_tab
171+
#: model:ir.model.fields,field_description:web_merge_notebook_tab.field_ir_ui_view_merge_notebook_tab__view_xml_id
172+
msgid "View XML ID"
173+
msgstr "XML ID de la vue"

0 commit comments

Comments
 (0)