summaryrefslogtreecommitdiff
path: root/addons/web
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-12-12 11:38:25 +0100
committerChristophe Simonis <chs@odoo.com>2018-12-12 11:38:25 +0100
commitf351dd8cab980a67ee17c431574d8ba9c37b8fdc (patch)
tree2cb6e64d0a5083aade80206ea7fbfbcda69992b8 /addons/web
parent1144235d06a2ad42060c05d4ece145ce46a660e1 (diff)
parent047e2b28de4653f11e097e6232d7fb79d54ce3af (diff)
[MERGE] forward port branch 12.0 up to 047e2b28de4
Diffstat (limited to 'addons/web')
-rw-r--r--addons/web/i18n/cs.po4
-rw-r--r--addons/web/i18n/es.po32
-rw-r--r--addons/web/i18n/it.po32
-rw-r--r--addons/web/i18n/ja.po16
-rw-r--r--addons/web/i18n/nb.po232
-rw-r--r--addons/web/i18n/pt_BR.po30
-rw-r--r--addons/web/static/lib/py.js/lib/py.js12
-rw-r--r--addons/web/static/src/js/chrome/action_manager_act_window.js2
-rw-r--r--addons/web/static/src/js/views/graph/graph_renderer.js9
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_view.js8
-rw-r--r--addons/web/static/src/scss/layout_background.scss54
-rw-r--r--addons/web/static/src/scss/layout_boxed.scss67
-rw-r--r--addons/web/static/src/scss/layout_clean.scss32
-rw-r--r--addons/web/static/src/scss/report.scss15
-rw-r--r--addons/web/static/tests/chrome/action_manager_tests.js56
-rw-r--r--addons/web/static/tests/core/py_utils_tests.js7
-rw-r--r--addons/web/static/tests/views/graph_tests.js33
-rw-r--r--addons/web/static/tests/views/pivot_tests.js17
18 files changed, 435 insertions, 223 deletions
diff --git a/addons/web/i18n/cs.po b/addons/web/i18n/cs.po
index d7a7df2f4e2..71f219b2bf7 100644
--- a/addons/web/i18n/cs.po
+++ b/addons/web/i18n/cs.po
@@ -262,7 +262,7 @@ msgstr "Přístup zamítnut"
#: code:addons/web/static/src/js/services/crash_manager.js:15
#, python-format
msgid "Access Error"
-msgstr ""
+msgstr "Chyba přístupu"
#. module: web
#. openerp-web
@@ -2817,7 +2817,7 @@ msgstr "Uložit"
#: code:addons/web/static/src/js/views/view_dialogs.js:137
#, python-format
msgid "Save & Close"
-msgstr ""
+msgstr "Uložit a zavřít"
#. module: web
#. openerp-web
diff --git a/addons/web/i18n/es.po b/addons/web/i18n/es.po
index 3380775f563..bee5737b4b9 100644
--- a/addons/web/i18n/es.po
+++ b/addons/web/i18n/es.po
@@ -3,40 +3,42 @@
# * web
#
# Translators:
-# Martin Trigaux, 2018
-# e2f <projects@e2f.com>, 2018
# ES R2 <e2fds74f5ds412@outlook.com>, 2018
# David Perez <david@closemarketing.es>, 2018
# Ana Juaristi <ajuaristio@gmail.com>, 2018
# Mateo Tibaquirá Palacios <nestormateo@gmail.com>, 2018
# Alejandro Santana <alejandrosantana@anubia.es>, 2018
# Odoo developer at Praxya.com <sergio.estada@gmail.com>, 2018
-# David Arnold <blaggacao@users.noreply.github.com>, 2018
# José Vicente <txusev@gmail.com>, 2018
-# Luis M. Ontalba <luis.martinez@tecnativa.com>, 2018
-# Luis M. Triana <luis.triana@jarsa.com.mx>, 2018
# David Casas <info@informaticacoslada.com>, 2018
-# Antonio Trueba, 2018
-# RGB Consulting <odoo@rgbconsulting.com>, 2018
-# e2f_EPV Translator <e2f_EPV@outlook.com>, 2018
# Kiko <kiko@comunitea.com>, 2018
-# Nicolás Broggi <rnbroggi@gmail.com>, 2018
# Gustavo Valverde, 2018
-# Albert Orellano <albert.orellano@megaterios.co>, 2018
+# e2f <projects@e2f.com>, 2018
# Cristian Salamea <ovnicraft@gmail.com>, 2018
# Pedro M. Baeza <pedro.baeza@gmail.com>, 2018
# Jesús Alan Ramos Rodríguez <alan.ramos@jarsa.com.mx>, 2018
+# David Arnold <blaggacao@users.noreply.github.com>, 2018
# Alejandro Die Sanchis <marketing@domatix.com>, 2018
+# Luis M. Ontalba <luis.martinez@tecnativa.com>, 2018
+# Luis M. Triana <luis.triana@jarsa.com.mx>, 2018
+# Antonio Trueba, 2018
+# RGB Consulting <odoo@rgbconsulting.com>, 2018
# Inigo Zuluaga <inigo_zuluaga@yahoo.es>, 2018
+# e2f_EPV Translator <e2f_EPV@outlook.com>, 2018
+# Albert Orellano <albert.orellano@megaterios.co>, 2018
+# Nicolás Broggi <rnbroggi@gmail.com>, 2018
# Rubi Navarro <ren@odoo.com>, 2018
# Cristopher Cravioto <ccr@odoo.com>, 2018
+# Martin Trigaux, 2018
+# Carlos Lopez <celm1990@hotmail.com>, 2018
+#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-08 06:49+0000\n"
-"PO-Revision-Date: 2018-10-08 06:49+0000\n"
-"Last-Translator: Cristopher Cravioto <ccr@odoo.com>, 2018\n"
+"PO-Revision-Date: 2018-08-24 09:33+0000\n"
+"Last-Translator: Carlos Lopez <celm1990@hotmail.com>, 2018\n"
"Language-Team: Spanish (https://www.transifex.com/odoo/teams/41243/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -1819,21 +1821,21 @@ msgstr "Idiomas"
#: code:addons/web/static/src/js/views/search/time_range_menu_options.js:9
#, python-format
msgid "Last 30 Days"
-msgstr ""
+msgstr "Últimos 30 días"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views/search/time_range_menu_options.js:10
#, python-format
msgid "Last 365 Days"
-msgstr ""
+msgstr "Últimos 365 días"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views/search/time_range_menu_options.js:8
#, python-format
msgid "Last 7 Days"
-msgstr ""
+msgstr "Últimos 7 días"
#. module: web
#: model:ir.model.fields,field_description:web.field_report_layout____last_update
diff --git a/addons/web/i18n/it.po b/addons/web/i18n/it.po
index 9d4853a2d0d..3a1ed8ca728 100644
--- a/addons/web/i18n/it.po
+++ b/addons/web/i18n/it.po
@@ -356,21 +356,21 @@ msgstr "Aggiungi gruppo personalizzato"
#: code:addons/web/static/src/xml/kanban.xml:49
#, python-format
msgid "Add a Column"
-msgstr "Aggiungi una colonna"
+msgstr "Aggiungi colonna"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1130
#, python-format
msgid "Add a condition"
-msgstr "Aggiungi una condizione"
+msgstr "Aggiungi condizione"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views/list/list_editable_renderer.js:78
#, python-format
msgid "Add a line"
-msgstr "Aggiungi una riga"
+msgstr "Aggiungi riga"
#. module: web
#. openerp-web
@@ -2605,12 +2605,12 @@ msgstr "Preferenze"
#. module: web
#: model:ir.actions.report,name:web.action_report_externalpreview
msgid "Preview External Report"
-msgstr "Anteprima rendiconto esterno"
+msgstr "Anteprima resoconto esterno"
#. module: web
#: model:ir.actions.report,name:web.action_report_internalpreview
msgid "Preview Internal Report"
-msgstr "Anteprima rendiconto interno"
+msgstr "Anteprima resoconto interno"
#. module: web
#: model:ir.model.fields,field_description:web.field_report_layout__image
@@ -2767,12 +2767,12 @@ msgstr "Rimuovere questo preferito dall'elenco"
#: code:addons/web/static/src/js/chrome/action_manager_report.js:112
#, python-format
msgid "Report"
-msgstr "Rendiconto"
+msgstr "Resoconto"
#. module: web
#: model:ir.model,name:web.model_report_layout
msgid "Report Layout"
-msgstr "Struttura rendiconto"
+msgstr "Struttura resoconto"
#. module: web
#. openerp-web
@@ -3206,8 +3206,7 @@ msgid ""
"The record has been modified, your changes will be discarded. Do you want to"
" proceed?"
msgstr ""
-"Il documento è stato modificato, verranno abbandonate le modifiche. "
-"Procedere?"
+"Il record è stato modificato, verranno abbandonate le modifiche. Procedere?"
#. module: web
#. openerp-web
@@ -3298,12 +3297,12 @@ msgstr ""
#. module: web
#: model_terms:ir.ui.view,arch_db:web.preview_externalreport
msgid "This is a sample of an external report."
-msgstr "Questo è un campione di un resoconto esterno."
+msgstr "Campione di resoconto esterno."
#. module: web
#: model_terms:ir.ui.view,arch_db:web.preview_internalreport
msgid "This is a sample of an internal report."
-msgstr "Questo è un campione di resoconto interno."
+msgstr "Campione di resoconto interno."
#. module: web
#. openerp-web
@@ -3407,7 +3406,7 @@ msgstr "Tipo:"
msgid ""
"Unable to find Wkhtmltopdf on this system. The report will be shown in html."
msgstr ""
-"Impossibile trovare wkhtmltopdf nel sistema. Il resoconto verrà mostrato in "
+"Impossibile trovare wkhtmltopdf nel sistema, il resoconto verrà mostrato in "
"html."
#. module: web
@@ -3492,7 +3491,7 @@ msgstr "Aggiornare i dati (compatibile con l'importazione)"
#: code:addons/web/static/src/js/fields/upgrade_fields.js:69
#, python-format
msgid "Upgrade now"
-msgstr "Aggiorna adesso"
+msgstr "Avanza adesso"
#. module: web
#. openerp-web
@@ -3506,7 +3505,7 @@ msgstr "Avanza a Enterprise"
#: code:addons/web/static/src/xml/base.xml:1571
#, python-format
msgid "Upgrade to future versions"
-msgstr "Aggiornamento a versioni future"
+msgstr "Avanzamento alle prossime versioni"
#. module: web
#. openerp-web
@@ -3709,7 +3708,7 @@ msgstr "Ieri"
#: code:addons/web/static/src/js/chrome/abstract_web_client.js:352
#, python-format
msgid "You are back online"
-msgstr "Nuovamente online"
+msgstr "Di nuovo in linea"
#. module: web
#. openerp-web
@@ -3758,6 +3757,9 @@ msgid ""
"to get a correct display of headers and footers as well as support for "
"table-breaking between pages."
msgstr ""
+"Per visualizzare correttamente le intestazioni e i piè di pagina e gestire "
+"le interruzioni tabella tra pagine è necessario aggiornare wkhtmltopdf alla "
+"versione 0.12.0 o superiore."
#. module: web
#. openerp-web
diff --git a/addons/web/i18n/ja.po b/addons/web/i18n/ja.po
index 11915901fa5..6cfa0fe790a 100644
--- a/addons/web/i18n/ja.po
+++ b/addons/web/i18n/ja.po
@@ -637,7 +637,7 @@ msgstr "ベース"
#: code:addons/web/static/src/xml/base.xml:1143
#, python-format
msgid "Based On"
-msgstr ""
+msgstr "基準"
#. module: web
#. openerp-web
@@ -819,7 +819,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1185
#, python-format
msgid "Compare To"
-msgstr ""
+msgstr "比較対象"
#. module: web
#. openerp-web
@@ -1799,21 +1799,21 @@ msgstr "言語"
#: code:addons/web/static/src/js/views/search/time_range_menu_options.js:9
#, python-format
msgid "Last 30 Days"
-msgstr ""
+msgstr "過去30日"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views/search/time_range_menu_options.js:10
#, python-format
msgid "Last 365 Days"
-msgstr ""
+msgstr "過去365日"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views/search/time_range_menu_options.js:8
#, python-format
msgid "Last 7 Days"
-msgstr ""
+msgstr "過去7日"
#. module: web
#: model:ir.model.fields,field_description:web.field_report_layout____last_update
@@ -2609,7 +2609,7 @@ msgstr ""
#: code:addons/web/static/src/xml/web_calendar.xml:75
#, python-format
msgid "Previous"
-msgstr ""
+msgstr "前"
#. module: web
#. openerp-web
@@ -2623,7 +2623,7 @@ msgstr "前期間"
#: code:addons/web/static/src/js/views/search/time_range_menu_options.js:25
#, python-format
msgid "Previous Year"
-msgstr ""
+msgstr "昨年"
#. module: web
#. openerp-web
@@ -3356,7 +3356,7 @@ msgstr ""
msgid ""
"Try to add some records, or make sure that there is no active filter in the "
"search bar."
-msgstr ""
+msgstr "レコードを追加するか、サーチバーのフィルタを調整してみてください。"
#. module: web
#. openerp-web
diff --git a/addons/web/i18n/nb.po b/addons/web/i18n/nb.po
index 2b9fd80db2d..e8aa2ea9d07 100644
--- a/addons/web/i18n/nb.po
+++ b/addons/web/i18n/nb.po
@@ -3,16 +3,18 @@
# * web
#
# Translators:
-# Martin Trigaux, 2018
# Eirik Halvorsen <eirik386@gmail.com>, 2018
# Jorunn D. Newth, 2018
+# Martin Trigaux, 2018
+# Marius Stedjan <marius@stedjan.com>, 2018
+#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-08 06:49+0000\n"
-"PO-Revision-Date: 2018-10-08 06:49+0000\n"
-"Last-Translator: Jorunn D. Newth, 2018\n"
+"PO-Revision-Date: 2018-08-24 09:33+0000\n"
+"Last-Translator: Marius Stedjan <marius@stedjan.com>, 2018\n"
"Language-Team: Norwegian Bokmål (https://www.transifex.com/odoo/teams/41243/nb/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -165,7 +167,7 @@ msgstr "'%s' er ikke et korrekt heltall"
#: code:addons/web/static/src/js/fields/field_utils.js:548
#, python-format
msgid "'%s' is not a correct monetary field"
-msgstr ""
+msgstr "'%s' er ikke et gyldig valutafelt"
#. module: web
#. openerp-web
@@ -186,7 +188,7 @@ msgstr "(Enterprise-utgave)"
#: code:addons/web/static/src/xml/base.xml:298
#, python-format
msgid "(change)"
-msgstr ""
+msgstr "(endre)"
#. module: web
#. openerp-web
@@ -194,7 +196,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:537
#, python-format
msgid "(count)"
-msgstr ""
+msgstr "(antall)"
#. module: web
#. openerp-web
@@ -225,6 +227,8 @@ msgid ""
"A popup window has been blocked. You may need to change your browser "
"settings to allow popup windows for this page."
msgstr ""
+"Et popup-vindu ble blokkert. Du må kanskje endre innstillinger i nettleseren"
+" din til å tillate popup-vinduer på dette nettstedet."
#. module: web
#. openerp-web
@@ -234,6 +238,9 @@ msgid ""
"A popup window with your report was blocked. You may need to change your "
"browser settings to allow popup windows for this page."
msgstr ""
+"Popup-vinduet med rapporten din ble blokkert. Du må kanskje endre "
+"innstillinger i nettleseren din til å tillate popup-vinduer på dette "
+"nettstedet."
#. module: web
#. openerp-web
@@ -247,7 +254,7 @@ msgstr "ALLE"
#: code:addons/web/static/src/xml/base.xml:633
#, python-format
msgid "ANY"
-msgstr ""
+msgstr "NOEN"
#. module: web
#. openerp-web
@@ -322,7 +329,7 @@ msgstr "Legg til"
#: code:addons/web/static/src/js/views/calendar/calendar_renderer.js:82
#, python-format
msgid "Add %s"
-msgstr ""
+msgstr "Legg til %s"
#. module: web
#. openerp-web
@@ -336,14 +343,14 @@ msgstr "Legg til tilpasset filter"
#: code:addons/web/static/src/xml/base.xml:1111
#, python-format
msgid "Add Custom Group"
-msgstr ""
+msgstr "Legg til tilpasset gruppe"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/kanban.xml:49
#, python-format
msgid "Add a Column"
-msgstr ""
+msgstr "Legg til kolonne"
#. module: web
#. openerp-web
@@ -357,21 +364,21 @@ msgstr "Legg til betingelse"
#: code:addons/web/static/src/js/views/list/list_editable_renderer.js:78
#, python-format
msgid "Add a line"
-msgstr ""
+msgstr "Legg til linje"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:616
#, python-format
msgid "Add branch"
-msgstr ""
+msgstr "Legg til gren"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/kanban.xml:48
#, python-format
msgid "Add column"
-msgstr ""
+msgstr "Legg til kolonne"
#. module: web
#. openerp-web
@@ -392,14 +399,14 @@ msgstr "Legg til ny verdi"
#: code:addons/web/static/src/xml/base.xml:615
#, python-format
msgid "Add node"
-msgstr ""
+msgstr "Legg til notat"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:701
#, python-format
msgid "Add tag"
-msgstr ""
+msgstr "Legg til tag"
#. module: web
#. openerp-web
@@ -497,6 +504,9 @@ msgid ""
"JavaScript file served from a different origin. (Opening your browser "
"console might give you a hint on the error.)"
msgstr ""
+"En ukjent CORS-feil oppstod. Denne feilen kommer sannsynligvis fra en "
+"ekstern JavaScript-fil fra en annen opprinnelse. (Om du åpner nettleser-"
+"konsollen, kan du sannsynligvis få et hint om feilen.)"
#. module: web
#. openerp-web
@@ -511,7 +521,7 @@ msgstr "Og mer"
#: code:addons/web/static/src/xml/base.xml:628
#, python-format
msgid "Any"
-msgstr ""
+msgstr "Noen"
#. module: web
#. openerp-web
@@ -535,7 +545,7 @@ msgstr "Arkiver"
#: code:addons/web/static/src/xml/kanban.xml:27
#, python-format
msgid "Archive All"
-msgstr ""
+msgstr "Arkiver alle"
#. module: web
#. openerp-web
@@ -551,13 +561,14 @@ msgstr "Arkivert"
msgid ""
"Are you sure that you want to archive all the records from this column?"
msgstr ""
+"Er du sikker på at du vil arkivere alle oppføringene i denne kolonnen?"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views/list/list_controller.js:156
#, python-format
msgid "Are you sure that you want to archive all the selected records?"
-msgstr ""
+msgstr "Er du sikker på at du vil arkivere de valgte oppføringene?"
#. module: web
#. openerp-web
@@ -586,7 +597,7 @@ msgstr "Er du sikker på at du vil fjerne denne oppføringen?"
#: code:addons/web/static/src/xml/base.xml:1028
#, python-format
msgid "Attach"
-msgstr ""
+msgstr "Legg til vedlegg"
#. module: web
#. openerp-web
@@ -629,14 +640,14 @@ msgstr "Base"
#: code:addons/web/static/src/xml/base.xml:1143
#, python-format
msgid "Based On"
-msgstr ""
+msgstr "Basert på"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:250
#, python-format
msgid "Become Superuser"
-msgstr ""
+msgstr "Bli superbruker"
#. module: web
#: code:addons/web/controllers/main.py:1538
@@ -645,6 +656,8 @@ msgid ""
"Binary fields can not be exported to Excel unless their content is "
"base64-encoded. That does not seem to be the case for %s."
msgstr ""
+"Binærfelter kan ikke eksporteres til Excel med mindre de er base64-kodet. "
+"Det ser ikke ut til å være tilfellet for %s."
#. module: web
#. openerp-web
@@ -693,7 +706,7 @@ msgstr "Bytes, Kb, Mb, Gb, Tb, Pb, Eb, Zb, Yb"
#: code:addons/web/static/src/xml/base.xml:1222
#, python-format
msgid "CLEAR"
-msgstr ""
+msgstr "NULLSTILL"
#. module: web
#. openerp-web
@@ -736,7 +749,7 @@ msgstr "Kan ikke vise diagram med modus:"
#: code:addons/web/static/src/js/views/kanban/kanban_record.js:414
#, python-format
msgid "Card color: %s"
-msgstr ""
+msgstr "Kortfarge: %s"
#. module: web
#. openerp-web
@@ -811,7 +824,7 @@ msgstr "Kolonnetittel"
#: code:addons/web/static/src/xml/base.xml:1185
#, python-format
msgid "Compare To"
-msgstr ""
+msgstr "Sammenlign med"
#. module: web
#. openerp-web
@@ -899,7 +912,7 @@ msgstr "Kopier hele feilmeldingen til utklippstavle"
#: code:addons/web/static/src/js/core/ajax.js:372
#, python-format
msgid "Could not connect to the server"
-msgstr ""
+msgstr "Kan ikke koble til Server"
#. module: web
#. openerp-web
@@ -994,7 +1007,7 @@ msgstr "Opprett:"
#: code:addons/web/static/src/js/views/calendar/calendar_controller.js:245
#, python-format
msgid "Create: %s"
-msgstr ""
+msgstr "Opprett: %s"
#. module: web
#: model:ir.model.fields,field_description:web.field_report_layout__create_uid
@@ -1032,7 +1045,7 @@ msgstr "Opprettet av:"
#: code:addons/web/static/src/xml/base.xml:919
#, python-format
msgid "Current state"
-msgstr ""
+msgstr "Nåværende status"
#. module: web
#. openerp-web
@@ -1048,7 +1061,7 @@ msgstr "Tilpasset filter"
#: code:addons/web/static/src/xml/kanban.xml:88
#, python-format
msgid "Dark blue"
-msgstr ""
+msgstr "Mørk blå"
#. module: web
#. openerp-web
@@ -1057,7 +1070,7 @@ msgstr ""
#: code:addons/web/static/src/xml/kanban.xml:85
#, python-format
msgid "Dark purple"
-msgstr ""
+msgstr "Mørk lilla"
#. module: web
#: model_terms:ir.ui.view,arch_db:web.login
@@ -1111,14 +1124,14 @@ msgstr "Slett"
#: code:addons/web/static/src/xml/base.xml:614
#, python-format
msgid "Delete node"
-msgstr ""
+msgstr "Slett node"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views/list/list_editable_renderer.js:557
#, python-format
msgid "Delete row "
-msgstr ""
+msgstr "Slett rad"
#. module: web
#. openerp-web
@@ -1234,7 +1247,7 @@ msgstr "Last ned .xls-fil"
#: code:addons/web/static/src/xml/base.xml:1556
#, python-format
msgid "Dropdown menu"
-msgstr ""
+msgstr "Nedtrekksmeny"
#. module: web
#. openerp-web
@@ -1295,7 +1308,7 @@ msgstr "Rediger stadium"
#: code:addons/web/static/src/xml/base.xml:276
#, python-format
msgid "Edit View:"
-msgstr ""
+msgstr "Rediger visning:"
#. module: web
#. openerp-web
@@ -1334,7 +1347,7 @@ msgstr "Feil, passord ikke endret!"
#: code:addons/web/static/src/xml/kanban.xml:62
#, python-format
msgid "Esc to discard"
-msgstr ""
+msgstr "Klikk Esc for å forkaste"
#. module: web
#. openerp-web
@@ -1369,7 +1382,7 @@ msgstr "Utvid alle"
#: code:addons/web/static/src/xml/base.xml:1433
#, python-format
msgid "Expand parents"
-msgstr ""
+msgstr "Utvid overordnede"
#. module: web
#. openerp-web
@@ -1390,7 +1403,7 @@ msgstr "Eksporter data"
#: code:addons/web/static/src/xml/base.xml:1400
#, python-format
msgid "Export Format:"
-msgstr ""
+msgstr "Eksportformat:"
#. module: web
#. openerp-web
@@ -1413,14 +1426,14 @@ msgstr "Ekstern ID"
#: code:addons/web/static/src/xml/base.xml:826
#, python-format
msgid "External link"
-msgstr ""
+msgstr "Ekstern link"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1220
#, python-format
msgid "FILTER"
-msgstr ""
+msgstr "FILTER"
#. module: web
#. openerp-web
@@ -1534,7 +1547,7 @@ msgstr "Minimer"
#: code:addons/web/static/src/xml/base.xml:756
#, python-format
msgid "Followed by"
-msgstr ""
+msgstr "Følges av"
#. module: web
#. openerp-web
@@ -1561,7 +1574,7 @@ msgstr "Skjema"
#: code:addons/web/static/src/js/views/search/filters_menu.js:179
#, python-format
msgid "From %s To %s"
-msgstr ""
+msgstr "Fra %s til %s"
#. module: web
#. openerp-web
@@ -1570,7 +1583,7 @@ msgstr ""
#: code:addons/web/static/src/xml/kanban.xml:89
#, python-format
msgid "Fushia"
-msgstr ""
+msgstr "Fushia"
#. module: web
#. openerp-web
@@ -1591,7 +1604,7 @@ msgstr ""
#: code:addons/web/static/src/js/views/kanban/kanban_column_quick_create.js:189
#, python-format
msgid "Got it"
-msgstr ""
+msgstr "OK"
#. module: web
#. openerp-web
@@ -1628,56 +1641,56 @@ msgstr "Grupper etter: %s"
#. module: web
#: model:ir.model,name:web.model_ir_http
msgid "HTTP Routing"
-msgstr ""
+msgstr "HTTP-ruting"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:877
#, python-format
msgid "Hide in Kanban"
-msgstr ""
+msgstr "Gjem i kanban"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:432
#, python-format
msgid "Hit DOWN to navigate to the list below"
-msgstr ""
+msgstr "Klikk NED for å navigere til listen under"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:439
#, python-format
msgid "Hit ENTER to"
-msgstr ""
+msgstr "Klikk ENTER for å"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:431
#, python-format
msgid "Hit ENTER to CREATE"
-msgstr ""
+msgstr "Klikk ENTER for å OPPRETTE"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:423
#, python-format
msgid "Hit ENTER to SAVE"
-msgstr ""
+msgstr "Klikk ENTER for å LAGRE"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:424
#, python-format
msgid "Hit ESCAPE to DISCARD"
-msgstr ""
+msgstr "Klikk ESCAPE for å FORKASTE"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/colorpicker.xml:41
#, python-format
msgid "Hue"
-msgstr ""
+msgstr "Kulør"
#. module: web
#. openerp-web
@@ -1745,7 +1758,7 @@ msgstr "Ugyldig domene"
#: code:addons/web/static/src/xml/base.xml:737
#, python-format
msgid "Invalid field chain"
-msgstr ""
+msgstr "Ugyldig feltkjede"
#. module: web
#. openerp-web
@@ -1793,21 +1806,21 @@ msgstr "Språk"
#: code:addons/web/static/src/js/views/search/time_range_menu_options.js:9
#, python-format
msgid "Last 30 Days"
-msgstr ""
+msgstr "Siste 30 dager"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views/search/time_range_menu_options.js:10
#, python-format
msgid "Last 365 Days"
-msgstr ""
+msgstr "Siste 365 dager"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views/search/time_range_menu_options.js:8
#, python-format
msgid "Last 7 Days"
-msgstr ""
+msgstr "Siste 7 dager"
#. module: web
#: model:ir.model.fields,field_description:web.field_report_layout____last_update
@@ -1880,14 +1893,14 @@ msgstr "Forlat utviklerverktøy"
#: code:addons/web/static/src/xml/kanban.xml:84
#, python-format
msgid "Light blue"
-msgstr ""
+msgstr "Lys blå"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/colorpicker.xml:49
#, python-format
msgid "Lightness %"
-msgstr ""
+msgstr "Lystetthet %"
#. module: web
#. openerp-web
@@ -1930,7 +1943,7 @@ msgstr "Laster inn (%d)"
#: code:addons/web/static/src/xml/base.xml:1466
#, python-format
msgid "Loading, please wait..."
-msgstr ""
+msgstr "Laster, vennligst vent..."
#. module: web
#. openerp-web
@@ -1950,7 +1963,7 @@ msgstr "Logg inn"
#. module: web
#: model_terms:ir.ui.view,arch_db:web.login
msgid "Log in as superuser"
-msgstr ""
+msgstr "Logg inn som superbruker"
#. module: web
#. openerp-web
@@ -1993,7 +2006,7 @@ msgstr "Epost:"
#: code:addons/web/static/src/xml/base.xml:271
#, python-format
msgid "Manage Attachments"
-msgstr ""
+msgstr "Administrer vedlegg"
#. module: web
#: model_terms:ir.ui.view,arch_db:web.login_layout
@@ -2013,7 +2026,7 @@ msgstr "Administrer filtre"
#: code:addons/web/static/src/xml/base.xml:639
#, python-format
msgid "Match"
-msgstr ""
+msgstr "Match"
#. module: web
#. openerp-web
@@ -2051,7 +2064,7 @@ msgstr "Mål"
#: code:addons/web/static/src/xml/kanban.xml:87
#, python-format
msgid "Medium blue"
-msgstr ""
+msgstr "Medium blå"
#. module: web
#. openerp-web
@@ -2196,7 +2209,7 @@ msgstr "Ingen oppdatering:"
#: code:addons/web/static/src/js/tools/debug_manager.js:359
#, python-format
msgid "No attachment available"
-msgstr ""
+msgstr "Ingen vedlegg tilgjengelig"
#. module: web
#. openerp-web
@@ -2204,7 +2217,7 @@ msgstr ""
#: code:addons/web/static/src/xml/kanban.xml:80
#, python-format
msgid "No color"
-msgstr ""
+msgstr "Ingen farge"
#. module: web
#. openerp-web
@@ -2255,7 +2268,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:927
#, python-format
msgid "Not active state, click to change it"
-msgstr ""
+msgstr "Ikke aktiv tilstand, klikk for å endre den"
#. module: web
#. openerp-web
@@ -2363,7 +2376,7 @@ msgstr "Ved endring:"
#: code:addons/web/static/src/js/fields/basic_fields.js:2283
#, python-format
msgid "Only Integer Value should be valid."
-msgstr ""
+msgstr "Kun heltall er gyldig verdi"
#. module: web
#: code:addons/web/controllers/main.py:502
@@ -2384,7 +2397,7 @@ msgstr "Bare deg"
#: code:addons/web/static/src/xml/colorpicker.xml:55
#, python-format
msgid "Opacity %"
-msgstr ""
+msgstr "Gjennomsiktighet %"
#. module: web
#. openerp-web
@@ -2405,7 +2418,7 @@ msgstr "Åpne utviklerverktøy"
#: code:addons/web/static/src/xml/base.xml:241
#, python-format
msgid "Open View"
-msgstr ""
+msgstr "Åpne Visning"
#. module: web
#. openerp-web
@@ -2452,7 +2465,7 @@ msgstr "Åpne: "
#: code:addons/web/static/src/xml/kanban.xml:82
#, python-format
msgid "Orange"
-msgstr ""
+msgstr "Oransje"
#. module: web
#: model_terms:ir.ui.view,arch_db:web.external_layout_background
@@ -2488,7 +2501,7 @@ msgstr "Telefon:"
#: code:addons/web/static/src/js/widgets/colorpicker.js:33
#, python-format
msgid "Pick a color"
-msgstr ""
+msgstr "Velg en farge"
#. module: web
#. openerp-web
@@ -2505,6 +2518,8 @@ msgid ""
"Pie chart cannot display all zero numbers.. Try to change your domain to "
"display positive results"
msgstr ""
+"Kakediagram kan ikke vise kun nullverdier. Forsøk å endre domenet for å vise"
+" positive resultater."
#. module: web
#. openerp-web
@@ -2529,7 +2544,7 @@ msgstr "Pivot"
#: code:addons/web/static/src/js/views/list/list_renderer.js:352
#, python-format
msgid "Please click on the \"save\" button first."
-msgstr ""
+msgstr "Klikk på 'Lagre'-knappen først."
#. module: web
#. openerp-web
@@ -2557,7 +2572,7 @@ msgstr "Velg hvilke felt som skal lagres i eksportlisten..."
#: code:addons/web/static/src/xml/base.xml:1525
#, python-format
msgid "Please update translations of :"
-msgstr ""
+msgstr "Oppdater oversettelse for:"
#. module: web
#. openerp-web
@@ -2592,12 +2607,12 @@ msgstr "Forhåndsvis intern rapport"
#. module: web
#: model:ir.model.fields,field_description:web.field_report_layout__image
msgid "Preview image src"
-msgstr ""
+msgstr "Forhåndsvis bildelink"
#. module: web
#: model:ir.model.fields,field_description:web.field_report_layout__pdf
msgid "Preview pdf src"
-msgstr ""
+msgstr "Forhåndsvis pdf-link"
#. module: web
#. openerp-web
@@ -2650,12 +2665,12 @@ msgstr "Kvartal"
#: code:addons/web/static/src/xml/kanban.xml:32
#, python-format
msgid "Quick add"
-msgstr ""
+msgstr "Hurtigopprett"
#. module: web
#: model:ir.model,name:web.model_ir_qweb_field_image
msgid "Qweb Field Image"
-msgstr ""
+msgstr "Qweb Felt-bilde"
#. module: web
#. openerp-web
@@ -2679,7 +2694,7 @@ msgstr "Rød"
#: code:addons/web/static/src/xml/base.xml:249
#, python-format
msgid "Regenerate Assets Bundles"
-msgstr ""
+msgstr "Regenerer Ressursbunt"
#. module: web
#. openerp-web
@@ -2693,7 +2708,7 @@ msgstr "Relasjon ikke tillatt"
#: code:addons/web/static/src/xml/base.xml:771
#, python-format
msgid "Relation to follow"
-msgstr ""
+msgstr "Relasjon å følge"
#. module: web
#. openerp-web
@@ -2730,7 +2745,7 @@ msgstr "Fjern fra favoritter"
#: code:addons/web/static/src/xml/base.xml:696
#, python-format
msgid "Remove tag"
-msgstr ""
+msgstr "Fjern tag"
#. module: web
#. openerp-web
@@ -2749,14 +2764,14 @@ msgstr "Rapport"
#. module: web
#: model:ir.model,name:web.model_report_layout
msgid "Report Layout"
-msgstr ""
+msgstr "Rapportlayout"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/services/crash_manager.js:223
#, python-format
msgid "Request timeout"
-msgstr ""
+msgstr "Forespørsel timet ut"
#. module: web
#. openerp-web
@@ -2770,7 +2785,7 @@ msgstr "Gjenopprett"
#: code:addons/web/static/src/xml/base.xml:240
#, python-format
msgid "Run Click Everywhere Test"
-msgstr ""
+msgstr "Kjør Click Everywhere test"
#. module: web
#. openerp-web
@@ -2791,7 +2806,7 @@ msgstr "Kjør JS-tester"
#: code:addons/web/static/src/xml/base.xml:1226
#, python-format
msgid "SEE RESULT"
-msgstr ""
+msgstr "SE RESULTAT"
#. module: web
#. openerp-web
@@ -2800,14 +2815,14 @@ msgstr ""
#: code:addons/web/static/src/xml/kanban.xml:86
#, python-format
msgid "Salmon pink"
-msgstr ""
+msgstr "Lakserosa"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/colorpicker.xml:45
#, python-format
msgid "Saturation %"
-msgstr ""
+msgstr "Fargetetthet %"
#. module: web
#. openerp-web
@@ -2826,7 +2841,7 @@ msgstr "Lagre"
#: code:addons/web/static/src/js/views/view_dialogs.js:137
#, python-format
msgid "Save & Close"
-msgstr ""
+msgstr "Lagre og lukk"
#. module: web
#. openerp-web
@@ -2952,6 +2967,8 @@ msgid ""
"Select <i class=\"fa fa-database\" role=\"img\" aria-label=\"Database\" "
"title=\"Database\"/>"
msgstr ""
+"Velg <i class=\"fa fa-database\" role=\"img\" aria-label=\"Database\" "
+"title=\"Database\"/>"
#. module: web
#. openerp-web
@@ -3135,6 +3152,8 @@ msgid ""
"The field chain is not valid. Did you maybe use a non-existing field name or"
" followed a non-relational field?"
msgstr ""
+"Feltkjeden er ikke gyldig. Brukte du kanskje et ikkeeksisterende felt, eller"
+" fulgte et ikke-relasjonelt felt?"
#. module: web
#. openerp-web
@@ -3172,6 +3191,8 @@ msgid ""
"The operation was interrupted. This usually means that the current operation"
" is taking too much time."
msgstr ""
+"Operasjonen ble avbrutt. Dette betyr som regel at den nåværende operasjonen "
+"tar for mye tid."
#. module: web
#. openerp-web
@@ -3253,6 +3274,7 @@ msgstr "Dette år"
#, python-format
msgid "This date is on the future. Make sure it is what you expected."
msgstr ""
+"Dette datoen er i fremtiden. Vær sikker på at det er dette du forventet."
#. module: web
#. openerp-web
@@ -3294,7 +3316,7 @@ msgstr "Tidsspenn"
#: code:addons/web/static/src/xml/base.xml:1139
#, python-format
msgid "Time Ranges"
-msgstr ""
+msgstr "Tidsintervaller"
#. module: web
#. openerp-web
@@ -3305,6 +3327,9 @@ msgid ""
"one. The time in Odoo is displayed according to the timezone set on your "
"user's preferences."
msgstr ""
+"Tidssonefeil : Tidssonen i nettleseren din stemmer ikke med den valgte "
+"tidssonen. Tiden i Odoo vises i henhold til tidssonen du har satt i "
+"brukerens innstillinger."
#. module: web
#. openerp-web
@@ -3352,6 +3377,8 @@ msgid ""
"Try to add some records, or make sure\n"
" that there is at least one measure and no active filter in the search bar."
msgstr ""
+"Prøv å legge til oppføringer, eller forsikre deg om at\n"
+" det er minst en måleverdi, og ingen aktive filtre i søkefeltet."
#. module: web
#. openerp-web
@@ -3361,6 +3388,8 @@ msgid ""
"Try to add some records, or make sure that there is no active filter in the "
"search bar."
msgstr ""
+"Forsøk å legge til oppføringer, eller forsikre deg om at det ikke finnes "
+"aktive filtre i søkefeltet."
#. module: web
#. openerp-web
@@ -3382,7 +3411,7 @@ msgstr "Type:"
#, python-format
msgid ""
"Unable to find Wkhtmltopdf on this system. The report will be shown in html."
-msgstr ""
+msgstr "Kan ikke finne Wkhtmltopdf på systemet. Rapporten vil vises som html."
#. module: web
#. openerp-web
@@ -3396,7 +3425,7 @@ msgstr "Av-arkiver"
#: code:addons/web/static/src/xml/kanban.xml:28
#, python-format
msgid "Unarchive All"
-msgstr ""
+msgstr "Dearkiver alle"
#. module: web
#. openerp-web
@@ -3438,7 +3467,7 @@ msgstr "Ukjent type "
#: code:addons/web/static/src/js/views/list/list_editable_renderer.js:556
#, python-format
msgid "Unlink row "
-msgstr ""
+msgstr "Slett rad"
#. module: web
#. openerp-web
@@ -3459,7 +3488,7 @@ msgstr "Uten navn"
#: code:addons/web/static/src/xml/base.xml:1393
#, python-format
msgid "Update data (import-compatible export)"
-msgstr ""
+msgstr "Oppdater data (import-kompatibel eksport)"
#. module: web
#. openerp-web
@@ -3473,7 +3502,7 @@ msgstr "Oppgrader nå"
#: code:addons/web/static/src/xml/base.xml:1577
#, python-format
msgid "Upgrade to enterprise"
-msgstr ""
+msgstr "Oppgrader til enterprise"
#. module: web
#. openerp-web
@@ -3519,7 +3548,7 @@ msgstr "Bruk som standard"
#: code:addons/web/static/src/xml/base.xml:1387
#, python-format
msgid "Use data in a spreadsheet (export all data)"
-msgstr ""
+msgstr "Bruk data i et regneark (eksporter all data)"
#. module: web
#. openerp-web
@@ -3568,7 +3597,7 @@ msgstr "Advarsel"
#: code:addons/web/static/src/js/widgets/attach_document.js:87
#, python-format
msgid "Warning : You have to save first before attaching a file."
-msgstr ""
+msgstr "Advarsel : Du må lagre før du legger ved en fil."
#. module: web
#: model_terms:ir.ui.view,arch_db:web.benchmark_suite
@@ -3722,7 +3751,7 @@ msgstr ""
msgid ""
"You need to start Odoo with at least two workers to print a pdf version of "
"the reports."
-msgstr ""
+msgstr "Du må starte Odoo med minst to workers for å printe pdf-rapporter."
#. module: web
#. openerp-web
@@ -3733,6 +3762,9 @@ msgid ""
"to get a correct display of headers and footers as well as support for "
"table-breaking between pages."
msgstr ""
+"Du bør oppgradere versjonen av Wkhtmltopdf til minst 0.12.0 for å kunne få "
+"korrekt visning av topp- og bunntekst, samt for å få støtte for tabeller som"
+" går over flere sider."
#. module: web
#. openerp-web
@@ -3749,13 +3781,15 @@ msgid ""
"Your installation of Wkhtmltopdf seems to be broken. The report will be "
"shown in html."
msgstr ""
+"Din installasjon av Wkhtmltopdf ser ikke ut til å fungere. Rapporten blir "
+"vist som HTML."
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views/kanban/kanban_record.js:246
#, python-format
msgid "[No widget %s]"
-msgstr ""
+msgstr "[Ingen widget %s]"
#. module: web
#. openerp-web
@@ -3804,7 +3838,7 @@ msgstr "alle oppføringer"
#: code:addons/web/static/src/js/widgets/domain_selector.js:28
#, python-format
msgid "child of"
-msgstr ""
+msgstr "underordnet av"
#. module: web
#. openerp-web
@@ -3819,7 +3853,7 @@ msgstr "inneholder"
#: code:addons/web/static/src/js/widgets/domain_selector.js:24
#, python-format
msgid "does not contain"
-msgstr ""
+msgstr "inneholder ikke"
#. module: web
#. openerp-web
@@ -3912,7 +3946,7 @@ msgstr "er ikke"
#: code:addons/web/static/src/js/widgets/domain_selector.js:18
#, python-format
msgid "is not ="
-msgstr ""
+msgstr "er ikke ="
#. module: web
#. openerp-web
@@ -4047,7 +4081,7 @@ msgstr "eller"
#: code:addons/web/static/src/js/widgets/domain_selector.js:29
#, python-format
msgid "parent of"
-msgstr ""
+msgstr "overordnet av"
#. module: web
#. openerp-web
diff --git a/addons/web/i18n/pt_BR.po b/addons/web/i18n/pt_BR.po
index 1fd37f82ff9..adf20a58ea5 100644
--- a/addons/web/i18n/pt_BR.po
+++ b/addons/web/i18n/pt_BR.po
@@ -3,30 +3,32 @@
# * web
#
# Translators:
-# Rodrigo de Almeida Sottomaior Macedo <rmsolucoeseminformatic4@gmail.com>, 2018
-# danimaribeiro <danimaribeiro@gmail.com>, 2018
-# Martin Trigaux, 2018
-# Mateus Lopes <mateus1@gmail.com>, 2018
-# Luiz Carlos de Lima <luiz.carlos@akretion.com.br>, 2018
# Thiago MACÊDO <thiago95macedo@gmail.com>, 2018
-# falexandresilva <falexandresilva@gmail.com>, 2018
-# grazziano <gra.negocia@gmail.com>, 2018
# Marcos Abreu <marcoos.abreu@gmail.com>, 2018
-# Diego Bittencourt <diegomb86@gmail.com>, 2018
+# Luiz Carlos de Lima <luiz.carlos@akretion.com.br>, 2018
# Adriel Kotviski <kotviski@gmail.com>, 2018
-# Silmar <pinheirosilmar@gmail.com>, 2018
+# falexandresilva <falexandresilva@gmail.com>, 2018
+# Diego Bittencourt <diegomb86@gmail.com>, 2018
+# Rodrigo de Almeida Sottomaior Macedo <rmsolucoeseminformatic4@gmail.com>, 2018
+# danimaribeiro <danimaribeiro@gmail.com>, 2018
# André Augusto Firmino Cordeiro <a.cordeito@gmail.com>, 2018
+# Silmar <pinheirosilmar@gmail.com>, 2018
+# Martin Trigaux, 2018
# Luciano Giacomazzi <lucianogiacomazzi@gmail.com>, 2018
-# Maicon Grahl <maicongrahl@hotmail.com>, 2018
+# grazziano <gra.negocia@gmail.com>, 2018
# Franciele Neiva <franciele.neiva@br.ey.com>, 2018
+# Mateus Lopes <mateus1@gmail.com>, 2018
+# Maicon Grahl <maicongrahl@hotmail.com>, 2018
# Yannick Belot <yannickbh@gmail.com>, 2018
+# Rafael H L Moretti <rafael.moretti@gmail.com>, 2018
+#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-08 06:49+0000\n"
-"PO-Revision-Date: 2018-10-08 06:49+0000\n"
-"Last-Translator: Yannick Belot <yannickbh@gmail.com>, 2018\n"
+"PO-Revision-Date: 2018-08-24 09:33+0000\n"
+"Last-Translator: Rafael H L Moretti <rafael.moretti@gmail.com>, 2018\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/odoo/teams/41243/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -1737,6 +1739,8 @@ msgid ""
"Invalid database name. Only alphanumerical characters, underscore, hyphen "
"and dot are allowed."
msgstr ""
+"Nome de base de dados inválido. Apenas caracteres alfanuméricos, subtraço, "
+"hífen e ponto são permitidos."
#. module: web
#. openerp-web
@@ -3821,7 +3825,7 @@ msgstr "contém"
#: code:addons/web/static/src/js/widgets/domain_selector.js:24
#, python-format
msgid "does not contain"
-msgstr ""
+msgstr "não contém"
#. module: web
#. openerp-web
diff --git a/addons/web/static/lib/py.js/lib/py.js b/addons/web/static/lib/py.js/lib/py.js
index 06d834321de..bd794323995 100644
--- a/addons/web/static/lib/py.js/lib/py.js
+++ b/addons/web/static/lib/py.js/lib/py.js
@@ -282,7 +282,10 @@ var py = {};
var name_pattern = new RegExp('^' + Name + '$');
var strip = new RegExp('^' + Whitespace);
return function tokenize(s) {
- var max=s.length, tokens = [], start, end = undefined;
+ s = s
+ .replace(/\\\"/g, '\\u0022') // for double quote
+ .replace(/\\\'/g, '\\u0027'); // for single quote
+ var max=s.length, tokens = [], start, end;
// /g flag makes repeated exec() have memory
var pseudoprog = new RegExp(PseudoToken, 'g');
@@ -302,7 +305,6 @@ var py = {};
end = pseudoprog.lastIndex;
// strip leading space caught by Whitespace
var token = s.slice(start, end).replace(strip, '');
- var initial = token[0];
if (number_pattern.test(token)) {
tokens.push(create(symbols['(number)'], {
@@ -310,9 +312,13 @@ var py = {};
}));
} else if (string_pattern.test(token)) {
var m = string_pattern.exec(token);
+ var value = (m[3] !== undefined ? m[3] : m[5]);
+ value
+ .replace(/\\u0022/g, '"')
+ .replace(/\\u0027/g, "'");
tokens.push(create(symbols['(string)'], {
unicode: !!(m[2] || m[4]),
- value: (m[3] !== undefined ? m[3] : m[5])
+ value: value
}));
} else if (token in symbols) {
var symbol;
diff --git a/addons/web/static/src/js/chrome/action_manager_act_window.js b/addons/web/static/src/js/chrome/action_manager_act_window.js
index 04b06377d3f..c1667e9b9e6 100644
--- a/addons/web/static/src/js/chrome/action_manager_act_window.js
+++ b/addons/web/static/src/js/chrome/action_manager_act_window.js
@@ -635,7 +635,7 @@ ActionManager.include({
_.object(_.reject(_.pairs(env.context), function (pair) {
return pair[0].match('^(?:(?:default_|search_default_|show_).+|' +
'.+_view_ref|group_by|group_by_no_leaf|active_id|' +
- 'active_ids)$') !== null;
+ 'active_ids|orderedBy)$') !== null;
}))
);
ctx.add(actionData.context || {});
diff --git a/addons/web/static/src/js/views/graph/graph_renderer.js b/addons/web/static/src/js/views/graph/graph_renderer.js
index fe4efab1b20..38c2f02351e 100644
--- a/addons/web/static/src/js/views/graph/graph_renderer.js
+++ b/addons/web/static/src/js/views/graph/graph_renderer.js
@@ -337,8 +337,8 @@ return AbstractRenderer.extend({
var self = this;
// Remove Undefined of first GroupBy
- var graphData = _.filter(this.state.data, function(elem){
- return elem.labels[0] !== undefined;
+ var graphData = _.filter(this.state.data, function (elem) {
+ return elem.labels[0] !== undefined && elem.labels[0] !== _t("Undefined");
});
// undefined label value becomes a string 'Undefined' translated
@@ -391,10 +391,9 @@ return AbstractRenderer.extend({
var tick = 0;
var serie, tickLabel;
var identity = function (p) {return p;};
-
- for (var i = 0; i < this.state.data.length; i++) {
+ for (var i = 0; i < graphData.length; i++) {
if (graphData[i].labels[0] !== tickLabel) {
- tickLabel = this.state.data[i].labels[0];
+ tickLabel = graphData[i].labels[0];
ticksLabels.push(tickLabel);
tick++;
}
diff --git a/addons/web/static/src/js/views/pivot/pivot_view.js b/addons/web/static/src/js/views/pivot/pivot_view.js
index 38d8d80a9d7..5e05a2fe7e7 100644
--- a/addons/web/static/src/js/views/pivot/pivot_view.js
+++ b/addons/web/static/src/js/views/pivot/pivot_view.js
@@ -70,9 +70,6 @@ var PivotView = AbstractView.extend({
widgets[name] = field.attrs.widget;
}
- if (field.attrs.string) {
- measures[name].string = field.attrs.string;
- }
if (field.attrs.invisible && py.eval(field.attrs.invisible)) {
delete measures[name];
@@ -89,6 +86,11 @@ var PivotView = AbstractView.extend({
if (field.attrs.type === 'measure' && !(field.attrs.name in measures)) {
measures[field.attrs.name] = self.fields[field.attrs.name];
}
+
+ if (field.attrs.string) {
+ measures[name].string = field.attrs.string;
+ }
+
if (field.attrs.type === 'measure' || 'operator' in field.attrs) {
activeMeasures.push(name);
measures[name] = self.fields[name];
diff --git a/addons/web/static/src/scss/layout_background.scss b/addons/web/static/src/scss/layout_background.scss
index ff2d0cef3b0..9c47ac72a27 100644
--- a/addons/web/static/src/scss/layout_background.scss
+++ b/addons/web/static/src/scss/layout_background.scss
@@ -34,34 +34,48 @@
background-position: bottom center;
background-repeat: no-repeat;
min-height: 620px;
+
+ .table {
+ border-top: 1px solid gray('300');
+ }
+
+ .table td, .table th {
+ border-top: none;
+ }
thead tr th, h2 {
color: $o-brand-odoo;
}
tbody {
color: gray('700');
- tr:nth-child(odd) {
- background-color: rgba(220, 205, 216, 0.2);
- }
- tr td {
- border-top: none;
+ tr {
+ &:nth-child(odd) {
+ background-color: rgba(220, 205, 216, 0.2);
+ }
+ &.o_line_section {
+ color: $o-brand-odoo;
+ background-color: rgba(73, 80, 87, 0.2) !important;
+ }
}
}
/*Total table*/
- .row > .col-4 > table {
- tr:nth-child(odd) {
- background-color: transparent !important;
- }
- tr:first-child td {
- /*we could get rid of this rule if .border-black td would be terminated in report.scss*/
- border-top: none !important;
- }
- tr:last-child td {
- color: $o-brand-odoo;
- }
- }
- #total {
- table tr:last-child td {
- border-bottom: 1px solid black;
+ /* row div rule compat 12.0 */
+ .row > div > table,
+ div#total table {
+ tr {
+ &:nth-child(odd) {
+ background-color: transparent !important;
+ }
+ /* first-child & last-child rule compat 12.0 */
+ &:first-child,
+ &:last-child,
+ &.o_subtotal,
+ &.o_total {
+ border-top: none !important;
+ td {
+ color: $o-brand-odoo;
+ border-top: 1px solid gray('400') !important;
+ }
+ }
}
}
}
diff --git a/addons/web/static/src/scss/layout_boxed.scss b/addons/web/static/src/scss/layout_boxed.scss
index b0b2fb1f743..bf19b6fb7ae 100644
--- a/addons/web/static/src/scss/layout_boxed.scss
+++ b/addons/web/static/src/scss/layout_boxed.scss
@@ -23,52 +23,73 @@
}
}
.o_report_layout_boxed {
- // This is not a general rule since the id is not used in all the reports,
- // we should make a general structure for report body to use it everywhere
- #informations {
- border: 1px solid gray('700');
- padding-top: 10px;
- margin: 0;
- }
> h2 {
text-transform: uppercase;
}
table {
border: 1px solid gray('700');
thead {
+ border-bottom: 2px solid gray('700');
tr th {
- border-bottom: 3px solid gray('700') !important;
text-transform: uppercase;
+ border: 1px solid gray('700');
}
}
tbody {
color: gray('700');
tr {
td {
+ // remove border-top from standard layout
border-top: none;
border-right: 1px solid gray('700');
}
- td:last-child {
+ &.o_line_section td,
+ &.o_line_note td,
+ &.is-subtotal td {
+ border-top: 1px solid gray('700');
+ border-bottom: 1px solid gray('700');
+ }
+ &.o_line_section td {
+ background-color: gray('700');
+ color: #fff;
+ }
+ &.is-subtotal,
+ td.o_price_total {
background-color: gray('200');
}
}
}
}
+ /* compat 12.0 */
+ .page > table:not(.o_main_table) tr td:last-child {
+ background-color: gray('200');
+ }
+ /* compat 12.0 */
+ .row:not(#total) > div > table tr:not(:first-child):not(:last-child) td:last-child {
+ background-color: gray('200');
+ }
/*Total table*/
- .row > .col-4 > table {
- td {
- border-right: none;
- }
- tr:last-child td, tr:first-child td {
- /*we could get rid of this rule if .border-black td would be terminated in report.scss*/
- border-top: none !important;
- }
- tr:first-child td {
- background-color: transparent;
- }
- tr:last-child td {
- background-color: gray('700');
- color: #fff;
+ /* row div rule compat 12.0 */
+ .row > div > table,
+ div#total table {
+ tr {
+ &:first-child,
+ &.o_subtotal {
+ border-bottom: 1px solid gray('700');
+
+ td:first-child {
+ border-right: none;
+ }
+ }
+ &:last-child td,
+ &.o_total td {
+ background-color: gray('700');
+ color: #fff;
+
+ &:first-child {
+ border-right: none;
+ }
+ }
}
}
}
diff --git a/addons/web/static/src/scss/layout_clean.scss b/addons/web/static/src/scss/layout_clean.scss
index 06b2e808dd4..910abc763a4 100644
--- a/addons/web/static/src/scss/layout_clean.scss
+++ b/addons/web/static/src/scss/layout_clean.scss
@@ -18,12 +18,10 @@
font-weight: bolder;
}
.pagenumber {
- width: 35px;
- height: 35px;
border: 3px solid $o-brand-odoo;
background-color: $o-brand-primary;
color: white;
- padding-top: 6px;
+ padding: 4px 8px;
text-align: center;
}
}
@@ -36,6 +34,10 @@
color: $o-brand-odoo;
}
table {
+ &.o_main_table {
+ margin-bottom: 0;
+ }
+
thead {
color: $o-brand-odoo;
tr th {
@@ -66,18 +68,22 @@
}
}
/*Total table*/
- .row > .col-4 {
- width: 43%;
- position: relative;
- top: -20px;
- > table {
- tr:last-child td {
- border-top: 1px solid gray('200') !important;
- }
- tr:first-child td {
- /*we could get rid of this rule if .border-black td would be terminated in report.scss*/
+ /* compat 12.0 */
+ .row:not(#total) > div:has(table) {
+ top: -16px;
+ }
+ /* row col rule compat 12.0 */
+ .row > div > table,
+ div#total table {
+ tr {
+ &:first-child td,
+ &.o_subtotal {
border-top: none !important;
}
+ &:last-child td,
+ &.o_total {
+ border-top: 1px solid gray('200') !important;
+ }
}
}
}
diff --git a/addons/web/static/src/scss/report.scss b/addons/web/static/src/scss/report.scss
index 37a7630225b..e901b5b9364 100644
--- a/addons/web/static/src/scss/report.scss
+++ b/addons/web/static/src/scss/report.scss
@@ -44,3 +44,18 @@ body {
.o_underline {
text-decoration: underline;
}
+
+/*Total table*/
+div#total {
+ page-break-inside: avoid;
+ table {
+ tr {
+ &.o_subtotal,
+ &.o_total {
+ td {
+ border-top: 1px solid black !important;
+ }
+ }
+ }
+ }
+}
diff --git a/addons/web/static/tests/chrome/action_manager_tests.js b/addons/web/static/tests/chrome/action_manager_tests.js
index 6c0b0d96703..7eea78ded29 100644
--- a/addons/web/static/tests/chrome/action_manager_tests.js
+++ b/addons/web/static/tests/chrome/action_manager_tests.js
@@ -2202,6 +2202,62 @@ QUnit.module('ActionManager', {
actionManager.destroy();
});
+ QUnit.test('orderedBy in context is not propagated when executing another action', function (assert) {
+ assert.expect(6);
+
+ this.data.partner.fields.foo.sortable = true,
+
+ this.archs['partner,false,form'] = '<header>' +
+ '<button name="8" string="Execute action" type="action"/>' +
+ '</header>';
+
+ var searchReadCount = 0;
+ var actionManager = createActionManager({
+ actions: this.actions,
+ archs: this.archs,
+ data: this.data,
+ mockRPC: function (route, args) {
+ if (route === '/web/dataset/search_read') {
+ if (searchReadCount === 1) {
+ assert.strictEqual(args.model, 'partner');
+ assert.notOk(args.sort);
+ }
+ if (searchReadCount === 2) {
+ assert.strictEqual(args.model, 'partner');
+ assert.strictEqual(args.sort, "foo ASC");
+ }
+ if (searchReadCount === 3) {
+ assert.strictEqual(args.model, 'pony');
+ assert.notOk(args.sort);
+ }
+ searchReadCount += 1;
+ }
+ return this._super.apply(this, arguments);
+ },
+ });
+ actionManager.doAction(3);
+
+ // Simulate the activation of a filter
+ var searchData = {
+ domains: [[["foo", "=", "yop"]]],
+ contexts: [{
+ orderedBy: [],
+ }],
+ };
+ actionManager.trigger_up('search', searchData);
+
+ // Sort records
+ actionManager.$('.o_list_view th.o_column_sortable').click();
+
+ // get to the form view of the model, on the first record
+ actionManager.$('.o_data_cell:first').click();
+
+ // Change model by clicking on the button within the form
+ actionManager.$('.o_form_view button').click();
+
+ actionManager.destroy();
+ });
+
QUnit.test('breadcrumbs are updated when switching between views', function (assert) {
assert.expect(10);
diff --git a/addons/web/static/tests/core/py_utils_tests.js b/addons/web/static/tests/core/py_utils_tests.js
index d59fd30f957..be5760fc6c7 100644
--- a/addons/web/static/tests/core/py_utils_tests.js
+++ b/addons/web/static/tests/core/py_utils_tests.js
@@ -1254,6 +1254,13 @@ QUnit.module('core', function () {
assert.checkAST(expr);
});
+ QUnit.test("parse escaped quoted strings", function (assert) {
+ assert.expect(2);
+
+ assert.checkAST(`'\"'`, "a string containing \"");
+ assert.checkAST(`'\'`, "a string containing \'");
+ });
+
QUnit.module('pyutils (_normalizeDomain)');
QUnit.assert.checkNormalization = function (domain, normalizedDomain) {
diff --git a/addons/web/static/tests/views/graph_tests.js b/addons/web/static/tests/views/graph_tests.js
index 73f2179dc8f..d651afc030c 100644
--- a/addons/web/static/tests/views/graph_tests.js
+++ b/addons/web/static/tests/views/graph_tests.js
@@ -785,13 +785,40 @@ QUnit.module('Views', {
'</graph>',
});
- assert.strictEqual(graph.$("svg.nvd3-svg:contains('Undefined')").length, 0);
- assert.strictEqual(graph.$("svg.nvd3-svg:contains('March')").length, 1);
+ assert.strictEqual(graph.$("svg.nvd3-svg .nv-x:contains('Undefined')").length, 0);
+ assert.strictEqual(graph.$("svg.nvd3-svg:contains('January')").length, 1);
testUtils.dom.click(graph.$buttons.find('.o_graph_button[data-mode=bar]'));
- assert.strictEqual(graph.$("svg.nvd3-svg:contains('Undefined')").length, 1);
+ assert.strictEqual(graph.$("svg.nvd3-svg .nv-x:contains('Undefined')").length, 1);
+ assert.strictEqual(graph.$("svg.nvd3-svg:contains('January')").length, 1);
+
+ graph.destroy();
+ });
+
+ QUnit.test('Undefined should appear in bar, pie graph but not in line graph with multiple groupbys', function (assert) {
+ assert.expect(6);
+
+ var graph = createView({
+ View: GraphView,
+ model: "foo",
+ groupBy:['date', 'color_id'],
+ data: this.data,
+ arch: '<graph string="Partners" type="line">' +
+ '<field name="bar"/>' +
+ '</graph>',
+ });
+
+ assert.strictEqual(graph.$("svg.nvd3-svg .nv-x:contains('Undefined')").length, 0);
assert.strictEqual(graph.$("svg.nvd3-svg:contains('January')").length, 1);
+ graph.$buttons.find('.o_graph_button[data-mode=bar]').click();
+ assert.strictEqual(graph.$("svg.nvd3-svg .nv-x:contains('Undefined')").length, 1);
+ assert.strictEqual(graph.$("svg.nvd3-svg:contains('January')").length, 1);
+
+ // Undefined should not appear after switching back to line chart
+ graph.$buttons.find('.o_graph_button[data-mode=line]').click();
+ assert.strictEqual(graph.$("svg.nvd3-svg .nv-x:contains('Undefined')").length, 0);
+ assert.strictEqual(graph.$("svg.nvd3-svg:contains('January')").length, 1);
graph.destroy();
});
});
diff --git a/addons/web/static/tests/views/pivot_tests.js b/addons/web/static/tests/views/pivot_tests.js
index 46c28529bed..3e3ba9fd89a 100644
--- a/addons/web/static/tests/views/pivot_tests.js
+++ b/addons/web/static/tests/views/pivot_tests.js
@@ -149,6 +149,23 @@ QUnit.module('Views', {
pivot.destroy();
});
+ QUnit.test('pivot rendering with string attribute on non stored field', function (assert) {
+ assert.expect(1);
+
+ this.data.partner.fields.fubar = {string: "Fubar", type: "integer", store:false};
+
+ var pivot = createView({
+ View: PivotView,
+ model: "partner",
+ data: this.data,
+ arch: '<pivot string="Partners">' +
+ '<field name="fubar" string="fubar" type="measure"/>' +
+ '</pivot>',
+ });
+ assert.ok(pivot.$el.hasClass('o_pivot'),'Non stored fields can have a string attribute');
+ pivot.destroy();
+ });
+
QUnit.test('pivot rendering with invisible attribute on field', function (assert) {
assert.expect(2);
// when invisible, a field should neither be an active measure,