From cbc4e8c51c1ffb2df5e7bdfd916ba19414fc0c9f Mon Sep 17 00:00:00 2001
From: Simone Orsi
Date: Mon, 2 Dec 2019 12:40:58 +0100
Subject: [PATCH 1/8] Add mail_layout_preview
---
mail_layout_preview/README.rst | 92 ++++
mail_layout_preview/__init__.py | 2 +
mail_layout_preview/__manifest__.py | 15 +
mail_layout_preview/controllers/__init__.py | 1 +
.../controllers/layout_preview.py | 47 ++
.../i18n/mail_layout_preview.pot | 86 ++++
mail_layout_preview/readme/CONTRIBUTORS.rst | 1 +
mail_layout_preview/readme/DESCRIPTION.rst | 6 +
mail_layout_preview/readme/USAGE.rst | 10 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 436 ++++++++++++++++++
.../templates/email_preview.xml | 47 ++
mail_layout_preview/tests/__init__.py | 1 +
.../tests/test_layout_preview.py | 77 ++++
mail_layout_preview/wizard/__init__.py | 1 +
.../wizard/email_template_preview.py | 26 ++
.../wizard/email_template_preview.xml | 14 +
17 files changed, 862 insertions(+)
create mode 100644 mail_layout_preview/README.rst
create mode 100644 mail_layout_preview/__init__.py
create mode 100644 mail_layout_preview/__manifest__.py
create mode 100644 mail_layout_preview/controllers/__init__.py
create mode 100644 mail_layout_preview/controllers/layout_preview.py
create mode 100644 mail_layout_preview/i18n/mail_layout_preview.pot
create mode 100644 mail_layout_preview/readme/CONTRIBUTORS.rst
create mode 100644 mail_layout_preview/readme/DESCRIPTION.rst
create mode 100644 mail_layout_preview/readme/USAGE.rst
create mode 100644 mail_layout_preview/static/description/icon.png
create mode 100644 mail_layout_preview/static/description/index.html
create mode 100644 mail_layout_preview/templates/email_preview.xml
create mode 100644 mail_layout_preview/tests/__init__.py
create mode 100644 mail_layout_preview/tests/test_layout_preview.py
create mode 100644 mail_layout_preview/wizard/__init__.py
create mode 100644 mail_layout_preview/wizard/email_template_preview.py
create mode 100644 mail_layout_preview/wizard/email_template_preview.xml
diff --git a/mail_layout_preview/README.rst b/mail_layout_preview/README.rst
new file mode 100644
index 000000000..9ab4c4329
--- /dev/null
+++ b/mail_layout_preview/README.rst
@@ -0,0 +1,92 @@
+============
+Mail Preview
+============
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github
+ :target: https://github.com/OCA/social/tree/13.0/mail_layout_preview
+ :alt: OCA/social
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/social-13-0/social-13-0-mail_layout_preview
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/205/13.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+The purpose of this module is to help development of email templates
+allowing to render the full layout preview of each of them.
+
+Odoo already allows you do preview emails but they are wrapped into Odoo backend theme.
+
+NOTE: to make work properly your emails it's strongly recommended to use `mail_inline_css` to include all styles in the body of the email.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Usage
+=====
+
+* Go to a template and click on the preview button
+* Select desired params and click on "Full layout preview" link
+* You'll get to the preview
+
+As a developer, you can see a list of all templates for a model by going to:
+
+ /email-preview/$model.name
+
+You'll get a list of all the templates.
+Follow the instructions there on how to use the links.
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Camptocamp SA
+
+Contributors
+~~~~~~~~~~~~
+
+* Simone Orsi
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+This module is part of the `OCA/social `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/mail_layout_preview/__init__.py b/mail_layout_preview/__init__.py
new file mode 100644
index 000000000..9b7fdc981
--- /dev/null
+++ b/mail_layout_preview/__init__.py
@@ -0,0 +1,2 @@
+from . import controllers
+from . import wizard
diff --git a/mail_layout_preview/__manifest__.py b/mail_layout_preview/__manifest__.py
new file mode 100644
index 000000000..a63cb3818
--- /dev/null
+++ b/mail_layout_preview/__manifest__.py
@@ -0,0 +1,15 @@
+# Copyright 2020 Camptocamp SA
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+{
+ "name": "Mail Preview",
+ "summary": """
+ Preview email templates in the browser""",
+ "version": "13.0.1.0.0",
+ "license": "AGPL-3",
+ "author": "Camptocamp SA,Odoo Community Association (OCA)",
+ "website": "https://github.com/OCA/social",
+ "depends": ["mail"],
+ "data": ["templates/email_preview.xml", "wizard/email_template_preview.xml"],
+ "development_status": "Beta",
+}
diff --git a/mail_layout_preview/controllers/__init__.py b/mail_layout_preview/controllers/__init__.py
new file mode 100644
index 000000000..07dab3c8e
--- /dev/null
+++ b/mail_layout_preview/controllers/__init__.py
@@ -0,0 +1 @@
+from . import layout_preview
diff --git a/mail_layout_preview/controllers/layout_preview.py b/mail_layout_preview/controllers/layout_preview.py
new file mode 100644
index 000000000..b2e72d85d
--- /dev/null
+++ b/mail_layout_preview/controllers/layout_preview.py
@@ -0,0 +1,47 @@
+# Copyright 2020 Simone Orsi - Camptocamp SA
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
+
+from odoo import http
+from odoo.http import request
+
+
+class Preview(http.Controller):
+
+ _list_template = "mail_layout_preview.email_templates_list"
+
+ @http.route(
+ ["/email-preview/"], type="http", auth="user", website=True
+ )
+ def template_list(self, model, **kw):
+ env = request.env
+ templates = env["mail.template"].search([("model_id.model", "=", model)])
+ xids = templates.get_external_id()
+ return request.render(
+ self._list_template, {"model": model, "templates": templates, "xids": xids}
+ )
+
+ @http.route(
+ ["/email-preview///"],
+ type="http",
+ auth="user",
+ website=True,
+ )
+ def preview(self, model, templ_id, rec_id, **kw):
+ """Render an email template to verify look and feel.
+
+ Provide model, record id and an email template to render.
+
+ Example for event registration email:
+
+ /email-preview/event.registration/event.event_subscription/5
+ """
+ env = request.env
+ record = env[model].browse(rec_id)
+ if templ_id.isdigit():
+ # got an ID
+ template = env["mail.template"].browse(int(templ_id))
+ else:
+ # got a XID
+ template = env.ref(templ_id.strip())
+ result = template.generate_email(record.id)
+ return request.make_response(result["body_html"])
diff --git a/mail_layout_preview/i18n/mail_layout_preview.pot b/mail_layout_preview/i18n/mail_layout_preview.pot
new file mode 100644
index 000000000..49aef304c
--- /dev/null
+++ b/mail_layout_preview/i18n/mail_layout_preview.pot
@@ -0,0 +1,86 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_layout_preview
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 13.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid "Link:"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid "Name:"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid "XMLID:"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid "Copy the link"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model:ir.model,name:mail_layout_preview.model_email_template_preview
+msgid "Email Template Preview"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid "Email templates for:"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid "Find your template"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model:ir.model.fields,field_description:mail_layout_preview.field_email_template_preview__layout_preview_url
+msgid "Full layout preview"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid "Here you find all the template for the given model."
+msgstr ""
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid "Load it"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid "No template found."
+msgstr ""
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid ""
+"Paste into the address bar and change the record ID (the last value in the URL).\n"
+" If you don't know the ID of the record, just browse to the record via odoo interface and check its ID in the address bar `#id=XXX`."
+msgstr ""
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid "Preview"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
+msgid "View in backend"
+msgstr ""
diff --git a/mail_layout_preview/readme/CONTRIBUTORS.rst b/mail_layout_preview/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..f583948be
--- /dev/null
+++ b/mail_layout_preview/readme/CONTRIBUTORS.rst
@@ -0,0 +1 @@
+* Simone Orsi
diff --git a/mail_layout_preview/readme/DESCRIPTION.rst b/mail_layout_preview/readme/DESCRIPTION.rst
new file mode 100644
index 000000000..bf89037bb
--- /dev/null
+++ b/mail_layout_preview/readme/DESCRIPTION.rst
@@ -0,0 +1,6 @@
+The purpose of this module is to help development of email templates
+allowing to render the full layout preview of each of them.
+
+Odoo already allows you do preview emails but they are wrapped into Odoo backend theme.
+
+NOTE: to make work properly your emails it's strongly recommended to use `mail_inline_css` to include all styles in the body of the email.
diff --git a/mail_layout_preview/readme/USAGE.rst b/mail_layout_preview/readme/USAGE.rst
new file mode 100644
index 000000000..26448e954
--- /dev/null
+++ b/mail_layout_preview/readme/USAGE.rst
@@ -0,0 +1,10 @@
+* Go to a template and click on the preview button
+* Select desired params and click on "Full layout preview" link
+* You'll get to the preview
+
+As a developer, you can see a list of all templates for a model by going to:
+
+ /email-preview/$model.name
+
+You'll get a list of all the templates.
+Follow the instructions there on how to use the links.
diff --git a/mail_layout_preview/static/description/icon.png b/mail_layout_preview/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~!
zVpnB`o+K7|Al`Q_U;eD$B
zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA
z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__
zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_
zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I
z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U
z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)(
z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH
zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW
z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx
zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h
zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9
zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz#
z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA
zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K=
z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS
zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C
zuVl&0duN<;uOsB3%T9Fp8t{ED108)`y_~Hnd9AUX7h-H?jVuU|}My+C=TjH(jKz
zqMVr0re3S$H@t{zI95qa)+Crz*5Zj}Ao%4Z><+W(nOZd?gDnfNBC3>M8WE61$So|P
zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO
z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1
zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_
zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8
zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ>
zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN
z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h
zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d
zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB
zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz
z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I
zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X
zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD
z#z-)AXwSRY?OPefw^iI+
z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd
z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs
z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I
z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$
z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV
z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s
zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6
zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u
zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q
zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH
zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c
zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT
zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+
z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ
zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy
zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC)
zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a
zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x!
zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X
zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8
z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A
z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H
zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n=
z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK
z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z
zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h
z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD
z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW
zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@
zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz
z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y<
zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X
zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6
zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6%
z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(|
z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ
z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H
zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6
z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d}
z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A
zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/mail_layout_preview/static/description/index.html b/mail_layout_preview/static/description/index.html
new file mode 100644
index 000000000..5bc5b846b
--- /dev/null
+++ b/mail_layout_preview/static/description/index.html
@@ -0,0 +1,436 @@
+
+
+
+
+
+
+Mail Preview
+
+
+
+
+
Mail Preview
+
+
+
+
The purpose of this module is to help development of email templates
+allowing to render the full layout preview of each of them.
+
Odoo already allows you do preview emails but they are wrapped into Odoo backend theme.
+
NOTE: to make work properly your emails it’s strongly recommended to use mail_inline_css to include all styles in the body of the email.
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
This module is part of the OCA/social project on GitHub.
Here you find all the template for the given model.
+
+
Find your template
+
Copy the link
+
+ Paste into the address bar and change the record ID (the last value in the URL).
+ If you don't know the ID of the record, just browse to the record via odoo interface and check its ID in the address bar `#id=XXX`.
+
Paste into the address bar and change the record ID (the last value in the URL).
- If you don't know the ID of the record, just browse to the record via odoo interface and check its ID in the address bar `#id=XXX`.
+ If you don't know the ID of the record, just browse to the record via odoo interface and check its ID in the address bar `#id=XXX`.
Load it
@@ -31,10 +32,16 @@
XMLID: Link:
-
+
Preview
-
+
View in backend
diff --git a/mail_layout_preview/wizard/email_template_preview.xml b/mail_layout_preview/wizard/email_template_preview.xml
index 8070a1a0a..a052694da 100644
--- a/mail_layout_preview/wizard/email_template_preview.xml
+++ b/mail_layout_preview/wizard/email_template_preview.xml
@@ -1,4 +1,4 @@
-
+
email_template.preview
@@ -6,7 +6,7 @@
From 073393c686ee2be8f541298ffdef4fe01acdc2a7 Mon Sep 17 00:00:00 2001
From: Tran Thanh Phuc
Date: Wed, 26 May 2021 14:19:09 +0700
Subject: [PATCH 3/8] [MIG] mail_layout_preview: Migration to 14.0
---
mail_layout_preview/README.rst | 18 +++++++++++-----
mail_layout_preview/__manifest__.py | 2 +-
.../controllers/layout_preview.py | 2 +-
.../i18n/mail_layout_preview.pot | 21 ++++++++++++++++---
mail_layout_preview/readme/CONTRIBUTORS.rst | 1 +
mail_layout_preview/readme/CREDITS.rst | 3 +++
.../static/description/index.html | 19 ++++++++++++-----
.../tests/test_layout_preview.py | 12 ++++++-----
.../wizard/email_template_preview.py | 12 +++++------
.../wizard/email_template_preview.xml | 4 ++--
10 files changed, 66 insertions(+), 28 deletions(-)
create mode 100644 mail_layout_preview/readme/CREDITS.rst
diff --git a/mail_layout_preview/README.rst b/mail_layout_preview/README.rst
index 9ab4c4329..f464cc7ee 100644
--- a/mail_layout_preview/README.rst
+++ b/mail_layout_preview/README.rst
@@ -14,13 +14,13 @@ Mail Preview
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github
- :target: https://github.com/OCA/social/tree/13.0/mail_layout_preview
+ :target: https://github.com/OCA/social/tree/14.0/mail_layout_preview
:alt: OCA/social
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/social-13-0/social-13-0-mail_layout_preview
+ :target: https://translation.odoo-community.org/projects/social-14-0/social-14-0-mail_layout_preview
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/205/13.0
+ :target: https://runbot.odoo-community.org/runbot/205/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -57,7 +57,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -73,6 +73,14 @@ Contributors
~~~~~~~~~~~~
* Simone Orsi
+* Phuc Tran Thanh
+
+Other credits
+~~~~~~~~~~~~~
+
+The development of this module has been financially supported by:
+
+* Camptocamp
Maintainers
~~~~~~~~~~~
@@ -87,6 +95,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/social `_ project on GitHub.
+This module is part of the `OCA/social `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/mail_layout_preview/__manifest__.py b/mail_layout_preview/__manifest__.py
index a63cb3818..425bccadb 100644
--- a/mail_layout_preview/__manifest__.py
+++ b/mail_layout_preview/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Mail Preview",
"summary": """
Preview email templates in the browser""",
- "version": "13.0.1.0.0",
+ "version": "14.0.1.0.0",
"license": "AGPL-3",
"author": "Camptocamp SA,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/social",
diff --git a/mail_layout_preview/controllers/layout_preview.py b/mail_layout_preview/controllers/layout_preview.py
index b2e72d85d..9271357c2 100644
--- a/mail_layout_preview/controllers/layout_preview.py
+++ b/mail_layout_preview/controllers/layout_preview.py
@@ -43,5 +43,5 @@ class Preview(http.Controller):
else:
# got a XID
template = env.ref(templ_id.strip())
- result = template.generate_email(record.id)
+ result = template.generate_email(record.id, ["body_html"])
return request.make_response(result["body_html"])
diff --git a/mail_layout_preview/i18n/mail_layout_preview.pot b/mail_layout_preview/i18n/mail_layout_preview.pot
index 49aef304c..d290be8d2 100644
--- a/mail_layout_preview/i18n/mail_layout_preview.pot
+++ b/mail_layout_preview/i18n/mail_layout_preview.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -34,7 +34,12 @@ msgid "Copy the link"
msgstr ""
#. module: mail_layout_preview
-#: model:ir.model,name:mail_layout_preview.model_email_template_preview
+#: model:ir.model.fields,field_description:mail_layout_preview.field_mail_template_preview__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model:ir.model,name:mail_layout_preview.model_mail_template_preview
msgid "Email Template Preview"
msgstr ""
@@ -49,7 +54,7 @@ msgid "Find your template"
msgstr ""
#. module: mail_layout_preview
-#: model:ir.model.fields,field_description:mail_layout_preview.field_email_template_preview__layout_preview_url
+#: model:ir.model.fields,field_description:mail_layout_preview.field_mail_template_preview__layout_preview_url
msgid "Full layout preview"
msgstr ""
@@ -58,6 +63,16 @@ msgstr ""
msgid "Here you find all the template for the given model."
msgstr ""
+#. module: mail_layout_preview
+#: model:ir.model.fields,field_description:mail_layout_preview.field_mail_template_preview__id
+msgid "ID"
+msgstr ""
+
+#. module: mail_layout_preview
+#: model:ir.model.fields,field_description:mail_layout_preview.field_mail_template_preview____last_update
+msgid "Last Modified on"
+msgstr ""
+
#. module: mail_layout_preview
#: model_terms:ir.ui.view,arch_db:mail_layout_preview.email_templates_list
msgid "Load it"
diff --git a/mail_layout_preview/readme/CONTRIBUTORS.rst b/mail_layout_preview/readme/CONTRIBUTORS.rst
index f583948be..2b607df86 100644
--- a/mail_layout_preview/readme/CONTRIBUTORS.rst
+++ b/mail_layout_preview/readme/CONTRIBUTORS.rst
@@ -1 +1,2 @@
* Simone Orsi
+* Phuc Tran Thanh
diff --git a/mail_layout_preview/readme/CREDITS.rst b/mail_layout_preview/readme/CREDITS.rst
new file mode 100644
index 000000000..f5cc070c7
--- /dev/null
+++ b/mail_layout_preview/readme/CREDITS.rst
@@ -0,0 +1,3 @@
+The development of this module has been financially supported by:
+
+* Camptocamp
diff --git a/mail_layout_preview/static/description/index.html b/mail_layout_preview/static/description/index.html
index 5bc5b846b..5f8d132fe 100644
--- a/mail_layout_preview/static/description/index.html
+++ b/mail_layout_preview/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
The purpose of this module is to help development of email templates
allowing to render the full layout preview of each of them.
Odoo already allows you do preview emails but they are wrapped into Odoo backend theme.
@@ -380,7 +380,8 @@ allowing to render the full layout preview of each of them.
@@ -403,7 +404,7 @@ Follow the instructions there on how to use the links.
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/social project on GitHub.
+
This module is part of the OCA/social project on GitHub.