Browse Source
Merge pull request #1086 from Linksoft-ID/12.0-mig-web_m2x_options
Merge pull request #1086 from Linksoft-ID/12.0-mig-web_m2x_options
12.0 mig web m2x optionspull/1204/head
Pedro M. Baeza
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 2385 additions and 0 deletions
-
196web_m2x_options/README.rst
-
1web_m2x_options/__init__.py
-
26web_m2x_options/__manifest__.py
-
102web_m2x_options/i18n/ar.po
-
104web_m2x_options/i18n/de.po
-
101web_m2x_options/i18n/es.po
-
101web_m2x_options/i18n/fi.po
-
101web_m2x_options/i18n/fr.po
-
103web_m2x_options/i18n/hr.po
-
101web_m2x_options/i18n/it.po
-
102web_m2x_options/i18n/nl_NL.po
-
105web_m2x_options/i18n/pt_BR.po
-
102web_m2x_options/i18n/sl.po
-
101web_m2x_options/i18n/tr.po
-
97web_m2x_options/i18n/web_m2x_options.pot
-
1web_m2x_options/models/__init__.py
-
12web_m2x_options/models/ir_config_parameter.py
-
11web_m2x_options/readme/CONTRIBUTORS.rst
-
10web_m2x_options/readme/DESCRIPTION.rst
-
6web_m2x_options/readme/ROADMAP.rst
-
88web_m2x_options/readme/USAGE.rst
-
BINweb_m2x_options/static/description/icon.png
-
412web_m2x_options/static/description/index.html
-
377web_m2x_options/static/src/js/form.js
-
13web_m2x_options/static/src/xml/base.xml
-
12web_m2x_options/views/view.xml
@ -0,0 +1,196 @@ |
|||||
|
=============== |
||||
|
web_m2x_options |
||||
|
=============== |
||||
|
|
||||
|
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
||||
|
!! This file is generated by oca-gen-addon-readme !! |
||||
|
!! changes will be overwritten. !! |
||||
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
||||
|
|
||||
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png |
||||
|
:target: https://odoo-community.org/page/development-status |
||||
|
:alt: Beta |
||||
|
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png |
||||
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html |
||||
|
:alt: License: AGPL-3 |
||||
|
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github |
||||
|
:target: https://github.com/OCA/web/tree/12.0/web_m2x_options |
||||
|
:alt: OCA/web |
||||
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png |
||||
|
:target: https://translation.odoo-community.org/projects/web-12-0/web-12-0-web_m2x_options |
||||
|
:alt: Translate me on Weblate |
||||
|
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png |
||||
|
:target: https://runbot.odoo-community.org/runbot/162/12.0 |
||||
|
:alt: Try me on Runbot |
||||
|
|
||||
|
|badge1| |badge2| |badge3| |badge4| |badge5| |
||||
|
|
||||
|
This modules modifies "many2one" and "many2manytags" form widgets so as to add some new display |
||||
|
control options. |
||||
|
|
||||
|
Options provided includes possibility to remove "Create..." and/or "Create and |
||||
|
Edit..." entries from many2one drop down. You can also change default number of |
||||
|
proposition appearing in the drop-down. Or prevent the dialog box poping in |
||||
|
case of validation error. |
||||
|
|
||||
|
If not specified, the module will avoid proposing any of the create options |
||||
|
if the current user has no permission rights to create the related object. |
||||
|
|
||||
|
**Table of contents** |
||||
|
|
||||
|
.. contents:: |
||||
|
:local: |
||||
|
|
||||
|
Usage |
||||
|
===== |
||||
|
|
||||
|
in the field's options dict |
||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
||||
|
|
||||
|
``create`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display the "Create..." entry in dropdown panel. |
||||
|
|
||||
|
``create_edit`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display "Create and Edit..." entry in dropdown panel |
||||
|
|
||||
|
``m2o_dialog`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display the many2one dialog in case of validation error. |
||||
|
|
||||
|
``limit`` *int* (Default: openerp default value is ``7``) |
||||
|
|
||||
|
Number of displayed record in drop-down panel |
||||
|
|
||||
|
``search_more`` *boolean* |
||||
|
|
||||
|
Used to force disable/enable search more button. |
||||
|
|
||||
|
``field_color`` *string* |
||||
|
|
||||
|
A string to define the field used to define color. |
||||
|
This option has to be used with colors. |
||||
|
|
||||
|
``colors`` *dictionary* |
||||
|
|
||||
|
A dictionary to link field value with a HTML color. |
||||
|
This option has to be used with field_color. |
||||
|
|
||||
|
``no_open_edit`` *boolean* (Default: value of ``no_open`` which is ``False`` if not set) |
||||
|
|
||||
|
Causes a many2one not to offer to click through in edit mode, but well in read mode |
||||
|
|
||||
|
``open`` *boolean* (Default: ``False``) |
||||
|
|
||||
|
Makes many2many_tags buttons that open the linked resource |
||||
|
|
||||
|
``no_color_picker`` *boolean* (Default: ``False``) |
||||
|
|
||||
|
Deactivates the color picker on many2many_tags buttons to do nothing (ignored if open is set) |
||||
|
|
||||
|
ir.config_parameter options |
||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
||||
|
|
||||
|
Now you can disable "Create..." and "Create and Edit..." entry for all widgets in the odoo instance. |
||||
|
If you disable one option, you can enable it for particular field by setting "create: True" option directly on the field definition. |
||||
|
|
||||
|
``web_m2x_options.create`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display the "Create..." entry in dropdown panel for all fields in the odoo instance. |
||||
|
|
||||
|
``web_m2x_options.create_edit`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display "Create and Edit..." entry in dropdown panel for all fields in the odoo instance. |
||||
|
|
||||
|
``web_m2x_options.m2o_dialog`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display the many2one dialog in case of validation error for all fields in the odoo instance. |
||||
|
|
||||
|
``web_m2x_options.limit`` *int* (Default: openerp default value is ``7``) |
||||
|
|
||||
|
Number of displayed record in drop-down panel for all fields in the odoo instance |
||||
|
|
||||
|
``web_m2x_options.search_more`` *boolean* (Default: default value is ``False``) |
||||
|
|
||||
|
Whether the field should always show "Search more..." entry or not. |
||||
|
|
||||
|
To add these parameters go to Configuration -> Technical -> Parameters -> System Parameters and add new parameters like: |
||||
|
|
||||
|
- web_m2x_options.create: False |
||||
|
- web_m2x_options.create_edit: False |
||||
|
- web_m2x_options.m2o_dialog: False |
||||
|
- web_m2x_options.limit: 10 |
||||
|
- web_m2x_options.search_more: True |
||||
|
|
||||
|
|
||||
|
Example |
||||
|
~~~~~~~ |
||||
|
|
||||
|
Your XML form view definition could contain:: |
||||
|
|
||||
|
... |
||||
|
<field name="partner_id" options="{'limit': 10, 'create': false, 'create_edit': false, 'search_more':true 'field_color':'state', 'colors':{'active':'green'}}"/> |
||||
|
... |
||||
|
|
||||
|
Known issues / Roadmap |
||||
|
====================== |
||||
|
|
||||
|
Double check that you have no inherited view that remove ``options`` you set on a field ! |
||||
|
If nothing works, add a debugger in the first line of ``_search method`` and enable debug mode in Odoo. When you write something in a many2one field, javascript debugger should pause. If not verify your installation. |
||||
|
|
||||
|
- Instead of making the tags rectangle clickable, I think it's better to put the text as a clickable link, so we will get a consistent behaviour/aspect with other clickable elements (many2one...). |
||||
|
- In edit mode, it would be great to add an icon like the one on many2one fields to allow to open the many2many in a popup window. |
||||
|
- Include this feature as a configurable option via parameter to have this behaviour by default in all many2many tags. |
||||
|
|
||||
|
Bug Tracker |
||||
|
=========== |
||||
|
|
||||
|
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_. |
||||
|
In case of trouble, please check there if your issue has already been reported. |
||||
|
If you spotted it first, help us smashing it by providing a detailed and welcomed |
||||
|
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_m2x_options%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. |
||||
|
|
||||
|
Do not contact contributors directly about support or help with technical issues. |
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
|
||||
|
Authors |
||||
|
~~~~~~~ |
||||
|
|
||||
|
* ACSONE SA/NV |
||||
|
* 0k.io |
||||
|
* Tecnativa |
||||
|
|
||||
|
Contributors |
||||
|
~~~~~~~~~~~~ |
||||
|
|
||||
|
* David Coninckx <davconinckx@gmail.com> |
||||
|
* Emanuel Cino <ecino@compassion.ch> |
||||
|
* Holger Brunn <hbrunn@therp.nl> |
||||
|
* Nicolas JEUDY <nicolas@sudokeys.com> |
||||
|
* Yannick Vaucher <yannick.vaucher@camptocamp.com> |
||||
|
* Zakaria Makrelouf <z.makrelouf@gmail.com> |
||||
|
* `Tecnativa <https://www.tecnativa.com>`_: |
||||
|
|
||||
|
* Jairo Llopis <jairo.llopis@tecnativa.com> |
||||
|
* David Vidal <david.vidal@tecnativa.com> |
||||
|
* Ernesto Tejeda <ernesto.tejeda87@gmail.com> |
||||
|
|
||||
|
Maintainers |
||||
|
~~~~~~~~~~~ |
||||
|
|
||||
|
This module is maintained by the OCA. |
||||
|
|
||||
|
.. image:: https://odoo-community.org/logo.png |
||||
|
:alt: Odoo Community Association |
||||
|
:target: https://odoo-community.org |
||||
|
|
||||
|
OCA, or the Odoo Community Association, is a nonprofit organization whose |
||||
|
mission is to support the collaborative development of Odoo features and |
||||
|
promote its widespread use. |
||||
|
|
||||
|
This module is part of the `OCA/web <https://github.com/OCA/web/tree/12.0/web_m2x_options>`_ project on GitHub. |
||||
|
|
||||
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. |
@ -0,0 +1 @@ |
|||||
|
from . import models |
@ -0,0 +1,26 @@ |
|||||
|
# Copyright 2015 0k.io |
||||
|
# Copyright 2016 ACSONE SA/NV |
||||
|
# Copyright 2017 Tecnativa |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
||||
|
|
||||
|
{ |
||||
|
"name": 'web_m2x_options', |
||||
|
"version": "12.0.1.0.0", |
||||
|
'category': 'Web', |
||||
|
"author": "ACSONE SA/NV, " |
||||
|
"0k.io, " |
||||
|
"Tecnativa, " |
||||
|
"Odoo Community Association (OCA)", |
||||
|
'website': 'https://github.com/OCA/web', |
||||
|
'license': 'AGPL-3', |
||||
|
"depends": [ |
||||
|
'web', |
||||
|
], |
||||
|
'data': [ |
||||
|
'views/view.xml' |
||||
|
], |
||||
|
'qweb': [ |
||||
|
'static/src/xml/base.xml', |
||||
|
], |
||||
|
'installable': True, |
||||
|
} |
@ -0,0 +1,102 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
# Translators: |
||||
|
# OCA Transbot <transbot@odoo-community.org>, 2017 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 10.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2018-01-03 03:50+0000\n" |
||||
|
"PO-Revision-Date: 2018-01-03 03:50+0000\n" |
||||
|
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n" |
||||
|
"Language-Team: Arabic (https://www.transifex.com/oca/teams/23907/ar/)\n" |
||||
|
"Language: ar\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " |
||||
|
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "إلغاء" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "إنشاء \"<strong>%s</strong>\"" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "إنشاء وتحرير ..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "البحث عن المزيد ..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
@ -0,0 +1,104 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
# Translators: |
||||
|
# OCA Transbot <transbot@odoo-community.org>, 2017 |
||||
|
# Rudolf Schnapka <rs@techno-flex.de>, 2018 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 10.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2018-01-03 03:50+0000\n" |
||||
|
"PO-Revision-Date: 2018-01-03 03:50+0000\n" |
||||
|
"Last-Translator: Rudolf Schnapka <rs@techno-flex.de>, 2018\n" |
||||
|
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" |
||||
|
"Language: de\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" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, fuzzy, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "!(widget.options.no_open || widget.options.no_open_edit)" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Abbrechen" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "Anlegen" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "Anlegen \"<strong>%s</strong>" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "Eine %s anlegen" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "Anlegen und Bearbeiten" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "Anlegen und bearbeiten" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "Suche weitere..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "" |
||||
|
"Sie legen eine neue %s an, sind Sie sicher, dass diese nicht bereits " |
||||
|
"vorhanden ist?" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
@ -0,0 +1,101 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
# Translators: |
||||
|
# OCA Transbot <transbot@odoo-community.org>, 2017 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 10.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2018-01-03 03:50+0000\n" |
||||
|
"PO-Revision-Date: 2018-01-03 03:50+0000\n" |
||||
|
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n" |
||||
|
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" |
||||
|
"Language: es\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" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Cancelar" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "Crear" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "Crear \"<strong>%s</strong>\"" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "Crear un %s" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "Crear y editar..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "Crear y editar" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "Buscar más..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "Está creando un nuevo %s, ¿está seguro de no existe ya?" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
@ -0,0 +1,101 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
# Translators: |
||||
|
# OCA Transbot <transbot@odoo-community.org>, 2017 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 10.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2018-01-03 03:50+0000\n" |
||||
|
"PO-Revision-Date: 2018-01-03 03:50+0000\n" |
||||
|
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n" |
||||
|
"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" |
||||
|
"Language: fi\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" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Peru" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "Luo \"<strong>%s</strong>\"" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "Luo ja muokkaa..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "Hae lisää..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
@ -0,0 +1,101 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
# Translators: |
||||
|
# OCA Transbot <transbot@odoo-community.org>, 2017 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 10.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2018-01-03 03:50+0000\n" |
||||
|
"PO-Revision-Date: 2018-01-03 03:50+0000\n" |
||||
|
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n" |
||||
|
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" |
||||
|
"Language: fr\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" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Annuler" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "Creer \"<strong>%s</strong>\"" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "Créer et modifier..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "Rechercher plus..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
@ -0,0 +1,103 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
# Translators: |
||||
|
# Bole <bole@dajmi5.com>, 2017 |
||||
|
# OCA Transbot <transbot@odoo-community.org>, 2017 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 10.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2018-01-03 03:50+0000\n" |
||||
|
"PO-Revision-Date: 2018-01-03 03:50+0000\n" |
||||
|
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n" |
||||
|
"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" |
||||
|
"Language: hr\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" |
||||
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, fuzzy, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "!(opcije isključuju otvaranje ili uređivanje)" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Otkaži" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "Kreiraj" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "Kreiraj \" <strong>%s</strong>\"" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "Kreiraj %s" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "Kreiraj i uredi..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "Kreiraj i uredi" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "Traži dalje..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "Želite kreirati novi %s, jeste li sigurni da već ne postoji?" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
@ -0,0 +1,101 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
# Translators: |
||||
|
# OCA Transbot <transbot@odoo-community.org>, 2017 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 10.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2018-01-03 03:50+0000\n" |
||||
|
"PO-Revision-Date: 2018-01-03 03:50+0000\n" |
||||
|
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n" |
||||
|
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" |
||||
|
"Language: it\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" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Annulla" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "Crea \"<strong>%s</strong>\"" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "Crea e Modifica..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "Cerca altro..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
@ -0,0 +1,102 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
# Translators: |
||||
|
# Peter Hageman <hageman.p@gmail.com>, 2017 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 10.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2017-07-01 03:35+0000\n" |
||||
|
"PO-Revision-Date: 2017-07-01 03:35+0000\n" |
||||
|
"Last-Translator: Peter Hageman <hageman.p@gmail.com>, 2017\n" |
||||
|
"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" |
||||
|
"teams/23907/nl_NL/)\n" |
||||
|
"Language: nl_NL\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" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Annuleer" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "Aanmaken" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
@ -0,0 +1,105 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
# Translators: |
||||
|
# OCA Transbot <transbot@odoo-community.org>, 2017 |
||||
|
# Rodrigo de Almeida Sottomaior Macedo <rmsolucoeseminformatic4@gmail.com>, 2017 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 10.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2018-01-03 03:50+0000\n" |
||||
|
"PO-Revision-Date: 2018-08-04 13:34+0000\n" |
||||
|
"Last-Translator: Rodrigo Macedo <rmsolucoeseminformatic4@gmail.com>\n" |
||||
|
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/" |
||||
|
"23907/pt_BR/)\n" |
||||
|
"Language: pt_BR\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 3.1.1\n" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "!(widget.options.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Cancelar" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "Criar" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "Criar \"<strong>%s</strong>\"" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "Criar um %s" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "Criar e editar.." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "Criar e editar" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "sem resultado para mostrar..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "Abrir: " |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "Buscar mais..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "" |
||||
|
"Você está criando um novo %s, você tem certeza de que ainda não existe?" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
@ -0,0 +1,102 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
# Translators: |
||||
|
# OCA Transbot <transbot@odoo-community.org>, 2017 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 10.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2018-01-03 03:50+0000\n" |
||||
|
"PO-Revision-Date: 2018-01-03 03:50+0000\n" |
||||
|
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n" |
||||
|
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" |
||||
|
"Language: sl\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" |
||||
|
"%100==4 ? 2 : 3);\n" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Preklic" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "Ustvari \"<strong>%s</strong>\"" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "Ustvari in urejaj..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "Poišči več..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
@ -0,0 +1,101 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
# Translators: |
||||
|
# OCA Transbot <transbot@odoo-community.org>, 2017 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 10.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2018-01-03 03:50+0000\n" |
||||
|
"PO-Revision-Date: 2018-01-03 03:50+0000\n" |
||||
|
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n" |
||||
|
"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" |
||||
|
"Language: tr\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" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "İptal" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "Oluştur \"<strong>%s</strong>\"" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "Oluştur ve düzenle..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "Daha Fazla..." |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
@ -0,0 +1,97 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_m2x_options |
||||
|
# |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 11.0\n" |
||||
|
"Report-Msgid-Bugs-To: \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: \n" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/xml/base.xml:8 |
||||
|
#, python-format |
||||
|
msgid "!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit)" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:52 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:31 |
||||
|
#, python-format |
||||
|
msgid "Create" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:241 |
||||
|
#, python-format |
||||
|
msgid "Create \"<strong>%s</strong>\"" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:28 |
||||
|
#, python-format |
||||
|
msgid "Create a %s" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:261 |
||||
|
#, python-format |
||||
|
msgid "Create and Edit..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:42 |
||||
|
#, python-format |
||||
|
msgid "Create and edit" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:267 |
||||
|
#, python-format |
||||
|
msgid "No results to show..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:341 |
||||
|
#, python-format |
||||
|
msgid "Open: " |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:206 |
||||
|
#, python-format |
||||
|
msgid "Search More..." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_m2x_options/static/src/js/form.js:58 |
||||
|
#, python-format |
||||
|
msgid "You are creating a new %s, are you sure it does not exist yet?" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_m2x_options |
||||
|
#: model:ir.model,name:web_m2x_options.model_ir_config_parameter |
||||
|
msgid "ir.config_parameter" |
||||
|
msgstr "" |
||||
|
|
@ -0,0 +1 @@ |
|||||
|
from . import ir_config_parameter |
@ -0,0 +1,12 @@ |
|||||
|
from odoo import api, models |
||||
|
|
||||
|
|
||||
|
class IrConfigParameter(models.Model): |
||||
|
_inherit = 'ir.config_parameter' |
||||
|
|
||||
|
@api.model |
||||
|
def get_web_m2x_options(self): |
||||
|
opts = ['web_m2x_options.create', 'web_m2x_options.create_edit', |
||||
|
'web_m2x_options.limit', 'web_m2x_options.search_more', |
||||
|
'web_m2x_options.m2o_dialog'] |
||||
|
return self.sudo().search_read([['key', 'in', opts]], ["key", "value"]) |
@ -0,0 +1,11 @@ |
|||||
|
* David Coninckx <davconinckx@gmail.com> |
||||
|
* Emanuel Cino <ecino@compassion.ch> |
||||
|
* Holger Brunn <hbrunn@therp.nl> |
||||
|
* Nicolas JEUDY <nicolas@sudokeys.com> |
||||
|
* Yannick Vaucher <yannick.vaucher@camptocamp.com> |
||||
|
* Zakaria Makrelouf <z.makrelouf@gmail.com> |
||||
|
* `Tecnativa <https://www.tecnativa.com>`_: |
||||
|
|
||||
|
* Jairo Llopis <jairo.llopis@tecnativa.com> |
||||
|
* David Vidal <david.vidal@tecnativa.com> |
||||
|
* Ernesto Tejeda <ernesto.tejeda87@gmail.com> |
@ -0,0 +1,10 @@ |
|||||
|
This modules modifies "many2one" and "many2manytags" form widgets so as to add some new display |
||||
|
control options. |
||||
|
|
||||
|
Options provided includes possibility to remove "Create..." and/or "Create and |
||||
|
Edit..." entries from many2one drop down. You can also change default number of |
||||
|
proposition appearing in the drop-down. Or prevent the dialog box poping in |
||||
|
case of validation error. |
||||
|
|
||||
|
If not specified, the module will avoid proposing any of the create options |
||||
|
if the current user has no permission rights to create the related object. |
@ -0,0 +1,6 @@ |
|||||
|
Double check that you have no inherited view that remove ``options`` you set on a field ! |
||||
|
If nothing works, add a debugger in the first line of ``_search method`` and enable debug mode in Odoo. When you write something in a many2one field, javascript debugger should pause. If not verify your installation. |
||||
|
|
||||
|
- Instead of making the tags rectangle clickable, I think it's better to put the text as a clickable link, so we will get a consistent behaviour/aspect with other clickable elements (many2one...). |
||||
|
- In edit mode, it would be great to add an icon like the one on many2one fields to allow to open the many2many in a popup window. |
||||
|
- Include this feature as a configurable option via parameter to have this behaviour by default in all many2many tags. |
@ -0,0 +1,88 @@ |
|||||
|
in the field's options dict |
||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
||||
|
|
||||
|
``create`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display the "Create..." entry in dropdown panel. |
||||
|
|
||||
|
``create_edit`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display "Create and Edit..." entry in dropdown panel |
||||
|
|
||||
|
``m2o_dialog`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display the many2one dialog in case of validation error. |
||||
|
|
||||
|
``limit`` *int* (Default: openerp default value is ``7``) |
||||
|
|
||||
|
Number of displayed record in drop-down panel |
||||
|
|
||||
|
``search_more`` *boolean* |
||||
|
|
||||
|
Used to force disable/enable search more button. |
||||
|
|
||||
|
``field_color`` *string* |
||||
|
|
||||
|
A string to define the field used to define color. |
||||
|
This option has to be used with colors. |
||||
|
|
||||
|
``colors`` *dictionary* |
||||
|
|
||||
|
A dictionary to link field value with a HTML color. |
||||
|
This option has to be used with field_color. |
||||
|
|
||||
|
``no_open_edit`` *boolean* (Default: value of ``no_open`` which is ``False`` if not set) |
||||
|
|
||||
|
Causes a many2one not to offer to click through in edit mode, but well in read mode |
||||
|
|
||||
|
``open`` *boolean* (Default: ``False``) |
||||
|
|
||||
|
Makes many2many_tags buttons that open the linked resource |
||||
|
|
||||
|
``no_color_picker`` *boolean* (Default: ``False``) |
||||
|
|
||||
|
Deactivates the color picker on many2many_tags buttons to do nothing (ignored if open is set) |
||||
|
|
||||
|
ir.config_parameter options |
||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
||||
|
|
||||
|
Now you can disable "Create..." and "Create and Edit..." entry for all widgets in the odoo instance. |
||||
|
If you disable one option, you can enable it for particular field by setting "create: True" option directly on the field definition. |
||||
|
|
||||
|
``web_m2x_options.create`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display the "Create..." entry in dropdown panel for all fields in the odoo instance. |
||||
|
|
||||
|
``web_m2x_options.create_edit`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display "Create and Edit..." entry in dropdown panel for all fields in the odoo instance. |
||||
|
|
||||
|
``web_m2x_options.m2o_dialog`` *boolean* (Default: depends if user have create rights) |
||||
|
|
||||
|
Whether to display the many2one dialog in case of validation error for all fields in the odoo instance. |
||||
|
|
||||
|
``web_m2x_options.limit`` *int* (Default: openerp default value is ``7``) |
||||
|
|
||||
|
Number of displayed record in drop-down panel for all fields in the odoo instance |
||||
|
|
||||
|
``web_m2x_options.search_more`` *boolean* (Default: default value is ``False``) |
||||
|
|
||||
|
Whether the field should always show "Search more..." entry or not. |
||||
|
|
||||
|
To add these parameters go to Configuration -> Technical -> Parameters -> System Parameters and add new parameters like: |
||||
|
|
||||
|
- web_m2x_options.create: False |
||||
|
- web_m2x_options.create_edit: False |
||||
|
- web_m2x_options.m2o_dialog: False |
||||
|
- web_m2x_options.limit: 10 |
||||
|
- web_m2x_options.search_more: True |
||||
|
|
||||
|
|
||||
|
Example |
||||
|
~~~~~~~ |
||||
|
|
||||
|
Your XML form view definition could contain:: |
||||
|
|
||||
|
... |
||||
|
<field name="partner_id" options="{'limit': 10, 'create': false, 'create_edit': false, 'search_more':true 'field_color':'state', 'colors':{'active':'green'}}"/> |
||||
|
... |
After Width: 128 | Height: 128 | Size: 9.2 KiB |
@ -0,0 +1,412 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8" ?> |
||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
||||
|
<head> |
||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
||||
|
<meta name="generator" content="Docutils 0.12: http://docutils.sourceforge.net/" /> |
||||
|
<title>Add new options for many2one field</title> |
||||
|
<style type="text/css"> |
||||
|
|
||||
|
/* |
||||
|
:Author: David Goodger (goodger@python.org) |
||||
|
:Id: $Id: html4css1.css 7614 2013-02-21 15:55:51Z milde $ |
||||
|
:Copyright: This stylesheet has been placed in the public domain. |
||||
|
|
||||
|
Default cascading style sheet for the HTML output of Docutils. |
||||
|
|
||||
|
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to |
||||
|
customize this style sheet. |
||||
|
*/ |
||||
|
|
||||
|
/* used to remove borders from tables and images */ |
||||
|
.borderless, table.borderless td, table.borderless th { |
||||
|
border: 0 } |
||||
|
|
||||
|
table.borderless td, table.borderless th { |
||||
|
/* Override padding for "table.docutils td" with "! important". |
||||
|
The right padding separates the table cells. */ |
||||
|
padding: 0 0.5em 0 0 ! important } |
||||
|
|
||||
|
.first { |
||||
|
/* Override more specific margin styles with "! important". */ |
||||
|
margin-top: 0 ! important } |
||||
|
|
||||
|
.last, .with-subtitle { |
||||
|
margin-bottom: 0 ! important } |
||||
|
|
||||
|
.hidden { |
||||
|
display: none } |
||||
|
|
||||
|
a.toc-backref { |
||||
|
text-decoration: none ; |
||||
|
color: black } |
||||
|
|
||||
|
blockquote.epigraph { |
||||
|
margin: 2em 5em ; } |
||||
|
|
||||
|
dl.docutils dd { |
||||
|
margin-bottom: 0.5em } |
||||
|
|
||||
|
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] { |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
|
||||
|
/* Uncomment (and remove this text!) to get bold-faced definition list terms |
||||
|
dl.docutils dt { |
||||
|
font-weight: bold } |
||||
|
*/ |
||||
|
|
||||
|
div.abstract { |
||||
|
margin: 2em 5em } |
||||
|
|
||||
|
div.abstract p.topic-title { |
||||
|
font-weight: bold ; |
||||
|
text-align: center } |
||||
|
|
||||
|
div.admonition, div.attention, div.caution, div.danger, div.error, |
||||
|
div.hint, div.important, div.note, div.tip, div.warning { |
||||
|
margin: 2em ; |
||||
|
border: medium outset ; |
||||
|
padding: 1em } |
||||
|
|
||||
|
div.admonition p.admonition-title, div.hint p.admonition-title, |
||||
|
div.important p.admonition-title, div.note p.admonition-title, |
||||
|
div.tip p.admonition-title { |
||||
|
font-weight: bold ; |
||||
|
font-family: sans-serif } |
||||
|
|
||||
|
div.attention p.admonition-title, div.caution p.admonition-title, |
||||
|
div.danger p.admonition-title, div.error p.admonition-title, |
||||
|
div.warning p.admonition-title, .code .error { |
||||
|
color: red ; |
||||
|
font-weight: bold ; |
||||
|
font-family: sans-serif } |
||||
|
|
||||
|
/* Uncomment (and remove this text!) to get reduced vertical space in |
||||
|
compound paragraphs. |
||||
|
div.compound .compound-first, div.compound .compound-middle { |
||||
|
margin-bottom: 0.5em } |
||||
|
|
||||
|
div.compound .compound-last, div.compound .compound-middle { |
||||
|
margin-top: 0.5em } |
||||
|
*/ |
||||
|
|
||||
|
div.dedication { |
||||
|
margin: 2em 5em ; |
||||
|
text-align: center ; |
||||
|
font-style: italic } |
||||
|
|
||||
|
div.dedication p.topic-title { |
||||
|
font-weight: bold ; |
||||
|
font-style: normal } |
||||
|
|
||||
|
div.figure { |
||||
|
margin-left: 2em ; |
||||
|
margin-right: 2em } |
||||
|
|
||||
|
div.footer, div.header { |
||||
|
clear: both; |
||||
|
font-size: smaller } |
||||
|
|
||||
|
div.line-block { |
||||
|
display: block ; |
||||
|
margin-top: 1em ; |
||||
|
margin-bottom: 1em } |
||||
|
|
||||
|
div.line-block div.line-block { |
||||
|
margin-top: 0 ; |
||||
|
margin-bottom: 0 ; |
||||
|
margin-left: 1.5em } |
||||
|
|
||||
|
div.sidebar { |
||||
|
margin: 0 0 0.5em 1em ; |
||||
|
border: medium outset ; |
||||
|
padding: 1em ; |
||||
|
background-color: #ffffee ; |
||||
|
width: 40% ; |
||||
|
float: right ; |
||||
|
clear: right } |
||||
|
|
||||
|
div.sidebar p.rubric { |
||||
|
font-family: sans-serif ; |
||||
|
font-size: medium } |
||||
|
|
||||
|
div.system-messages { |
||||
|
margin: 5em } |
||||
|
|
||||
|
div.system-messages h1 { |
||||
|
color: red } |
||||
|
|
||||
|
div.system-message { |
||||
|
border: medium outset ; |
||||
|
padding: 1em } |
||||
|
|
||||
|
div.system-message p.system-message-title { |
||||
|
color: red ; |
||||
|
font-weight: bold } |
||||
|
|
||||
|
div.topic { |
||||
|
margin: 2em } |
||||
|
|
||||
|
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, |
||||
|
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { |
||||
|
margin-top: 0.4em } |
||||
|
|
||||
|
h1.title { |
||||
|
text-align: center } |
||||
|
|
||||
|
h2.subtitle { |
||||
|
text-align: center } |
||||
|
|
||||
|
hr.docutils { |
||||
|
width: 75% } |
||||
|
|
||||
|
img.align-left, .figure.align-left, object.align-left { |
||||
|
clear: left ; |
||||
|
float: left ; |
||||
|
margin-right: 1em } |
||||
|
|
||||
|
img.align-right, .figure.align-right, object.align-right { |
||||
|
clear: right ; |
||||
|
float: right ; |
||||
|
margin-left: 1em } |
||||
|
|
||||
|
img.align-center, .figure.align-center, object.align-center { |
||||
|
display: block; |
||||
|
margin-left: auto; |
||||
|
margin-right: auto; |
||||
|
} |
||||
|
|
||||
|
.align-left { |
||||
|
text-align: left } |
||||
|
|
||||
|
.align-center { |
||||
|
clear: both ; |
||||
|
text-align: center } |
||||
|
|
||||
|
.align-right { |
||||
|
text-align: right } |
||||
|
|
||||
|
/* reset inner alignment in figures */ |
||||
|
div.align-right { |
||||
|
text-align: inherit } |
||||
|
|
||||
|
/* div.align-center * { */ |
||||
|
/* text-align: left } */ |
||||
|
|
||||
|
ol.simple, ul.simple { |
||||
|
margin-bottom: 1em } |
||||
|
|
||||
|
ol.arabic { |
||||
|
list-style: decimal } |
||||
|
|
||||
|
ol.loweralpha { |
||||
|
list-style: lower-alpha } |
||||
|
|
||||
|
ol.upperalpha { |
||||
|
list-style: upper-alpha } |
||||
|
|
||||
|
ol.lowerroman { |
||||
|
list-style: lower-roman } |
||||
|
|
||||
|
ol.upperroman { |
||||
|
list-style: upper-roman } |
||||
|
|
||||
|
p.attribution { |
||||
|
text-align: right ; |
||||
|
margin-left: 50% } |
||||
|
|
||||
|
p.caption { |
||||
|
font-style: italic } |
||||
|
|
||||
|
p.credits { |
||||
|
font-style: italic ; |
||||
|
font-size: smaller } |
||||
|
|
||||
|
p.label { |
||||
|
white-space: nowrap } |
||||
|
|
||||
|
p.rubric { |
||||
|
font-weight: bold ; |
||||
|
font-size: larger ; |
||||
|
color: maroon ; |
||||
|
text-align: center } |
||||
|
|
||||
|
p.sidebar-title { |
||||
|
font-family: sans-serif ; |
||||
|
font-weight: bold ; |
||||
|
font-size: larger } |
||||
|
|
||||
|
p.sidebar-subtitle { |
||||
|
font-family: sans-serif ; |
||||
|
font-weight: bold } |
||||
|
|
||||
|
p.topic-title { |
||||
|
font-weight: bold } |
||||
|
|
||||
|
pre.address { |
||||
|
margin-bottom: 0 ; |
||||
|
margin-top: 0 ; |
||||
|
font: inherit } |
||||
|
|
||||
|
pre.literal-block, pre.doctest-block, pre.math, pre.code { |
||||
|
margin-left: 2em ; |
||||
|
margin-right: 2em } |
||||
|
|
||||
|
pre.code .ln { color: grey; } /* line numbers */ |
||||
|
pre.code, code { background-color: #eeeeee } |
||||
|
pre.code .comment, code .comment { color: #5C6576 } |
||||
|
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } |
||||
|
pre.code .literal.string, code .literal.string { color: #0C5404 } |
||||
|
pre.code .name.builtin, code .name.builtin { color: #352B84 } |
||||
|
pre.code .deleted, code .deleted { background-color: #DEB0A1} |
||||
|
pre.code .inserted, code .inserted { background-color: #A3D289} |
||||
|
|
||||
|
span.classifier { |
||||
|
font-family: sans-serif ; |
||||
|
font-style: oblique } |
||||
|
|
||||
|
span.classifier-delimiter { |
||||
|
font-family: sans-serif ; |
||||
|
font-weight: bold } |
||||
|
|
||||
|
span.interpreted { |
||||
|
font-family: sans-serif } |
||||
|
|
||||
|
span.option { |
||||
|
white-space: nowrap } |
||||
|
|
||||
|
span.pre { |
||||
|
white-space: pre } |
||||
|
|
||||
|
span.problematic { |
||||
|
color: red } |
||||
|
|
||||
|
span.section-subtitle { |
||||
|
/* font-size relative to parent (h1..h6 element) */ |
||||
|
font-size: 80% } |
||||
|
|
||||
|
table.citation { |
||||
|
border-left: solid 1px gray; |
||||
|
margin-left: 1px } |
||||
|
|
||||
|
table.docinfo { |
||||
|
margin: 2em 4em } |
||||
|
|
||||
|
table.docutils { |
||||
|
margin-top: 0.5em ; |
||||
|
margin-bottom: 0.5em } |
||||
|
|
||||
|
table.footnote { |
||||
|
border-left: solid 1px black; |
||||
|
margin-left: 1px } |
||||
|
|
||||
|
table.docutils td, table.docutils th, |
||||
|
table.docinfo td, table.docinfo th { |
||||
|
padding-left: 0.5em ; |
||||
|
padding-right: 0.5em ; |
||||
|
vertical-align: top } |
||||
|
|
||||
|
table.docutils th.field-name, table.docinfo th.docinfo-name { |
||||
|
font-weight: bold ; |
||||
|
text-align: left ; |
||||
|
white-space: nowrap ; |
||||
|
padding-left: 0 } |
||||
|
|
||||
|
/* "booktabs" style (no vertical lines) */ |
||||
|
table.docutils.booktabs { |
||||
|
border: 0px; |
||||
|
border-top: 2px solid; |
||||
|
border-bottom: 2px solid; |
||||
|
border-collapse: collapse; |
||||
|
} |
||||
|
table.docutils.booktabs * { |
||||
|
border: 0px; |
||||
|
} |
||||
|
table.docutils.booktabs th { |
||||
|
border-bottom: thin solid; |
||||
|
text-align: left; |
||||
|
} |
||||
|
|
||||
|
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, |
||||
|
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { |
||||
|
font-size: 100% } |
||||
|
|
||||
|
ul.auto-toc { |
||||
|
list-style-type: none } |
||||
|
|
||||
|
</style> |
||||
|
</head> |
||||
|
<body> |
||||
|
<div class="document" id="add-new-options-for-many2one-field"> |
||||
|
<h1 class="title">Add new options for many2one field</h1> |
||||
|
|
||||
|
<div class="section" id="description"> |
||||
|
<h1>Description</h1> |
||||
|
<p>This modules modifies "many2one" and "many2manytags" form widgets so as to add some new display |
||||
|
control options.</p> |
||||
|
<p><strong>New: support many2manytags widget !</strong></p> |
||||
|
<p><strong>New: support global option management with ir.config_parameter !</strong></p> |
||||
|
<p>Options provided includes possibility to remove "Create..." and/or "Create and |
||||
|
Edit..." entries from many2one drop down. You can also change default number of |
||||
|
proposition appearing in the drop-down. Or prevent the dialog box poping in |
||||
|
case of validation error.</p> |
||||
|
<p>If not specified, the module will avoid proposing any of the create options |
||||
|
if the current user have no permission rights to create the related object.</p> |
||||
|
</div> |
||||
|
<div class="section" id="requirements"> |
||||
|
<h1>Requirements</h1> |
||||
|
<p>Was tested on openerp 8.0, trunk, saas-5 branch. New way to import js file. (thanks to tfossoul)</p> |
||||
|
</div> |
||||
|
<div class="section" id="new-options"> |
||||
|
<h1>New options</h1> |
||||
|
<p><tt class="docutils literal">create</tt> <em>boolean</em> (Default: depends if user have create rights)</p> |
||||
|
<blockquote> |
||||
|
Whether to display the "Create..." entry in dropdown panel.</blockquote> |
||||
|
<p><tt class="docutils literal">create_edit</tt> <em>boolean</em> (Default: depends if user have create rights)</p> |
||||
|
<blockquote> |
||||
|
Whether to display "Create and Edit..." entry in dropdown panel</blockquote> |
||||
|
<p><tt class="docutils literal">m2o_dialog</tt> <em>boolean</em> (Default: depends if user have create rights)</p> |
||||
|
<blockquote> |
||||
|
Whether to display the many2one dialog in case of validation error.</blockquote> |
||||
|
<p><tt class="docutils literal">limit</tt> <em>int</em> (Default: openerp default value is <tt class="docutils literal">7</tt>)</p> |
||||
|
<blockquote> |
||||
|
Number of displayed record in drop-down panel</blockquote> |
||||
|
</div> |
||||
|
<div class="section" id="ir-config-parameter-options"> |
||||
|
<h1>ir.config_parameter options</h1> |
||||
|
<p>Now you can disable "Create..." and "Create and Edit..." entry for all widgets in the odoo instance. |
||||
|
If you disable one option, you can enable it for particular field by setting "create: True" option directly on the field definition.</p> |
||||
|
<p><tt class="docutils literal">web_m2x_options.create</tt> <em>boolean</em> (Default: depends if user have create rights)</p> |
||||
|
<blockquote> |
||||
|
Whether to display the "Create..." entry in dropdown panel for all fields in the odoo instance.</blockquote> |
||||
|
<p><tt class="docutils literal">web_m2x_options.create_edit</tt> <em>boolean</em> (Default: depends if user have create rights)</p> |
||||
|
<blockquote> |
||||
|
Whether to display "Create and Edit..." entry in dropdown panel for all fields in the odoo instance.</blockquote> |
||||
|
<p><tt class="docutils literal">web_m2x_options.limit</tt> <em>int</em> (Default: openerp default value is <tt class="docutils literal">7</tt>)</p> |
||||
|
<blockquote> |
||||
|
Number of displayed record in drop-down panel for all fields in the odoo instance</blockquote> |
||||
|
<p>To add these parameters go to Configuration -> Technical -> Parameters -> System Parameters and add new parameters like:</p> |
||||
|
<ul class="simple"> |
||||
|
<li>web_m2x_options.create: False</li> |
||||
|
<li>web_m2x_options.create_edit: False</li> |
||||
|
<li>web_m2x_options.limit: 10</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
<div class="section" id="example"> |
||||
|
<h1>Example</h1> |
||||
|
<p>Your XML form view definition could contain:</p> |
||||
|
<pre class="literal-block"> |
||||
|
... |
||||
|
<field name="partner_id" options="{'limit': 10, 'create': false, 'create_edit': false}"/> |
||||
|
... |
||||
|
</pre> |
||||
|
</div> |
||||
|
<div class="section" id="note"> |
||||
|
<h1>Note</h1> |
||||
|
<p>Double check that you have no inherited view that remote <tt class="docutils literal">options</tt> you set on a field ! |
||||
|
If nothing work, add a debugger in the first ligne of <tt class="docutils literal">get_search_result method</tt> and enable debug mode in OpenERP. When you write something in a many2one field, javascript debugger should pause. If not verify your installation.</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,377 @@ |
|||||
|
/* Copyright 2016 0k.io,ACSONE SA/NV |
||||
|
* * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
|
||||
|
|
||||
|
odoo.define('web_m2x_options.web_m2x_options', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var core = require('web.core'), |
||||
|
data = require('web.data'), |
||||
|
Dialog = require('web.Dialog'), |
||||
|
view_dialogs = require('web.view_dialogs'), |
||||
|
relational_fields = require('web.relational_fields'), |
||||
|
rpc = require('web.rpc'); |
||||
|
|
||||
|
var _t = core._t, |
||||
|
FieldMany2ManyTags = relational_fields.FieldMany2ManyTags, |
||||
|
FieldMany2One = relational_fields.FieldMany2One, |
||||
|
FormFieldMany2ManyTags = relational_fields.FormFieldMany2ManyTags; |
||||
|
|
||||
|
var web_m2x_options = rpc.query({ |
||||
|
model: "ir.config_parameter", |
||||
|
method: 'get_web_m2x_options', |
||||
|
}); |
||||
|
|
||||
|
var M2ODialog = Dialog.extend({ |
||||
|
template: "M2ODialog", |
||||
|
init: function (parent, name, value) { |
||||
|
this.name = name; |
||||
|
this.value = value; |
||||
|
this._super(parent, { |
||||
|
title: _.str.sprintf(_t("Create a %s"), this.name), |
||||
|
size: 'medium', |
||||
|
buttons: [{ |
||||
|
text: _t('Create'), |
||||
|
classes: 'btn-primary', |
||||
|
click: function () { |
||||
|
if (this.$("input").val() !== '') { |
||||
|
this.trigger_up('quick_create', {value: this.$('input').val()}); |
||||
|
this.close(true); |
||||
|
} else { |
||||
|
this.$("input").focus(); |
||||
|
} |
||||
|
}, |
||||
|
}, { |
||||
|
text: _t('Create and edit'), |
||||
|
classes: 'btn-primary', |
||||
|
close: true, |
||||
|
click: function () { |
||||
|
this.trigger_up('search_create_popup', { |
||||
|
view_type: 'form', |
||||
|
value: this.$('input').val(), |
||||
|
}); |
||||
|
}, |
||||
|
}, { |
||||
|
text: _t('Cancel'), |
||||
|
close: true, |
||||
|
}], |
||||
|
}); |
||||
|
}, |
||||
|
start: function () { |
||||
|
this.$("p").text(_.str.sprintf(_t("You are creating a new %s, are you sure it does not exist yet?"), this.name)); |
||||
|
this.$("input").val(this.value); |
||||
|
}, |
||||
|
/** |
||||
|
* @override |
||||
|
* @param {boolean} isSet |
||||
|
*/ |
||||
|
close: function (isSet) { |
||||
|
this.isSet = isSet; |
||||
|
this._super.apply(this, arguments); |
||||
|
}, |
||||
|
/** |
||||
|
* @override |
||||
|
*/ |
||||
|
destroy: function () { |
||||
|
if (!this.isSet) { |
||||
|
this.trigger_up('closed_unset'); |
||||
|
} |
||||
|
this._super.apply(this, arguments); |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
|
FieldMany2One.include({ |
||||
|
|
||||
|
start: function () { |
||||
|
this._super.apply(this, arguments); |
||||
|
return this.get_options(); |
||||
|
}, |
||||
|
|
||||
|
get_options: function () { |
||||
|
var self = this; |
||||
|
if (_.isUndefined(this.ir_options_loaded)) { |
||||
|
this.ir_options_loaded = $.Deferred(); |
||||
|
this.ir_options = {}; |
||||
|
web_m2x_options.done(function (records) { |
||||
|
_(records).each(function(record) { |
||||
|
self.ir_options[record.key] = record.value; |
||||
|
}); |
||||
|
self.ir_options_loaded.resolve(); |
||||
|
}); |
||||
|
} |
||||
|
return $.when(); |
||||
|
}, |
||||
|
|
||||
|
is_option_set: function (option) { |
||||
|
if (_.isUndefined(option)) |
||||
|
return false; |
||||
|
if (typeof option === 'string') |
||||
|
return option === 'true' || option === 'True'; |
||||
|
if (typeof option === 'boolean') |
||||
|
return option; |
||||
|
return false |
||||
|
}, |
||||
|
|
||||
|
_onInputFocusout: function () { |
||||
|
var m2o_dialog_opt = this.is_option_set(this.nodeOptions.m2o_dialog) || _.isUndefined(this.nodeOptions.m2o_dialog) && this.is_option_set(this.ir_options['web_m2x_options.m2o_dialog']) || _.isUndefined(this.nodeOptions.m2o_dialog) && _.isUndefined(this.ir_options['web_m2x_options.m2o_dialog']); |
||||
|
if (this.can_create && this.floating && m2o_dialog_opt) { |
||||
|
new M2ODialog(this, this.string, this.$input.val()).open(); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
_search: function (search_val) { |
||||
|
var self = this; |
||||
|
var def = $.Deferred(); |
||||
|
this.orderer.add(def); |
||||
|
|
||||
|
// add options limit used to change number of selections record
|
||||
|
// returned.
|
||||
|
if (!_.isUndefined(this.ir_options['web_m2x_options.limit'])) { |
||||
|
this.limit = parseInt(this.ir_options['web_m2x_options.limit'], 10); |
||||
|
} |
||||
|
|
||||
|
if (typeof this.nodeOptions.limit === 'number') { |
||||
|
this.limit = this.nodeOptions.limit; |
||||
|
} |
||||
|
|
||||
|
// add options field_color and colors to color item(s) depending on field_color value
|
||||
|
this.field_color = this.nodeOptions.field_color; |
||||
|
this.colors = this.nodeOptions.colors; |
||||
|
|
||||
|
var context = this.record.getContext(this.recordParams); |
||||
|
var domain = this.record.getDomain(this.recordParams); |
||||
|
|
||||
|
var blacklisted_ids = this._getSearchBlacklist(); |
||||
|
if (blacklisted_ids.length > 0) { |
||||
|
domain.push(['id', 'not in', blacklisted_ids]); |
||||
|
} |
||||
|
|
||||
|
this._rpc({ |
||||
|
model: this.field.relation, |
||||
|
method: "name_search", |
||||
|
kwargs: { |
||||
|
name: search_val, |
||||
|
args: domain, |
||||
|
operator: "ilike", |
||||
|
limit: this.limit + 1, |
||||
|
context: context, |
||||
|
} |
||||
|
}).then(function (result) { |
||||
|
// possible selections for the m2o
|
||||
|
var values = _.map(result, function (x) { |
||||
|
x[1] = self._getDisplayName(x[1]); |
||||
|
return { |
||||
|
label: _.str.escapeHTML(x[1].trim()) || data.noDisplayContent, |
||||
|
value: x[1], |
||||
|
name: x[1], |
||||
|
id: x[0], |
||||
|
}; |
||||
|
}); |
||||
|
|
||||
|
// Search result value colors
|
||||
|
if (self.colors && self.field_color) { |
||||
|
var value_ids = []; |
||||
|
for (var index in values) { |
||||
|
value_ids.push(values[index].id); |
||||
|
} |
||||
|
self._rpc({ |
||||
|
model: self.field.relation, |
||||
|
method: 'search_read', |
||||
|
fields: [self.field_color], |
||||
|
domain: [['id', 'in', value_ids]] |
||||
|
}).then(function (objects) { |
||||
|
for (var index in objects) { |
||||
|
for (var index_value in values) { |
||||
|
if (values[index_value].id == objects[index].id) { |
||||
|
// Find value in values by comparing ids
|
||||
|
var value = values[index_value]; |
||||
|
// Find color with field value as key
|
||||
|
var color = self.colors[objects[index][self.field_color]] || 'black'; |
||||
|
value.label = '<span style="color:' + color + '">' + value.label + '</span>'; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
def.resolve(values); |
||||
|
}) |
||||
|
|
||||
|
} |
||||
|
|
||||
|
// search more... if more results that max
|
||||
|
var can_search_more = (self.nodeOptions && self.is_option_set(self.nodeOptions.search_more)), |
||||
|
search_more_undef = _.isUndefined(self.nodeOptions.search_more) && _.isUndefined(self.ir_options['web_m2x_options.search_more']), |
||||
|
search_more = self.is_option_set(self.ir_options['web_m2x_options.search_more']); |
||||
|
|
||||
|
if (values.length > self.limit) { |
||||
|
values = values.slice(0, self.limit); |
||||
|
if (can_search_more || search_more_undef || search_more) { |
||||
|
values.push({ |
||||
|
label: _t("Search More..."), |
||||
|
action: function () { |
||||
|
// limit = 80 for improving performance, similar
|
||||
|
// to Odoo implementation here:
|
||||
|
// https://github.com/odoo/odoo/commit/8c3cdce539d87775b59b3f2d5ceb433f995821bf
|
||||
|
self._rpc({ |
||||
|
model: self.field.relation, |
||||
|
method: 'name_search', |
||||
|
kwargs: { |
||||
|
name: search_val, |
||||
|
args: domain, |
||||
|
operator: "ilike", |
||||
|
limit: 80, |
||||
|
context: context, |
||||
|
}, |
||||
|
}) |
||||
|
.then(self._searchCreatePopup.bind(self, "search")); |
||||
|
}, |
||||
|
classname: 'o_m2o_dropdown_option', |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
var create_enabled = self.can_create && !self.nodeOptions.no_create; |
||||
|
// quick create
|
||||
|
var raw_result = _.map(result, function (x) { return x[1]; }); |
||||
|
var quick_create = self.is_option_set(self.nodeOptions.create), |
||||
|
quick_create_undef = _.isUndefined(self.nodeOptions.create), |
||||
|
m2x_create_undef = _.isUndefined(self.ir_options['web_m2x_options.create']), |
||||
|
m2x_create = self.is_option_set(self.ir_options['web_m2x_options.create']); |
||||
|
var show_create = (!self.nodeOptions && (m2x_create_undef || m2x_create)) || (self.nodeOptions && (quick_create || (quick_create_undef && (m2x_create_undef || m2x_create)))); |
||||
|
if (create_enabled && !self.nodeOptions.no_quick_create && |
||||
|
search_val.length > 0 && !_.contains(raw_result, search_val) && |
||||
|
show_create) { |
||||
|
values.push({ |
||||
|
label: _.str.sprintf(_t('Create "<strong>%s</strong>"'), |
||||
|
$('<span />').text(search_val).html()), |
||||
|
action: self._quickCreate.bind(self, search_val), |
||||
|
classname: 'o_m2o_dropdown_option' |
||||
|
}); |
||||
|
} |
||||
|
// create and edit ...
|
||||
|
|
||||
|
var create_edit = self.is_option_set(self.nodeOptions.create) || self.is_option_set(self.nodeOptions.create_edit), |
||||
|
create_edit_undef = _.isUndefined(self.nodeOptions.create) && _.isUndefined(self.nodeOptions.create_edit), |
||||
|
m2x_create_edit_undef = _.isUndefined(self.ir_options['web_m2x_options.create_edit']), |
||||
|
m2x_create_edit = self.is_option_set(self.ir_options['web_m2x_options.create_edit']); |
||||
|
var show_create_edit = (!self.nodeOptions && (m2x_create_edit_undef || m2x_create_edit)) || (self.nodeOptions && (create_edit || (create_edit_undef && (m2x_create_edit_undef || m2x_create_edit)))); |
||||
|
if (create_enabled && !self.nodeOptions.no_create_edit && show_create_edit) { |
||||
|
var createAndEditAction = function () { |
||||
|
// Clear the value in case the user clicks on discard
|
||||
|
self.$('input').val(''); |
||||
|
return self._searchCreatePopup("form", false, self._createContext(search_val)); |
||||
|
}; |
||||
|
values.push({ |
||||
|
label: _t("Create and Edit..."), |
||||
|
action: createAndEditAction, |
||||
|
classname: 'o_m2o_dropdown_option', |
||||
|
}); |
||||
|
} else if (values.length === 0) { |
||||
|
values.push({ |
||||
|
label: _t("No results to show..."), |
||||
|
}); |
||||
|
} |
||||
|
// Check if colors specified to wait for RPC
|
||||
|
if (!(self.field_color && self.colors)) { |
||||
|
def.resolve(values); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
return def; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
FieldMany2ManyTags.include({ |
||||
|
events: _.extend({}, FieldMany2ManyTags.prototype.events, { |
||||
|
'click .badge': '_onOpenBadge', |
||||
|
}), |
||||
|
|
||||
|
_onDeleteTag: function (event) { |
||||
|
var result = this._super.apply(this, arguments); |
||||
|
event.stopPropagation(); |
||||
|
return result; |
||||
|
}, |
||||
|
|
||||
|
is_option_set: function (option) { |
||||
|
if (_.isUndefined(option)) |
||||
|
return false; |
||||
|
if (typeof option === 'string') |
||||
|
return option === 'true' || option === 'True'; |
||||
|
if (typeof option === 'boolean') |
||||
|
return option; |
||||
|
return false |
||||
|
}, |
||||
|
|
||||
|
_onOpenBadge: function (event) { |
||||
|
var self = this; |
||||
|
var open = (self.nodeOptions && self.is_option_set(self.nodeOptions.open)); |
||||
|
if (open) { |
||||
|
var context = self.record.getContext(self.recordParams); |
||||
|
var id = parseInt($(event.currentTarget).data('id'), 10); |
||||
|
|
||||
|
if (self.mode === 'readonly') { |
||||
|
event.preventDefault(); |
||||
|
event.stopPropagation(); |
||||
|
self._rpc({ |
||||
|
model: self.field.relation, |
||||
|
method: 'get_formview_action', |
||||
|
args: [[id]], |
||||
|
context: context, |
||||
|
}) |
||||
|
.then(function (action) { |
||||
|
self.trigger_up('do_action', {action: action}); |
||||
|
}); |
||||
|
} |
||||
|
else { |
||||
|
$.when( |
||||
|
self._rpc({ |
||||
|
model: self.field.relation, |
||||
|
method: 'get_formview_id', |
||||
|
args: [[id]], |
||||
|
context: context, |
||||
|
}), |
||||
|
self._rpc({ |
||||
|
model: self.field.relation, |
||||
|
method: 'check_access_rights', |
||||
|
kwargs: {operation: 'write', raise_exception: false} |
||||
|
}) |
||||
|
).then(function (view_id, write_access) { |
||||
|
var can_write = 'can_write' in self.attrs ? JSON.parse(self.attrs.can_write) : true; |
||||
|
new view_dialogs.FormViewDialog(self, { |
||||
|
res_model: self.field.relation, |
||||
|
res_id: id, |
||||
|
context: context, |
||||
|
title: _t("Open: ") + self.string, |
||||
|
view_id: view_id, |
||||
|
readonly: !can_write || !write_access, |
||||
|
on_saved: function (record, changed) { |
||||
|
if (changed) { |
||||
|
self._setValue(self.value.data, {forceChange: true}); |
||||
|
self.trigger_up('reload', {db_id: self.value.id}); |
||||
|
} |
||||
|
}, |
||||
|
}).open(); |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
|
FormFieldMany2ManyTags.include({ |
||||
|
events: _.extend({}, FormFieldMany2ManyTags.prototype.events, { |
||||
|
'click .badge': '_onOpenBadge', |
||||
|
}), |
||||
|
|
||||
|
_onOpenBadge: function (event) { |
||||
|
var open = this.is_option_set(this.nodeOptions.open); |
||||
|
var no_color_picker = this.is_option_set( |
||||
|
this.nodeOptions.no_color_picker |
||||
|
); |
||||
|
this._super.apply(this, arguments); |
||||
|
if (!open && !no_color_picker) { |
||||
|
this._onOpenColorPicker(event); |
||||
|
} else { |
||||
|
event.preventDefault(); |
||||
|
event.stopPropagation(); |
||||
|
} |
||||
|
}, |
||||
|
}); |
||||
|
}); |
@ -0,0 +1,13 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!-- Copyright 2017 Jairo Llopis <jairo.llopis@tecnativa.com> |
||||
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> |
||||
|
|
||||
|
<templates xml:space="preserve"> |
||||
|
<t t-extend="FieldMany2One"> |
||||
|
<t t-jquery=".o_external_button" t-operation="attributes"> |
||||
|
<attribute name="t-if"> |
||||
|
!(widget.nodeOptions.no_open || widget.nodeOptions.no_open_edit) |
||||
|
</attribute> |
||||
|
</t> |
||||
|
</t> |
||||
|
</templates> |
@ -0,0 +1,12 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
|
||||
|
<template id="assets_backend" name="m2x options assets" |
||||
|
inherit_id="web.assets_backend"> |
||||
|
<xpath expr="." position="inside"> |
||||
|
<script type="text/javascript" |
||||
|
src="/web_m2x_options/static/src/js/form.js"></script> |
||||
|
</xpath> |
||||
|
</template> |
||||
|
|
||||
|
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue