Files
odoo_source/addons/event/data/mail_template_data.xml
T
Nicolas Lempereur c959efa949 [FIX] event: google calendar link ok timezone
In the change 6ba81c99 there was an issue with timezone with Google
because we were now sending "20201217T123000+0000" instead of
"20201217T123124Z".

When google received formatted date ending in Z it would treat it as
UTC, but with +0000 ending he treats it as a locale time thus get it
wrong if locale timezone is different than UTC.

opw-2370895
closes #62943

closes odoo/odoo#62970

X-original-commit: b68ca9fb1d3f8c0a6346fa1d3d6cce28f4977bbd
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2020-12-07 15:17:16 +00:00

480 lines
29 KiB
XML

<?xml version="1.0"?>
<odoo>
<data noupdate="1">
<record id="event_registration_mail_template_badge" model="mail.template">
<field name="name">Event: Registration Badge</field>
<field name="model_id" ref="event.model_event_registration"/>
<field name="subject">Your badge for ${object.event_id.name}</field>
<field name="email_from">${(object.event_id.organizer_id.email_formatted or object.event_id.user_id.email_formatted or '') | safe}</field>
<field name="email_to">${(object.email and '"%s" &lt;%s&gt;' % (object.name, object.email) or object.partner_id.email_formatted or '') | safe}</field>
<field name="body_html" type="html">
<div>
Dear ${object.name},<br/>
Thank you for your inquiry.<br/>
Here is your badge for the event ${object.event_id.name}.<br/>
If you have any questions, please let us know.
<br/><br/>
Thank you,
% if object.event_id.user_id.signature:
<br />
${object.event_id.user_id.signature | safe}
% endif
</div></field>
<field name="report_template" ref="report_event_registration_badge"/>
<field name="report_name">badge_of_${(object.event_id.name or '').replace('/','_')}</field>
<field name="lang">${object.partner_id.lang}</field>
<field name="auto_delete" eval="True"/>
</record>
<record id="event_subscription" model="mail.template">
<field name="name">Event: Registration</field>
<field name="model_id" ref="event.model_event_registration"/>
<field name="subject">Your registration at ${object.event_id.name}</field>
<field name="email_from">${(object.event_id.organizer_id.email_formatted or object.event_id.user_id.email_formatted or '') | safe}</field>
<field name="email_to">${(object.email and '"%s" &lt;%s&gt;' % (object.name, object.email) or object.partner_id.email_formatted or '') | safe}</field>
<field name="body_html" type="html">
<table border="0" cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;"><tr><td align="center">
% set date_begin = format_datetime(object.event_id.date_begin, tz='UTC', dt_format="yyyyMMdd'T'HHmmss'Z'")
% set date_end = format_datetime(object.event_id.date_end, tz='UTC', dt_format="yyyyMMdd'T'HHmmss'Z'")
% set is_online = 'is_published' in object.event_id and object.event_id.is_published
% set event_organizer = object.event_id.organizer_id
% set event_address = object.event_id.address_id
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
<tbody>
<!-- HEADER -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" cellspacing="0" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr><td valign="middle">
<span style="font-size: 10px;">Your registration</span><br/>
<span style="font-size: 20px; font-weight: bold;">
${object.name}
</span>
</td><td valign="middle" align="right">
% if is_online
<a href="${object.event_id.website_url}"
style="padding: 8px 12px; font-size: 12px; color: #FFFFFF; text-decoration: none !important; font-weight: 400; background-color: #875A7B; border: 0px solid #875A7B; border-radius:3px">
View Event
</a>
% else
<img src="${'/logo.png?company=%s' % object.company_id.id}" style="padding: 0px; margin: 0px; height: auto; width: 80px;" alt="${'%s' % object.company_id.name}"/>
% endif
</td></tr>
<tr><td colspan="2" style="text-align:center;">
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin:16px 0px 16px 0px;"/>
</td></tr>
</table>
</td>
</tr>
<!-- EVENT DESCRIPTION -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" cellspacing="0" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr><td valign="top" style="font-size: 14px;">
<div>
Hello ${object.name or ''},<br/>
We are happy to confirm your registration to the event
% if is_online:
<a href="${object.event_id.website_url}" style="color:#875A7B;text-decoration:none;">${object.event_id.name}</a>
% else:
<strong>${object.event_id.name}</strong>
% endif
for attendee ${object.name}.
</div>
<div>
<br />
<strong>Add this event to your calendar</strong>
<a href="https://www.google.com/calendar/render?action=TEMPLATE&amp;text=${object.event_id.name}&amp;dates=${date_begin}/${date_end}&amp;location=${location}" style="padding:3px 5px;border:1px solid #875A7B;color:#875A7B;text-decoration:none;border-radius:3px;" target="new"><img src="/web_editor/font_to_img/61525/rgb(135,90,123)/16" style="vertical-align:middle;" height="16" alt=""/> Google</a>
<a href="/event/${slug(object.event_id)}/ics" style="padding:3px 5px;border:1px solid #875A7B;color:#875A7B;text-decoration:none;border-radius:3px;"><img src="/web_editor/font_to_img/61525/rgb(135,90,123)/16" style="vertical-align:middle;" height="16" alt=""/> iCal/Outlook</a>
<a href="https://calendar.yahoo.com/?v=60&amp;view=d&amp;type=20&amp;title=${object.event_id.name}&amp;in_loc=${location}&amp;st=${format_datetime(object.event_id.date_begin, tz='UTC', dt_format='yyyyMMdd\'T\'HHmmss')}&amp;et=${format_datetime(object.event_id.date_end, tz='UTC', dt_format='yyyyMMdd\'T\'HHmmss')}" style="padding:3px 5px;border:1px solid #875A7B;color:#875A7B;text-decoration:none;border-radius:3px;" target="new">
<img src="/web_editor/font_to_img/61525/rgb(135,90,123)/16" style="vertical-align:middle;" height="16" alt=""/> Yahoo
</a>
<br /><br />
</div>
<div>
See you soon,<br/>
<span style="color: #454748;">
-- <br/>
% if event_organizer:
${event_organizer.name}
% else:
The ${object.event_id.name} Team
% endif
</span>
</div>
</td></tr>
<tr><td style="text-align:center;">
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
</td></tr>
</table>
</td>
</tr>
<!-- DETAILS -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" cellspacing="0" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr><td valign="top" style="font-size: 14px;">
<table style="width:100%;">
<tr>
<td style="vertical-align:top;">
<img src="/web_editor/font_to_img/61555/rgb(81,81,102)/34" style="padding:4px;max-width:inherit;" height="34" alt=""/>
</td>
<td style="padding: 0px 10px 0px 10px;width:50%;line-height:20px;vertical-align:top;">
<div><strong>From</strong> ${object.event_id.date_begin_located}</div>
<div><strong>To</strong> ${object.event_id.date_end_located}</div>
<div style="font-size:12px;color:#9e9e9e"><i><strong>TZ</strong> ${object.event_id.date_tz}</i></div>
</td>
<td style="vertical-align:top;">
% if event_address:
<img src="/web_editor/font_to_img/61505/rgb(81,81,102)/34" style="padding:4px;max-width:inherit;" height="34" alt=""/>
% endif
</td>
<td style="padding: 0px 10px 0px 10px;width:50%;vertical-align:top;">
% if event_address:
% set location = ''
% if object.event_id.address_id.name:
<div>${object.event_id.address_id.name}</div>
% endif
% if object.event_id.address_id.street:
<div>${object.event_id.address_id.street}</div>
% set location = object.event_id.address_id.street
% endif
% if object.event_id.address_id.street2:
<div>${object.event_id.address_id.street2}</div>
% set location = '%s, %s' % (location, object.event_id.address_id.street2)
% endif
<div>
% if object.event_id.address_id.city:
${object.event_id.address_id.city},
% set location = '%s, %s' % (location, object.event_id.address_id.city)
% endif
% if object.event_id.address_id.state_id.name:
${object.event_id.address_id.state_id.name},
% set location = '%s, %s' % (location, object.event_id.address_id.state_id.name)
% endif
% if object.event_id.address_id.zip:
${object.event_id.address_id.zip}
% set location = '%s, %s' % (location, object.event_id.address_id.zip)
% endif
</div>
% if object.event_id.address_id.country_id.name:
<div>${object.event_id.address_id.country_id.name}</div>
% set location = '%s, %s' % (location, object.event_id.address_id.country_id.name)
% endif
% endif
</td>
</tr>
</table>
</td></tr>
<tr><td style="text-align:center;">
% if event_organizer
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
% endif
</td></tr>
<tr><td valign="top" style="font-size: 14px;">
<!-- CONTACT ORGANIZER -->
% if event_organizer:
<div>
<span style="font-weight:300;margin:10px 0px">Questions about this event?</span>
<div>Please contact the organizer:</div>
<ul>
<li>${event_organizer.name}</li>
% if event_organizer.email
<li>Mail: <a href="mailto:${event_organizer.email}" style="text-decoration:none;color:#875A7B;">${event_organizer.email}</a></li>
% endif
% if event_organizer.phone
<li>Phone: ${event_organizer.phone}</li>
% endif
</ul>
</div>
% endif
</td></tr>
<tr><td style="text-align:center;">
<!-- CONTACT ORGANIZER SEPARATION -->
% if is_online or event_address:
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
% endif
</td></tr>
<tr><td valign="top" style="font-size: 14px;">
<!-- PWA MARKGETING -->
% if is_online:
<div>
<strong>Get the best mobile experience.</strong>
<a href="/event">Install our mobile app</a>
</div>
% endif
</td></tr>
<tr><td style="text-align:center;">
<!-- PWA MARKGETING SEPARATION-->
% if is_online and event_address:
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
% endif
</td></tr>
<tr><td valign="top" style="font-size: 14px;">
<!-- GOOGLE MAPS LINK -->
% if event_address:
<table style="width:100%;"><tr><td>
<div>
<a href="https://maps.google.com/maps?q=${location}" target="new">
<img src="http://maps.googleapis.com/maps/api/staticmap?autoscale=1&amp;size=598x200&amp;maptype=roadmap&amp;format=png&amp;visual_refresh=true&amp;markers=size:mid%7Ccolor:0xa5117d%7Clabel:%7C${location}" style="vertical-align:bottom; width: 100%;" alt="Google Maps"/>
</a>
</div>
</td></tr></table>
% endif
</td></tr>
</table>
</td>
</tr>
</tbody>
</table>
</td></tr>
<!-- FOOTER BY -->
<tr><td align="center" style="min-width: 590px;">
% if object.company_id
<table width="590" border="0" cellpadding="0" cellspacing="0" style="min-width: 590px; background-color: #F1F1F1; color: #454748; padding: 8px; border-collapse:separate;">
<tr><td style="text-align: center; font-size: 14px;">
Sent by <a target="_blank" href="${object.company_id.website}" style="color: #875A7B;">${object.company_id.name}</a>
% if is_online:
<br />
Discover <a href="/event" style="text-decoration:none;color:#717188;">all our events</a>.
% endif
</td></tr>
</table>
% endif
</td></tr>
</table>
</field>
<field name="lang">${object.partner_id.lang}</field>
</record>
<record id="event_reminder" model="mail.template">
<field name="name">Event: Reminder</field>
<field name="model_id" ref="event.model_event_registration"/>
<field name="subject">${object.event_id.name}: ${object.get_date_range_str()}</field>
<field name="email_from">${(object.event_id.organizer_id.email_formatted or object.event_id.user_id.email_formatted or '') | safe}</field>
<field name="email_to">${(object.email and '"%s" &lt;%s&gt;' % (object.name, object.email) or object.partner_id.email_formatted or '') | safe}</field>
<field name="body_html" type="html">
<table border="0" cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;"><tr><td align="center">
% set date_begin = format_datetime(object.event_id.date_begin, tz='UTC', dt_format="yyyyMMdd'T'HHmmss'Z'")
% set date_end = format_datetime(object.event_id.date_end, tz='UTC', dt_format="yyyyMMdd'T'HHmmss'Z'")
% set is_online = 'is_published' in object.event_id and object.event_id.is_published
% set event_organizer = object.event_id.organizer_id
% set event_address = object.event_id.address_id
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
<tbody>
<!-- HEADER -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" cellspacing="0" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr><td valign="middle">
<span style="font-size: 10px;">Your registration</span><br/>
<span style="font-size: 20px; font-weight: bold;">
${object.name}
</span>
</td><td valign="middle" align="right">
% if is_online
<a href="${object.event_id.website_url}"
style="padding: 8px 12px; font-size: 12px; color: #FFFFFF; text-decoration: none !important; font-weight: 400; background-color: #875A7B; border: 0px solid #875A7B; border-radius:3px">
View Event
</a>
% else
<img src="${'/logo.png?company=%s' % object.company_id.id}" style="padding: 0px; margin: 0px; height: auto; width: 80px;" alt="${'%s' % object.company_id.name}"/>
% endif
</td></tr>
<tr><td colspan="2" style="text-align:center;">
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin:16px 0px 16px 0px;"/>
</td></tr>
</table>
</td>
</tr>
<!-- EVENT DESCRIPTION -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" cellspacing="0" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr><td valign="top" style="font-size: 14px;">
<div>
Hello ${object.name},<br/>
We are excited to remind you that the event
% if is_online:
<a href="${object.event_id.website_url}" style="color:#875A7B;text-decoration:none;">${object.event_id.name}</a>
% else:
<strong>${object.event_id.name}</strong>
% endif
is starting <strong>${object.get_date_range_str()}</strong>.
</div>
<div>
<br />
<strong>Add this event to your calendar</strong>
<a href="https://www.google.com/calendar/render?action=TEMPLATE&amp;text=${object.event_id.name}&amp;dates=${date_begin}/${date_end}&amp;location=${location}" style="padding:3px 5px;border:1px solid #875A7B;color:#875A7B;text-decoration:none;border-radius:3px;" target="new"><img src="/web_editor/font_to_img/61525/rgb(135,90,123)/16" style="vertical-align:middle;" height="16" alt=""/> Google</a>
<a href="/event/${slug(object.event_id)}/ics" style="padding:3px 5px;border:1px solid #875A7B;color:#875A7B;text-decoration:none;border-radius:3px;"><img src="/web_editor/font_to_img/61525/rgb(135,90,123)/16" style="vertical-align:middle;" height="16" alt=""/> iCal/Outlook</a>
<a href="https://calendar.yahoo.com/?v=60&amp;view=d&amp;type=20&amp;title=${object.event_id.name}&amp;in_loc=${location}&amp;st=${format_datetime(object.event_id.date_begin, tz='UTC', dt_format='yyyyMMdd\'T\'HHmmss')}&amp;et=${format_datetime(object.event_id.date_end, tz='UTC', dt_format='yyyyMMdd\'T\'HHmmss')}" style="padding:3px 5px;border:1px solid #875A7B;color:#875A7B;text-decoration:none;border-radius:3px;" target="new">
<img src="/web_editor/font_to_img/61525/rgb(135,90,123)/16" style="vertical-align:middle;" height="16" alt=""/> Yahoo
</a>
<br /><br />
</div>
<div>
We confirm your registration and hope to meet you there,<br/>
<span style="color: #454748;">
-- <br/>
% if event_organizer:
${event_organizer.name}
% else:
The ${object.event_id.name} Team
% endif
</span>
</div>
</td></tr>
<tr><td style="text-align:center;">
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
</td></tr>
</table>
</td>
</tr>
<!-- DETAILS -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" cellspacing="0" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr><td valign="top" style="font-size: 14px;">
<table style="width:100%;">
<tr>
<td style="vertical-align:top;">
<img src="/web_editor/font_to_img/61555/rgb(81,81,102)/34" style="padding:4px;max-width:inherit;" height="34" alt=""/>
</td>
<td style="padding: 0px 10px 0px 10px;width:50%;line-height:20px;vertical-align:top;">
<div><strong>From</strong> ${object.event_id.date_begin_located}</div>
<div><strong>To</strong> ${object.event_id.date_end_located}</div>
<div style="font-size:12px;color:#9e9e9e"><i><strong>TZ</strong> ${object.event_id.date_tz}</i></div>
</td>
<td style="vertical-align:top;">
% if event_address:
<img src="/web_editor/font_to_img/61505/rgb(81,81,102)/34" style="padding:4px;max-width:inherit;" height="34" alt=""/>
% endif
</td>
<td style="padding: 0px 10px 0px 10px;width:50%;vertical-align:top;">
% if event_address:
% set location = ''
% if object.event_id.address_id.name:
<div>${object.event_id.address_id.name}</div>
% endif
% if object.event_id.address_id.street:
<div>${object.event_id.address_id.street}</div>
% set location = object.event_id.address_id.street
% endif
% if object.event_id.address_id.street2:
<div>${object.event_id.address_id.street2}</div>
% set location = '%s, %s' % (location, object.event_id.address_id.street2)
% endif
<div>
% if object.event_id.address_id.city:
${object.event_id.address_id.city},
% set location = '%s, %s' % (location, object.event_id.address_id.city)
% endif
% if object.event_id.address_id.state_id.name:
${object.event_id.address_id.state_id.name},
% set location = '%s, %s' % (location, object.event_id.address_id.state_id.name)
% endif
% if object.event_id.address_id.zip:
${object.event_id.address_id.zip}
% set location = '%s, %s' % (location, object.event_id.address_id.zip)
% endif
</div>
% if object.event_id.address_id.country_id.name:
<div>${object.event_id.address_id.country_id.name}</div>
% set location = '%s, %s' % (location, object.event_id.address_id.country_id.name)
% endif
% endif
</td>
</tr>
</table>
</td></tr>
<tr><td style="text-align:center;">
% if event_organizer
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
% endif
</td></tr>
<tr><td valign="top" style="font-size: 14px;">
<!-- CONTACT ORGANIZER -->
% if event_organizer:
<div>
<span style="font-weight:300;margin:10px 0px">Questions about this event?</span>
<div>Please contact the organizer:</div>
<ul>
<li>${event_organizer.name}</li>
% if event_organizer.email
<li>Mail: <a href="mailto:${event_organizer.email}" style="text-decoration:none;color:#875A7B;">${event_organizer.email}</a></li>
% endif
% if event_organizer.phone
<li>Phone: ${event_organizer.phone}</li>
% endif
</ul>
</div>
% endif
</td></tr>
<tr><td style="text-align:center;">
<!-- CONTACT ORGANIZER SEPARATION -->
% if is_online or event_address:
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
% endif
</td></tr>
<tr><td valign="top" style="font-size: 14px;">
<!-- PWA MARKGETING -->
% if is_online:
<div>
<strong>Get the best mobile experience.</strong>
<a href="/event">Install our mobile app</a>
</div>
% endif
</td></tr>
<tr><td style="text-align:center;">
<!-- PWA MARKGETING SEPARATION-->
% if is_online and event_address:
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
% endif
</td></tr>
<tr><td valign="top" style="font-size: 14px;">
<!-- GOOGLE MAPS LINK -->
% if event_address:
<table style="width:100%;"><tr><td>
<div>
<a href="https://maps.google.com/maps?q=${location}" target="new">
<img src="http://maps.googleapis.com/maps/api/staticmap?autoscale=1&amp;size=598x200&amp;maptype=roadmap&amp;format=png&amp;visual_refresh=true&amp;markers=size:mid%7Ccolor:0xa5117d%7Clabel:%7C${location}" style="vertical-align:bottom; width: 100%;" alt="Google Maps"/>
</a>
</div>
</td></tr></table>
% endif
</td></tr>
</table>
</td>
</tr>
</tbody>
</table>
</td></tr>
<!-- FOOTER BY -->
<tr><td align="center" style="min-width: 590px;">
% if object.company_id
<table width="590" border="0" cellpadding="0" cellspacing="0" style="min-width: 590px; background-color: #F1F1F1; color: #454748; padding: 8px; border-collapse:separate;">
<tr><td style="text-align: center; font-size: 14px;">
Sent by <a target="_blank" href="${object.company_id.website}" style="color: #875A7B;">${object.company_id.name}</a>
% if 'website_url' in object.event_id and object.event_id.website_url:
<br />
Discover <a href="/event" style="text-decoration:none;color:#717188;">all our events</a>.
% endif
</td></tr>
</table>
% endif
</td></tr>
</table>
</field>
<field name="lang">${object.partner_id.lang}</field>
</record>
</data>
</odoo>