summaryrefslogtreecommitdiff
path: root/addons/web_editor
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web_editor')
-rw-r--r--addons/web_editor/controllers/main.py15
-rw-r--r--addons/web_editor/i18n/de.po245
-rw-r--r--addons/web_editor/i18n/es.po79
-rw-r--r--addons/web_editor/i18n/fr.po71
-rw-r--r--addons/web_editor/static/src/js/backend/fields.js3
-rw-r--r--addons/web_editor/static/src/js/editor/rte.summernote.js6
-rw-r--r--addons/web_editor/static/src/js/editor/snippets.options.js3
-rw-r--r--addons/web_editor/static/src/js/editor/summernote.js24
-rw-r--r--addons/web_editor/static/src/js/editor/transcoder.js32
-rw-r--r--addons/web_editor/static/src/js/iframe.js2
-rw-r--r--addons/web_editor/static/src/js/inline.js1
-rw-r--r--addons/web_editor/static/src/js/widgets/ace.js2
-rw-r--r--addons/web_editor/static/src/js/widgets/widgets.js127
-rw-r--r--addons/web_editor/static/src/xml/editor.xml7
14 files changed, 365 insertions, 252 deletions
diff --git a/addons/web_editor/controllers/main.py b/addons/web_editor/controllers/main.py
index f4500c7bcc6..b14c58ae938 100644
--- a/addons/web_editor/controllers/main.py
+++ b/addons/web_editor/controllers/main.py
@@ -146,6 +146,9 @@ class Web_Editor(http.Controller):
# therefore we have to recover the files from the request object
Attachments = request.env['ir.attachment'] # registry for the attachment table
+ res_model = kwargs.get('res_model', 'ir.ui.view')
+ res_id = res_model != 'ir.ui.view' and kwargs.get('res_id') or None
+
uploads = []
message = None
if not upload: # no image provided, storing the link and the image name
@@ -159,9 +162,11 @@ class Web_Editor(http.Controller):
'type': 'url',
'url': url,
'public': True,
- 'res_model': 'ir.ui.view',
+ 'res_id': res_id,
+ 'res_model': res_model,
})
- uploads += attachment.read(['name', 'mimetype', 'checksum', 'url'])
+ attachment.generate_access_token()
+ uploads += attachment.read(['name', 'mimetype', 'checksum', 'url', 'res_id', 'res_model', 'access_token'])
else: # images provided
try:
attachments = request.env['ir.attachment']
@@ -188,10 +193,12 @@ class Web_Editor(http.Controller):
'datas': base64.b64encode(data),
'datas_fname': datas_fname,
'public': True,
- 'res_model': 'ir.ui.view',
+ 'res_id': res_id,
+ 'res_model': res_model,
})
+ attachment.generate_access_token()
attachments += attachment
- uploads += attachments.read(['name', 'mimetype', 'checksum', 'url'])
+ uploads += attachments.read(['name', 'mimetype', 'checksum', 'url', 'res_id', 'res_model', 'access_token'])
except Exception as e:
logger.exception("Failed to upload image to attachment")
message = pycompat.text_type(e)
diff --git a/addons/web_editor/i18n/de.po b/addons/web_editor/i18n/de.po
index b2308adbf5c..11d95f5c9a2 100644
--- a/addons/web_editor/i18n/de.po
+++ b/addons/web_editor/i18n/de.po
@@ -3,29 +3,30 @@
# * web_editor
#
# Translators:
-# Henry Mineehen <info@mineehen.de>, 2017
+# Martin Trigaux, 2017
# Ermin Trevisan <trevi@twanda.com>, 2017
-# Martin Trigaux <mat@odoo.com>, 2017
-# Ralf Hilgenstock <rh@dialoge.info>, 2017
-# Thorsten Vocks <thorsten.vocks@openbig.org>, 2017
-# Niki Waibel <niki.waibel@gmail.com>, 2017
-# Anja Funk <anja.funk@afimage.de>, 2017
-# Wolfgang Taferner <wolfgang.transifex@service.wt-io-it.at>, 2017
-# Krakataua Katarajtu <shlok@hotmail.de>, 2017
# darenkster <inactive+darenkster@transifex.com>, 2017
+# Krakataua Katarajtu <shlok@hotmail.de>, 2017
+# Henry Mineehen <info@mineehen.de>, 2017
+# Wolfgang Taferner, 2017
# Tina Rittmüller <tr@ife.de>, 2017
+# Ralf Hilgenstock <rh@dialoge.info>, 2017
+# Anja Funk <anja.funk@afimage.de>, 2017
+# Renzo Meister, 2017
# Martin K <martinkuenz@gmail.com>, 2017
+# Thorsten Vocks <thorsten.vocks@openbig.org>, 2017
+# Niki Waibel, 2017
# Mathias Neef <mn@copado.de>, 2017
-# Renzo Meister <info@jamotion.ch>, 2017
# Constantin Ehrenstein <transifex@skiller.eu>, 2017
# AppleMentalist <felix.schnatbaum@gmail.com>, 2017
+# e2f <projects@e2f.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:54+0000\n"
"PO-Revision-Date: 2017-09-20 09:54+0000\n"
-"Last-Translator: AppleMentalist <felix.schnatbaum@gmail.com>, 2017\n"
+"Last-Translator: e2f <projects@e2f.com>, 2018\n"
"Language-Team: German (https://www.transifex.com/odoo/teams/41243/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -38,7 +39,7 @@ msgstr ""
#: code:addons/web_editor/static/src/xml/editor.xml:193
#, python-format
msgid "(URL or Embed)"
-msgstr ""
+msgstr "(URL oder Einbetten)"
#. module: web_editor
#. openerp-web
@@ -60,27 +61,27 @@ msgstr "25% Weiß"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "50% Black"
-msgstr ""
+msgstr "50 % Schwarz"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "50% White"
-msgstr ""
+msgstr "50 % Weiß"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "75% Black"
-msgstr ""
+msgstr "75 % Schwarz"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "75% White"
-msgstr ""
+msgstr "75 % Weiß"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.snippets
msgid "<i class=\"fa fa-th-large\"/> First Panel"
-msgstr ""
+msgstr "<i class=\"fa fa-th-large\"/>Panel Eins"
#. module: web_editor
#. openerp-web
@@ -90,13 +91,16 @@ msgid ""
"A server error occured. Please check you correctly signed in and that the "
"file you are saving is well-formed."
msgstr ""
+"Ein Server-Fehler ist aufgetreten. Bitte überprüfen Sie die korrekt "
+"signierte Anmeldung und ob die von Ihnen gespeicherte Datei gut gestaltet "
+"ist."
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Accepts"
-msgstr ""
+msgstr "Akzeptiert"
#. module: web_editor
#. openerp-web
@@ -122,7 +126,7 @@ msgstr "Bild-URL hinzufügen"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.snippets
msgid "Add blocks"
-msgstr ""
+msgstr "Blockierungen hinzufügen"
#. module: web_editor
#. openerp-web
@@ -148,7 +152,7 @@ msgstr "Rechtsbündig"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Alpha"
-msgstr ""
+msgstr "Alpha"
#. module: web_editor
#. openerp-web
@@ -162,7 +166,7 @@ msgstr "Alternativer Upload"
#: code:addons/web_editor/static/src/xml/editor.xml:315
#, python-format
msgid "Assign a focal point that will always be visible"
-msgstr ""
+msgstr "Einen Knotenpunkt zuweisen, der stets sichtbar ist."
#. module: web_editor
#: model:ir.model.fields,field_description:web_editor.field_ir_attachment_local_url
@@ -174,7 +178,7 @@ msgstr "Dateianhang URL"
#: code:addons/web_editor/static/src/xml/snippets.xml:11
#, python-format
msgid "Auto size"
-msgstr ""
+msgstr "Automatische Größe"
#. module: web_editor
#. openerp-web
@@ -203,40 +207,40 @@ msgstr "Grösse Hintergrundbild"
#: code:addons/web_editor/static/src/xml/editor.xml:354
#, python-format
msgid "Background height"
-msgstr ""
+msgstr "Hintergrundhöhe"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:364
#, python-format
msgid "Background position"
-msgstr ""
+msgstr "Hintergrundposition"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:386
#, python-format
msgid "Background repeat"
-msgstr ""
+msgstr "Hintergrund wiederholen"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:342
#, python-format
msgid "Background size"
-msgstr ""
+msgstr "Hintergrundgröße"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:345
#, python-format
msgid "Background width"
-msgstr ""
+msgstr "Hintergrundbreite"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Beta"
-msgstr ""
+msgstr "Beta"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -262,7 +266,7 @@ msgstr "Fett:"
#: code:addons/web_editor/static/src/js/widgets/ace.js:827
#, python-format
msgid "Careful !"
-msgstr ""
+msgstr "Vorsicht!"
#. module: web_editor
#. openerp-web
@@ -276,7 +280,7 @@ msgstr "Zentriert"
#: code:addons/web_editor/static/src/js/widgets/widgets.js:55
#, python-format
msgid "Change media description and tooltip"
-msgstr ""
+msgstr "Medienbeschreibung und Kurzinfo ändern"
#. module: web_editor
#. openerp-web
@@ -320,14 +324,14 @@ msgstr "Spalten"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:61
#, python-format
msgid "Common colors"
-msgstr ""
+msgstr "Übliche Farben"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:310
#, python-format
msgid "Contain"
-msgstr ""
+msgstr "Enthalten"
#. module: web_editor
#. openerp-web
@@ -341,14 +345,14 @@ msgstr "Zu übersetzender Inhalt"
#: code:addons/web_editor/static/src/xml/editor.xml:194
#, python-format
msgid "Copy-paste your URL or embed code here"
-msgstr ""
+msgstr "Fügen Sie URL oder Einbettungscode hier ein."
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:309
#, python-format
msgid "Cover"
-msgstr ""
+msgstr "Cover"
#. module: web_editor
#: model:ir.model.fields,field_description:web_editor.field_web_editor_converter_test_sub_create_uid
@@ -379,7 +383,7 @@ msgstr "Anpassen"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Dailymotion"
-msgstr ""
+msgstr "Dailymotion"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -403,7 +407,7 @@ msgstr "Soll das Hintergrundbild wiederholt werden, und wenn ja, wie"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Delta"
-msgstr ""
+msgstr "Delta"
#. module: web_editor
#. openerp-web
@@ -417,7 +421,7 @@ msgstr "Beschreibung"
#: code:addons/web_editor/static/src/xml/editor.xml:34
#, python-format
msgid "Description (alt tag)"
-msgstr ""
+msgstr "Beschreibung (alt-Tag)"
#. module: web_editor
#. openerp-web
@@ -446,21 +450,21 @@ msgstr "Dokument"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:976
#, python-format
msgid "Document Style"
-msgstr ""
+msgstr "Dokumentstil"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:860
#, python-format
msgid "Double-click to edit"
-msgstr ""
+msgstr "Zum Bearbeiten doppelt klicken"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:903
#, python-format
msgid "Drag an image here"
-msgstr ""
+msgstr "Bild hierhin ziehen"
#. module: web_editor
#. openerp-web
@@ -487,14 +491,14 @@ msgstr "Bearbeiten"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Epsilon"
-msgstr ""
+msgstr "Epsilon"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/widgets/ace.js:93
#, python-format
msgid "Expected "
-msgstr ""
+msgstr "Erwartet"
#. module: web_editor
#. openerp-web
@@ -508,42 +512,42 @@ msgstr "Extra Klein"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:895
#, python-format
msgid "File / Image"
-msgstr ""
+msgstr "Datei/Bild"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/snippets.xml:12
#, python-format
msgid "Fixed size"
-msgstr ""
+msgstr "Feste Größe"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:900
#, python-format
msgid "Float Left"
-msgstr ""
+msgstr "Links frei"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:902
#, python-format
msgid "Float None"
-msgstr ""
+msgstr "Nicht frei"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:901
#, python-format
msgid "Float Right"
-msgstr ""
+msgstr "Rechts frei"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:964
#, python-format
msgid "Font Color"
-msgstr ""
+msgstr "Schriftfarbe"
#. module: web_editor
#. openerp-web
@@ -576,32 +580,32 @@ msgstr "Vollbild"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Gamma"
-msgstr ""
+msgstr "Gamma"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Gray"
-msgstr ""
+msgstr "Grau"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Gray Dark"
-msgstr ""
+msgstr "Grau dunkel"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Gray Darker"
-msgstr ""
+msgstr "Grau dunkler"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Gray Light"
-msgstr ""
+msgstr "Grau hell"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Gray Lighter"
-msgstr ""
+msgstr "Grau heller"
#. module: web_editor
#: model:ir.model,name:web_editor.model_ir_http
@@ -671,42 +675,42 @@ msgstr ""
#: code:addons/web_editor/static/src/xml/editor.xml:219
#, python-format
msgid "Hide Dailymotion logo"
-msgstr ""
+msgstr "Dailymotion-Logo ausblenden"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:216
#, python-format
msgid "Hide Youtube logo"
-msgstr ""
+msgstr "YouTube-Logo ausblenden"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:213
#, python-format
msgid "Hide fullscreen button"
-msgstr ""
+msgstr "Vollbild-Schaltfläche ausblenden"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:210
#, python-format
msgid "Hide player controls"
-msgstr ""
+msgstr "Spielersteuerung ausblenden"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:222
#, python-format
msgid "Hide sharing button"
-msgstr ""
+msgstr "Teilen-Schaltfläche ausblenden"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:367
#, python-format
msgid "Horizontal"
-msgstr ""
+msgstr "Horizontal"
#. module: web_editor
#: model:ir.model.fields,field_description:web_editor.field_web_editor_converter_test_sub_id
@@ -721,6 +725,9 @@ msgid ""
"If you discard the current edition, all unsaved changes will be lost. You "
"can cancel to return to the edition mode."
msgstr ""
+"Wenn Sie die aktuelle Ausgabe verwerfen, gehen alle nicht gespeicherten "
+"Änderungen verloren. Sie können durch Abbrechen in den Erfassungsmodus "
+"kommen."
#. module: web_editor
#. openerp-web
@@ -730,6 +737,8 @@ msgid ""
"If you reset this file, all your customizations will be lost as it will be "
"reverted to the default file."
msgstr ""
+"Wenn Sie diese Datei zurücksetzen, gehen all Ihre Anpassungen verloren, da "
+"sie zur Standard-Datei zurückgesetzt wird."
#. module: web_editor
#. openerp-web
@@ -753,27 +762,29 @@ msgid ""
"In this mode, you can only translate texts. To change the structure of the page, you must edit the master page.\n"
" Each modification on the master page is automatically applied to all translated versions."
msgstr ""
+"In diesem Modus können Sie nur Texte übersetzen. Um die Struktur der Seite zu ändern, müssen Sie die Master-Seite bearbeiten.\n"
+" Jede Änderung der Master-Seite wird automatisch auf alle übersetzten Versionen angewendet."
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/ace.xml:23
#, python-format
msgid "Include All LESS Files"
-msgstr ""
+msgstr "Alle LESS-Dateien einschließen"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/ace.xml:17
#, python-format
msgid "Include Asset Bundles"
-msgstr ""
+msgstr "Asset-Bundle einschließen"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:954
#, python-format
msgid "Indent"
-msgstr ""
+msgstr "Einzug"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -785,7 +796,7 @@ msgstr "Information"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:928
#, python-format
msgid "Insert Horizontal Rule"
-msgstr ""
+msgstr "Horizontale Regel einfügen"
#. module: web_editor
#. openerp-web
@@ -806,14 +817,14 @@ msgstr "Link einfügen"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:920
#, python-format
msgid "Insert Video"
-msgstr ""
+msgstr "Video einfügen"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Instagram"
-msgstr ""
+msgstr "Instagram"
#. module: web_editor
#. openerp-web
@@ -834,21 +845,21 @@ msgstr "Kursiv"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:958
#, python-format
msgid "Justify full"
-msgstr ""
+msgstr "Vollständiger Blocksatz"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:971
#, python-format
msgid "Keyboard shortcuts"
-msgstr ""
+msgstr "Tastaturkürzel"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/ace.xml:11
#, python-format
msgid "LESS (CSS)"
-msgstr ""
+msgstr "LESS (CSS)"
#. module: web_editor
#. openerp-web
@@ -878,14 +889,14 @@ msgstr "Zuletzt aktualisiert am"
#: code:addons/web_editor/static/src/js/widgets/ace.js:360
#, python-format
msgid "Less file: %s"
-msgstr ""
+msgstr "LESS-Datei: %s"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:890
#, python-format
msgid "Line Height"
-msgstr ""
+msgstr "Linienhöhe"
#. module: web_editor
#. openerp-web
@@ -913,7 +924,7 @@ msgstr "Link zu"
#: code:addons/web_editor/static/src/xml/editor.xml:207
#, python-format
msgid "Loop"
-msgstr ""
+msgstr "Wiederholen"
#. module: web_editor
#. openerp-web
@@ -947,7 +958,7 @@ msgstr "Weiter"
#: code:addons/web_editor/static/src/xml/editor.xml:389
#, python-format
msgid "No repeat"
-msgstr ""
+msgstr "Nicht wiederholen"
#. module: web_editor
#. openerp-web
@@ -977,7 +988,7 @@ msgstr "Ok"
#: code:addons/web_editor/static/src/js/editor/translator.js:93
#, python-format
msgid "Ok, never show me this again"
-msgstr ""
+msgstr "Bitte nicht erneut anzeigen."
#. module: web_editor
#. openerp-web
@@ -999,21 +1010,21 @@ msgstr "Optionen"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:944
#, python-format
msgid "Ordered list"
-msgstr ""
+msgstr "Geordnete Liste"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:953
#, python-format
msgid "Outdent"
-msgstr ""
+msgstr "Ausrückung"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:113
#, python-format
msgid "Padding"
-msgstr ""
+msgstr "Rand"
#. module: web_editor
#. openerp-web
@@ -1068,21 +1079,21 @@ msgstr "Zitat"
#: code:addons/web_editor/static/src/js/editor/rte.js:307
#, python-format
msgid "Readonly field"
-msgstr ""
+msgstr "Schreibgeschütztes Feld"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:961
#, python-format
msgid "Recent Color"
-msgstr ""
+msgstr "Zuletzt verwendete Farbe"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:980
#, python-format
msgid "Redo"
-msgstr ""
+msgstr "Wiederholen"
#. module: web_editor
#. openerp-web
@@ -1103,7 +1114,7 @@ msgstr "Block entfernen"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:889
#, python-format
msgid "Remove Font Style"
-msgstr ""
+msgstr "Schriftstil entfernen"
#. module: web_editor
#. openerp-web
@@ -1124,21 +1135,21 @@ msgstr "Wiederholen"
#: code:addons/web_editor/static/src/xml/editor.xml:390
#, python-format
msgid "Repeat both"
-msgstr ""
+msgstr "Beide wiederholen"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:391
#, python-format
msgid "Repeat x"
-msgstr ""
+msgstr "x wiederholen"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:392
#, python-format
msgid "Repeat y"
-msgstr ""
+msgstr "y wiederholen"
#. module: web_editor
#. openerp-web
@@ -1153,42 +1164,42 @@ msgstr "Zurücksetzen"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:968
#, python-format
msgid "Reset to default"
-msgstr ""
+msgstr "Auf Standard zurücksetzen"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/widgets/ace.js:485
#, python-format
msgid "Reseting views is not supported yet"
-msgstr ""
+msgstr "Das Zurücksetzen der Ansichten wird noch nicht unterstützt."
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:897
#, python-format
msgid "Resize Full"
-msgstr ""
+msgstr "Vollansicht"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:898
#, python-format
msgid "Resize Half"
-msgstr ""
+msgstr "Halbansicht"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:899
#, python-format
msgid "Resize Quarter"
-msgstr ""
+msgstr "Viertelansicht"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/snippets.xml:12
#, python-format
msgid "Resize to force the height of this block"
-msgstr ""
+msgstr "Größe ändern, damit die Höhe dieses Blocks bestimmt wird."
#. module: web_editor
#. openerp-web
@@ -1211,14 +1222,14 @@ msgstr "Suchen"
#: code:addons/web_editor/static/src/xml/snippets.xml:47
#, python-format
msgid "Search Contact"
-msgstr ""
+msgstr "Kontakt suchen"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/snippets.xml:17
#, python-format
msgid "Select Parent Container"
-msgstr ""
+msgstr "Übergeordneten Behälter auswählen"
#. module: web_editor
#. openerp-web
@@ -1307,7 +1318,7 @@ msgstr "Drehen"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:886
#, python-format
msgid "Strikethrough"
-msgstr ""
+msgstr "Durchstreichen"
#. module: web_editor
#. openerp-web
@@ -1321,7 +1332,7 @@ msgstr "Stil"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:887
#, python-format
msgid "Subscript"
-msgstr ""
+msgstr "tiefstellen"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -1333,7 +1344,7 @@ msgstr "Erfolgreich"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:888
#, python-format
msgid "Superscript"
-msgstr ""
+msgstr "hochstellen"
#. module: web_editor
#. openerp-web
@@ -1354,14 +1365,14 @@ msgstr "Vorlagen ID: %s"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:973
#, python-format
msgid "Text formatting"
-msgstr ""
+msgstr "Textformatierung"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:913
#, python-format
msgid "Text to display"
-msgstr ""
+msgstr "Anzuzeigender Text"
#. module: web_editor
#. openerp-web
@@ -1379,14 +1390,14 @@ msgstr ""
#: code:addons/web_editor/static/src/js/widgets/widgets.js:871
#, python-format
msgid "The provided url does not reference any supported video"
-msgstr ""
+msgstr "Die angegebene URL enthält kein unterstütztes Video."
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/widgets/widgets.js:865
#, python-format
msgid "The provided url is not valid"
-msgstr ""
+msgstr "Die angegebene URL ist ungültig."
#. module: web_editor
#. openerp-web
@@ -1415,7 +1426,7 @@ msgstr "Wohin soll dieser Link führen?"
#: code:addons/web_editor/static/src/xml/editor.xml:40
#, python-format
msgid "Tooltip"
-msgstr ""
+msgstr "Kurzinfo"
#. module: web_editor
#. openerp-web
@@ -1436,7 +1447,7 @@ msgstr "Übersetzter Inhalt"
#: code:addons/web_editor/static/src/js/editor/translator.js:91
#, python-format
msgid "Translation Info"
-msgstr ""
+msgstr "Übersetzungs-Info"
#. module: web_editor
#. openerp-web
@@ -1451,7 +1462,7 @@ msgstr "Transparen"
#: code:addons/web_editor/static/src/xml/editor.xml:248
#, python-format
msgid "URL or Email"
-msgstr ""
+msgstr "URL oder E-Mail"
#. module: web_editor
#. openerp-web
@@ -1472,7 +1483,7 @@ msgstr "Rückgängig"
#: code:addons/web_editor/static/src/js/widgets/ace.js:86
#, python-format
msgid "Unexpected "
-msgstr ""
+msgstr "Unerwartet"
#. module: web_editor
#. openerp-web
@@ -1486,14 +1497,14 @@ msgstr "Löschen"
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:943
#, python-format
msgid "Unordered list"
-msgstr ""
+msgstr "Nicht geordnete Liste"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:96
#, python-format
msgid "Upload an image"
-msgstr ""
+msgstr "Bild hochladen"
#. module: web_editor
#. openerp-web
@@ -1514,7 +1525,7 @@ msgstr "Hochladen …"
#: code:addons/web_editor/static/src/xml/editor.xml:376
#, python-format
msgid "Vertical"
-msgstr ""
+msgstr "Vertikal"
#. module: web_editor
#. openerp-web
@@ -1543,21 +1554,21 @@ msgstr "Video-URL?"
#: code:addons/web_editor/static/src/xml/editor.xml:193
#, python-format
msgid "Video code"
-msgstr ""
+msgstr "Videocode"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Vimeo"
-msgstr ""
+msgstr "Vimeo"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Vine.co"
-msgstr ""
+msgstr "Vine.co"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -1575,14 +1586,14 @@ msgstr "Weiß"
#: code:addons/web_editor/static/src/xml/ace.xml:10
#, python-format
msgid "XML (HTML)"
-msgstr ""
+msgstr "XML (HTML)"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:110
#, python-format
msgid "Xl"
-msgstr ""
+msgstr "Xl"
#. module: web_editor
#. openerp-web
@@ -1596,14 +1607,14 @@ msgstr "Sie sind gerade dabei in den Übersetzungsmodus zu wechseln."
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Youku"
-msgstr ""
+msgstr "Youku"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Youtube"
-msgstr ""
+msgstr "YouTube"
#. module: web_editor
#. openerp-web
@@ -1620,14 +1631,14 @@ msgstr "und"
#: code:addons/web_editor/static/src/xml/editor.xml:379
#, python-format
msgid "auto"
-msgstr ""
+msgstr "Auto"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:113
#, python-format
msgid "https://www.odoo.com/logo.png"
-msgstr ""
+msgstr "https://www.odoo.com/logo.png"
#. module: web_editor
#: model:ir.model,name:web_editor.model_ir_attachment
@@ -1729,17 +1740,17 @@ msgstr "ir.ui.view"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "videos"
-msgstr ""
+msgstr "Videos"
#. module: web_editor
#: model:ir.model,name:web_editor.model_web_editor_converter_test
msgid "web_editor.converter.test"
-msgstr ""
+msgstr "web_editor.converter.test"
#. module: web_editor
#: model:ir.model,name:web_editor.model_web_editor_converter_test_sub
msgid "web_editor.converter.test.sub"
-msgstr ""
+msgstr "web_editor.converter.test.sub"
#. module: web_editor
#. openerp-web
diff --git a/addons/web_editor/i18n/es.po b/addons/web_editor/i18n/es.po
index ceea09aefff..09b9423fe62 100644
--- a/addons/web_editor/i18n/es.po
+++ b/addons/web_editor/i18n/es.po
@@ -3,8 +3,8 @@
# * web_editor
#
# Translators:
-# Martin Trigaux <mat@odoo.com>, 2016
-# Antonio Trueba <atgayol@gmail.com>, 2016
+# Martin Trigaux, 2016
+# Antonio Trueba, 2016
# Jesús Alan Ramos Rodríguez <alan.ramos@jarsa.com.mx>, 2016
# Ivan Nieto <ivan.n.s@tuta.io>, 2016
# Pedro M. Baeza <pedro.baeza@gmail.com>, 2016
@@ -20,13 +20,14 @@
# Gelo Joga Landoo <gj@landoo.es>, 2017
# David Arnold <blaggacao@users.noreply.github.com>, 2017
# Luis M. Ontalba <luis.martinez@tecnativa.com>, 2017
+# e2f <projects@e2f.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:54+0000\n"
"PO-Revision-Date: 2017-09-20 09:54+0000\n"
-"Last-Translator: Luis M. Ontalba <luis.martinez@tecnativa.com>, 2017\n"
+"Last-Translator: e2f <projects@e2f.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"
@@ -39,7 +40,7 @@ msgstr ""
#: code:addons/web_editor/static/src/xml/editor.xml:193
#, python-format
msgid "(URL or Embed)"
-msgstr ""
+msgstr "(URL o incrustación)"
#. module: web_editor
#. openerp-web
@@ -91,13 +92,15 @@ msgid ""
"A server error occured. Please check you correctly signed in and that the "
"file you are saving is well-formed."
msgstr ""
+"Se ha producido un error de servidor. Compruebe que ha iniciado sesión "
+"correctamente y que el archivo que está guardando está bien formado."
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Accepts"
-msgstr ""
+msgstr "Acepta"
#. module: web_editor
#. openerp-web
@@ -263,7 +266,7 @@ msgstr "Negrita"
#: code:addons/web_editor/static/src/js/widgets/ace.js:827
#, python-format
msgid "Careful !"
-msgstr ""
+msgstr "¡Precaución!"
#. module: web_editor
#. openerp-web
@@ -342,7 +345,7 @@ msgstr "Contenido a traducir"
#: code:addons/web_editor/static/src/xml/editor.xml:194
#, python-format
msgid "Copy-paste your URL or embed code here"
-msgstr ""
+msgstr "Copie y pegue su URL o su código de incrustación aquí"
#. module: web_editor
#. openerp-web
@@ -380,7 +383,7 @@ msgstr "Personalizar"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Dailymotion"
-msgstr ""
+msgstr "Dailymotion"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -418,7 +421,7 @@ msgstr "Descripción"
#: code:addons/web_editor/static/src/xml/editor.xml:34
#, python-format
msgid "Description (alt tag)"
-msgstr ""
+msgstr "Descripción (etiqueta ALT)"
#. module: web_editor
#. openerp-web
@@ -495,7 +498,7 @@ msgstr "Epsilon"
#: code:addons/web_editor/static/src/js/widgets/ace.js:93
#, python-format
msgid "Expected "
-msgstr ""
+msgstr "Previsto"
#. module: web_editor
#. openerp-web
@@ -671,35 +674,35 @@ msgstr ""
#: code:addons/web_editor/static/src/xml/editor.xml:219
#, python-format
msgid "Hide Dailymotion logo"
-msgstr ""
+msgstr "Ocultar logotipo de Dailymotion"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:216
#, python-format
msgid "Hide Youtube logo"
-msgstr ""
+msgstr "Ocultar logotipo de Youtube"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:213
#, python-format
msgid "Hide fullscreen button"
-msgstr ""
+msgstr "Ocultar botón de pantalla completa"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:210
#, python-format
msgid "Hide player controls"
-msgstr ""
+msgstr "Ocultar controles de reproductor"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:222
#, python-format
msgid "Hide sharing button"
-msgstr ""
+msgstr "Ocultar botón compartir"
#. module: web_editor
#. openerp-web
@@ -732,6 +735,8 @@ msgid ""
"If you reset this file, all your customizations will be lost as it will be "
"reverted to the default file."
msgstr ""
+"Si restablece este archivo, todas sus personalizaciones se perderán y la "
+"configuración volverá a ser la predeterminada."
#. module: web_editor
#. openerp-web
@@ -755,13 +760,15 @@ msgid ""
"In this mode, you can only translate texts. To change the structure of the page, you must edit the master page.\n"
" Each modification on the master page is automatically applied to all translated versions."
msgstr ""
+"En este modo, solo puede traducir textos. Para cambiar la estructura de la página, debe editar la página maestra.\n"
+" Las modificaciones de la página maestra se aplicarán automáticamente a todas las versiones traducidas."
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/ace.xml:23
#, python-format
msgid "Include All LESS Files"
-msgstr ""
+msgstr "Incluir todos los archivos LESS"
#. module: web_editor
#. openerp-web
@@ -815,7 +822,7 @@ msgstr "Inserta video"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Instagram"
-msgstr ""
+msgstr "Instagram"
#. module: web_editor
#. openerp-web
@@ -850,7 +857,7 @@ msgstr "Atajos de teclado"
#: code:addons/web_editor/static/src/xml/ace.xml:11
#, python-format
msgid "LESS (CSS)"
-msgstr ""
+msgstr "LESS (CSS)"
#. module: web_editor
#. openerp-web
@@ -880,7 +887,7 @@ msgstr "Última actualización el"
#: code:addons/web_editor/static/src/js/widgets/ace.js:360
#, python-format
msgid "Less file: %s"
-msgstr ""
+msgstr "Archivo LESS: %s"
#. module: web_editor
#. openerp-web
@@ -915,7 +922,7 @@ msgstr "Enlazar con"
#: code:addons/web_editor/static/src/xml/editor.xml:207
#, python-format
msgid "Loop"
-msgstr ""
+msgstr "Bucle"
#. module: web_editor
#. openerp-web
@@ -979,7 +986,7 @@ msgstr "Aceptar"
#: code:addons/web_editor/static/src/js/editor/translator.js:93
#, python-format
msgid "Ok, never show me this again"
-msgstr ""
+msgstr "De acuerdo, no volver a mostrar esto"
#. module: web_editor
#. openerp-web
@@ -1162,7 +1169,7 @@ msgstr "Resetear al defecto"
#: code:addons/web_editor/static/src/js/widgets/ace.js:485
#, python-format
msgid "Reseting views is not supported yet"
-msgstr ""
+msgstr "La función de restablecimiento de vistas aún no es compatible"
#. module: web_editor
#. openerp-web
@@ -1248,7 +1255,7 @@ msgstr "Seleccione desde archivos"
#: code:addons/web_editor/static/src/js/widgets/ace.js:567
#, python-format
msgid "Server error"
-msgstr ""
+msgstr "Error de servidor"
#. module: web_editor
#. openerp-web
@@ -1381,14 +1388,14 @@ msgstr ""
#: code:addons/web_editor/static/src/js/widgets/widgets.js:871
#, python-format
msgid "The provided url does not reference any supported video"
-msgstr ""
+msgstr "La URL proporcionada no hace referencia a ningún vídeo admitido"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/widgets/widgets.js:865
#, python-format
msgid "The provided url is not valid"
-msgstr ""
+msgstr "La URL proporcionada no es válida"
#. module: web_editor
#. openerp-web
@@ -1438,7 +1445,7 @@ msgstr "Contenido traducido"
#: code:addons/web_editor/static/src/js/editor/translator.js:91
#, python-format
msgid "Translation Info"
-msgstr ""
+msgstr "Información de la traducción"
#. module: web_editor
#. openerp-web
@@ -1453,7 +1460,7 @@ msgstr "Transparente"
#: code:addons/web_editor/static/src/xml/editor.xml:248
#, python-format
msgid "URL or Email"
-msgstr ""
+msgstr "URL o correo electrónico"
#. module: web_editor
#. openerp-web
@@ -1474,7 +1481,7 @@ msgstr "Deshacer"
#: code:addons/web_editor/static/src/js/widgets/ace.js:86
#, python-format
msgid "Unexpected "
-msgstr ""
+msgstr "Inesperado"
#. module: web_editor
#. openerp-web
@@ -1545,21 +1552,21 @@ msgstr "¿URL vídeo?"
#: code:addons/web_editor/static/src/xml/editor.xml:193
#, python-format
msgid "Video code"
-msgstr ""
+msgstr "Código de vídeo"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Vimeo"
-msgstr ""
+msgstr "Vimeo"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Vine.co"
-msgstr ""
+msgstr "Vine.co"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -1577,7 +1584,7 @@ msgstr "Blanco"
#: code:addons/web_editor/static/src/xml/ace.xml:10
#, python-format
msgid "XML (HTML)"
-msgstr ""
+msgstr "XML (HTML)"
#. module: web_editor
#. openerp-web
@@ -1598,14 +1605,14 @@ msgstr "Está a punto de entrar en el modo de traducción."
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Youku"
-msgstr ""
+msgstr "Youku"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Youtube"
-msgstr ""
+msgstr "Youtube"
#. module: web_editor
#. openerp-web
@@ -1622,7 +1629,7 @@ msgstr "y"
#: code:addons/web_editor/static/src/xml/editor.xml:379
#, python-format
msgid "auto"
-msgstr ""
+msgstr "automático"
#. module: web_editor
#. openerp-web
@@ -1731,7 +1738,7 @@ msgstr "ir.ui.view"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "videos"
-msgstr ""
+msgstr "vídeos"
#. module: web_editor
#: model:ir.model,name:web_editor.model_web_editor_converter_test
diff --git a/addons/web_editor/i18n/fr.po b/addons/web_editor/i18n/fr.po
index 028410630d3..718600e927e 100644
--- a/addons/web_editor/i18n/fr.po
+++ b/addons/web_editor/i18n/fr.po
@@ -4,7 +4,7 @@
#
# Translators:
# Xavier Belmere <Info@cartmeleon.com>, 2016
-# Martin Trigaux <mat@odoo.com>, 2016
+# Martin Trigaux, 2016
# Olivier Lenoir <olivier.lenoir@free.fr>, 2016
# Fabien Pinckaers <fp@openerp.com>, 2016
# Loic <loic.richard2@gmail.com>, 2016
@@ -13,27 +13,28 @@
# Vincent Hammadache <vhammadache@gmail.com>, 2016
# Maxime Chambreuil <mchambreuil@ursainfosystems.com>, 2016
# Fabri Yohann <psn@fabri.pw>, 2016
-# Fabrice Henrion <fhe@odoo.com>, 2016
+# Fabrice Henrion, 2016
# Xavier Symons <xsy@openerp.com>, 2016
# Melanie Bernard <mbe@odoo.com>, 2016
-# Kévin R. <realrom@hotmail.fr>, 2016
+# Kévin R., 2016
# Richard Mathot <rim@odoo.com>, 2016
# Shark McGnark <peculiarcheese@gmail.com>, 2016
# Fabien Bourgeois <fabien@yaltik.com>, 2016
-# Florian Hatat <mininet@wanadoo.fr>, 2016
+# Florian Hatat, 2016
# Quentin THEURET <odoo@kerpeo.com>, 2016
# Hubert TETARD <htetard@apik-conseils.com>, 2016
# Adriana Ierfino <adriana.ierfino@savoirfairelinux.com>, 2017
# Sébastien Le Ray <sebastien-github@orniz.org>, 2017
# Eloïse Stilmant <est@odoo.com>, 2017
# Olivier Dony <odo@odoo.com>, 2017
+# e2f <projects@e2f.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:54+0000\n"
"PO-Revision-Date: 2017-09-20 09:54+0000\n"
-"Last-Translator: Olivier Dony <odo@odoo.com>, 2017\n"
+"Last-Translator: e2f <projects@e2f.com>, 2018\n"
"Language-Team: French (https://www.transifex.com/odoo/teams/41243/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -46,7 +47,7 @@ msgstr ""
#: code:addons/web_editor/static/src/xml/editor.xml:193
#, python-format
msgid "(URL or Embed)"
-msgstr ""
+msgstr "(URL ou code incorporé)"
#. module: web_editor
#. openerp-web
@@ -98,13 +99,15 @@ msgid ""
"A server error occured. Please check you correctly signed in and that the "
"file you are saving is well-formed."
msgstr ""
+"Une erreur de serveur est survenue. Vérifiez que vous êtes bien connecté et "
+"que le fichier que vous sauvegardez est bien mis en forme."
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Accepts"
-msgstr ""
+msgstr "Accepte"
#. module: web_editor
#. openerp-web
@@ -349,7 +352,7 @@ msgstr "Contenu à traduire"
#: code:addons/web_editor/static/src/xml/editor.xml:194
#, python-format
msgid "Copy-paste your URL or embed code here"
-msgstr ""
+msgstr "Copiez-coller votre URL ou votre code incorporé ici"
#. module: web_editor
#. openerp-web
@@ -387,7 +390,7 @@ msgstr "Personnalisé"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Dailymotion"
-msgstr ""
+msgstr "Dailymotion"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -425,7 +428,7 @@ msgstr "Description"
#: code:addons/web_editor/static/src/xml/editor.xml:34
#, python-format
msgid "Description (alt tag)"
-msgstr ""
+msgstr "Description (balise alt)"
#. module: web_editor
#. openerp-web
@@ -677,35 +680,35 @@ msgstr "Voici les exemples utilisés pour vous aider à traduire efficacement"
#: code:addons/web_editor/static/src/xml/editor.xml:219
#, python-format
msgid "Hide Dailymotion logo"
-msgstr ""
+msgstr "Masquer le logo Dailymotion"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:216
#, python-format
msgid "Hide Youtube logo"
-msgstr ""
+msgstr "Masquer le logo YouTube"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:213
#, python-format
msgid "Hide fullscreen button"
-msgstr ""
+msgstr "Masquer le bouton plein écran"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:210
#, python-format
msgid "Hide player controls"
-msgstr ""
+msgstr "Masquer les commandes du lecteur"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:222
#, python-format
msgid "Hide sharing button"
-msgstr ""
+msgstr "Masquer le bouton de partage"
#. module: web_editor
#. openerp-web
@@ -738,6 +741,8 @@ msgid ""
"If you reset this file, all your customizations will be lost as it will be "
"reverted to the default file."
msgstr ""
+"Si vous réinitialisez ce fichier, toutes vos personnalisations seront "
+"perdues, car vous retrouverez le fichier par défaut."
#. module: web_editor
#. openerp-web
@@ -761,13 +766,15 @@ msgid ""
"In this mode, you can only translate texts. To change the structure of the page, you must edit the master page.\n"
" Each modification on the master page is automatically applied to all translated versions."
msgstr ""
+"Dans ce mode, vous pouvez uniquement traduire des textes. Pour modifier la structure de la page, vous devez modifier la page principale.\n"
+" Chaque modification de la page principale est automatiquement appliquée à toutes les versions traduites."
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/ace.xml:23
#, python-format
msgid "Include All LESS Files"
-msgstr ""
+msgstr "Inclure tous les fichiers MOINS"
#. module: web_editor
#. openerp-web
@@ -821,7 +828,7 @@ msgstr "Insérer une video"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Instagram"
-msgstr ""
+msgstr "Instagram"
#. module: web_editor
#. openerp-web
@@ -856,7 +863,7 @@ msgstr "Raccourcis clavier"
#: code:addons/web_editor/static/src/xml/ace.xml:11
#, python-format
msgid "LESS (CSS)"
-msgstr ""
+msgstr "MOINS (CSS)"
#. module: web_editor
#. openerp-web
@@ -886,7 +893,7 @@ msgstr "Dernière mise à jour le"
#: code:addons/web_editor/static/src/js/widgets/ace.js:360
#, python-format
msgid "Less file: %s"
-msgstr ""
+msgstr "Fichier moins : %s"
#. module: web_editor
#. openerp-web
@@ -921,7 +928,7 @@ msgstr "Lien vers"
#: code:addons/web_editor/static/src/xml/editor.xml:207
#, python-format
msgid "Loop"
-msgstr ""
+msgstr "Boucle"
#. module: web_editor
#. openerp-web
@@ -985,7 +992,7 @@ msgstr "Ok"
#: code:addons/web_editor/static/src/js/editor/translator.js:93
#, python-format
msgid "Ok, never show me this again"
-msgstr ""
+msgstr "OK, ne plus me montrer cela"
#. module: web_editor
#. openerp-web
@@ -1168,7 +1175,7 @@ msgstr "Remise par défaut"
#: code:addons/web_editor/static/src/js/widgets/ace.js:485
#, python-format
msgid "Reseting views is not supported yet"
-msgstr ""
+msgstr "La réinitialisation des affichages n'est pas encore possible"
#. module: web_editor
#. openerp-web
@@ -1387,14 +1394,14 @@ msgstr ""
#: code:addons/web_editor/static/src/js/widgets/widgets.js:871
#, python-format
msgid "The provided url does not reference any supported video"
-msgstr ""
+msgstr "L'URL fournie ne renvoie à aucune vidéo compatible"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/widgets/widgets.js:865
#, python-format
msgid "The provided url is not valid"
-msgstr ""
+msgstr "L'URL fournie n'est pas valide"
#. module: web_editor
#. openerp-web
@@ -1444,7 +1451,7 @@ msgstr "Traduire le contenu"
#: code:addons/web_editor/static/src/js/editor/translator.js:91
#, python-format
msgid "Translation Info"
-msgstr ""
+msgstr "Informations de traduction"
#. module: web_editor
#. openerp-web
@@ -1459,7 +1466,7 @@ msgstr "Transparent"
#: code:addons/web_editor/static/src/xml/editor.xml:248
#, python-format
msgid "URL or Email"
-msgstr ""
+msgstr "URL ou e-mail"
#. module: web_editor
#. openerp-web
@@ -1551,21 +1558,21 @@ msgstr "Url vidéo?"
#: code:addons/web_editor/static/src/xml/editor.xml:193
#, python-format
msgid "Video code"
-msgstr ""
+msgstr "Code de la vidéo"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Vimeo"
-msgstr ""
+msgstr "Vimeo"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Vine.co"
-msgstr ""
+msgstr "Vine.co"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -1583,7 +1590,7 @@ msgstr "Blanc"
#: code:addons/web_editor/static/src/xml/ace.xml:10
#, python-format
msgid "XML (HTML)"
-msgstr ""
+msgstr "XML (HTML)"
#. module: web_editor
#. openerp-web
@@ -1604,7 +1611,7 @@ msgstr "Vous allez passer en mode traduction."
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Youku"
-msgstr ""
+msgstr "Youku"
#. module: web_editor
#. openerp-web
@@ -1737,7 +1744,7 @@ msgstr "ir.ui.view"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "videos"
-msgstr ""
+msgstr "vidéos"
#. module: web_editor
#: model:ir.model,name:web_editor.model_web_editor_converter_test
diff --git a/addons/web_editor/static/src/js/backend/fields.js b/addons/web_editor/static/src/js/backend/fields.js
index b84fcd21c91..d3d601bac73 100644
--- a/addons/web_editor/static/src/js/backend/fields.js
+++ b/addons/web_editor/static/src/js/backend/fields.js
@@ -118,6 +118,7 @@ var FieldTextHtmlSimple = basic_fields.DebouncedField.extend(TranslatableFieldMi
*/
_getValue: function () {
if (this.nodeOptions['style-inline']) {
+ transcoder.linkImgToAttachmentThumbnail(this.$content);
transcoder.classToStyle(this.$content);
transcoder.fontToImg(this.$content);
}
@@ -133,6 +134,8 @@ var FieldTextHtmlSimple = basic_fields.DebouncedField.extend(TranslatableFieldMi
this.$textarea.summernote(this._getSummernoteConfig());
this.$content = this.$('.note-editable:first');
this.$content.html(this._textToHtml(this.value));
+ this.$content.data('oe-id', this.recordData.res_id || this.res_id);
+ this.$content.data('oe-model', this.recordData.model || this.model);
// trigger a mouseup to refresh the editor toolbar
this.$content.trigger('mouseup');
if (this.nodeOptions['style-inline']) {
diff --git a/addons/web_editor/static/src/js/editor/rte.summernote.js b/addons/web_editor/static/src/js/editor/rte.summernote.js
index d2613f42635..fb4d6fc7206 100644
--- a/addons/web_editor/static/src/js/editor/rte.summernote.js
+++ b/addons/web_editor/static/src/js/editor/rte.summernote.js
@@ -1084,8 +1084,12 @@ var SummernoteManager = Class.extend(mixins.EventDispatcherMixin, {
return;
}
data.__alreadyDone = true;
+
var mediaDialog = new weWidgets.MediaDialog(this,
- data.options || {},
+ _.extend({
+ res_model: data.$editable.data('oe-model'),
+ res_id: data.$editable.data('oe-id'),
+ }, data.options),
data.$editable,
data.media
);
diff --git a/addons/web_editor/static/src/js/editor/snippets.options.js b/addons/web_editor/static/src/js/editor/snippets.options.js
index 24d9663a058..188b563f238 100644
--- a/addons/web_editor/static/src/js/editor/snippets.options.js
+++ b/addons/web_editor/static/src/js/editor/snippets.options.js
@@ -813,9 +813,12 @@ registry.background = SnippetOption.extend({
// Put fake image in the DOM, edit it and use it as background-image
var $image = $('<img/>', {class: 'hidden', src: value}).appendTo(this.$target);
+ var $editable = this.$target.closest('.o_editable');
var _editor = new weWidgets.MediaDialog(this, {
onlyImages: true,
firstFilters: ['background'],
+ res_model: $editable.data('oe-model'),
+ res_id: $editable.data('oe-id'),
}, null, $image[0]).open();
_editor.on('save', this, function () {
diff --git a/addons/web_editor/static/src/js/editor/summernote.js b/addons/web_editor/static/src/js/editor/summernote.js
index 59609eab8a5..121a1a6d3d7 100644
--- a/addons/web_editor/static/src/js/editor/summernote.js
+++ b/addons/web_editor/static/src/js/editor/summernote.js
@@ -913,15 +913,21 @@ range.WrappedRange.prototype.deleteContents = function (towrite) {
return this;
}
- var prevBP = dom.removeBetween(this.sc, this.so, this.ec, this.eo, towrite);
+ var r;
+ var image = this.isOnImg();
+ if (image) {
+ // If the range matches/is in an image, then the image is to be removed
+ // and the cursor moved to its previous position
+ var parentNode = image.parentNode;
+ var index = _.indexOf(parentNode.childNodes, image);
+ parentNode.removeChild(image);
+ r = new range.WrappedRange(parentNode, index, parentNode, index);
+ } else {
+ r = dom.removeBetween(this.sc, this.so, this.ec, this.eo, towrite);
+ }
- $(dom.node(prevBP.sc)).trigger("click"); // trigger click to disable and reanable editor and image handler
- return new range.WrappedRange(
- prevBP.sc,
- prevBP.so,
- prevBP.ec,
- prevBP.eo
- );
+ $(dom.node(r.sc)).trigger("click"); // trigger click to disable and reanable editor and image handler
+ return new range.WrappedRange(r.sc, r.so, r.ec, r.eo);
};
range.WrappedRange.prototype.clean = function (mergeFilter, all) {
var node = dom.node(this.sc === this.ec ? this.sc : this.commonAncestor());
@@ -1258,7 +1264,7 @@ $.summernote.pluginEvents.visible = function (event, editor, layoutInfo) {
};
function remove_table_content(r) {
- var nodes = dom.listBetween(r.sc, r.ec);
+ var nodes = dom.listBetween(r.sc, r.ec, r.so, r.eo);
if (dom.isText(r.sc)) {
r.sc.textContent = r.sc.textContent.slice(0, r.so);
}
diff --git a/addons/web_editor/static/src/js/editor/transcoder.js b/addons/web_editor/static/src/js/editor/transcoder.js
index 058ea8ebcc7..6fd57c0330b 100644
--- a/addons/web_editor/static/src/js/editor/transcoder.js
+++ b/addons/web_editor/static/src/js/editor/transcoder.js
@@ -18,7 +18,7 @@ function getMatchedCSSRules(a) {
var sheets = document.styleSheets;
for (i = sheets.length-1 ; i >= 0 ; i--) {
var rules;
- if (sheets[i].rules) {
+ if (sheets[i].hasOwnProperty('rules')) {
rules = sheets[i].rules;
} else {
// try...catch because Firefox not able to enumerate
@@ -259,10 +259,40 @@ function styleToClass($editable) {
$c.remove();
}
+/**
+ * Converts css display for attachment link to real image.
+ * Without this post process, the display depends on the css and the picture
+ * does not appear when we use the html without css (to send by email for e.g.)
+ *
+ * @param {jQuery} $editable
+ */
+function attachmentThumbnailToLinkImg($editable) {
+ $editable.find('a[href*="/web/content/"][data-mimetype]:empty').each(function () {
+ var $link = $(this);
+ var $img = $('<img/>')
+ .attr('src', $link.css('background-image').replace(/(^url\(['"])|(['"]\)$)/g, ''))
+ .css('height', Math.max(1, $link.height()) + 'px')
+ .css('width', Math.max(1, $link.width()) + 'px');
+ $link.append($img);
+ });
+}
+
+/**
+ * Revert attachmentThumbnailToLinkImg changes
+ *
+ * @see attachmentThumbnailToLinkImg
+ * @param {jQuery} $editable
+ */
+function linkImgToAttachmentThumbnail($editable) {
+ $editable.find('a[href*="/web/content/"][data-mimetype] > img').remove();
+}
+
return {
fontToImg: fontToImg,
imgToFont: imgToFont,
classToStyle: classToStyle,
styleToClass: styleToClass,
+ attachmentThumbnailToLinkImg: attachmentThumbnailToLinkImg,
+ linkImgToAttachmentThumbnail: linkImgToAttachmentThumbnail,
};
});
diff --git a/addons/web_editor/static/src/js/iframe.js b/addons/web_editor/static/src/js/iframe.js
index 949a141c333..f2c5e3be661 100644
--- a/addons/web_editor/static/src/js/iframe.js
+++ b/addons/web_editor/static/src/js/iframe.js
@@ -82,7 +82,7 @@ translator.Class.include({
//==============================================================================
-odoo.define('web_editor.IframeRoot.instance', function (require) {
+odoo.define('root.widget', function (require) {
'use strict';
require('web.dom_ready');
diff --git a/addons/web_editor/static/src/js/inline.js b/addons/web_editor/static/src/js/inline.js
index 7480b2228fa..b1de23cb293 100644
--- a/addons/web_editor/static/src/js/inline.js
+++ b/addons/web_editor/static/src/js/inline.js
@@ -53,6 +53,7 @@ snippet_editor.Class.include({
this._super.apply(this, arguments);
var $editable = $('#editable_area');
+ transcoder.linkImgToAttachmentThumbnail($editable);
transcoder.fontToImg($editable);
transcoder.classToStyle($editable);
diff --git a/addons/web_editor/static/src/js/widgets/ace.js b/addons/web_editor/static/src/js/widgets/ace.js
index 6c28c1e2332..0a89d0d8ce7 100644
--- a/addons/web_editor/static/src/js/widgets/ace.js
+++ b/addons/web_editor/static/src/js/widgets/ace.js
@@ -742,7 +742,7 @@ var ViewEditor = Widget.extend({
var text = data.text || '';
if (!isSelected) {
- text = Array($elem.data('level') + 1).join('-') + ' ' + text;
+ text = Array(($elem.data('level') || 0) + 1).join('-') + ' ' + text;
}
var $div = $('<div/>', {
text: text,
diff --git a/addons/web_editor/static/src/js/widgets/widgets.js b/addons/web_editor/static/src/js/widgets/widgets.js
index 6791a21f721..c9659e04eab 100644
--- a/addons/web_editor/static/src/js/widgets/widgets.js
+++ b/addons/web_editor/static/src/js/widgets/widgets.js
@@ -206,13 +206,16 @@ var ImageWidget = MediaWidget.extend({
this.IMAGES_PER_PAGE = this.IMAGES_PER_ROW * this.IMAGES_ROWS;
+ this.options = options;
this.accept = options.accept || (options.document ? '*/*' : 'image/*');
- this.domain = options.domain
- || [
- '|',
- ['mimetype', '=', false],
- ['mimetype', options.document ? 'not in' : 'in', ['image/gif', 'image/jpe', 'image/jpeg', 'image/jpg', 'image/gif', 'image/png']]
- ];
+ if (options.res_id) {
+ this.domain = ['|',
+ '&', ['res_model', '=', options.res_model], ['res_id', '=', options.res_id],
+ ['res_model', '=', 'ir.ui.view']];
+ } else {
+ this.domain = [['res_model', '=', 'ir.ui.view']];
+ }
+
this.multiImages = options.multiImages;
this.firstFilters = options.firstFilters || [];
@@ -279,32 +282,55 @@ var ImageWidget = MediaWidget.extend({
* @override
*/
save: function () {
+ var self = this;
if (this.multiImages) {
return this.images;
}
var img = this.images[0];
- if (!img.isDocument) {
- if (!this.$media.is('img')) {
- this._replaceMedia($('<img/>'));
- }
- this.$media.attr('src', img.src);
- } else {
- if (!this.$media.is('a')) {
- $('.note-control-selection').hide();
- this._replaceMedia($('<a/>'));
- }
- this.$media.attr('href', '/web/content/' + img.id + '?unique=' + img.checksum + '&download=true');
- this.$media.addClass('o_image').attr('title', img.name).attr('data-mimetype', img.mimetype);
+ var def = $.when();
+ if (!img.access_token) {
+ def = this._rpc({
+ model: 'ir.attachment',
+ method: 'generate_access_token',
+ args: [[img.id]]
+ }).then(function (access_token) {
+ img.access_token = access_token[0];
+ });
}
- this.$media.attr('alt', img.alt);
- var style = this.style;
- if (style) {
- this.$media.css(style);
- }
+ return def.then(function () {
+ if (!img.isDocument) {
+ if (img.access_token && self.options.res_model !== 'ir.ui.view') {
+ img.src += _.str.sprintf('?access_token=%s', img.access_token);
+ }
+ if (!self.$media.is('img')) {
+ self._replaceMedia($('<img/>'));
+ }
+ self.$media.attr('src', img.src);
- return this.media;
+ } else {
+ if (!self.$media.is('a')) {
+ $('.note-control-selection').hide();
+ self._replaceMedia($('<a/>'));
+ }
+ var href = '/web/content/' + img.id + '?';
+ if (img.access_token && self.options.res_model !== 'ir.ui.view') {
+ href += _.str.sprintf('access_token=%s&', img.access_token);
+ }
+ href += 'unique=' + img.checksum + '&download=true';
+ self.$media.attr('href', href);
+ self.$media.addClass('o_image').attr('title', img.name).attr('data-mimetype', img.mimetype);
+ }
+
+ self.$media.attr('alt', img.alt);
+ var style = self.style;
+ if (style) {
+ self.$media.css(style);
+ }
+
+ return self.media;
+ });
},
/**
* @override
@@ -314,7 +340,7 @@ var ImageWidget = MediaWidget.extend({
if (!noRender) {
this.$('input.url').val('').trigger('input').trigger('change');
}
- var domain = [['res_model', '=', 'ir.ui.view']].concat(this.domain);
+ var domain = this.domain.concat(['|', ['mimetype', '=', false], ['mimetype', this.options.document ? 'not in' : 'in', ['image/gif', 'image/jpe', 'image/jpeg', 'image/jpg', 'image/gif', 'image/png']]]);
if (needle && needle.length) {
domain.push('|', ['datas_fname', 'ilike', needle], ['name', 'ilike', needle]);
}
@@ -324,7 +350,7 @@ var ImageWidget = MediaWidget.extend({
args: [],
kwargs: {
domain: domain,
- fields: ['name', 'datas_fname', 'mimetype', 'checksum', 'url', 'type'],
+ fields: ['name', 'datas_fname', 'mimetype', 'checksum', 'url', 'type', 'res_id', 'res_model', 'access_token'],
order: [{name: 'id', asc: false}],
context: weContext.get(),
},
@@ -354,7 +380,7 @@ var ImageWidget = MediaWidget.extend({
.value();
_.each(self.records, function (record) {
- record.src = record.url || _.str.sprintf('/web/image/%s/%s', record.id, record.name); // Name is added for SEO purposes
+ record.src = record.url || _.str.sprintf('/web/image/%s/%s', record.id, encodeURI(record.name)); // Name is added for SEO purposes
record.isDocument = !(/gif|jpe|jpg|png/.test(record.mimetype));
});
if (!noRender) {
@@ -1143,11 +1169,15 @@ var MediaDialog = Dialog.extend({
*/
save: function () {
var self = this;
+ var args = arguments;
+ var _super = this._super;
if (this.multiImages) {
// In the case of multi images selection we suppose this was not to
// replace an old media, so we only retrieve the images and save.
- this.final_data = this.active.save();
- return this._super.apply(this, arguments);
+ return $.when(this.active.save()).then(function (data) {
+ self.final_data = data;
+ return _super.apply(self, args);
+ });
}
if (this.rte) {
@@ -1164,28 +1194,29 @@ var MediaDialog = Dialog.extend({
}
});
}
- var media = this.active.save();
- if (!this.media) {
- this.range.insertNode(media, true);
- }
- this.media = media;
- this.$media = $(media);
- this.final_data = this.media;
- $(this.final_data).trigger('input').trigger('save');
- $(document.body).trigger("media-saved", this.final_data); // TODO get rid of this
-
- // Update editor bar after image edition (in case the image change to icon or other)
- _.defer(function () {
- if (!self.media.parentNode) {
- return;
+ return $.when(this.active.save()).then(function (media) {
+ if (!self.media) {
+ self.range.insertNode(media, true);
}
- range.createFromNode(self.media).select();
- simulateMouseEvent(self.media, 'mousedown');
- simulateMouseEvent(self.media, 'mouseup');
- });
+ self.media = media;
+ self.$media = $(media);
- return this._super.apply(this, arguments);
+ self.final_data = self.media;
+ $(self.final_data).trigger('input').trigger('save');
+ $(document.body).trigger("media-saved", self.final_data); // TODO get rid of this
+
+ // Update editor bar after image edition (in case the image change to icon or other)
+ _.defer(function () {
+ if (!self.media.parentNode) {
+ return;
+ }
+ range.createFromNode(self.media).select();
+ simulateMouseEvent(self.media, 'mousedown');
+ simulateMouseEvent(self.media, 'mouseup');
+ });
+ return _super.apply(self, args);
+ });
},
//--------------------------------------------------------------------------
diff --git a/addons/web_editor/static/src/xml/editor.xml b/addons/web_editor/static/src/xml/editor.xml
index 81abb435f2b..425c1bf1bce 100644
--- a/addons/web_editor/static/src/xml/editor.xml
+++ b/addons/web_editor/static/src/xml/editor.xml
@@ -86,6 +86,8 @@
target="fileframe">
<input type="hidden" name="csrf_token" t-att-value="csrf_token"/>
<input type="hidden" name="filters" t-att-value="widget.firstFilters.join('_')"/>
+ <input t-if="widget.options.res_id" type="hidden" name="res_id" t-att-value="widget.options.res_id"/>
+ <input t-if="widget.options.res_model" type="hidden" name="res_model" t-att-value="widget.options.res_model"/>
<div class="well">
<div class="form-group pull-left">
<input type="file" class="hidden" name="upload" t-att-accept="widget.accept" multiple="multiple"/>
@@ -142,8 +144,9 @@
<div class="existing-attachments">
<div class="row mt16" t-as="row" t-foreach="rows">
<div class="col-sm-2 o_existing_attachment_cell" t-as="attachment" t-foreach="row">
- <i class="fa fa-times o_existing_attachment_remove" t-att-data-id="attachment.id"/>
- <div class="o_attachment_border"><div t-att-data-src="attachment.src" t-att-data-url="attachment.url" t-att-alt="attachment.name" t-att-title="attachment.name" t-att-data-id="attachment.id" t-att-data-mimetype="attachment.mimetype" class="o_image o_image_loading"/></div>
+ <i t-if="attachment.res_model === 'ir.ui.view'" class="fa fa-times o_existing_attachment_remove" title="This file is a public view attachment" t-att-data-id="attachment.id"/>
+ <i t-else="" class="fa fa-times o_existing_attachment_remove" title="This file is attached to the current record" t-att-data-id="attachment.id"/>
+ <div class="o_attachment_border" t-att-style="attachment.res_model === 'ir.ui.view' ? null : 'border: 1px solid #5cb85c;'"><div t-att-data-src="attachment.src" t-att-data-url="attachment.url" t-att-alt="attachment.name" t-att-title="attachment.name" t-att-data-id="attachment.id" t-att-data-mimetype="attachment.mimetype" class="o_image o_image_loading"/></div>
</div>
</div>
</div>