From 5840f3990595c11040ebc4d8acd7a0c0900e68c5 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 15 Dec 2016 13:42:15 +0100 Subject: [PATCH 01/28] [FIX] web_dialog_size: Switch author --- web_dialog_size/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_dialog_size/__openerp__.py b/web_dialog_size/__openerp__.py index 7c5696f0..7eaa0418 100644 --- a/web_dialog_size/__openerp__.py +++ b/web_dialog_size/__openerp__.py @@ -29,7 +29,7 @@ dialog box to the full screen width.""", 'author': "ACSONE SA/NV, " - "Serv. Tecnol. Avanzados - Pedro M. Baeza, " + "Tecnativa, " "Therp BV, " "Odoo Community Association (OCA), " "Siddharth Bhalgami", From 8eda9300ef641eb014dad7e9e903d91e11788524 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Sat, 24 Dec 2016 01:43:39 -0500 Subject: [PATCH 02/28] OCA Transbot updated translations from Transifex --- web_responsive/i18n/es.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/web_responsive/i18n/es.po b/web_responsive/i18n/es.po index f07aa9c9..bbe9a20f 100644 --- a/web_responsive/i18n/es.po +++ b/web_responsive/i18n/es.po @@ -3,13 +3,14 @@ # * web_responsive # # Translators: +# OCA Transbot , 2016 # Pedro M. Baeza , 2016 msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 03:40+0000\n" -"PO-Revision-Date: 2016-11-23 03:40+0000\n" +"POT-Creation-Date: 2016-12-15 12:44+0000\n" +"PO-Revision-Date: 2016-12-15 12:44+0000\n" "Last-Translator: Pedro M. Baeza , 2016\n" "Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" "MIME-Version: 1.0\n" @@ -26,12 +27,12 @@ msgstr "Mostrar/ocultar selector de aplicaciones" #. module: web_responsive #: model:ir.ui.view,arch_db:web_responsive.webclient_bootstrap msgid "Toggle Navigation" -msgstr "" +msgstr "Mostrar/Ocultar navegación" #. module: web_responsive #: model:ir.ui.view,arch_db:web_responsive.menu msgid "Apps" -msgstr "" +msgstr "Aplicaciones" #. module: web_responsive #: model:ir.ui.view,arch_db:web_responsive.menu From 00119d92d15861873924aa8cc8fedd0554cca1ac Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Wed, 4 Jan 2017 19:45:40 +0100 Subject: [PATCH 03/28] [9.0][FIX][web_export_view] ReferenceError: instance is not defined (#515) There was a bug that could be easily reproduced by: 1. Go to *Sales > Products*. 2. Choose list view. 3. Select all. 4. *Export current view > Excel*. It raised this message to the user: ReferenceError: instance is not defined This is all due to a wrong migration from v8 code. `instance` exists no more in v9, instead we need to use some methods and variables from correct modules. --- web_export_view/__openerp__.py | 2 +- web_export_view/static/src/js/web_export_view.js | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/web_export_view/__openerp__.py b/web_export_view/__openerp__.py index a1f9efcc..19657ea2 100644 --- a/web_export_view/__openerp__.py +++ b/web_export_view/__openerp__.py @@ -5,7 +5,7 @@ { 'name': 'Export Current View', - 'version': '9.0.1.0.0', + 'version': '9.0.1.0.1', 'category': 'Web', 'author': "Agile Business Group,Odoo Community Association (OCA)", 'website': 'http://www.agilebg.com', diff --git a/web_export_view/static/src/js/web_export_view.js b/web_export_view/static/src/js/web_export_view.js index ae8c800b..0f838f69 100644 --- a/web_export_view/static/src/js/web_export_view.js +++ b/web_export_view/static/src/js/web_export_view.js @@ -7,6 +7,7 @@ odoo.define('web_export_view.Sidebar', function (require) { "use strict"; var core = require('web.core'); +var formats = require('web.formats'); var Sidebar = require('web.Sidebar'); var _t = core._t; @@ -75,7 +76,9 @@ Sidebar.include({ var cell = $row.find('td[data-field="' + this + '"]').get(0); var text = cell.text || cell.textContent || cell.innerHTML || ""; if (cell.classList.contains("oe_list_field_float")) { - export_row.push(instance.web.parse_value(text, {'type': "float"})); + export_row.push( + formats.parse_value(text, {'type': "float"}) + ); } else if (cell.classList.contains("oe_list_field_boolean")) { var data_id = $('
' + cell.innerHTML + '
'); @@ -90,7 +93,10 @@ Sidebar.include({ var tmp2 = text; do { tmp = tmp2; - tmp2 = tmp.replace(instance.web._t.database.parameters.thousands_sep, ""); + tmp2 = tmp.replace( + _t.database.parameters.thousands_sep, + "" + ); } while (tmp !== tmp2); export_row.push(parseInt(tmp2)); @@ -116,4 +122,3 @@ Sidebar.include({ }); }); - From 3d5db75da5a5328ae8f32fb6488739088d5d4813 Mon Sep 17 00:00:00 2001 From: OCA Git Bot Date: Thu, 5 Jan 2017 02:34:27 +0100 Subject: [PATCH 04/28] [UPD] addons table in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2cfe34b9..5c4c0850 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ addon | version | summary [web_duplicate_visibility](web_duplicate_visibility/) | 9.0.1.0.1 | Manage the duplicate button visibiliy [web_easy_switch_company](web_easy_switch_company/) | 9.0.1.0.0 | Multicompany - Easy Switch Company [web_environment_ribbon](web_environment_ribbon/) | 9.0.1.0.0 | Web Environment Ribbon -[web_export_view](web_export_view/) | 9.0.1.0.0 | Export Current View +[web_export_view](web_export_view/) | 9.0.1.0.1 | Export Current View [web_favicon](web_favicon/) | 9.0.1.0.0 | Allows to set a custom shortcut icon (aka favicon) [web_hide_db_manager_link](web_hide_db_manager_link/) | 9.0.1.0.0 | Hide link to database manager in login screen [web_m2x_options](web_m2x_options/) | 9.0.1.0.0 | web_m2x_options From f20f51c3bf3342540b8ac111049de076f5eb98b8 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Sat, 7 Jan 2017 03:30:40 -0500 Subject: [PATCH 05/28] OCA Transbot updated translations from Transifex --- web_export_view/i18n/de.po | 10 ++--- web_export_view/i18n/es.po | 10 ++--- web_export_view/i18n/fr.po | 10 ++--- web_export_view/i18n/is.po | 10 ++--- web_export_view/i18n/nl.po | 10 ++--- web_export_view/i18n/sl.po | 10 ++--- web_m2x_options/i18n/es.po | 17 +++---- web_tree_dynamic_colored_field/i18n/es.po | 26 +++++++++++ web_widget_image_webcam/i18n/es.po | 54 +++++++++++++++++++++++ web_x2many_delete_all/i18n/es.po | 27 ++++++++++++ 10 files changed, 146 insertions(+), 38 deletions(-) create mode 100644 web_tree_dynamic_colored_field/i18n/es.po create mode 100644 web_widget_image_webcam/i18n/es.po create mode 100644 web_x2many_delete_all/i18n/es.po diff --git a/web_export_view/i18n/de.po b/web_export_view/i18n/de.po index 9e5c00e1..40205f18 100644 --- a/web_export_view/i18n/de.po +++ b/web_export_view/i18n/de.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 03:40+0000\n" -"PO-Revision-Date: 2016-11-23 03:40+0000\n" +"POT-Creation-Date: 2017-01-05 01:38+0000\n" +"PO-Revision-Date: 2017-01-05 01:38+0000\n" "Last-Translator: OCA Transbot , 2016\n" "Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" "MIME-Version: 1.0\n" @@ -20,21 +20,21 @@ msgstr "" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:20 +#: code:addons/web_export_view/static/src/js/web_export_view.js:21 #, python-format msgid "Export Current View" msgstr "Aktuelle Liste exportieren" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:86 +#: code:addons/web_export_view/static/src/js/web_export_view.js:89 #, python-format msgid "False" msgstr "" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:83 +#: code:addons/web_export_view/static/src/js/web_export_view.js:86 #, python-format msgid "True" msgstr "" diff --git a/web_export_view/i18n/es.po b/web_export_view/i18n/es.po index 81c848fc..5aa34eb6 100644 --- a/web_export_view/i18n/es.po +++ b/web_export_view/i18n/es.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 03:40+0000\n" -"PO-Revision-Date: 2016-11-23 03:40+0000\n" +"POT-Creation-Date: 2017-01-05 01:38+0000\n" +"PO-Revision-Date: 2017-01-05 01:38+0000\n" "Last-Translator: OCA Transbot , 2016\n" "Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" "MIME-Version: 1.0\n" @@ -20,21 +20,21 @@ msgstr "" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:20 +#: code:addons/web_export_view/static/src/js/web_export_view.js:21 #, python-format msgid "Export Current View" msgstr "Exportar vista actual" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:86 +#: code:addons/web_export_view/static/src/js/web_export_view.js:89 #, python-format msgid "False" msgstr "Falso" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:83 +#: code:addons/web_export_view/static/src/js/web_export_view.js:86 #, python-format msgid "True" msgstr "Verdadero" diff --git a/web_export_view/i18n/fr.po b/web_export_view/i18n/fr.po index 0cecc981..234bc228 100644 --- a/web_export_view/i18n/fr.po +++ b/web_export_view/i18n/fr.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 03:40+0000\n" -"PO-Revision-Date: 2016-11-23 03:40+0000\n" +"POT-Creation-Date: 2017-01-05 01:38+0000\n" +"PO-Revision-Date: 2017-01-05 01:38+0000\n" "Last-Translator: OCA Transbot , 2016\n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" "MIME-Version: 1.0\n" @@ -20,21 +20,21 @@ msgstr "" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:20 +#: code:addons/web_export_view/static/src/js/web_export_view.js:21 #, python-format msgid "Export Current View" msgstr "Exporter la vue courante" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:86 +#: code:addons/web_export_view/static/src/js/web_export_view.js:89 #, python-format msgid "False" msgstr "" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:83 +#: code:addons/web_export_view/static/src/js/web_export_view.js:86 #, python-format msgid "True" msgstr "" diff --git a/web_export_view/i18n/is.po b/web_export_view/i18n/is.po index ac230776..6d5f2fdd 100644 --- a/web_export_view/i18n/is.po +++ b/web_export_view/i18n/is.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 03:40+0000\n" -"PO-Revision-Date: 2016-11-23 03:40+0000\n" +"POT-Creation-Date: 2017-01-05 01:38+0000\n" +"PO-Revision-Date: 2017-01-05 01:38+0000\n" "Last-Translator: OCA Transbot , 2016\n" "Language-Team: Icelandic (https://www.transifex.com/oca/teams/23907/is/)\n" "MIME-Version: 1.0\n" @@ -20,21 +20,21 @@ msgstr "" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:20 +#: code:addons/web_export_view/static/src/js/web_export_view.js:21 #, python-format msgid "Export Current View" msgstr "Flytja út núverandi sýn" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:86 +#: code:addons/web_export_view/static/src/js/web_export_view.js:89 #, python-format msgid "False" msgstr "" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:83 +#: code:addons/web_export_view/static/src/js/web_export_view.js:86 #, python-format msgid "True" msgstr "" diff --git a/web_export_view/i18n/nl.po b/web_export_view/i18n/nl.po index 8f248391..7153535a 100644 --- a/web_export_view/i18n/nl.po +++ b/web_export_view/i18n/nl.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 03:40+0000\n" -"PO-Revision-Date: 2016-11-23 03:40+0000\n" +"POT-Creation-Date: 2017-01-05 01:38+0000\n" +"PO-Revision-Date: 2017-01-05 01:38+0000\n" "Last-Translator: OCA Transbot , 2016\n" "Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" "MIME-Version: 1.0\n" @@ -20,21 +20,21 @@ msgstr "" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:20 +#: code:addons/web_export_view/static/src/js/web_export_view.js:21 #, python-format msgid "Export Current View" msgstr "Huidige lijst exporteren" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:86 +#: code:addons/web_export_view/static/src/js/web_export_view.js:89 #, python-format msgid "False" msgstr "" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:83 +#: code:addons/web_export_view/static/src/js/web_export_view.js:86 #, python-format msgid "True" msgstr "" diff --git a/web_export_view/i18n/sl.po b/web_export_view/i18n/sl.po index e8dcb6f0..f5d7e548 100644 --- a/web_export_view/i18n/sl.po +++ b/web_export_view/i18n/sl.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 03:40+0000\n" -"PO-Revision-Date: 2016-11-23 03:40+0000\n" +"POT-Creation-Date: 2017-01-05 01:38+0000\n" +"PO-Revision-Date: 2017-01-05 01:38+0000\n" "Last-Translator: OCA Transbot , 2016\n" "Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" "MIME-Version: 1.0\n" @@ -20,21 +20,21 @@ msgstr "" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:20 +#: code:addons/web_export_view/static/src/js/web_export_view.js:21 #, python-format msgid "Export Current View" msgstr "Izvoz trenutnega pogleda" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:86 +#: code:addons/web_export_view/static/src/js/web_export_view.js:89 #, python-format msgid "False" msgstr "Nepravilno" #. module: web_export_view #. openerp-web -#: code:addons/web_export_view/static/src/js/web_export_view.js:83 +#: code:addons/web_export_view/static/src/js/web_export_view.js:86 #, python-format msgid "True" msgstr "Pravilno" diff --git a/web_m2x_options/i18n/es.po b/web_m2x_options/i18n/es.po index 3df9ae16..c6c0f90c 100644 --- a/web_m2x_options/i18n/es.po +++ b/web_m2x_options/i18n/es.po @@ -4,13 +4,14 @@ # # Translators: # OCA Transbot , 2016 +# Pedro M. Baeza , 2017 msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 03:40+0000\n" -"PO-Revision-Date: 2016-11-23 03:40+0000\n" -"Last-Translator: OCA Transbot , 2016\n" +"POT-Creation-Date: 2017-01-05 01:38+0000\n" +"PO-Revision-Date: 2017-01-05 01:38+0000\n" +"Last-Translator: Pedro M. Baeza , 2017\n" "Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,14 +24,14 @@ msgstr "" #: code:addons/web_m2x_options/static/src/js/form.js:49 #, python-format msgid "Cancel" -msgstr "" +msgstr "Cancelar" #. module: web_m2x_options #. openerp-web #: code:addons/web_m2x_options/static/src/js/form.js:35 #, python-format msgid "Create" -msgstr "" +msgstr "Crear" #. module: web_m2x_options #. openerp-web @@ -45,7 +46,7 @@ msgstr "Crear \"%s\"" #: code:addons/web_m2x_options/static/src/js/form.js:32 #, python-format msgid "Create a %s" -msgstr "" +msgstr "Crear un %s" #. module: web_m2x_options #. openerp-web @@ -60,7 +61,7 @@ msgstr "Crear y editar..." #: code:addons/web_m2x_options/static/src/js/form.js:45 #, python-format msgid "Create and edit" -msgstr "" +msgstr "Crear y editar" #. module: web_m2x_options #. openerp-web @@ -75,4 +76,4 @@ msgstr "Buscar más..." #: code:addons/web_m2x_options/static/src/js/form.js:54 #, python-format msgid "You are creating a new %s, are you sure it does not exist yet?" -msgstr "" +msgstr "Está creando un nuevo %s, ¿está seguro de no existe ya?" diff --git a/web_tree_dynamic_colored_field/i18n/es.po b/web_tree_dynamic_colored_field/i18n/es.po new file mode 100644 index 00000000..6e6aeff9 --- /dev/null +++ b/web_tree_dynamic_colored_field/i18n/es.po @@ -0,0 +1,26 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_tree_dynamic_colored_field +# +# Translators: +# Pedro M. Baeza , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-05 01:38+0000\n" +"PO-Revision-Date: 2017-01-05 01:38+0000\n" +"Last-Translator: Pedro M. Baeza , 2017\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: web_tree_dynamic_colored_field +#. openerp-web +#: code:addons/web_tree_dynamic_colored_field/static/src/xml/web_tree_dynamic_colored_field.xml:7 +#, python-format +msgid "columns.fct_colorize(record, column)" +msgstr "columns.fct_colorize(record, column)" diff --git a/web_widget_image_webcam/i18n/es.po b/web_widget_image_webcam/i18n/es.po new file mode 100644 index 00000000..80ad0f19 --- /dev/null +++ b/web_widget_image_webcam/i18n/es.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_widget_image_webcam +# +# Translators: +# Pedro M. Baeza , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-05 01:38+0000\n" +"PO-Revision-Date: 2017-01-05 01:38+0000\n" +"Last-Translator: Pedro M. Baeza , 2017\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:98 +#, python-format +msgid "Close" +msgstr "Cerrar" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:74 +#, python-format +msgid "Save & Close" +msgstr "Guardar y cerrar" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:62 +#, python-format +msgid "Take Snapshot" +msgstr "Capturar instantánea" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/xml/web_widget_image_webcam.xml:8 +#, python-format +msgid "WebCam" +msgstr "WebCam" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:58 +#, python-format +msgid "WebCam Booth" +msgstr "Soporte de WebCam" diff --git a/web_x2many_delete_all/i18n/es.po b/web_x2many_delete_all/i18n/es.po new file mode 100644 index 00000000..c64dcbd7 --- /dev/null +++ b/web_x2many_delete_all/i18n/es.po @@ -0,0 +1,27 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_x2many_delete_all +# +# Translators: +# Pedro M. Baeza , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-05 01:38+0000\n" +"PO-Revision-Date: 2017-01-05 01:38+0000\n" +"Last-Translator: Pedro M. Baeza , 2017\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: web_x2many_delete_all +#. openerp-web +#: code:addons/web_x2many_delete_all/static/src/xml/web_x2many_delete_all.xml:8 +#: code:addons/web_x2many_delete_all/static/src/xml/web_x2many_delete_all.xml:13 +#, python-format +msgid "Delete all" +msgstr "Eliminar todo" From 7208ce3156494a6033739ae4006c8eb603405769 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Mon, 9 Jan 2017 12:38:28 +0100 Subject: [PATCH 06/28] [9.0][FIX][web_widget_x2many_2d_matrix] Correctly bind events. Event binding was applied in the wrong places, causing `xy_value_change()` never to be executed. --- .../static/src/js/web_widget_x2many_2d_matrix.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/web_widget_x2many_2d_matrix/static/src/js/web_widget_x2many_2d_matrix.js b/web_widget_x2many_2d_matrix/static/src/js/web_widget_x2many_2d_matrix.js index 8a51b3a6..f20b693f 100644 --- a/web_widget_x2many_2d_matrix/static/src/js/web_widget_x2many_2d_matrix.js +++ b/web_widget_x2many_2d_matrix/static/src/js/web_widget_x2many_2d_matrix.js @@ -16,6 +16,9 @@ odoo.define('web_widget_x2many_2d_matrix.widget', function (require) { var WidgetX2Many2dMatrix = FieldOne2Many.extend({ template: 'FieldX2Many2dMatrix', widget_class: 'oe_form_field_x2many_2d_matrix', + events: { + "change .edit": "xy_value_change", + }, // those will be filled with rows from the dataset by_x_axis: {}, @@ -144,8 +147,6 @@ odoo.define('web_widget_x2many_2d_matrix.widget', function (require) { self.renderElement(); self.compute_totals(); self.setup_many2one_axes(); - self.$el.find('.edit').on( - 'change', self.proxy(self.xy_value_change)); self.effective_readonly_change(); } }); @@ -347,8 +348,6 @@ odoo.define('web_widget_x2many_2d_matrix.widget', function (require) { start: function() { var self = this; - this.$el.find('.edit').on( - 'change', self.proxy(this.xy_value_change)); this.compute_totals(); this.setup_many2one_axes(); this.on("change:effective_readonly", From 17fe006c257ef2da41722a1c5e471ad125aa4d17 Mon Sep 17 00:00:00 2001 From: Laurent Mignon Date: Wed, 22 Jun 2016 11:34:15 +0200 Subject: [PATCH 07/28] [MIG] Migrate to 9.0 --- help_online/README.rst | 69 ++++++ help_online/__init__.py | 23 +- help_online/__openerp__.py | 51 +--- help_online/controllers/__init__.py | 22 +- .../controllers/help_online_controllers.py | 21 +- help_online/models/__init__.py | 24 +- help_online/models/help_online.py | 33 +-- help_online/models/import_help_wizard.py | 49 ---- help_online/models/ir_model.py | 40 +-- help_online/security/help_online_groups.xml | 32 +-- help_online/security/help_online_rules.xml | 60 +++-- help_online/static/src/css/help_online.css | 13 +- help_online/static/src/js/help_online.js | 175 ++++++------- .../src/js/website_help_online.editor.js | 21 -- help_online/static/src/xml/help_online.xml | 43 +++- help_online/tests/__init__.py | 30 +-- help_online/tests/common.py | 100 ++++++++ help_online/tests/data/help_test_data.xml | 2 +- help_online/tests/test_export_help_wizard.py | 121 ++------- help_online/tests/test_help_online.py | 58 +++++ help_online/tests/test_import_help_wizard.py | 59 +++++ help_online/views/export_help_wizard_view.xml | 52 ---- help_online/views/help_online_view.xml | 50 ++-- help_online/views/import_help_wizard_view.xml | 46 ---- help_online/views/ir_ui_view_view.xml | 48 ++-- help_online/views/website_help_online.xml | 12 - help_online/wizards/__init__.py | 6 + .../{models => wizards}/export_help_wizard.py | 231 ++++++++++-------- .../wizards/export_help_wizard_view.xml | 50 ++++ help_online/wizards/import_help_wizard.py | 53 ++++ .../wizards/import_help_wizard_view.xml | 43 ++++ setup/help_online/odoo_addons/__init__.py | 1 + setup/help_online/odoo_addons/help_online | 1 + setup/help_online/setup.py | 6 + 34 files changed, 840 insertions(+), 805 deletions(-) create mode 100644 help_online/README.rst delete mode 100644 help_online/models/import_help_wizard.py delete mode 100644 help_online/static/src/js/website_help_online.editor.js create mode 100644 help_online/tests/common.py create mode 100644 help_online/tests/test_help_online.py create mode 100644 help_online/tests/test_import_help_wizard.py delete mode 100644 help_online/views/export_help_wizard_view.xml delete mode 100644 help_online/views/import_help_wizard_view.xml delete mode 100644 help_online/views/website_help_online.xml create mode 100644 help_online/wizards/__init__.py rename help_online/{models => wizards}/export_help_wizard.py (56%) create mode 100644 help_online/wizards/export_help_wizard_view.xml create mode 100644 help_online/wizards/import_help_wizard.py create mode 100644 help_online/wizards/import_help_wizard_view.xml create mode 100644 setup/help_online/odoo_addons/__init__.py create mode 120000 setup/help_online/odoo_addons/help_online create mode 100644 setup/help_online/setup.py diff --git a/help_online/README.rst b/help_online/README.rst new file mode 100644 index 00000000..375c8514 --- /dev/null +++ b/help_online/README.rst @@ -0,0 +1,69 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +=========== +Help Online +=========== + + +This module allows the creation of an online help available from the lists +and forms in Odoo. + +When loading a view, the module generates a button allowing access to an help +page for the related model if the page exists and the user is member of the +group 'Help reader'. If the page doesn't exist and the user is member of +the group 'Help writer', the module generate a button allowing the creation an +help page. + +The help pages are created and managed via the website Module. + +Note: When updating the page prefix parameters, the record rules must be + adapted. + +Usage +===== + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/162/9.0 + + +Known issues / Roadmap +====================== + +Even if the generated urls to the documentation contains an anchor (website/hel-xx#view_type), +it's no more possible to insert/edit anchors elements into the website since this functionnality is not supported +by the new html editor in Odoo 9.0 (summernote). + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed feedback. + +Credits +======= + +Contributors +------------ + +* Laurent Mignon +* Jonathan Nemry +* Cédric Pigeon + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +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. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/help_online/__init__.py b/help_online/__init__.py index ccd23e28..4fc2e537 100644 --- a/help_online/__init__.py +++ b/help_online/__init__.py @@ -1,22 +1,7 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Authors: Nemry Jonathan -# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + from . import controllers from . import models +from . import wizards diff --git a/help_online/__openerp__.py b/help_online/__openerp__.py index d84efbd7..cf3440fd 100644 --- a/help_online/__openerp__.py +++ b/help_online/__openerp__.py @@ -1,65 +1,30 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Authors: Nemry Jonathan -# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + { 'name': 'Help Online', - 'version': '8.0.1.0.0', + 'version': '9.0.1.0.0', 'author': "ACSONE SA/NV,Odoo Community Association (OCA)", 'maintainer': 'ACSONE SA/NV', 'website': 'http://www.acsone.eu', + 'license': 'AGPL-3', 'category': 'Documentation', 'depends': [ 'base', 'website', ], - 'description': """ -Help Online -=========== - -This module allows the creation of an online help available from the lists -and forms in Odoo. - -When loading a view, the module generates a button allowing access to an help -page for the related model if the page exists and the user is member of the -group 'Help reader'. If the page doesn't exist and the user is member of -the group 'Help writer', the module generate a button allowing the creation an -help page. - -The help pages are created and managed via the website Module. - -Note: When updating the page prefix parameters, the record rules must be - adapted. - """, 'data': [ 'security/help_online_groups.xml', 'security/help_online_rules.xml', - 'views/export_help_wizard_view.xml', - 'views/import_help_wizard_view.xml', + 'wizards/export_help_wizard_view.xml', + 'wizards/import_help_wizard_view.xml', 'views/ir_ui_view_view.xml', 'views/help_online_view.xml', - 'views/website_help_online.xml', 'data/ir_config_parameter_data.xml', ], 'qweb': [ 'static/src/xml/help_online.xml', ], - 'installable': False, - 'auto_install': False, + 'installable': True, } diff --git a/help_online/controllers/__init__.py b/help_online/controllers/__init__.py index 287fdda2..46333083 100644 --- a/help_online/controllers/__init__.py +++ b/help_online/controllers/__init__.py @@ -1,21 +1,5 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Authors: Laurent Mignon -# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + from .import help_online_controllers diff --git a/help_online/controllers/help_online_controllers.py b/help_online/controllers/help_online_controllers.py index 12339b23..1dc8522e 100644 --- a/help_online/controllers/help_online_controllers.py +++ b/help_online/controllers/help_online_controllers.py @@ -1,23 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Authors: Laurent Mignon -# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). import openerp.http as http from openerp.http import request diff --git a/help_online/models/__init__.py b/help_online/models/__init__.py index 615fa9cc..e98044c5 100644 --- a/help_online/models/__init__.py +++ b/help_online/models/__init__.py @@ -1,24 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Authors: Nemry Jonathan -# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + from . import help_online -from . import export_help_wizard -from . import import_help_wizard from . import ir_model diff --git a/help_online/models/help_online.py b/help_online/models/help_online.py index 25e34fbb..975cba70 100644 --- a/help_online/models/help_online.py +++ b/help_online/models/help_online.py @@ -1,23 +1,7 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Authors: Laurent Mignon -# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + from openerp import models, exceptions from openerp.tools.translate import _ @@ -34,9 +18,9 @@ class HelpOnline(models.TransientModel): name = '%s-%s' % (page_prefix, model.replace('.', '-')) return name - def page_exists(self, name): - website_model = self.env['website'] - return website_model.page_exists(name) + def get_existing_pages(self, name, limit=None): + website = self.env['website'] + return website.search_pages(needle=name, limit=limit) def get_page_url(self, model, view_type, domain=None, context=None): user_model = self.env['res.users'] @@ -48,8 +32,9 @@ class HelpOnline(models.TransientModel): if res: description = res[0][1] name = self._get_view_name(model, view_type, domain, context) - if self.page_exists(name): - url = '/page/%s' % name + pages = self.get_existing_pages(name, limit=1) + if pages: + url = pages[0]['loc'] if view_type: url = url + '#' + view_type title = _('Help on %s') % description diff --git a/help_online/models/import_help_wizard.py b/help_online/models/import_help_wizard.py deleted file mode 100644 index bb071784..00000000 --- a/help_online/models/import_help_wizard.py +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu) -# All Rights Reserved -# -# WARNING: This program as such is intended to be used by professional -# programmers who take the whole responsibility of assessing all potential -# consequences resulting from its eventual inadequacies and bugs. -# End users who are looking for a ready-to-use solution with commercial -# guarantees and support are strongly advised to contact a Free Software -# Service Company. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -from openerp import models, fields, api -from openerp.tools import convert - -import base64 -from cStringIO import StringIO - - -class ImportHelpWizard(models.TransientModel): - _name = "import.help.wizard" - - source_file = fields.Binary('Source File') - - @api.one - def import_help(self): - source_file = base64.decodestring(self.source_file) - convert.convert_xml_import(self.env.cr, - self._module, - StringIO(source_file), - idref=None, - mode='init', - noupdate=False, - report=None) diff --git a/help_online/models/ir_model.py b/help_online/models/ir_model.py index fa9df396..fd79f099 100644 --- a/help_online/models/ir_model.py +++ b/help_online/models/ir_model.py @@ -1,29 +1,13 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Authors: Cédric Pigeon -# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + from openerp import models, api from lxml import etree as ET -class ir_model_data(models.Model): +class IrModelData(models.Model): _inherit = 'ir.model.data' @api.model @@ -38,14 +22,14 @@ class ir_model_data(models.Model): xml_str = self.manageImageReferences(values['arch'], module) values['arch'] = xml_str - return super(ir_model_data, self)._update(model, - module, - values, - xml_id=xml_id, - store=store, - noupdate=noupdate, - mode=mode, - res_id=res_id) + return super(IrModelData, self)._update(model, + module, + values, + xml_id=xml_id, + store=store, + noupdate=noupdate, + mode=mode, + res_id=res_id) def manageImageReferences(self, xml_str, module): parser = ET.XMLParser(remove_blank_text=True) diff --git a/help_online/security/help_online_groups.xml b/help_online/security/help_online_groups.xml index fd981bf1..92c5ff72 100644 --- a/help_online/security/help_online_groups.xml +++ b/help_online/security/help_online_groups.xml @@ -1,16 +1,16 @@ - - - - Help reader - - - - Help writer - - - - - \ No newline at end of file + + + + Help reader + + + + Help writer + + + + + diff --git a/help_online/security/help_online_rules.xml b/help_online/security/help_online_rules.xml index 08880d9c..31576c25 100644 --- a/help_online/security/help_online_rules.xml +++ b/help_online/security/help_online_rules.xml @@ -1,32 +1,30 @@ - - - - Online Help Hidden by Default - - [ - '|', - ('type', '!=', 'qweb'), - ('name','not like','help-%'), - ] - - - - - - - Online Help for Help Reader - - [(1, '=', 1)] - - - - - - + + + Online Help Hidden by Default + + [ + '|', + ('type', '!=', 'qweb'), + ('name','not like','help-%'), + ] + + + + + + + Online Help for Help Reader + + [(1, '=', 1)] + + + + + diff --git a/help_online/static/src/css/help_online.css b/help_online/static/src/css/help_online.css index 5878bfe0..638deb76 100644 --- a/help_online/static/src/css/help_online.css +++ b/help_online/static/src/css/help_online.css @@ -1,12 +1,3 @@ -li.oe_help_online_not_found { +a.o_help_online_not_found { background-color: #df3f3f; -} - -.openerp .oe_view_manager .oe_view_manager_switch .oe_list_button_help_online:after { - font-size: 28px; - content: "?"; - text-align: center; - margin: 3px auto 4px; - position: relative; - display: inline-block; -} +} \ No newline at end of file diff --git a/help_online/static/src/js/help_online.js b/help_online/static/src/js/help_online.js index c660a110..c2977dc5 100644 --- a/help_online/static/src/js/help_online.js +++ b/help_online/static/src/js/help_online.js @@ -1,115 +1,86 @@ -openerp.help_online = function (instance) { - var QWeb = instance.web.qweb; - var _t = instance.web._t; - var _lt = instance.web._lt; +odoo.define('oca.HelpOnline', function (require) { + "use strict"; - instance.web.ListView.include({ - load_list: function () { - var self = this; - var add_button = false; - if (!this.$buttons) { - add_button = true; - } + var core = require('web.core'); + var QWeb = core.qweb; + var _t = core._t; + var ViewManager = require('web.ViewManager'); + var ControlPanel = require('web.ControlPanel'); + var Dialog = require('web.Dialog'); + + ControlPanel.include({ + start: function(){ this._super.apply(this, arguments); - this.$buttons.on('click', '.oe_list_button_help_online', function() { - self.do_action({ - type: 'ir.actions.act_url', - url: '/partner_mobile', - target: 'self', - }); - }); - }, - }); - - openerp.web.TreeView.include({ - view_loading: function(r) { - var ret = this._super(r); - if(! _.isUndefined(this.ViewManager.load_help_buttons)){ - this.ViewManager.load_help_buttons(); - } - return ret - }, - }); - - openerp.web.ListView.include({ - view_loading: function(r) { - var ret = this._super(r); - if(! _.isUndefined(this.ViewManager.load_help_buttons)){ - this.ViewManager.load_help_buttons(); - } - return ret + this._toggle_visibility(true); + this.nodes = _.extend( + this.nodes, + {$help_online_buttons: this.$('.o_help_online_buttons')}); + this._toggle_visibility(false); }, }); - - openerp.web.FormView.include({ - view_loading: function(r) { - var ret = this._super(r); - if(!_.isUndefined(this.ViewManager.clean_help_buttons)){ - this.ViewManager.clean_help_buttons(); - } - return ret - }, - - do_show: function (options){ - var ret = this._super(options); - if(! _.isUndefined(this.ViewManager.load_help_buttons)){ - this.ViewManager.load_help_buttons(); + + ViewManager.include({ + + /** + * This function render the help button with the informations received + * from the call to the method build_url from the help_online controller + */ + render_help_button: function(url_info){ + var $helpButton = $(QWeb.render("HelpOnline.Button", {'view_manager':this, 'url_info': url_info})); + $helpButton.tooltip(); + if (url_info.exists === false) { + $helpButton.on('click', function (event) { + var evt = event; + evt.preventDefault(); + Dialog.confirm( + self, + _t('Page does not exist. Do you want to create?'), + {confirm_callback: function() { + var form = $("
"); + form.attr({ + id : "formform", + // The location given in the link itself + action : evt.target.href, + method : "GET", + // Open in new window/tab + target : evt.target.target + }); + $("body").append(form); + $("#formform").submit(); + $("#formform").remove(); + return false; + } + }); + }); } - return ret + return $helpButton; }, - }); - openerp.web.ViewManager.include({ - clean_help_buttons:function() { - this.$el.find("div.oe_help_online_buttons").first().remove(); - }, - - load_help_buttons:function() { - var self = this; - this.rpc('/help_online/build_url', {model: this.dataset.model, view_type: this.active_view}).then(function(result) { - self.clean_help_buttons(); + /** + * This function render the help buttons container on the view. + * It should be called after start() by render_view_control_elements. + * @param {control_elements} the list of control elements to display into the ControlPanel + */ + render_help_buttons: function(control_elements){ + if (! control_elements.$help_online_buttons){ + control_elements.$help_online_buttons = $('
'); + } + var self = this; + this.rpc('/help_online/build_url', {model: this.dataset.model, view_type: this.active_view.type}).then(function(result) { if (result && ! _.isEmpty(result)) { - self.$helpButtonsEl = $(QWeb.render("HelpOnline.Buttons", {'view_manager':self, 'url_info': result})); - self.$el.find("ul.oe_view_manager_switch.oe_button_group.oe_right").first().before(self.$helpButtonsEl); - self.$helpButtonsEl.find('a.oe_list_button_help_online').tooltip(); - if (result.exists === false) { - self.$helpButtonsEl.find('li').addClass('oe_help_online_not_found') - self.$helpButtonsEl.find('a.oe_list_button_help_online').on('click', function (event) { - var evt = event; - evt.preventDefault(); - var dialog = new instance.web.Dialog(this, { - title: _t('Confirm'), - buttons: [ - {text: _t("Cancel"), click: function() { - this.parents('.modal').modal('hide'); - return false; - } - }, - {text: _t("Ok"), click: function() { - this.parents('.modal').modal('hide'); - var form = $("
"); - form.attr( - { - id : "formform", - // The location given in the link itself - action : evt.target.href, - method : "GET", - // Open in new window/tab - target : evt.target.target - }); - $("body").append(form); - $("#formform").submit(); - $("#formform").remove(); - return false; - } - } - ], - }, $('
').text(_t('Page does not exist. Do you want to create?'))).open(); - }); - } + var $helpButton = self.render_help_button(result); + control_elements.$help_online_buttons = $helpButton; + // update the control panel with the new help button + self.update_control_panel({cp_content: _.extend({}, self.searchview_elements, control_elements)}, {clear: false}); } }); }, + render_view_control_elements: function() { + var control_elements = this._super.apply(this, arguments); + this.render_help_buttons(control_elements); + return control_elements; + }, + }); -} +}); diff --git a/help_online/static/src/js/website_help_online.editor.js b/help_online/static/src/js/website_help_online.editor.js deleted file mode 100644 index 0dc2f3d1..00000000 --- a/help_online/static/src/js/website_help_online.editor.js +++ /dev/null @@ -1,21 +0,0 @@ -(function () { - 'use strict'; - - var website = openerp.website; - var _t = openerp._t; - website.RTE.include({ - _config: function () { - // add anchor button - var config = this._super(); - config.plugins = config.plugins.concat(',link'); - _.each(config.toolbar, function (tb) { - if (tb.name === 'span'){ - tb.items.unshift('Anchor'); - } - }); - return config; - }, - }); -})(); - - diff --git a/help_online/static/src/xml/help_online.xml b/help_online/static/src/xml/help_online.xml index fb55b85b..bc987ef8 100644 --- a/help_online/static/src/xml/help_online.xml +++ b/help_online/static/src/xml/help_online.xml @@ -1,13 +1,36 @@ + - -
-
    -
  • - -
  • -
+ + + + + + + + - + + + + + + + + + + + + + + + + +
+ +
+
+
+ diff --git a/help_online/tests/__init__.py b/help_online/tests/__init__.py index cc5a18f0..24fd5c2e 100644 --- a/help_online/tests/__init__.py +++ b/help_online/tests/__init__.py @@ -1,27 +1,7 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -from . import test_export_help_wizard - -fast_suite = [ -] +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -checks = [ - test_export_help_wizard, -] +from . import test_help_online +from . import test_export_help_wizard +from . import test_import_help_wizard diff --git a/help_online/tests/common.py b/help_online/tests/common.py new file mode 100644 index 00000000..51fc02ae --- /dev/null +++ b/help_online/tests/common.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import os +import sys +from lxml import etree as ET + +from openerp.tools.convert import convert_xml_import + + +class TestWizardCommon(object): + _data_files = ('data/help_test_data.xml',) + + _module_ns = 'help_online' + + def createPage(self, pageName, imgXmlId=False): + imgId = False + if imgXmlId: + imgId = self.ref(imgXmlId) + + rootNode = ET.Element('t') + rootNode.attrib['name'] = pageName + rootNode.attrib['t-name'] = "website.%s" % pageName + tNode = ET.SubElement(rootNode, + 't', + attrib={'t-call': 'website.layout'}) + structDivNode = ET.SubElement(tNode, + 'div', + attrib={'class': 'oe_structure oe_empty', + 'id': 'wrap'}) + sectionNode = ET.SubElement(structDivNode, + 'section', + attrib={'class': 'mt16 mb16'}) + containerNode = ET.SubElement(sectionNode, + 'div', + attrib={'class': 'container'}) + rowNode = ET.SubElement(containerNode, + 'div', + attrib={'class': 'row'}) + bodyDivNode = ET.SubElement(rowNode, + 'div', + attrib={'class': 'col-md-12 ' + 'text-center mt16 mb32'}) + style = "font-family: 'Helvetica Neue', Helvetica,"\ + " Arial, sans-serif; color: rgb(51, 51, 51);"\ + " text-align: left;" + h2Node = ET.SubElement(bodyDivNode, + 'h2', + attrib={'style': style}) + h2Node.text = "Test Sample Title" + if imgId: + imgDivNode = ET.SubElement(bodyDivNode, + 'div', + attrib={'style': 'text-align: left;'}) + src = "/website/image?field=datas&"\ + "model=ir.attachment&id=%s" % str(imgId) + ET.SubElement(imgDivNode, + 'img', + attrib={'class': 'img-thumbnail', + 'src': src}) + imgDivNode = ET.SubElement(bodyDivNode, + 'div', + attrib={'style': 'text-align: left;'}) + src = "/website/image/ir.attachment/%s_ccc838d/datas" % str(imgId) + ET.SubElement(imgDivNode, + 'img', + attrib={'class': 'img-thumbnail', + 'src': src}) + imgDivNode = ET.SubElement(bodyDivNode, + 'div', + attrib={'style': 'text-align: left;'}) + src = "/web/image/%s" % str(imgId) + ET.SubElement(imgDivNode, + 'img', + attrib={'class': 'img-thumbnail', + 'src': src}) + arch = ET.tostring(rootNode, encoding='utf-8', xml_declaration=False) + vals = { + 'name': pageName, + 'type': 'qweb', + 'arch': arch, + 'page': True, + } + view_id = self.env['ir.ui.view'].create(vals) + return view_id.id + + def setUp(self): + super(TestWizardCommon, self).setUp() + self.pageName = False + self.imgXmlId = False + self.pageTemplate = False + # Loads the data file before + module = sys.modules[self.__class__.__module__] + base_path = os.path.dirname(module.__file__) + for path in self._data_files: + path = path.split('/') + path.insert(0, base_path) + path = os.path.join(*path) + convert_xml_import(self.cr, self._module_ns, path) diff --git a/help_online/tests/data/help_test_data.xml b/help_online/tests/data/help_test_data.xml index 3d939d21..55723379 100644 --- a/help_online/tests/data/help_test_data.xml +++ b/help_online/tests/data/help_test_data.xml @@ -75,4 +75,4 @@ YFBaQ6YYbTbt679Y0nIRIfKXS1d/8J7oqRWRGxO2b92S+NyzK2n3aAwoCf/7jpEfsQAoxU3nESI/ image/png - \ No newline at end of file + diff --git a/help_online/tests/test_export_help_wizard.py b/help_online/tests/test_export_help_wizard.py index 097e03b2..b9fcdc2e 100644 --- a/help_online/tests/test_export_help_wizard.py +++ b/help_online/tests/test_export_help_wizard.py @@ -1,105 +1,17 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Authors: Cédric Pigeon -# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -import logging +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + import base64 from lxml import etree as ET -from anybox.testing.openerp import SharedSetupTransactionCase - -_logger = logging.getLogger(__name__) - - -class test_export_help_wizard(object): - _data_files = ('data/help_test_data.xml',) +import openerp.tests.common as common +from .common import TestWizardCommon - _module_ns = 'help_online' - def createPage(self, pageName, imgXmlId=False): - imgId = False - if imgXmlId: - imgId = self.ref('%s.%s' % (self._module_ns, imgXmlId)) - - rootNode = ET.Element('t') - rootNode.attrib['name'] = pageName - rootNode.attrib['t-name'] = "website.%s" % pageName - tNode = ET.SubElement(rootNode, - 't', - attrib={'t-call': 'website.layout'}) - structDivNode = ET.SubElement(tNode, - 'div', - attrib={'class': 'oe_structure oe_empty', - 'id': 'wrap'}) - sectionNode = ET.SubElement(structDivNode, - 'section', - attrib={'class': 'mt16 mb16'}) - containerNode = ET.SubElement(sectionNode, - 'div', - attrib={'class': 'container'}) - rowNode = ET.SubElement(containerNode, - 'div', - attrib={'class': 'row'}) - bodyDivNode = ET.SubElement(rowNode, - 'div', - attrib={'class': 'col-md-12 ' - 'text-center mt16 mb32'}) - style = "font-family: 'Helvetica Neue', Helvetica,"\ - " Arial, sans-serif; color: rgb(51, 51, 51);"\ - " text-align: left;" - h2Node = ET.SubElement(bodyDivNode, - 'h2', - attrib={'style': style}) - h2Node.text = "Test Sample Title" - if imgId: - imgDivNode = ET.SubElement(bodyDivNode, - 'div', - attrib={'style': 'text-align: left;'}) - src = "/website/image?field=datas&"\ - "model=ir.attachment&id=%s" % str(imgId) - ET.SubElement(imgDivNode, - 'img', - attrib={'class': 'img-thumbnail', - 'src': src}) - imgDivNode = ET.SubElement(bodyDivNode, - 'div', - attrib={'style': 'text-align: left;'}) - src = "/website/image/ir.attachment/%s_ccc838d/datas" % str(imgId) - ET.SubElement(imgDivNode, - 'img', - attrib={'class': 'img-thumbnail', - 'src': src}) - arch = ET.tostring(rootNode, encoding='utf-8', xml_declaration=False) - vals = { - 'name': pageName, - 'type': 'qweb', - 'arch': arch, - 'page': True, - } - view_id = self.env['ir.ui.view'].create(vals) - return view_id.id - - def setUp(self): - super(test_export_help_wizard, self).setUp() - self.pageName = False - self.imgXmlId = False - self.pageTemplate = False +class TestExportHelpWizard(TestWizardCommon): + pageName = None + imgXmlId = None def test_export_help(self): """ @@ -123,7 +35,8 @@ class test_export_help_wizard(object): if self.imgXmlId: xPath = ".//record[@id='%s']" % self.imgXmlId imgNodeList = rootXml.findall(xPath) - self.assertEqual(len(imgNodeList), 2) + self.assertEqual(len(imgNodeList), 1, + 'The same image should be exported only once') for imgElem in templateNodeList[0].iter('img'): imgSrc = imgElem.get('src') @@ -131,7 +44,7 @@ class test_export_help_wizard(object): self.assertIn("/ir.attachment/%s|" % self.imgXmlId, imgSrc) else: - self.assertIn("id=%s" % self.imgXmlId, imgSrc) + self.assertIn("/web/image/%s" % self.imgXmlId, imgSrc) if self.pageTemplate: xPath = ".//template[@id='website.%s_snippet']" % self.pageName @@ -140,20 +53,18 @@ class test_export_help_wizard(object): self.assertNotIn("website.", templateNodeList[0].attrib['name']) -class test_export_help_with_image(test_export_help_wizard, - SharedSetupTransactionCase): +class TestExportHelpWithImage(TestExportHelpWizard, common.TransactionCase): def setUp(self): - super(test_export_help_with_image, self).setUp() + super(TestExportHelpWithImage, self).setUp() parameter_model = self.env['ir.config_parameter'] page_prefix = parameter_model.get_param('help_online_page_prefix') self.pageName = '%stest-page' % page_prefix - self.imgXmlId = 'test_img_1' + self.imgXmlId = '%s.test_img_1' % self._module_ns -class test_export_help_template(test_export_help_wizard, - SharedSetupTransactionCase): +class TestExportHelpTemplate(TestExportHelpWizard, common.TransactionCase): def setUp(self): - super(test_export_help_template, self).setUp() + super(TestExportHelpTemplate, self).setUp() parameter_model = self.env['ir.config_parameter'] param = 'help_online_template_prefix' template_prefix = parameter_model.get_param(param) diff --git a/help_online/tests/test_help_online.py b/help_online/tests/test_help_online.py new file mode 100644 index 00000000..e1f5815c --- /dev/null +++ b/help_online/tests/test_help_online.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import mock + +import openerp.tests.common as common +from .common import TestWizardCommon + + +class TestHelpOnline(TestWizardCommon, common.TransactionCase): + + def test_get_page_url(self): + model = 'res.partner' + help_online = self.env['help.online'] + user = self.env.user + group_writer = self.env.ref('help_online.help_online_group_writer') + group_reader = self.env.ref('help_online.help_online_group_reader') + self.assertTrue(user.has_group('help_online.help_online_group_writer')) + with mock.patch('openerp.addons.website.models.website' + '.website.search_pages') as search_pages: + # The expected page dosn't exist + search_pages.return_value = [] + info = help_online.get_page_url(model, 'form') + self.assertDictEqual( + {'exists': False, + 'title': 'Create Help page for Partner', + 'url': 'website/add/help-res-partner'}, info, + "If the user is member of help_online_group_writer " + "and the page doesn't exist, the module should return an url " + "to create the page") + # remove user of group writer. + group_writer.write({'users': [(3, self.env.user.id)]}) + info = help_online.get_page_url(model, 'form') + self.assertDictEqual( + {}, info, + "If the user is not member of help_online_group_writer " + "and the page doesn't exist, the module should return an " + "empty dict") + # The expected page exists + search_pages.return_value = [{'loc': 'pages/help-res-partner'}] + self.assertTrue( + user.has_group('help_online.help_online_group_reader')) + info = help_online.get_page_url(model, 'form') + self.assertDictEqual( + {'exists': True, + 'title': 'Help on Partner', + 'url': 'pages/help-res-partner#form'}, info, + "If the user is member of help_online_group_reader " + "and the page exists, the module should return an url " + "to the page") + # remove user from group reader + group_reader.write({'users': [(3, self.env.user.id)]}) + info = help_online.get_page_url(model, 'form') + self.assertDictEqual( + {}, info, + "If the user is not member of help_online_group_reader " + "and the page exists, the module should return an empty dict") diff --git a/help_online/tests/test_import_help_wizard.py b/help_online/tests/test_import_help_wizard.py new file mode 100644 index 00000000..818a9284 --- /dev/null +++ b/help_online/tests/test_import_help_wizard.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import base64 + +import openerp.tests.common as common +from .common import TestWizardCommon + + +class TestImportHelpWizard(TestWizardCommon, common.TransactionCase): + + def setUp(self): + super(TestImportHelpWizard, self).setUp() + self.page_name = "export_import_help" + self.img_xml_id = '%s.test_img_1' % self._module_ns + self.img_name = self.env.ref(self.img_xml_id).name + self.ir_attchement = self.env['ir.attachment'] + self.ir_ui_view = self.env['ir.ui.view'] + self.export_help_wizard = self.env['export.help.wizard'] + self.import_help_wizard = self.env['import.help.wizard'] + + def _do_check_resources(self, expected=1): + pages = self.ir_ui_view.search([('name', '=', self.page_name)]) + self.assertEqual(expected, len(pages)) + attachments = self.ir_attchement.search( + [('name', '=', self.img_name)]) + self.assertEqual(expected, len(attachments)) + + def test_import_help(self): + self.createPage(pageName=self.page_name, imgXmlId=self.img_xml_id) + self._do_check_resources() + wizard = self.export_help_wizard.create({}) + wizard.export_help() + xmlData = base64.decodestring(wizard.data) + self.env.ref(self.img_xml_id).unlink() + self.ir_ui_view.search([('name', '=', self.page_name)]).unlink() + self._do_check_resources(0) + wizard = self.import_help_wizard.create({ + 'source_file': base64.encodestring(xmlData) + }) + wizard.import_help() + self._do_check_resources() + + def test_import_export_help(self): + """Check that exported data are not ducplicated by export / import + """ + self.createPage(pageName=self.page_name, imgXmlId=self.img_xml_id) + self._do_check_resources() + # export + wizard = self.export_help_wizard.create({}) + wizard.export_help() + xmlData = base64.decodestring(wizard.data) + self._do_check_resources() + wizard = self.import_help_wizard.create({ + 'source_file': base64.encodestring(xmlData) + }) + wizard.import_help() + self._do_check_resources() diff --git a/help_online/views/export_help_wizard_view.xml b/help_online/views/export_help_wizard_view.xml deleted file mode 100644 index a9788438..00000000 --- a/help_online/views/export_help_wizard_view.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - export.help.wizard.view - export.help.wizard - form - -
- - - - -

- This wizard allow you to export all QWeb views - related to help online. The result will be an Odoo - data xml file. -

-
- - - -
- -
-
-
-
- - - Export Help - export.help.wizard - - form - form - new - ir.actions.act_window - -
-
\ No newline at end of file diff --git a/help_online/views/help_online_view.xml b/help_online/views/help_online_view.xml index b4c9137a..8e3877b4 100644 --- a/help_online/views/help_online_view.xml +++ b/help_online/views/help_online_view.xml @@ -1,28 +1,24 @@ - - - - - - - Website Pages - ir.ui.view - - form - tree,form - {"search_default_website":1} - - - - - - - - - + + + + + Website Pages + ir.ui.view + + form + tree,form + {"search_default_website":1} + + + + + + + + diff --git a/help_online/views/import_help_wizard_view.xml b/help_online/views/import_help_wizard_view.xml deleted file mode 100644 index 15aa93c3..00000000 --- a/help_online/views/import_help_wizard_view.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - import.help.wizard.view - import.help.wizard - form - -
- -

- This wizard allow you to import QWeb views - related to help online. The required file format is an Odoo - data xml file. -

-
- - - -
- -
-
-
-
- - - Import Help - import.help.wizard - - form - form - new - ir.actions.act_window - - -
-
\ No newline at end of file diff --git a/help_online/views/ir_ui_view_view.xml b/help_online/views/ir_ui_view_view.xml index de42f9ca..fa1ae16d 100644 --- a/help_online/views/ir_ui_view_view.xml +++ b/help_online/views/ir_ui_view_view.xml @@ -1,28 +1,24 @@ - - + + + ir.ui.view search (help_online) + + ir.ui.view + + + + + + - - ir.ui.view search (help_online) - - ir.ui.view - - - - - - - - - ir.ui.view form (help_online) - - ir.ui.view - - - - - - - - - + + ir.ui.view form (help_online) + + ir.ui.view + + + + + + + diff --git a/help_online/views/website_help_online.xml b/help_online/views/website_help_online.xml deleted file mode 100644 index ae504364..00000000 --- a/help_online/views/website_help_online.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/help_online/wizards/__init__.py b/help_online/wizards/__init__.py new file mode 100644 index 00000000..d3b6f547 --- /dev/null +++ b/help_online/wizards/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import export_help_wizard +from . import import_help_wizard diff --git a/help_online/models/export_help_wizard.py b/help_online/wizards/export_help_wizard.py similarity index 56% rename from help_online/models/export_help_wizard.py rename to help_online/wizards/export_help_wizard.py index 81063184..3f62621e 100644 --- a/help_online/models/export_help_wizard.py +++ b/help_online/wizards/export_help_wizard.py @@ -1,31 +1,18 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Authors: Cédric Pigeon -# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + import logging import base64 import time import copy - +import urlparse +from werkzeug.routing import Map, Rule from lxml import etree as ET from openerp import models, fields, api, exceptions from openerp.tools.translate import _ +from openerp.addons.web.controllers.main import Binary +from openerp.addons.website.controllers.main import WebsiteBinary _logger = logging.getLogger(__name__) @@ -43,94 +30,114 @@ class ExportHelpWizard(models.TransientModel): data = fields.Binary('XML', readonly=True) export_filename = fields.Char('Export XML Filename', size=128) - def _manage_images_on_page(self, page_node, data_node, images_reference): + binary = Binary() + websiteBinary = WebsiteBinary() + + img_url_map = Map([ + Rule('/web/image'), + Rule('/web/image/'), + Rule('/web/image//'), + Rule('/web/image//x'), + Rule('/web/image//x/' + ''), + Rule('/web/image///'), + Rule('/web/image////' + ''), + Rule('/web/image////' + 'x'), + Rule('/web/image////' + 'x/'), + Rule('/web/image/'), + Rule('/web/image//'), + Rule('/web/image//x'), + Rule('/web/image//x/'), + Rule('/web/image/-'), + Rule('/web/image/-/'), + Rule('/web/image/-/x'), + Rule('/web/image/-/x' + '/'), + Rule('/website/image'), + Rule('/website/image/'), + Rule('/website/image//x'), + Rule('/website/image//'), + Rule('/website/image///x'), + Rule('/website/image///'), + Rule('/website/image////x') + ]) + + def _manage_images_on_page(self, page_node, data_node, exported_resources): """ - - Extract images from page and generate a xml node + - Extract images from page and generate an xml node - Replace db id in url with xml id """ - - def get_attach_id(images_reference, - img_model, img_src, generated_xml_id=False): - attach_id = False - if 'id=' in img_src: - id_pos = img_src.index('id=') + 3 - attach_id = img_src[id_pos:] - else: - fragments = img_src.split('ir.attachment/') - attach_id, _ = fragments[1].split('_', 1) - - if attach_id in images_reference: - xml_id = images_reference[attach_id] - else: - ir_data = self.env['ir.model.data'].search( - [('model', '=', img_model), - ('res_id', '=', attach_id)]) - xml_id = generated_xml_id - if ir_data: - xml_id = ir_data[0].name - images_reference[attach_id] = xml_id - - return attach_id, xml_id - - def substitute_id_by_xml_id(img_src, attach_id, xml_id): - new_src = False - if 'id=' in img_src: - new_src = img_src.replace(attach_id, xml_id) - else: - fragments = img_src.split('ir.attachment/') - _, trail = fragments[1].split('_', 1) - new_src = "/website/image/ir.attachment/%s|%s" % \ - (xml_id, trail) - return new_src - - i_img = 0 img_model = 'ir.attachment' + urls = self.img_url_map.bind("dummy.org", "/") for img_elem in page_node.iter('img'): img_src = img_elem.get('src') - if img_model in img_src: - i_img += 1 - generated_xml_id = "%s_img_%s" % \ - (page_node.attrib['name'], str(i_img).rjust(2, '0')) - attach_id, xml_id = get_attach_id(images_reference, - img_model, - img_src, - generated_xml_id) - - new_src = substitute_id_by_xml_id(img_src, attach_id, xml_id) - - if not attach_id: - continue - - image = self.env[img_model].browse(int(attach_id)) - if not image: - continue - + parse_result = urlparse.urlparse(img_src) + path = parse_result.path + query_args = parse_result.query + if urls.test(parse_result.path, "GET"): + endpoint, kwargs = urls.match(path, "GET", + query_args=query_args) + kwargs.update(dict(urlparse.parse_qsl(query_args))) + image = None + # get the binary object + xml_id = kwargs.get('xmlid') + if xml_id: + image = self.env.ref(xml_id, False) + else: + _id = kwargs.get('id') + model = kwargs.get('model', 'ir.attachment') + if _id and model: + _id, _, unique = str(_id).partition('_') + image = self.env[model].browse(int(_id)) + if (not image or + not image.exists() or + image._name != img_model): + raise exceptions.UserError( + _('Only images from ir.attachment are supported when ' + 'exporting help pages')) + exported_data = image.export_data( + ['id', + 'datas', + 'datas_fname', + 'name', + 'res_model', + 'mimetype'], + raw_data=False)['datas'][0] + xml_id = exported_data[0] + new_src = '/web/image/%s' % xml_id img_elem.attrib['src'] = new_src - img_node = ET.SubElement(data_node, - 'record', - attrib={'id': xml_id, - 'model': img_model}) + if xml_id in exported_resources: + continue + img_node = ET.SubElement( + data_node, + 'record', + attrib={'id': xml_id, + 'model': image._name}) field_node = ET.SubElement(img_node, 'field', attrib={'name': 'datas'}) - field_node.text = str(image.datas) + field_node.text = str(exported_data[1]) field_node = ET.SubElement(img_node, 'field', attrib={'name': 'datas_fname'}) - field_node.text = image.datas_fname + field_node.text = exported_data[2] field_node = ET.SubElement(img_node, 'field', attrib={'name': 'name'}) - field_node.text = image.name + field_node.text = exported_data[3] field_node = ET.SubElement(img_node, 'field', attrib={'name': 'res_model'}) - field_node.text = image.res_model + field_node.text = exported_data[4] field_node = ET.SubElement(img_node, 'field', attrib={'name': 'mimetype'}) - field_node.text = image.mimetype + field_node.text = exported_data[5] data_node.append(img_node) + exported_resources.add(xml_id) def _clean_href_urls(self, page_node, page_prefix, template_prefix): """ @@ -216,39 +223,67 @@ class ExportHelpWizard(models.TransientModel): ('name', 'like', '%s%%' % page_prefix), ('name', 'like', '%s%%' % template_prefix)] - view_data_list = self.env['ir.ui.view'].search_read(domain, - ['arch', 'name'], - order='name') + ir_ui_views = self.env['ir.ui.view'].search(domain, order='name') xml_to_export = ET.Element('openerp') data_node = ET.SubElement(xml_to_export, 'data') - images_reference = {} - for view_data in view_data_list: + exported_resources = set() + for ir_ui_view in ir_ui_views: parser = ET.XMLParser(remove_blank_text=True) - root = ET.XML(view_data['arch'], parser=parser) - + root = ET.XML(ir_ui_view.arch, parser=parser) root.tag = 'template' - template_id = root.attrib.pop('t-name') - root.attrib['name'] = view_data['name'].replace('website.', '') - root.attrib['id'] = template_id + xml_id = self._get_ir_ui_view_xml_id( + ir_ui_view, root.attrib.pop('t-name')) + root.attrib['name'] = ir_ui_view.name.replace('website.', '') + root.attrib['id'] = xml_id root.attrib['page'] = 'True' - self._manage_images_on_page(root, data_node, images_reference) + self._manage_images_on_page(root, data_node, exported_resources) self._clean_href_urls(root, page_prefix, template_prefix) data_node.append(root) if root.attrib['name'].startswith(template_prefix): snippet = self._generate_snippet_from_template(root, - template_id, + xml_id, template_prefix) data_node.append(snippet) - if len(view_data_list) > 0: + if len(ir_ui_views) > 0: return ET.tostring(xml_to_export, encoding='utf-8', xml_declaration=True, pretty_print=True) else: return False + @api.model + def _get_ir_ui_view_xml_id(self, ir_ui_view, template_name): + """This method check if an xml_id exists for the given ir.ui.view + If no xml_id exists, a new one is created with template name as + value to ensure that the import of the generated file will update + the existing view in place of creating new copies. + """ + ir_model_data = self.sudo().env['ir.model.data'] + data = ir_model_data.search([('model', '=', ir_ui_view._name), + ('res_id', '=', ir_ui_view.id)]) + if data: + if data[0].module: + return '%s.%s' % (data[0].module, data[0].name) + else: + return data[0].name + else: + module, name = template_name.split('.') + postfix = ir_model_data.search_count( + [('module', '=', module), + ('name', 'like', name)]) + if postfix: + name = '%s_%s' % (name, postfix) + ir_model_data.create({ + 'model': ir_ui_view._name, + 'res_id': ir_ui_view.id, + 'module': module, + 'name': name, + }) + return module + '.' + name + @api.multi def export_help(self): """ diff --git a/help_online/wizards/export_help_wizard_view.xml b/help_online/wizards/export_help_wizard_view.xml new file mode 100644 index 00000000..3b281200 --- /dev/null +++ b/help_online/wizards/export_help_wizard_view.xml @@ -0,0 +1,50 @@ + + + + export.help.wizard.view + export.help.wizard + form + +
+ + + + +

+ This wizard allow you to export all QWeb views + related to help online. The result will be an Odoo + data xml file. +

+
+ + + +
+ +
+
+
+
+ + + Export Help + export.help.wizard + + form + form + new + ir.actions.act_window + +
diff --git a/help_online/wizards/import_help_wizard.py b/help_online/wizards/import_help_wizard.py new file mode 100644 index 00000000..77694d20 --- /dev/null +++ b/help_online/wizards/import_help_wizard.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import base64 +from cStringIO import StringIO +from lxml import etree +import logging +import os + +from openerp import api, fields, models +from openerp.tools import convert, misc +from openerp.tools.config import config + +_logger = logging.getLogger(__name__) + + +class XmlImport(convert.xml_import): + """Override base xml_import to be able to import record with an exported + xml_id ('__export__.XXX-XXX') + """ + + def _test_xml_id(self, xml_id): + if '.' in xml_id: + module, _id = xml_id.split('.') + if module == '__export__': + return True + super(XmlImport, self)._test_xml_id(xml_id) + + +class ImportHelpWizard(models.TransientModel): + _name = "import.help.wizard" + + source_file = fields.Binary('Source File') + + @api.multi + def import_help(self): + for this in self: + xmlfile = StringIO(base64.decodestring(this.source_file)) + doc = etree.parse(xmlfile) + relaxng = etree.RelaxNG( + etree.parse( + os.path.join(config['root_path'], 'import_xml.rng'))) + try: + relaxng.assert_(doc) + except Exception: + _logger.info('The XML file does not fit the required schema !', + exc_info=True) + _logger.info(misc.ustr(relaxng.error_log.last_error)) + raise + obj = XmlImport(self.env.cr, self._module, idref={}, mode='init', + report=None, noupdate=False, xml_filename=None) + obj.parse(doc.getroot(), mode='init') diff --git a/help_online/wizards/import_help_wizard_view.xml b/help_online/wizards/import_help_wizard_view.xml new file mode 100644 index 00000000..75f4b601 --- /dev/null +++ b/help_online/wizards/import_help_wizard_view.xml @@ -0,0 +1,43 @@ + + + + import.help.wizard.view + import.help.wizard + form + +
+ +

+ This wizard allow you to import QWeb views + related to help online. The required file format is an Odoo + data xml file. +

+
+ + + +
+ +
+
+
+
+ + + Import Help + import.help.wizard + + form + form + new + ir.actions.act_window + +
diff --git a/setup/help_online/odoo_addons/__init__.py b/setup/help_online/odoo_addons/__init__.py new file mode 100644 index 00000000..de40ea7c --- /dev/null +++ b/setup/help_online/odoo_addons/__init__.py @@ -0,0 +1 @@ +__import__('pkg_resources').declare_namespace(__name__) diff --git a/setup/help_online/odoo_addons/help_online b/setup/help_online/odoo_addons/help_online new file mode 120000 index 00000000..1f1bc8e3 --- /dev/null +++ b/setup/help_online/odoo_addons/help_online @@ -0,0 +1 @@ +../../../help_online \ No newline at end of file diff --git a/setup/help_online/setup.py b/setup/help_online/setup.py new file mode 100644 index 00000000..28c57bb6 --- /dev/null +++ b/setup/help_online/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) From e54f9a6d59082d345aa8cf37bbba21e5f5910c6c Mon Sep 17 00:00:00 2001 From: OCA Git Bot Date: Sat, 14 Jan 2017 02:34:33 +0100 Subject: [PATCH 08/28] [UPD] addons table in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c4c0850..a21b8017 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ Available addons ---------------- addon | version | summary --- | --- | --- +[help_online](help_online/) | 9.0.1.0.0 | Help Online [support_branding](support_branding/) | 9.0.2.0.0 | Adds your branding to an Odoo instance [web_access_rule_buttons](web_access_rule_buttons/) | 9.0.1.0.0 | Disable Edit button if access rules prevent this action [web_dialog_size](web_dialog_size/) | 9.0.1.0.0 | A module that lets the user expand a dialog box to the full screen width. @@ -50,7 +51,6 @@ Unported addons --------------- addon | version | summary --- | --- | --- -[help_online](help_online/) | 8.0.1.0.0 (unported) | Help Online [help_popup](help_popup/) | 8.0.0.5.0 (unported) | Help Popup [web_action_conditionable](web_action_conditionable/) | 8.0.0.1.0 (unported) | web_action_conditionable [web_advanced_search_x2x](web_advanced_search_x2x/) | 8.0.1.0.0 (unported) | Use a search widget in advanced search for x2x fields From d59e7d6b98a31da2023ece13dad762d434bd718d Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Sat, 14 Jan 2017 04:31:23 -0500 Subject: [PATCH 09/28] OCA Transbot updated translations from Transifex --- help_online/i18n/es.po | 244 +++++++++++++++++++++++++++++ help_online/i18n/fr.po | 177 ++++++++++++--------- help_online/i18n/sl.po | 168 ++++++++++++++------ web_widget_image_webcam/i18n/fr.po | 54 +++++++ web_widget_image_webcam/i18n/sl.po | 54 +++++++ 5 files changed, 576 insertions(+), 121 deletions(-) create mode 100644 help_online/i18n/es.po create mode 100644 web_widget_image_webcam/i18n/fr.po create mode 100644 web_widget_image_webcam/i18n/sl.po diff --git a/help_online/i18n/es.po b/help_online/i18n/es.po new file mode 100644 index 00000000..23d7665e --- /dev/null +++ b/help_online/i18n/es.po @@ -0,0 +1,244 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * help_online +# +# Translators: +# Pedro M. Baeza , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-14 02:26+0000\n" +"PO-Revision-Date: 2017-01-14 02:26+0000\n" +"Last-Translator: Pedro M. Baeza , 2017\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view +msgid "Close" +msgstr "Cerrar" + +#. module: help_online +#: code:addons/help_online/models/help_online.py:45 +#, python-format +msgid "Create Help page for %s" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_create_uid +#: model:ir.model.fields,field_description:help_online.field_help_online_create_uid +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_create_uid +msgid "Created by" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_create_date +#: model:ir.model.fields,field_description:help_online.field_help_online_create_date +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_create_date +msgid "Created on" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_display_name +#: model:ir.model.fields,field_description:help_online.field_help_online_display_name +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_display_name +msgid "Display Name" +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view +msgid "Export" +msgstr "" + +#. module: help_online +#: code:addons/help_online/wizards/export_help_wizard.py:302 +#: model:ir.actions.act_window,name:help_online.action_export_help_wizard +#, python-format +msgid "Export Help" +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view +msgid "Export Help Data" +msgstr "" + +#. module: help_online +#: model:ir.model,name:help_online.model_export_help_wizard +#: model:ir.ui.menu,name:help_online.menu_help_export +msgid "Export Help Online" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_export_filename +msgid "Export XML Filename" +msgstr "" + +#. module: help_online +#: model:ir.ui.menu,name:help_online.menu_help +#: model:ir.ui.menu,name:help_online.menu_help_main +msgid "Help Online" +msgstr "" + +#. module: help_online +#: code:addons/help_online/models/help_online.py:40 +#, python-format +msgid "Help on %s" +msgstr "" + +#. module: help_online +#: model:res.groups,name:help_online.help_online_group_reader +msgid "Help reader" +msgstr "" + +#. module: help_online +#: model:res.groups,name:help_online.help_online_group_writer +msgid "Help writer" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_id +#: model:ir.model.fields,field_description:help_online.field_help_online_id +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_id +msgid "ID" +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view +msgid "Import" +msgstr "" + +#. module: help_online +#: model:ir.actions.act_window,name:help_online.action_import_help_wizard +msgid "Import Help" +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view +msgid "Import Help Data" +msgstr "" + +#. module: help_online +#: model:ir.ui.menu,name:help_online.menu_help_import +msgid "Import Help Online" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard___last_update +#: model:ir.model.fields,field_description:help_online.field_help_online___last_update +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard___last_update +msgid "Last Modified on" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_write_uid +#: model:ir.model.fields,field_description:help_online.field_help_online_write_uid +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_write_date +#: model:ir.model.fields,field_description:help_online.field_help_online_write_date +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_write_date +msgid "Last Updated on" +msgstr "" + +#. module: help_online +#: code:addons/help_online/wizards/export_help_wizard.py:295 +#, python-format +msgid "No data to export !" +msgstr "" + +#. module: help_online +#: code:addons/help_online/models/help_online.py:17 +#, python-format +msgid "No page prefix parameter specified !" +msgstr "" + +#. module: help_online +#: code:addons/help_online/wizards/export_help_wizard.py:99 +#, python-format +msgid "Only images from ir.attachment are supported when exporting help pages" +msgstr "" + +#. module: help_online +#. openerp-web +#: code:addons/help_online/static/src/js/help_online.js:37 +#, python-format +msgid "Page does not exist. Do you want to create?" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_source_file +msgid "Source File" +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view +msgid "" +"This wizard allow you to export all QWeb views\n" +" related to help online. The result will be an Odoo\n" +" data xml file." +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view +msgid "" +"This wizard allow you to import QWeb views\n" +" related to help online. The required file format is an Odoo\n" +" data xml file." +msgstr "" + +#. module: help_online +#: code:addons/help_online/wizards/export_help_wizard.py:332 +#, python-format +msgid "Unable to write autobackup file in given directory: %s" +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.view_view_search +msgid "Website Page" +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.view_view_form +msgid "Website Page?" +msgstr "" + +#. module: help_online +#: model:ir.actions.act_window,name:help_online.action_website_pages +#: model:ir.ui.menu,name:help_online.menu_help_pages +msgid "Website Pages" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_data +msgid "XML" +msgstr "" + +#. module: help_online +#: model:ir.model,name:help_online.model_help_online +msgid "help.online" +msgstr "" + +#. module: help_online +#: model:ir.model,name:help_online.model_import_help_wizard +msgid "import.help.wizard" +msgstr "" + +#. module: help_online +#: model:ir.model,name:help_online.model_ir_model_data +msgid "ir.model.data" +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view +msgid "or" +msgstr "" diff --git a/help_online/i18n/fr.po b/help_online/i18n/fr.po index 40cf06d9..ee448cb9 100644 --- a/help_online/i18n/fr.po +++ b/help_online/i18n/fr.po @@ -1,72 +1,71 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * help_online -# +# * help_online +# +# Translators: +# OCA Transbot , 2017 +# leemannd , 2017 msgid "" msgstr "" -"Project-Id-Version: Odoo Server 8.0\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-10-14 09:06+0000\n" -"PO-Revision-Date: 2014-10-14 09:06+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" +"POT-Creation-Date: 2017-01-14 02:26+0000\n" +"PO-Revision-Date: 2017-01-14 02:26+0000\n" +"Last-Translator: leemannd , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: help_online -#. openerp-web -#: code:addons/help_online/static/src/js/help_online.js:83 -#, python-format -msgid "Cancel" -msgstr "Annuler" - -#. module: help_online -#: view:export.help.wizard:help_online.export_help_wizard_view -#: view:import.help.wizard:help_online.import_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view msgid "Close" msgstr "Fermer" #. module: help_online -#. openerp-web -#: code:addons/help_online/static/src/js/help_online.js:81 -#, python-format -msgid "Confirm" -msgstr "Confirmer" - -#. module: help_online -#: code:addons/help_online/models/help_online.py:60 +#: code:addons/help_online/models/help_online.py:45 #, python-format msgid "Create Help page for %s" msgstr "Créer la page d'aide pour %s" #. module: help_online -#: field:export.help.wizard,create_uid:0 -#: field:help.online,create_uid:0 -#: field:import.help.wizard,create_uid:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_create_uid +#: model:ir.model.fields,field_description:help_online.field_help_online_create_uid +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_create_uid msgid "Created by" msgstr "Créé par" #. module: help_online -#: field:export.help.wizard,create_date:0 -#: field:help.online,create_date:0 -#: field:import.help.wizard,create_date:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_create_date +#: model:ir.model.fields,field_description:help_online.field_help_online_create_date +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_create_date msgid "Created on" msgstr "Créé le" #. module: help_online -#: view:export.help.wizard:help_online.export_help_wizard_view +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_display_name +#: model:ir.model.fields,field_description:help_online.field_help_online_display_name +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view msgid "Export" msgstr "Export" #. module: help_online +#: code:addons/help_online/wizards/export_help_wizard.py:302 #: model:ir.actions.act_window,name:help_online.action_export_help_wizard +#, python-format msgid "Export Help" msgstr "Export des pages d'aide" #. module: help_online -#: view:export.help.wizard:help_online.export_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view msgid "Export Help Data" msgstr "Export des pages d'aide" @@ -77,7 +76,7 @@ msgid "Export Help Online" msgstr "Export des pages d'aide" #. module: help_online -#: field:export.help.wizard,export_filename:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_export_filename msgid "Export XML Filename" msgstr "Fichier XML" @@ -88,7 +87,7 @@ msgid "Help Online" msgstr "Aide en ligne" #. module: help_online -#: code:addons/help_online/models/help_online.py:55 +#: code:addons/help_online/models/help_online.py:40 #, python-format msgid "Help on %s" msgstr "Aide sur %s" @@ -104,14 +103,14 @@ msgid "Help writer" msgstr "Aide: rédacteur" #. module: help_online -#: field:export.help.wizard,id:0 -#: field:help.online,id:0 -#: field:import.help.wizard,id:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_id +#: model:ir.model.fields,field_description:help_online.field_help_online_id +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_id msgid "ID" msgstr "ID" #. module: help_online -#: view:import.help.wizard:help_online.import_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view msgid "Import" msgstr "Import" @@ -121,7 +120,7 @@ msgid "Import Help" msgstr "Import des pages d'aide" #. module: help_online -#: view:import.help.wizard:help_online.import_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view msgid "Import Help Data" msgstr "Import des pages d'aide" @@ -131,81 +130,93 @@ msgid "Import Help Online" msgstr "Import des pages d'aide" #. module: help_online -#: field:export.help.wizard,write_uid:0 -#: field:help.online,write_uid:0 -#: field:import.help.wizard,write_uid:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard___last_update +#: model:ir.model.fields,field_description:help_online.field_help_online___last_update +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard___last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_write_uid +#: model:ir.model.fields,field_description:help_online.field_help_online_write_uid +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_write_uid msgid "Last Updated by" msgstr "Mis à jour par" #. module: help_online -#: field:export.help.wizard,write_date:0 -#: field:help.online,write_date:0 -#: field:import.help.wizard,write_date:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_write_date +#: model:ir.model.fields,field_description:help_online.field_help_online_write_date +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_write_date msgid "Last Updated on" msgstr "Mis à jour le" #. module: help_online -#: code:addons/help_online/models/export_help_wizard.py:238 +#: code:addons/help_online/wizards/export_help_wizard.py:295 #, python-format msgid "No data to export !" msgstr "Aucune page à exporter !" #. module: help_online -#: code:addons/help_online/models/help_online.py:33 +#: code:addons/help_online/models/help_online.py:17 #, python-format msgid "No page prefix parameter specified !" msgstr "Le paramètre spécifiant le préfixe des pages n'est pas configuré !" #. module: help_online -#. openerp-web -#: code:addons/help_online/static/src/js/help_online.js:88 +#: code:addons/help_online/wizards/export_help_wizard.py:99 #, python-format -msgid "Ok" -msgstr "Ok" +msgid "Only images from ir.attachment are supported when exporting help pages" +msgstr "" +"Seules les images provenant de ir.attachement sont supportées lors de " +"l'export de pages d'aide" #. module: help_online #. openerp-web -#: code:addons/help_online/static/src/js/help_online.js:107 +#: code:addons/help_online/static/src/js/help_online.js:37 #, python-format msgid "Page does not exist. Do you want to create?" msgstr "La page n'existe pas. Voulez-vous la créer?" #. module: help_online -#: field:import.help.wizard,source_file:0 +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_source_file msgid "Source File" msgstr "Fichier de données" #. module: help_online -#: view:export.help.wizard:help_online.export_help_wizard_view -msgid "This wizard allow you to export all QWeb views\n" -" related to help online. The result will be an Odoo\n" -" data xml file." -msgstr "Cet assistant vous permet d'exporter toutes les vues QWeb \n" -" concernant l'aide. Le résultat sera un\n" -" fichier de données Odoo." +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view +msgid "" +"This wizard allow you to export all QWeb views\n" +" related to help online. The result will be an Odoo\n" +" data xml file." +msgstr "" +"Cette fenêtre de l'assistant permet l'export de toutes les vues QWeb\n" +"liées à l'aide en ligne. Le résultat sera sous la forme d'un fichier de données xml." #. module: help_online -#: view:import.help.wizard:help_online.import_help_wizard_view -msgid "This wizard allow you to import QWeb views\n" -" related to help online. The required file format is an Odoo\n" -" data xml file." -msgstr "Cet assistant vous permet d'importer toutes les vues QWeb\n" -" concernant l'aide. Le format de fichier requis est un\n" -" fichier de données Odoo." +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view +msgid "" +"This wizard allow you to import QWeb views\n" +" related to help online. The required file format is an Odoo\n" +" data xml file." +msgstr "" +"Cette fenêtre de l'assistant permet l'import de toutes les vues QWeb\n" +"liées à l'aide en ligne. Le fichier doit être un fichier \n" +"de donnés au format xml" #. module: help_online -#: code:addons/help_online/models/export_help_wizard.py:275 +#: code:addons/help_online/wizards/export_help_wizard.py:332 #, python-format msgid "Unable to write autobackup file in given directory: %s" -msgstr "Impossible d'écrire le fichier de sauvegarde dans le répertoire spécifié: %s" +msgstr "" +"Impossible d'écrire le fichier de sauvegarde dans le répertoire spécifié: %s" #. module: help_online -#: view:ir.ui.view:help_online.view_view_search +#: model:ir.ui.view,arch_db:help_online.view_view_search msgid "Website Page" msgstr "Page du site" #. module: help_online -#: view:ir.ui.view:help_online.view_view_form +#: model:ir.ui.view,arch_db:help_online.view_view_form msgid "Website Page?" msgstr "Page du site?" @@ -216,7 +227,27 @@ msgid "Website Pages" msgstr "Pages du site" #. module: help_online -#: field:export.help.wizard,data:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_data msgid "XML" msgstr "XML" +#. module: help_online +#: model:ir.model,name:help_online.model_help_online +msgid "help.online" +msgstr "" + +#. module: help_online +#: model:ir.model,name:help_online.model_import_help_wizard +msgid "import.help.wizard" +msgstr "" + +#. module: help_online +#: model:ir.model,name:help_online.model_ir_model_data +msgid "ir.model.data" +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view +msgid "or" +msgstr "ou" diff --git a/help_online/i18n/sl.po b/help_online/i18n/sl.po index 278c7f2d..1a1057f6 100644 --- a/help_online/i18n/sl.po +++ b/help_online/i18n/sl.po @@ -1,53 +1,70 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * help_online -# -# Matjaž Mozetič , 2015. +# * help_online +# +# Translators: +# OCA Transbot , 2017 msgid "" msgstr "" -"Project-Id-Version: Odoo Server 8.0\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-08-02 10:20+0200\n" -"PO-Revision-Date: 2015-08-02 10:20+0200\n" -"Last-Translator: Matjaz Mozetic \n" -"Language-Team: Slovenian \n" -"Language: sl\n" +"POT-Creation-Date: 2017-01-14 02:26+0000\n" +"PO-Revision-Date: 2017-01-14 02:26+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: \n" -"X-Generator: Poedit 1.8.2\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" #. module: help_online -#: view:export.help.wizard:help_online.export_help_wizard_view -#: view:import.help.wizard:help_online.import_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view msgid "Close" msgstr "Zaključi" #. module: help_online -#: field:export.help.wizard,create_uid:0 field:help.online,create_uid:0 -#: field:import.help.wizard,create_uid:0 +#: code:addons/help_online/models/help_online.py:45 +#, python-format +msgid "Create Help page for %s" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_create_uid +#: model:ir.model.fields,field_description:help_online.field_help_online_create_uid +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_create_uid msgid "Created by" msgstr "Ustvaril" #. module: help_online -#: field:export.help.wizard,create_date:0 field:help.online,create_date:0 -#: field:import.help.wizard,create_date:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_create_date +#: model:ir.model.fields,field_description:help_online.field_help_online_create_date +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_create_date msgid "Created on" msgstr "Ustvarjeno" #. module: help_online -#: view:export.help.wizard:help_online.export_help_wizard_view +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_display_name +#: model:ir.model.fields,field_description:help_online.field_help_online_display_name +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_display_name +msgid "Display Name" +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view msgid "Export" msgstr "Izvoz" #. module: help_online +#: code:addons/help_online/wizards/export_help_wizard.py:302 #: model:ir.actions.act_window,name:help_online.action_export_help_wizard +#, python-format msgid "Export Help" msgstr "Izvoz navodil" #. module: help_online -#: view:export.help.wizard:help_online.export_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view msgid "Export Help Data" msgstr "Izvoz podatkov spletnih navodil" @@ -58,7 +75,7 @@ msgid "Export Help Online" msgstr "Izvozi spletna navodila" #. module: help_online -#: field:export.help.wizard,export_filename:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_export_filename msgid "Export XML Filename" msgstr "Naziv izvožene XML datoteke" @@ -68,6 +85,12 @@ msgstr "Naziv izvožene XML datoteke" msgid "Help Online" msgstr "Spletna navodila" +#. module: help_online +#: code:addons/help_online/models/help_online.py:40 +#, python-format +msgid "Help on %s" +msgstr "" + #. module: help_online #: model:res.groups,name:help_online.help_online_group_reader msgid "Help reader" @@ -79,13 +102,14 @@ msgid "Help writer" msgstr "Avtor navodil" #. module: help_online -#: field:export.help.wizard,id:0 field:help.online,id:0 -#: field:import.help.wizard,id:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_id +#: model:ir.model.fields,field_description:help_online.field_help_online_id +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_id msgid "ID" msgstr "ID" #. module: help_online -#: view:import.help.wizard:help_online.import_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view msgid "Import" msgstr "Uvoz" @@ -95,7 +119,7 @@ msgid "Import Help" msgstr "Uvoz navodil" #. module: help_online -#: view:import.help.wizard:help_online.import_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view msgid "Import Help Data" msgstr "Uvoz podatkov navodil" @@ -105,52 +129,85 @@ msgid "Import Help Online" msgstr "Uvoz spletnih navodil" #. module: help_online -#: field:export.help.wizard,write_uid:0 field:help.online,write_uid:0 -#: field:import.help.wizard,write_uid:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard___last_update +#: model:ir.model.fields,field_description:help_online.field_help_online___last_update +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard___last_update +msgid "Last Modified on" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_write_uid +#: model:ir.model.fields,field_description:help_online.field_help_online_write_uid +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_write_uid msgid "Last Updated by" msgstr "Zadnjič posodobil" #. module: help_online -#: field:export.help.wizard,write_date:0 field:help.online,write_date:0 -#: field:import.help.wizard,write_date:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_write_date +#: model:ir.model.fields,field_description:help_online.field_help_online_write_date +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_write_date msgid "Last Updated on" msgstr "Zadnjič posodobljeno" #. module: help_online -#: field:import.help.wizard,source_file:0 +#: code:addons/help_online/wizards/export_help_wizard.py:295 +#, python-format +msgid "No data to export !" +msgstr "" + +#. module: help_online +#: code:addons/help_online/models/help_online.py:17 +#, python-format +msgid "No page prefix parameter specified !" +msgstr "" + +#. module: help_online +#: code:addons/help_online/wizards/export_help_wizard.py:99 +#, python-format +msgid "Only images from ir.attachment are supported when exporting help pages" +msgstr "" + +#. module: help_online +#. openerp-web +#: code:addons/help_online/static/src/js/help_online.js:37 +#, python-format +msgid "Page does not exist. Do you want to create?" +msgstr "" + +#. module: help_online +#: model:ir.model.fields,field_description:help_online.field_import_help_wizard_source_file msgid "Source File" msgstr "Izvorna datoteka" #. module: help_online -#: view:export.help.wizard:help_online.export_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view msgid "" "This wizard allow you to export all QWeb views\n" -" related to help online. The result will be an Odoo\n" -" data xml file." +" related to help online. The result will be an Odoo\n" +" data xml file." msgstr "" -"Ta čarovnik omogoča izvoz vseh QWeb pogledov,\n" -" ki se tičejo spletnih navodil v Odoo\n" -" xml podatkovno datoteko." #. module: help_online -#: view:import.help.wizard:help_online.import_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view msgid "" "This wizard allow you to import QWeb views\n" -" related to help online. The required file format is " -"an Odoo\n" -" data xml file." +" related to help online. The required file format is an Odoo\n" +" data xml file." +msgstr "" + +#. module: help_online +#: code:addons/help_online/wizards/export_help_wizard.py:332 +#, python-format +msgid "Unable to write autobackup file in given directory: %s" msgstr "" -"Ta čarovnik omogoča uvoz QWeb pogledov,\n" -" ki se tičejo spletnih navodil iz Odoo\n" -" xml podatkovne datoteke." #. module: help_online -#: view:ir.ui.view:help_online.view_view_search +#: model:ir.ui.view,arch_db:help_online.view_view_search msgid "Website Page" msgstr "Spletna stran" #. module: help_online -#: view:ir.ui.view:help_online.view_view_form +#: model:ir.ui.view,arch_db:help_online.view_view_form msgid "Website Page?" msgstr "Spletna stran?" @@ -161,12 +218,27 @@ msgid "Website Pages" msgstr "Spletne strani" #. module: help_online -#: field:export.help.wizard,data:0 +#: model:ir.model.fields,field_description:help_online.field_export_help_wizard_data msgid "XML" msgstr "XML" #. module: help_online -#: view:export.help.wizard:help_online.export_help_wizard_view -#: view:import.help.wizard:help_online.import_help_wizard_view +#: model:ir.model,name:help_online.model_help_online +msgid "help.online" +msgstr "" + +#. module: help_online +#: model:ir.model,name:help_online.model_import_help_wizard +msgid "import.help.wizard" +msgstr "" + +#. module: help_online +#: model:ir.model,name:help_online.model_ir_model_data +msgid "ir.model.data" +msgstr "" + +#. module: help_online +#: model:ir.ui.view,arch_db:help_online.export_help_wizard_view +#: model:ir.ui.view,arch_db:help_online.import_help_wizard_view msgid "or" msgstr "ali" diff --git a/web_widget_image_webcam/i18n/fr.po b/web_widget_image_webcam/i18n/fr.po new file mode 100644 index 00000000..63795499 --- /dev/null +++ b/web_widget_image_webcam/i18n/fr.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_widget_image_webcam +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-14 02:26+0000\n" +"PO-Revision-Date: 2017-01-14 02:26+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:98 +#, python-format +msgid "Close" +msgstr "Fermer" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:74 +#, python-format +msgid "Save & Close" +msgstr "" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:62 +#, python-format +msgid "Take Snapshot" +msgstr "" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/xml/web_widget_image_webcam.xml:8 +#, python-format +msgid "WebCam" +msgstr "" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:58 +#, python-format +msgid "WebCam Booth" +msgstr "" diff --git a/web_widget_image_webcam/i18n/sl.po b/web_widget_image_webcam/i18n/sl.po new file mode 100644 index 00000000..38e39a46 --- /dev/null +++ b/web_widget_image_webcam/i18n/sl.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_widget_image_webcam +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-14 02:26+0000\n" +"PO-Revision-Date: 2017-01-14 02:26+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\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_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:98 +#, python-format +msgid "Close" +msgstr "Zaključi" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:74 +#, python-format +msgid "Save & Close" +msgstr "" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:62 +#, python-format +msgid "Take Snapshot" +msgstr "" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/xml/web_widget_image_webcam.xml:8 +#, python-format +msgid "WebCam" +msgstr "" + +#. module: web_widget_image_webcam +#. openerp-web +#: code:addons/web_widget_image_webcam/static/src/js/webcam_widget.js:58 +#, python-format +msgid "WebCam Booth" +msgstr "" From 7fc784371b57b23711e007df75d42d2c36054ef8 Mon Sep 17 00:00:00 2001 From: Dave Lasley Date: Fri, 14 Oct 2016 04:08:10 -0700 Subject: [PATCH 10/28] [MIG] web_responsive: Migrate to v10 * Bump version * Change all openerp to odoo * Fix qunit suite injection * Remove jQuery require * Change to new selectors: * `oe_leftbar` to `o_sub_menu` * `oe_logo` to `o_sub_menu_logo` * `oe_footer` to `o_sub_menu_footer` * `oe_secondary_menus_container` to `o_sub_menu_content` * Add style to hide oe_footer instead of remove to not break `support_branding` * Add note in ReadMe explaining override of `support_branding` * Set top margin of app drawer title to 0 to fit v10 proportions * Fix notification badge positioning * Add o_web_client class to body to fix overlaps * Scroll control panel with page * Change navbar z-index to not be overlapped by buttons * Raise z-index on header to raise over buttons * Handle layered notifications via z-index * Remove `#` from navigation links HREF to prevent history littering --- web_responsive/README.rst | 2 +- .../{__openerp__.py => __manifest__.py} | 2 +- .../static/src/js/web_responsive.js | 11 ++++++--- .../static/src/less/app_drawer.less | 9 +++++--- web_responsive/static/src/less/main.less | 23 +++++++++++++++++-- web_responsive/static/src/less/navbar.less | 18 +++++++++++---- web_responsive/static/src/less/variables.less | 2 +- .../static/tests/js/web_responsive.js | 2 +- web_responsive/tests/test_ui.py | 2 +- web_responsive/views/assets.xml | 2 +- web_responsive/views/web.xml | 20 +++++++--------- 11 files changed, 63 insertions(+), 30 deletions(-) rename web_responsive/{__openerp__.py => __manifest__.py} (95%) diff --git a/web_responsive/README.rst b/web_responsive/README.rst index 7981266f..f9cc7d3f 100755 --- a/web_responsive/README.rst +++ b/web_responsive/README.rst @@ -35,7 +35,7 @@ The following keyboard shortcuts are implemented: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/154/9.0 + :target: https://runbot.odoo-community.org/runbot/154/10.0 Known issues / Roadmap ====================== diff --git a/web_responsive/__openerp__.py b/web_responsive/__manifest__.py similarity index 95% rename from web_responsive/__openerp__.py rename to web_responsive/__manifest__.py index a21ba8c7..835078bb 100755 --- a/web_responsive/__openerp__.py +++ b/web_responsive/__manifest__.py @@ -6,7 +6,7 @@ "name": "Web Responsive", "summary": "It provides a mobile compliant interface for Odoo Community " "web", - "version": "9.0.1.0.0", + "version": "10.0.1.0.0", "category": "Website", "website": "https://laslabs.com/", "author": "LasLabs, Tecnativa, Odoo Community Association (OCA)", diff --git a/web_responsive/static/src/js/web_responsive.js b/web_responsive/static/src/js/web_responsive.js index 527b5501..b1fcd143 100755 --- a/web_responsive/static/src/js/web_responsive.js +++ b/web_responsive/static/src/js/web_responsive.js @@ -4,7 +4,6 @@ odoo.define('web_responsive', function(require) { 'use strict'; - var $ = require('$'); var Menu = require('web.Menu'); var Class = require('web.Class'); var SearchView = require('web.SearchView'); @@ -83,12 +82,18 @@ odoo.define('web_responsive', function(require) { '-': this.LEFT, }; this.initDrawer(); - var $clickZones = $('.openerp_webclient_container, ' + + var $clickZones = $('.odoo_webclient_container, ' + 'a.oe_menu_leaf, ' + 'a.oe_menu_toggler, ' + 'a.oe_logo, ' + 'i.oe_logo_edit' ); + $('.o_content').scroll(function() { + $('.o_control_panel').css( + 'margin-top', + -$(this).scrollTop() + 'px' + ); + }); $clickZones.click($.proxy(this.handleClickZones, this)); core.bus.on('resize', this, this.handleWindowResize); core.bus.on('keydown', this, this.handleNavKeys); @@ -115,7 +120,7 @@ odoo.define('web_responsive', function(require) { // It provides handlers to hide drawer when "unfocused" handleClickZones: function() { this.$el.drawer('close'); - $('.oe_secondary_menus_container') + $('.o_sub_menu_content') .parent() .collapse('hide'); }, diff --git a/web_responsive/static/src/less/app_drawer.less b/web_responsive/static/src/less/app_drawer.less index 127f25de..ec31048e 100755 --- a/web_responsive/static/src/less/app_drawer.less +++ b/web_responsive/static/src/less/app_drawer.less @@ -11,10 +11,15 @@ border-radius: @border-radius-base; .box-shadow(0 6px 12px rgba(0, 0, 0, .175)); background-clip: padding-box; + z-index: 2000; + + .o_tooltip { + z-index: 2051; + } .oe_logo { img { - margin-top: -@app-drawer-navbar-padding-vertical; + margin-top: -@app-drawer-navbar-padding-vertical * 2; height: @app-drawer-title-height; } .oe_logo_edit { @@ -65,14 +70,12 @@ position: absolute; height: @app-drawer-title-height; width: 100%; - z-index: 9999; } } .drawer-nav { width: @app-drawer-width; - z-index: 9999; } .drawer--left .drawer-nav { diff --git a/web_responsive/static/src/less/main.less b/web_responsive/static/src/less/main.less index 246e9d81..862e50a6 100755 --- a/web_responsive/static/src/less/main.less +++ b/web_responsive/static/src/less/main.less @@ -22,6 +22,25 @@ main { overflow: hidden; } -div.oe_footer { - display: none; +header { + z-index: 10; +} + +.o_cp_switch_buttons { + .active { + z-index: 10; + } +} + +.o_sub_menu { + .o_sub_menu_logo { + display: none; + } + .o_sub_menu_footer { + display: none; + } +} + +.o_tooltip.active { + z-index: 2051; } diff --git a/web_responsive/static/src/less/navbar.less b/web_responsive/static/src/less/navbar.less index bbf0d453..5313bde6 100755 --- a/web_responsive/static/src/less/navbar.less +++ b/web_responsive/static/src/less/navbar.less @@ -2,12 +2,22 @@ * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */ .main-nav { + margin-bottom: 0; min-height: @app-drawer-navbar-height; -} - -.main-nav ul.nav > li > a { - padding: @app-drawer-navbar-padding-vertical @app-drawer-padding-horizontal; + z-index: 1; + border: none; + + .badge { + position: absolute; + top: 3px; + right: @navbar-padding-horizontal / 2; + } + + ul.nav > li > a { + padding: @app-drawer-navbar-padding-vertical @app-drawer-padding-horizontal; + } + } .oe_topbar_avatar { diff --git a/web_responsive/static/src/less/variables.less b/web_responsive/static/src/less/variables.less index 9ab6bdac..8e16182a 100755 --- a/web_responsive/static/src/less/variables.less +++ b/web_responsive/static/src/less/variables.less @@ -5,7 +5,7 @@ @app-drawer-icon-size: 6em; @app-drawer-icon-margin: 1em; @app-drawer-width: 80%; -@app-drawer-title-height: @navbar-height; +@app-drawer-title-height: 54px; // Navbar @app-drawer-navbar-height: @navbar-height / 2; diff --git a/web_responsive/static/tests/js/web_responsive.js b/web_responsive/static/tests/js/web_responsive.js index c1f96196..686fce3f 100755 --- a/web_responsive/static/tests/js/web_responsive.js +++ b/web_responsive/static/tests/js/web_responsive.js @@ -23,7 +23,7 @@ odoo.define_section('web_responsive', ['web_responsive'], function(test) { self.$clickZone = $(''); - self.$secondaryMenu = $('
'); + self.$secondaryMenu = $('
'); self.$dropdown = $('