19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:30:27 +01:00
parent d1963a3c3a
commit 2d3ee4855a
7430 changed files with 2687981 additions and 2965473 deletions

View file

@ -1,16 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Event Categories -->
<record id="event_type_data_ticket" model="event.type">
<field name="name">Ticketing</field>
<field name="auto_confirm" eval="False"/>
</record>
<record id="event_type_data_conference" model="event.type">
<field name="name">Conference</field>
<field name="auto_confirm" eval="True"/>
</record>
<!-- Event stages -->
<record id="event_stage_new" model="event.stage">
<field name="name">New</field>
@ -19,7 +9,7 @@
</record>
<record id="event_stage_booked" model="event.stage">
<field name="name">Booked</field>
<field name="description">The place has been reserved</field>
<field name="description"></field> <!-- Necessary to set a void value to clear the previous value when module `event` is upgraded to 17.4 -->
<field name="sequence">2</field>
</record>
<record id="event_stage_announced" model="event.stage">
@ -29,17 +19,10 @@
</record>
<record id="event_stage_done" model="event.stage">
<field name="name">Ended</field>
<field name="description">Fully ended</field>
<field name="description">Finished events. Odoo will automatically move them to this stage once their end date has passed.</field>
<field name="sequence">5</field>
<field name="pipe_end" eval="True"/>
<field name="fold" eval="True"/>
</record>
<record id="event_stage_cancelled" model="event.stage">
<field name="name">Cancelled</field>
<field name="description">The event has been cancelled</field>
<field name="sequence">6</field>
<field name="pipe_end" eval="True"/>
<field name="fold" eval="True"/>
</record>
</data>
</odoo>

View file

@ -1,5 +1,14 @@
<?xml version="1.0"?>
<odoo><data>
<odoo>
<data noupdate="1">
<record id="base.user_demo" model="res.users">
<field name="group_ids" eval="[(3, ref('event.group_event_manager'))]"/>
</record>
<record id="base.default_user_group" model="res.groups">
<field name="implied_ids" eval="[(4, ref('event.group_event_manager'))]"/>
</record>
</data>
<!-- Event -->
<record id="event.event_0" model="event.event">
@ -22,14 +31,19 @@
<li>If you don't have this ticket, you will <b>not</b> be allowed entry!</li>
</ul>
</field>
<field name="question_ids" eval="[
(4, ref('event.event_question_name')),
(4, ref('event.event_question_email')),
(4, ref('event.event_question_phone'))]"/>
</record>
<record id="event_0_ticket_0" model="event.event.ticket">
<field name="name">Free</field>
<field name="description">Free entrance, no food !</field>
<field name="description">Free entrance, no food!</field>
<field name="event_id" ref="event.event_0"/>
<field name="start_sale_datetime" eval="(DateTime.today() + timedelta(days=5)).strftime('%Y-%m-%d 00:00:00')"/>
<field name="end_sale_datetime" eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d 23:00:00')"/>
<field name="seats_max">0</field>
<field name="sequence">1</field>
</record>
<record id="event_0_ticket_1" model="event.event.ticket">
<field name="name">Standard</field>
@ -38,6 +52,7 @@
<field name="start_sale_datetime" eval="(DateTime.today() + timedelta(days=5)).strftime('%Y-%m-%d 00:00:00')"/>
<field name="end_sale_datetime" eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d 23:00:00')"/>
<field name="seats_max">50</field>
<field name="sequence">2</field>
</record>
<record id="event_0_ticket_2" model="event.event.ticket">
<field name="name">VIP</field>
@ -46,6 +61,7 @@
<field name="start_sale_datetime" eval="(DateTime.today() + timedelta(days=5)).strftime('%Y-%m-%d 00:00:00')"/>
<field name="end_sale_datetime" eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d 23:00:00')"/>
<field name="seats_max">10</field>
<field name="sequence">3</field>
</record>
<record id="event.event_1" model="event.event">
@ -58,6 +74,10 @@
<field name="stage_id" ref="event_stage_booked"/>
<field name="kanban_state">blocked</field>
<field name="tag_ids" eval="[(4, ref('event.event_tag_category_1_tag_4')), (4, ref('event.event_tag_category_2_tag_3'))]"/>
<field name="question_ids" eval="[
(4, ref('event.event_question_name')),
(4, ref('event.event_question_email')),
(4, ref('event.event_question_phone'))]"/>
</record>
<record id="message_event_1_0" model="mail.message">
@ -65,7 +85,7 @@
<field name="res_id" ref="event.event_1"/>
<field name="body" type="html"><p>Hello Marc Demo,<br/>
Our flight authorizations have been revoked due to insurance issues.<br/>
Could you take care of it as soon as possible ?</p>
Could you take care of it as soon as possible?</p>
</field>
<field name="message_type">comment</field>
<field name="subtype_id" ref="mail.mt_comment"/>
@ -75,7 +95,7 @@
<field name="model">event.event</field>
<field name="res_id" ref="event.event_1"/>
<field name="parent_id" ref="message_event_1_0"/>
<field name="body" type="html"><p>Hi Mitchell Admin,<br/>I will take care of it today !</p></field>
<field name="body" type="html"><p>Hi Mitchell Admin,<br/>I will take care of it today!</p></field>
<field name="message_type">comment</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="author_id" ref="base.partner_demo"/>
@ -84,7 +104,7 @@
<field name="model">event.event</field>
<field name="res_id" ref="event.event_1"/>
<field name="parent_id" ref="message_event_1_1"/>
<field name="body" type="html"><p>Great ! This event will stay "blocked" until it is fixed.<br/>
<field name="body" type="html"><p>Great! This event will stay "blocked" until it is fixed.<br/>
Feel free to green it once everything is in order.</p>
</field>
<field name="message_type">comment</field>
@ -106,24 +126,29 @@
<field name="user_id" ref="base.user_admin"/>
<field eval="(DateTime.today()+ timedelta(days=5)).strftime('%Y-%m-%d 07:00:00')" name="date_begin"/>
<field eval="(DateTime.today()+ timedelta(days=5)).strftime('%Y-%m-%d 16:30:00')" name="date_end"/>
<field name="event_type_id" ref="event_type_data_conference"/>
<field name="address_id" ref="event.res_partner_location_2"/>
<field name="seats_limited">True</field>
<field name="seats_max">200</field>
<field name="stage_id" ref="event_stage_booked"/>
<field name="tag_ids" eval="[(4, ref('event.event_tag_category_1_tag_4')), (4, ref('event.event_tag_category_2_tag_1'))]"/>
<field name="question_ids" eval="[
(4, ref('event.event_question_name')),
(4, ref('event.event_question_email')),
(4, ref('event.event_question_phone'))]"/>
</record>
<record id="event_2_ticket_1" model="event.event.ticket">
<field name="name">Standard</field>
<field name="event_id" ref="event.event_2"/>
<field name="end_sale_datetime" eval="(DateTime.today() + timedelta(90)).strftime('%Y-%m-%d 23:00:00')"/>
<field name="seats_max">50</field>
<field name="sequence">4</field>
</record>
<record id="event_2_ticket_2" model="event.event.ticket">
<field name="name">VIP</field>
<field name="event_id" ref="event.event_2"/>
<field name="end_sale_datetime" eval="(DateTime.today() + timedelta(60)).strftime('%Y-%m-%d 23:00:00')"/>
<field name="seats_max">5</field>
<field name="sequence">5</field>
</record>
<record id="activity_event_2_0" model="mail.activity">
<field name="res_id" ref="event.event_2" />
@ -149,18 +174,24 @@
<field name="address_id" ref="event.res_partner_location_1"/>
<field name="stage_id" ref="event_stage_announced"/>
<field name="tag_ids" eval="[(4, ref('event.event_tag_category_1_tag_3')), (4, ref('event.event_tag_category_2_tag_2'))]"/>
<field name="question_ids" eval="[
(4, ref('event.event_question_name')),
(4, ref('event.event_question_email')),
(4, ref('event.event_question_phone'))]"/>
</record>
<record id="event_3_ticket_0" model="event.event.ticket">
<field name="name">Standard</field>
<field name="event_id" ref="event.event_3"/>
<field name="end_sale_datetime" eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d 23:00:00')"/>
<field name="seats_max">1200</field>
<field name="sequence">6</field>
</record>
<record id="event_3_ticket_1" model="event.event.ticket">
<field name="name">VIP</field>
<field name="event_id" ref="event.event_3"/>
<field name="end_sale_datetime" eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d 23:00:00')"/>
<field name="seats_max">50</field>
<field name="sequence">7</field>
</record>
<record id="activity_event_3_0" model="mail.activity">
<field name="res_id" ref="event.event_3" />
@ -190,12 +221,17 @@
<field name="stage_id" ref="event_stage_done"/>
<field name="kanban_state">done</field>
<field name="tag_ids" eval="[(4, ref('event.event_tag_category_1_tag_4')), (4, ref('event.event_tag_category_2_tag_1'))]"/>
<field name="question_ids" eval="[
(4, ref('event.event_question_name')),
(4, ref('event.event_question_email')),
(4, ref('event.event_question_phone'))]"/>
</record>
<record id="event_4_ticket_0" model="event.event.ticket">
<field name="name">General Admission</field>
<field name="event_id" ref="event.event_4"/>
<field name="end_sale_datetime" eval="(DateTime.today() - timedelta(30)).strftime('%Y-%m-%d 23:00:00')"/>
<field name="seats_max">4</field>
<field name="sequence">8</field>
</record>
<record id="activity_event_4_0" model="mail.activity">
<field name="res_id" ref="event.event_4" />
@ -215,6 +251,10 @@
<field name="event_type_id" ref="event_type_2"/>
<field name="address_id" ref="event.res_partner_location_1"/>
<field name="tag_ids" eval="[(6, 0, [ref('event.event_tag_category_1_tag_2'), ref('event.event_tag_category_2_tag_3')])]"/>
<field name="question_ids" eval="[
(4, ref('event.event_question_name')),
(4, ref('event.event_question_email')),
(4, ref('event.event_question_phone'))]"/>
</record>
<record id="event.event_6" model="event.event">
@ -224,6 +264,10 @@
<field eval="(DateTime.today()+ timedelta(days=30)).strftime('%Y-%m-%d 17:30:00')" name="date_end"/>
<field name="event_type_id" ref="event_type_0"/>
<field name="address_id" ref="event.res_partner_location_1"/>
<field name="question_ids" eval="[
(4, ref('event.event_question_name')),
(4, ref('event.event_question_email')),
(4, ref('event.event_question_phone'))]"/>
</record>
<record id="event.event_7" model="event.event">
@ -232,7 +276,6 @@
<field name="event_type_id" ref="event_type_0"/>
<field name="stage_id" ref="event.event_stage_booked"/>
<field name="user_id" ref="base.user_demo"/>
<field name="auto_confirm" eval="True"/>
<field name="date_begin" eval="(DateTime.now() - timedelta(days=1)).strftime('%Y-%m-%d 05:00:00')"/>
<field name="date_end" eval="(DateTime.now() + timedelta(days=1)).strftime('%Y-%m-%d 15:00:00')"/>
<field name="address_id" eval="False"/>
@ -249,17 +292,22 @@
</div>
</div>
</field>
<field name="question_ids" eval="[
(4, ref('event.event_question_name')),
(4, ref('event.event_question_email')),
(4, ref('event.event_question_phone'))]"/>
</record>
<record id="event_7_ticket_1" model="event.event.ticket">
<field name="name">Standard</field>
<field name="event_id" ref="event.event_7"/>
<field name="end_sale_datetime" eval="(DateTime.now() + timedelta(days=2)).strftime('%Y-%m-%d 15:00:00')"/>
<field name="sequence">9</field>
</record>
<record id="event_7_ticket_2" model="event.event.ticket">
<field name="name">VIP</field>
<field name="event_id" ref="event.event_7"/>
<field name="end_sale_datetime" eval="(DateTime.now() + timedelta(days=2)).strftime('%Y-%m-%d 15:00:00')"/>
<field name="seats_max">10</field>
<field name="sequence">10</field>
</record>
</data></odoo>
</odoo>

View file

@ -4,19 +4,16 @@
<!-- Event Type -->
<record id="event_type_0" model="event.type">
<field name="name">Exhibition</field>
<field name="auto_confirm" eval="False"/>
<field name="sequence">3</field>
</record>
<record id="event_type_1" model="event.type">
<field name="name">Training</field>
<field name="auto_confirm" eval="False"/>
<field name="sequence">4</field>
</record>
<record id="event_type_2" model="event.type">
<field name="name">Sport</field>
<field name="auto_confirm" eval="False"/>
<field name="default_timezone">America/Los_Angeles</field>
</record>
<record id="event_type_data_conference" model="event.type">
<field name="default_timezone">Europe/Brussels</field>
<field name="sequence">5</field>
</record>
<!-- Category and Tags -->

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="event_question_name" model="event.question">
<field name="title">Name</field>
<field name="question_type">name</field>
<field name="is_mandatory_answer">True</field>
<field name="is_default">True</field>
<field name="is_reusable">True</field>
</record>
<record id="event_question_email" model="event.question">
<field name="title">Email</field>
<field name="question_type">email</field>
<field name="is_mandatory_answer">True</field>
<field name="is_default">True</field>
<field name="is_reusable">True</field>
</record>
<record id="event_question_phone" model="event.question">
<field name="title">Phone</field>
<field name="question_type">phone</field>
<field name="is_default">True</field>
<field name="is_reusable">True</field>
</record>
</data>
</odoo>

View file

@ -17,8 +17,8 @@
<field name="create_date" eval="DateTime.now() - relativedelta(days=2)"/>
<field name="event_id" ref="event.event_0"/>
<field name="event_ticket_id" ref="event.event_0_ticket_0"/>
<field name="name">Tucker Carlson</field>
<field name="email">tuck@test.example.com</field>
<field name="name">Samar Basra</field>
<field name="email">Samar@test.example.com</field>
<field name="partner_id" eval="False"/>
</record>
@ -158,15 +158,6 @@
<field name="partner_id" ref="base.res_partner_address_25"/>
</record>
<function model="event.registration"
name="action_confirm"
context="{'install_mode' : True}"
eval="[[ref('event_registration_0_0'), ref('event_registration_0_1'),
ref('event_registration_1_0'), ref('event_registration_1_1'), ref('event_registration_1_2'),
ref('event_registration_2_0'), ref('event_registration_2_1'), ref('event_registration_2_2'), ref('event_registration_2_3'),
ref('event_registration_4_2')]]"
/>
<function model="event.registration"
name="action_set_done"
eval="[[ref('event_registration_4_0'), ref('event_registration_4_1')]]"

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="event_tour" model="web_tour.tour">
<field name="name">event_tour</field>
<field name="sequence">210</field>
<field name="rainbow_man_message">Great! Now all you have to do is wait for your attendees to show up!</field>
</record>
</odoo>

View file

@ -7,9 +7,8 @@
<field name="state">code</field>
<field name="code">model.schedule_communications(autocommit=True)</field>
<field name="user_id" ref="base.user_root"/>
<field name="interval_number">1</field>
<field name="interval_number">24</field>
<field name="interval_type">hours</field>
<field name="numbercall">-1</field>
<field name="doall" eval="False" />
<field name="nextcall" eval="(DateTime.now() + timedelta(minutes=15)).strftime('%Y-%m-%d %H:%M:%S')" />
</record>
</data></odoo>

View file

@ -6,42 +6,19 @@
<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 '') }}</field>
<field name="email_to">{{ (object.email and '"%s" &lt;%s&gt;' % (object.name, object.email) or object.partner_id.email_formatted or '') }}</field>
<field name="email_from">{{ (object.event_id.organizer_id.email_formatted or object.event_id.company_id.email_formatted or user.email_formatted or '') }}</field>
<field name="email_to" eval="False"/>
<field name="use_default_to" eval="True"/>
<field name="description">Sent automatically to someone after they registered to an event</field>
<field name="body_html" type="html">
<div>
Dear <t t-out="object.name or ''">Oscar Morgan</t>,<br/>
Thank you for your inquiry.<br/>
Here is your badge for the event <t t-out="object.event_id.name or ''">OpenWood Collection Online Reveal</t>.<br/>
If you have any questions, please let us know.
<br/><br/>
Thank you,
<t t-if="object.event_id.user_id.signature">
<br />
<t t-out="object.event_id.user_id.signature or ''">--<br/>Mitchell Admin</t>
</t>
</div></field>
<field name="report_template" ref="action_report_event_registration_foldable_badge"/>
<field name="report_name">Foldable Badge - {{ (object.event_id.name or 'Event').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 Confirmation</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 '') }}</field>
<field name="email_to">{{ (object.email and '"%s" &lt;%s&gt;' % (object.name, object.email) or object.partner_id.email_formatted or '') }}</field>
<field name="description">Sent to attendees after registering to an event</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">
<t t-set="date_begin" t-value="format_datetime(object.event_id.date_begin, tz='UTC', dt_format=&quot;yyyyMMdd'T'HHmmss'Z'&quot;)"/>
<t t-set="date_end" t-value="format_datetime(object.event_id.date_end, tz='UTC', dt_format=&quot;yyyyMMdd'T'HHmmss'Z'&quot;)"/>
<t t-set="date_begin" t-value="format_datetime(object.event_begin_date, tz='UTC', dt_format=&quot;yyyyMMdd'T'HHmmss'Z'&quot;)"/>
<t t-set="date_end" t-value="format_datetime(object.event_end_date, tz='UTC', dt_format=&quot;yyyyMMdd'T'HHmmss'Z'&quot;)"/>
<t t-set="is_online" t-value="'is_published' in object.event_id and object.event_id.is_published"/>
<t t-set="event_organizer" t-value="object.event_id.organizer_id"/>
<t t-set="event_address" t-value="object.event_id.address_id"/>
<t t-set="event_website_url" t-value="object.event_id.event_share_url"/>
<t t-set="registration_ids" t-value="object.ids if not is_sale else object._get_event_registration_ids_from_order()"/>
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
<tbody>
<!-- HEADER -->
@ -51,16 +28,15 @@
<tr><td valign="middle">
<span style="font-size: 10px;">Your registration</span><br/>
<span style="font-size: 20px; font-weight: bold;">
<t t-out="object.name or ''">Oscar Morgan</t>
<t t-set="default_name">Guest</t>
<t t-out="object.name or default_name"/>
</span>
</td><td valign="middle" align="right">
<t t-if="is_online">
<a t-att-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>
</t>
<t t-else="">
<a t-attf-href="/event/{{ object.event_id.id }}/my_tickets?badge_mode=1&amp;registration_ids={{ registration_ids }}&amp;tickets_hash={{ object.event_id._get_tickets_access_hash(registration_ids) }}"
target="_blank" t-attf-style="padding: 8px 12px; font-size: 12px; color: {{object.event_id.company_id.email_primary_color or '#FFFFFF'}}; text-decoration: none !important; font-weight: 400; background-color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}}; border-radius:3px">
Download Badges
</a>
<t t-if="not object.company_id.uses_default_logo">
<img t-att-src="'/logo.png?company=%s' % object.company_id.id" style="padding: 0px; margin: 0px; height: auto; width: 80px;" t-att-alt="'%s' % object.company_id.name"/>
</t>
</td></tr>
@ -76,26 +52,44 @@
<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 <t t-out="object.name or ''">Oscar Morgan</t>,<br/>
We are happy to confirm your registration to the event
<t t-if="is_online">
<a t-att-href="object.event_id.website_url" style="color:#875A7B;text-decoration:none;" t-out="object.event_id.name or ''">OpenWood Collection Online Reveal</a>
<t t-set="default_name">Guest</t>
Hello <t t-out="object.name or default_name"/>,<br/><br/>
Please find attached your badge for
<t t-if="event_website_url">
<a t-att-href="event_website_url" t-attf-style="font-weight:bold;color:{{object.event_id.company_id.email_secondary_color or '#875A7B'}}; text-decoration:none;"
t-out="object.event_id.name or ''">OpenWood Collection Online Reveal</a>
</t>
<t t-else="">
<strong t-out="object.event_id.name or ''">OpenWood Collection Online Reveal</strong>
<strong t-out="object.event_id.name or ''">OpenWood Collection Online Reveal</strong>.
</t>
for attendee <t t-out="object.name or ''">Oscar Morgan</t>.
</div>
<div>
<br />
<strong>Add this event to your calendar</strong>
<a t-attf-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 t-attf-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 t-attf-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>
<br/>
<table style="width: auto;">
<tr>
<td>
<strong>Add this event to your calendar</strong>
</td>
<td>
<a t-attf-href="/event/{{ slug(object.event_id) }}/ics?slot_id={{ object.event_slot_id.id }}"
style="padding-top: 10px; padding-right:8px; padding-bottom:2px; padding-left:8px; margin-left: 8px; border-radius: 3px; background-color: #E7E9ED;">
<img src="/event/static/src/img/apple-calendar-128.png" alt="iCal" title="iCal" style="height: 20px; vertical-align: baseline;"/>
</a>
</td>
<td>
<a t-attf-href="/event/{{ slug(object.event_id) }}/ics?slot_id={{ object.event_slot_id.id }}"
style="padding-top: 10px; padding-right:8px; padding-bottom:2px; padding-left:8px; margin-left: 8px; border-radius: 3px; background-color: #E7E9ED;">
<img src="/event/static/src/img/outlook-calendar-128.png" alt="Outlook" title="Outlook" style="height: 20px; vertical-align: baseline;"/>
</a>
</td>
<td>
<a t-attf-href="https://www.google.com/calendar/render?action=TEMPLATE&amp;text={{ object.event_id.name }}&amp;dates={{ date_begin }}/{{ date_end }}&amp;location={{ location }}&amp;details={{ object.event_id._get_external_description_url_encoded() }}" target="new"
style="padding-top: 10px; padding-right:8px; padding-bottom:2px; padding-left:8px; margin-left: 8px; border-radius: 3px; background-color: #E7E9ED;">
<img src="/event/static/src/img/google-calendar-128.png" alt="Google" title="Google" style="height: 20px; vertical-align: baseline;"/>
</a>
</td>
</tr>
</table>
<br/><br/>
<div>
See you soon,<br/>
<span style="color: #454748;">
@ -123,49 +117,59 @@
<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=""/>
<img src="/mail/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> <t t-out="object.event_id.date_begin_located or ''">May 4, 2021, 7:00:00 AM</t></div>
<div><strong>To</strong> <t t-out="object.event_id.date_end_located or ''">May 6, 2021, 5:00:00 PM</t></div>
<div t-if="object.event_id.is_one_day">
<t t-out="object.event_begin_date" t-options='{"widget": "datetime", "date_only": True, "tz_name": object.event_id.date_tz, "format": "long"}'>May 4, 2021</t>
<t t-out="object.event_begin_date" t-options='{"widget": "datetime", "time_only": True, "tz_name": object.event_id.date_tz, "hide_seconds": True, "format": "short"}'>7:00 AM</t>
- <t t-out="object.event_end_date" t-options='{"widget": "datetime", "time_only": True, "tz_name": object.event_id.date_tz, "hide_seconds": True, "format": "short"}'>5:00 PM</t>
</div>
<div t-else="">
<strong>From</strong>
<t t-out="object.event_begin_date" t-options='{"widget": "datetime", "show_seconds": False, "tz_name": object.event_id.date_tz, "format": "medium"}'>May 4, 2021 - 7:00 AM</t>
<br/>
<strong>To</strong>
<t t-out="object.event_end_date" t-options='{"widget": "datetime", "show_seconds": False, "tz_name": object.event_id.date_tz, "format": "medium"}'>May 6, 2021 - 5:00 PM</t>
</div>
<div style="font-size:12px;color:#9e9e9e"><i>(<t t-out="object.event_id.date_tz or ''">Europe/Brussels</t>)</i></div>
</td>
<td style="vertical-align:top;">
<t t-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=""/>
<img src="/mail/font_to_img/61505/rgb(81,81,102)/34" style="padding:4px;max-width:inherit;" height="34" alt=""/>
</t>
</td>
<td style="padding: 0px 10px 0px 10px;width:50%;vertical-align:top;">
<t t-if="event_address">
<t t-set="location" t-value="''"/>
<t t-if="object.event_id.address_id.name">
<div t-out="object.event_id.address_id.name or ''">Teksa SpA</div>
<div t-out="object.event_id.address_id.name">Teksa SpA</div>
</t>
<t t-if="object.event_id.address_id.street">
<div t-out="object.event_id.address_id.street or ''">Puerto Madero 9710</div>
<div t-out="object.event_id.address_id.street">Puerto Madero 9710</div>
<t t-set="location" t-value="object.event_id.address_id.street"/>
</t>
<t t-if="object.event_id.address_id.street2">
<div t-out="object.event_id.address_id.street2 or ''">Of A15, Santiago (RM)</div>
<t t-set="location" t-value="'%s, %s' % (location, object.event_id.address_id.street2)"/>
<div t-out="object.event_id.address_id.street2">Of A15, Santiago (RM)</div>
<t t-set="location" t-valuef="{{location}}, {{object.event_id.address_id.street2}}"/>
</t>
<div>
<t t-if="object.event_id.address_id.city">
<t t-out="object.event_id.address_id.city or ''">Pudahuel</t>,
<t t-set="location" t-value="'%s, %s' % (location, object.event_id.address_id.city)"/>
<t t-out="object.event_id.address_id.city">Pudahuel</t>,
<t t-set="location" t-valuef="{{location}}, {{object.event_id.address_id.city}}"/>
</t>
<t t-if="object.event_id.address_id.state_id.name">
<t t-out="object.event_id.address_id.state_id.name or ''">C1</t>,
<t t-set="location" t-value="'%s, %s' % (location, object.event_id.address_id.state_id.name)"/>
<t t-out="object.event_id.address_id.state_id.name">C1</t>,
<t t-set="location" t-valuef="{{location}}, {{object.event_id.address_id.state_id.name}}"/>
</t>
<t t-if="object.event_id.address_id.zip">
<t t-out="object.event_id.address_id.zip or ''">98450</t>
<t t-set="location" t-value="'%s, %s' % (location, object.event_id.address_id.zip)"/>
<t t-out="object.event_id.address_id.zip">98450</t>
<t t-set="location" t-valuef="{{location}}, {{object.event_id.address_id.zip}}"/>
</t>
</div>
<t t-if="object.event_id.address_id.country_id.name">
<div t-out="object.event_id.address_id.country_id.name or ''">Argentina</div>
<t t-set="location" t-value="'%s, %s' % (location, object.event_id.address_id.country_id.name)"/>
<div t-out="object.event_id.address_id.country_id.name">Argentina</div>
<t t-set="location" t-valuef="{{location}}, {{object.event_id.address_id.country_id.name}}"/>
</t>
</t>
</td>
@ -187,10 +191,10 @@
<ul>
<li><t t-out="event_organizer.name or ''">YourCompany</t></li>
<t t-if="event_organizer.email">
<li>Mail: <a t-attf-href="mailto:{{ event_organizer.email }}" style="text-decoration:none;color:#875A7B;" t-out="event_organizer.email or ''">info@yourcompany.com</a></li>
<li>Mail: <a t-attf-href="mailto:{{ event_organizer.email }}" t-attf-style="text-decoration:none;color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}};" t-out="event_organizer.email">info@yourcompany.com</a></li>
</t>
<t t-if="event_organizer.phone">
<li>Phone: <t t-out="event_organizer.phone or ''">+1 650-123-4567</t></li>
<li>Phone: <t t-out="event_organizer.phone">+1 650-123-4567</t></li>
</t>
</ul>
</div>
@ -224,9 +228,12 @@
<t t-if="event_address and location">
<table style="width:100%;"><tr><td>
<div>
<i class="fa fa-map-marker"/>
<img src="/web_editor/font_to_img/61505/rgb(81,81,102)/20" height="20" style="vertical-align: bottom;"/>
<a t-attf-href="https://maps.google.com/maps?q={{ location }}" target="new">
See location on Google Maps
<img t-if="event_address.static_map_url and event_address.static_map_url_is_valid"
t-att-src="event_address.static_map_url"
style="vertical-align:bottom; width: 100%;" alt="Google Maps"/>
<t t-else="">See location on Google Maps</t>
</a>
</div>
</td></tr></table>
@ -243,10 +250,10 @@
<t t-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" t-attf-href="{{ object.company_id.website }}" style="color: #875A7B;" t-out="object.company_id.name or ''">YourCompany</a>
Sent by <a target="_blank" t-attf-href="{{ object.company_id.website }}" t-attf-style="color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}};" t-out="object.company_id.name or ''">YourCompany</a>
<t t-if="is_online">
<br />
Discover <a href="/event" style="color:#875A7B;">all our events</a>.
Discover <a href="/event" t-attf-style="color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}};">all our events</a>.
</t>
</td></tr>
</table>
@ -254,26 +261,30 @@
</td></tr>
</table>
</field>
<field name="report_template" ref="action_report_event_registration_full_page_ticket"/>
<field name="report_name">Full Page Ticket - {{ (object.event_id.name or 'Event').replace('/','') }}</field>
<field name="lang">{{ object.partner_id.lang }}</field>
<field name="report_template_ids" eval="[(4, ref('event.action_report_event_registration_badge'))]"/>
<field name="lang">{{ object.event_id.lang or object.partner_id.lang }}</field>
<field name="auto_delete" eval="True"/>
</record>
<record id="event_reminder" model="mail.template">
<field name="name">Event: Reminder</field>
<record id="event_subscription" model="mail.template">
<field name="name">Event: Registration Confirmation</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 '') }}</field>
<field name="email_to">{{ (object.email and '"%s" &lt;%s&gt;' % (object.name, object.email) or object.partner_id.email_formatted or '') }}</field>
<field name="description">Sent automatically to attendees if there is a reminder defined on the event</field>
<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.company_id.email_formatted or user.email_formatted or '') }}</field>
<field name="email_to" eval="False"/>
<field name="use_default_to" eval="True"/>
<field name="description">Sent to attendees after registering to an event</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">
<t t-set="date_begin" t-value="format_datetime(object.event_id.date_begin, tz='UTC', dt_format=&quot;yyyyMMdd'T'HHmmss'Z'&quot;)"/>
<t t-set="date_end" t-value="format_datetime(object.event_id.date_end, tz='UTC', dt_format=&quot;yyyyMMdd'T'HHmmss'Z'&quot;)"/>
<t t-set="date_begin" t-value="format_datetime(object.event_begin_date, tz='UTC', dt_format=&quot;yyyyMMdd'T'HHmmss'Z'&quot;)"/>
<t t-set="date_end" t-value="format_datetime(object.event_end_date, tz='UTC', dt_format=&quot;yyyyMMdd'T'HHmmss'Z'&quot;)"/>
<t t-set="is_online" t-value="'is_published' in object.event_id and object.event_id.is_published"/>
<t t-set="is_sale" t-value="'sale_order_id' in object and object.sale_order_id"/>
<t t-set="event_organizer" t-value="object.event_id.organizer_id"/>
<t t-set="event_address" t-value="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;">
<t t-set="event_website_url" t-value="object.event_id.event_share_url"/>
<t t-set="registration_ids" t-value="object.ids if not is_sale else object._get_event_registration_ids_from_order()"/>
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
<tbody>
<!-- HEADER -->
<tr>
@ -281,16 +292,29 @@
<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;" t-out="object.name or ''">Oscar Morgan</span>
</td><td valign="middle" align="right">
<t t-if="is_online">
<a t-attf-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
<span style="font-size: 20px; font-weight: bold;">
<t t-set="default_name">Guest</t>
<t t-out="object.name or default_name"/>
</span>
<div style="margin-bottom: 5px;margin-top: 18px;">
<a t-if="object.event_id.address_id" t-attf-href="/event/{{ object.event_id.id }}/my_tickets?registration_ids={{ object.ids }}&amp;tickets_hash={{ object.event_id._get_tickets_access_hash(object.ids) }}&amp;responsive_html=1"
target="_blank" t-attf-style="padding: 8px 12px; font-size: 12px; color: {{object.event_id.company_id.email_primary_color or '#FFFFFF'}}; text-decoration: none !important; font-weight: 400; background-color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}}; border-radius:3px">
View Tickets
</a>
<a t-else="event_website_url" t-att-href="event_website_url"
target="_blank" 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 Online
</a>
</div>
</td><td valign="middle" align="right">
<t t-if="object.barcode">
<div style="margin-bottom: 5px;">
<img t-attf-src="/report/barcode/QR/{{object.barcode}}?&amp;width=100&amp;height=100&amp;quiet=0" width="100" height="100" alt="QR Code"
t-att-style="'height: 100px !important;'"/>
</div>
</t>
<t t-else="">
<img t-att-src="'/logo.png?company=%s' % object.company_id.id" style="padding: 0px; margin: 0px; height: auto; width: 80px;" t-att-alt="'%s' % object.company_id.name"/>
<t t-if="not object.company_id.uses_default_logo">
<img t-att-src="'/logo.png?company=%s' % object.company_id.id" style="padding: 0px; margin: 0px; margin-right: 10px; height: auto; width: 80px;" t-att-alt="'%s' % object.company_id.name"/>
</t>
</td></tr>
<tr><td colspan="2" style="text-align:center;">
@ -305,26 +329,330 @@
<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 <t t-out="object.name or ''">Oscar Morgan</t>,<br/>
<t t-set="default_name">Guest</t>
Hello <t t-out="object.name or default_name"/>,<br/><br/>
We are happy to confirm your registration to the event
<t t-if="event_website_url">
<a t-att-href="event_website_url" t-attf-style="color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}}; text-decoration:none;font-weight:bold;"
t-out="object.event_id.name or ''">OpenWood Collection Online Reveal</a>
</t>
<t t-else="">
<strong t-out="object.event_id.name or ''">OpenWood Collection Online Reveal</strong>
</t>.
<t t-if="object.partner_id and object.partner_id.name and object.partner_id.name != object.name">
This ticket was registered by <t t-out="object.partner_id.name"/>.
</t>
</div>
<div t-if="is_sale">
<br/>
The order for this ticket has reference <t t-out="object.sale_order_id.name"/>
and was placed on <t t-out="object.sale_order_id.date_order.date()"/>
<t t-if="object.sale_order_line_id.price_total"> for an amount of
<t t-out="object.sale_order_line_id.price_total" t-options="{'widget': 'monetary', 'display_currency': object.sale_order_line_id.currency_id}"/>
</t>.
</div>
<br/>
<table style="width: auto;">
<tr>
<td>
<strong>Add this event to your calendar</strong>
</td>
<td>
<a t-attf-href="/event/{{ slug(object.event_id) }}/ics?slot_id={{ object.event_slot_id.id }}"
style="padding-top: 10px; padding-right:8px; padding-bottom:2px; padding-left:8px; margin-left: 8px; border-radius: 3px; background-color: #E7E9ED;">
<img src="/event/static/src/img/apple-calendar-128.png" alt="iCal" title="iCal" style="height: 20px; vertical-align: baseline;"/>
</a>
</td>
<td>
<a t-attf-href="/event/{{ slug(object.event_id) }}/ics?slot_id={{ object.event_slot_id.id }}"
style="padding-top: 10px; padding-right:8px; padding-bottom:2px; padding-left:8px; margin-left: 8px; border-radius: 3px; background-color: #E7E9ED;">
<img src="/event/static/src/img/outlook-calendar-128.png" alt="Outlook" title="Outlook" style="height: 20px; vertical-align: baseline;"/>
</a>
</td>
<td>
<a t-attf-href="https://www.google.com/calendar/render?action=TEMPLATE&amp;text={{ object.event_id.name }}&amp;dates={{ date_begin }}/{{ date_end }}&amp;location={{ location }}&amp;details={{ object.event_id._get_external_description_url_encoded() }}" target="new"
style="padding-top: 10px; padding-right:8px; padding-bottom:2px; padding-left:8px; margin-left: 8px; border-radius: 3px; background-color: #E7E9ED;">
<img src="/event/static/src/img/google-calendar-128.png" alt="Google" title="Google" style="height: 20px; vertical-align: baseline;"/>
</a>
</td>
</tr>
</table>
<br/><br/>
<div>
See you soon,<br/>
<span style="color: #454748;">
-- <br/>
<t t-if="event_organizer">
<t t-out="event_organizer.name">YourCompany</t>
</t>
<t t-else="">
The <t t-out="object.event_id.name or ''">OpenWood Collection Online Reveal</t> Team
</t>
</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="/mail/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 t-if="object.event_id.is_one_day">
<t t-out="object.event_begin_date" t-options='{"widget": "datetime", "date_only": True, "tz_name": object.event_id.date_tz, "format": "long"}'>May 4, 2021</t>
<t t-out="object.event_begin_date" t-options='{"widget": "datetime", "time_only": True, "tz_name": object.event_id.date_tz, "hide_seconds": True, "format": "short"}'>7:00 AM</t>
- <t t-out="object.event_end_date" t-options='{"widget": "datetime", "time_only": True, "tz_name": object.event_id.date_tz, "hide_seconds": True, "format": "short"}'>5:00 PM</t>
</div>
<div t-else="">
<strong>From</strong>
<t t-out="object.event_begin_date" t-options='{"widget": "datetime", "show_seconds": False, "tz_name": object.event_id.date_tz, "format": "medium"}'>May 4, 2021 - 7:00 AM</t>
<br/>
<strong>To</strong>
<t t-out="object.event_end_date" t-options='{"widget": "datetime", "show_seconds": False, "tz_name": object.event_id.date_tz, "format": "medium"}'>May 6, 2021 - 5:00 PM</t>
</div>
<div style="font-size:12px;color:#9e9e9e"><i>(<t t-out="object.event_id.date_tz or ''">Europe/Brussels</t>)</i></div>
</td>
<td style="vertical-align:top;">
<t t-if="event_address">
<img src="/mail/font_to_img/61505/rgb(81,81,102)/34" style="padding:4px;max-width:inherit;" height="34" alt=""/>
</t>
</td>
<td style="padding: 0px 10px 0px 10px;width:50%;vertical-align:top;">
<t t-if="event_address">
<t t-set="location" t-value="''"/>
<t t-if="object.event_id.address_id.name">
<div t-out="object.event_id.address_id.name">Teksa SpA</div>
</t>
<t t-if="object.event_id.address_id.street">
<div t-out="object.event_id.address_id.street">Puerto Madero 9710</div>
<t t-set="location" t-value="object.event_id.address_id.street"/>
</t>
<t t-if="object.event_id.address_id.street2">
<div t-out="object.event_id.address_id.street2">Of A15, Santiago (RM)</div>
<t t-set="location" t-valuef="{{location}}, {{object.event_id.address_id.street2}}"/>
</t>
<div>
<t t-if="object.event_id.address_id.city">
<t t-out="object.event_id.address_id.city">Pudahuel</t>,
<t t-set="location" t-valuef="{{location}}, {{object.event_id.address_id.city}}"/>
</t>
<t t-if="object.event_id.address_id.state_id.name">
<t t-out="object.event_id.address_id.state_id.name">C1</t>,
<t t-set="location" t-valuef="{{location}}, {{object.event_id.address_id.state_id.name}}"/>
</t>
<t t-if="object.event_id.address_id.zip">
<t t-out="object.event_id.address_id.zip">98450</t>
<t t-set="location" t-valuef="{{location}}, {{object.event_id.address_id.zip}}"/>
</t>
</div>
<t t-if="object.event_id.address_id.country_id.name">
<div t-out="object.event_id.address_id.country_id.name">Argentina</div>
<t t-set="location" t-valuef="{{location}}, {{object.event_id.address_id.country_id.name}}"/>
</t>
</t>
</td>
</tr>
</table>
</td></tr>
<tr><td style="text-align:center;">
<t t-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;"/>
</t>
</td></tr>
<tr><td valign="top" style="font-size: 14px;">
<!-- CONTACT ORGANIZER -->
<t t-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><t t-out="event_organizer.name or ''">YourCompany</t></li>
<t t-if="event_organizer.email">
<li>Mail: <a t-attf-href="mailto:{{ event_organizer.email }}" t-attf-style="text-decoration:none; color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}};" t-out="event_organizer.email or ''">info@yourcompany.com</a></li>
</t>
<t t-if="event_organizer.phone">
<li>Phone: <t t-out="event_organizer.phone">+1 650-123-4567</t></li>
</t>
</ul>
</div>
</t>
</td></tr>
<tr><td style="text-align:center;">
<!-- CONTACT ORGANIZER SEPARATION -->
<t t-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;"/>
</t>
</td></tr>
<tr><td valign="top" style="font-size: 14px;">
<!-- PWA MARKGETING -->
<t t-if="is_online">
<div>
<strong>Get the best mobile experience.</strong>
<a href="/event">Install our mobile app</a>
</div>
</t>
</td></tr>
<tr><td style="text-align:center;">
<!-- PWA MARKGETING SEPARATION-->
<t t-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;"/>
</t>
</td></tr>
<tr><td valign="top" style="font-size: 14px;">
<!-- GOOGLE MAPS LINK -->
<t t-if="event_address and location">
<table style="width:100%;"><tr><td>
<div>
<img src="/web_editor/font_to_img/61505/rgb(81,81,102)/20" height="20" style="vertical-align: bottom;"/>
<a t-attf-href="https://maps.google.com/maps?q={{ location }}" target="new">
<img t-if="event_address.static_map_url and event_address.static_map_url_is_valid"
t-att-src="event_address.static_map_url"
style="vertical-align:bottom; width: 100%;" alt="Google Maps"/>
<t t-else="">See location on Google Maps</t>
</a>
</div>
</td></tr></table>
</t>
</td></tr>
</table>
</td>
</tr>
</tbody>
</table>
</td></tr>
<!-- FOOTER BY -->
<tr><td align="center" style="min-width: 590px;">
<t t-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" t-attf-href="{{ object.company_id.website }}" t-attf-style="color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}};" t-out="object.company_id.name or ''">YourCompany</a>
<t t-if="is_online">
<br />
Discover <a href="/event" t-attf-style="color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}};">all our events</a>.
</t>
</td></tr>
</table>
</t>
</td></tr>
</table>
</field>
<field name="report_template_ids" eval="[(4, ref('event.action_report_event_registration_full_page_ticket'))]"/>
<field name="lang">{{ object.event_id.lang or 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.event_date_range }}</field>
<field name="email_from">{{ (object.event_id.organizer_id.email_formatted or object.event_id.company_id.email_formatted or user.email_formatted or '') }}</field>
<field name="email_to" eval="False"/>
<field name="use_default_to" eval="True"/>
<field name="description">Sent automatically to attendees if there is a reminder defined on the event</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">
<t t-set="date_begin" t-value="format_datetime(object.event_begin_date, tz='UTC', dt_format=&quot;yyyyMMdd'T'HHmmss'Z'&quot;)"/>
<t t-set="date_end" t-value="format_datetime(object.event_end_date, tz='UTC', dt_format=&quot;yyyyMMdd'T'HHmmss'Z'&quot;)"/>
<t t-set="is_online" t-value="'is_published' in object.event_id and object.event_id.is_published"/>
<t t-set="is_sale" t-value="'sale_order_id' in object and object.sale_order_id"/>
<t t-set="event_organizer" t-value="object.event_id.organizer_id"/>
<t t-set="event_address" t-value="object.event_id.address_id"/>
<t t-set="event_website_url" t-value="is_online and object.event_id.website_url"/>
<t t-set="registration_ids" t-value="object.ids if not is_sale else object._get_event_registration_ids_from_order()"/>
<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/>
<t t-set="default_name">Guest</t>
<span style="font-size: 20px; font-weight: bold;" t-out="object.name or default_name"/>
<div style="margin-bottom: 5px;margin-top: 18px;">
<a t-if="object.event_id.address_id" t-attf-href="/event/{{ object.event_id.id }}/my_tickets?registration_ids={{ object.ids }}&amp;tickets_hash={{ object.event_id._get_tickets_access_hash(object.ids) }}&amp;responsive_html=1"
target="_blank" style="padding: 8px 12px; font-size: 12px; color: {{object.event_id.company_id.email_primary_color or '#FFFFFF'}}; text-decoration: none !important; font-weight: 400; background-color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}}; border-radius:3px">
View Tickets
</a>
<a t-else="event_website_url" t-att-href="event_website_url"
target="_blank" 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 Online
</a>
</div>
</td><td valign="middle" align="right">
<t t-if="object.barcode">
<div style="margin-bottom: 5px;">
<img t-attf-src="/report/barcode/QR/{{object.barcode}}?&amp;width=100&amp;height=100&amp;quiet=0" width="100" height="100" alt="QR Code"
t-att-style="'height: 100px !important;'"/>
</div>
</t>
<t t-if="not object.company_id.uses_default_logo">
<img t-att-src="'/logo.png?company=%s' % object.company_id.id" style="padding: 0px; margin: 0px; margin-right: 10px; height: auto; width: 80px;" t-att-alt="'%s' % object.company_id.name"/>
</t>
</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>
<t t-set="default_name">Guest</t>
Hello <t t-out="object.name or default_name"/>,<br/><br/>
We are excited to remind you that the event
<t t-if="is_online">
<a t-att-href="object.event_id.website_url" style="color:#875A7B;text-decoration:none;" t-out="object.event_id.name or ''">OpenWood Collection Online Reveal</a>
<t t-if="event_website_url">
<a t-att-href="event_website_url" t-attf-style="font-weight:bold;color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}}; text-decoration:none;"
t-out="object.event_id.name or ''">OpenWood Collection Online Reveal</a>
</t>
<t t-else="">
<strong t-out="object.event_id.name or ''">OpenWood Collection Online Reveal</strong>
</t>
is starting <strong t-out="object.get_date_range_str() or ''">today</strong>.
</div>
<div>
<br />
<strong>Add this event to your calendar</strong>
<a t-attf-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 t-attf-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 t-attf-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 />
is starting <strong t-out="object.event_date_range or ''">today</strong>.
</div>
<br/>
<table style="width: auto;">
<tr>
<td>
<strong>Add this event to your calendar</strong>
</td>
<td>
<a t-attf-href="/event/{{ slug(object.event_id) }}/ics?slot_id={{ object.event_slot_id.id }}"
style="padding-top: 10px; padding-right:8px; padding-bottom:2px; padding-left:8px; margin-left: 8px; border-radius: 3px; background-color: #E7E9ED;">
<img src="/event/static/src/img/apple-calendar-128.png" alt="iCal" title="iCal" style="height: 20px; vertical-align: baseline;"/>
</a>
</td>
<td>
<a t-attf-href="/event/{{ slug(object.event_id) }}/ics?slot_id={{ object.event_slot_id.id }}"
style="padding-top: 10px; padding-right:8px; padding-bottom:2px; padding-left:8px; margin-left: 8px; border-radius: 3px; background-color: #E7E9ED;">
<img src="/event/static/src/img/outlook-calendar-128.png" alt="Outlook" title="Outlook" style="height: 20px; vertical-align: baseline;"/>
</a>
</td>
<td>
<a t-attf-href="https://www.google.com/calendar/render?action=TEMPLATE&amp;text={{ object.event_id.name }}&amp;dates={{ date_begin }}/{{ date_end }}&amp;location={{ location }}&amp;details={{ object.event_id._get_external_description_url_encoded() }}" target="new"
style="padding-top: 10px; padding-right:8px; padding-bottom:2px; padding-left:8px; margin-left: 8px; border-radius: 3px; background-color: #E7E9ED;">
<img src="/event/static/src/img/google-calendar-128.png" alt="Google" title="Google" style="height: 20px; vertical-align: baseline;"/>
</a>
</td>
</tr>
</table>
<br/><br/>
<div>
We confirm your registration and hope to meet you there,<br/>
<span style="color: #454748;">
@ -352,16 +680,26 @@
<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=""/>
<img src="/mail/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> <t t-out="object.event_id.date_begin_located or ''">May 4, 2021, 7:00:00 AM</t></div>
<div><strong>To</strong> <t t-out="object.event_id.date_end_located or ''">May 6, 2021, 5:00:00 PM</t></div>
<div style="font-size:12px;color:#9e9e9e"><i><t t-out="object.event_id.date_tz or ''">Europe/Brussels</t></i></div>
<div t-if="object.event_id.is_one_day">
<t t-out="object.event_begin_date" t-options='{"widget": "datetime", "date_only": True, "tz_name": object.event_id.date_tz, "format": "long"}'>May 4, 2021</t>
<t t-out="object.event_begin_date" t-options='{"widget": "datetime", "time_only": True, "tz_name": object.event_id.date_tz, "hide_seconds": True, "format": "short"}'>7:00 AM</t>
- <t t-out="object.event_end_date" t-options='{"widget": "datetime", "time_only": True, "tz_name": object.event_id.date_tz, "hide_seconds": True, "format": "short"}'>5:00 PM</t>
</div>
<div t-else="">
<strong>From</strong>
<t t-out="object.event_begin_date" t-options='{"widget": "datetime", "show_seconds": False, "tz_name": object.event_id.date_tz, "format": "medium"}'>May 4, 2021 - 7:00 AM</t>
<br/>
<strong>To</strong>
<t t-out="object.event_end_date" t-options='{"widget": "datetime", "show_seconds": False, "tz_name": object.event_id.date_tz, "format": "medium"}'>May 6, 2021 - 5:00 PM</t>
</div>
<div style="font-size:12px;color:#9e9e9e"><i>(<t t-out="object.event_id.date_tz or ''">Europe/Brussels</t>)</i></div>
</td>
<td style="vertical-align:top;">
<t t-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=""/>
<img src="/mail/font_to_img/61505/rgb(81,81,102)/34" style="padding:4px;max-width:inherit;" height="34" alt=""/>
</t>
</td>
<td style="padding: 0px 10px 0px 10px;width:50%;vertical-align:top;">
@ -416,7 +754,7 @@
<ul>
<li t-out="event_organizer.name or ''">YourCompany</li>
<t t-if="event_organizer.email">
<li>Mail: <a t-attf-href="mailto:{{ event_organizer.email }}" style="text-decoration:none;color:#875A7B;" t-out="event_organizer.email or ''"></a></li>
<li>Mail: <a t-attf-href="mailto:{{ event_organizer.email }}" t-attf-style="text-decoration:none; color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}};" t-out="event_organizer.email or ''"></a></li>
</t>
<t t-if="event_organizer.phone">
<li>Phone: <t t-out="event_organizer.phone or ''"></t></li>
@ -444,11 +782,14 @@
<tr><td valign="top" style="font-size: 14px;">
<!-- GOOGLE MAPS LINK -->
<table t-if="event_address" style="width:100%;"><tr><td>
<table t-if="event_address and location" style="width:100%;"><tr><td>
<div>
<i class="fa fa-map-marker"/>
<img src="/web_editor/font_to_img/61505/rgb(81,81,102)/20" height="20" style="vertical-align: bottom;"/>
<a t-attf-href="https://maps.google.com/maps?q={{ location }}" target="new">
See location on Google Maps
<img t-if="event_address.static_map_url and event_address.static_map_url_is_valid"
t-attf-src="{{ event_address.static_map_url }}"
style="vertical-align:bottom; width: 100%;" alt="Google Maps"/>
<span t-else="">See location on Google Maps</span>
</a>
</div>
</td></tr></table>
@ -463,17 +804,17 @@
<tr><td align="center" style="min-width: 590px;">
<table t-if="object.company_id" 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" t-attf-href="{{ object.company_id.website }}" style="color: #875A7B;" t-out="object.company_id.name or ''">YourCompany</a>
Sent by <a target="_blank" t-attf-href="{{ object.company_id.website }}" t-attf-style="color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}};" t-out="object.company_id.name or ''">YourCompany</a>
<t t-if="'website_url' in object.event_id and object.event_id.website_url">
<br />
Discover <a href="/event" style="color:#875A7B;">all our events</a>.
Discover <a href="/event" t-attf-style="color: {{object.event_id.company_id.email_secondary_color or '#875A7B'}};">all our events</a>.
</t>
</td></tr>
</table>
</td></tr>
</table>
</field>
<field name="lang">{{ object.partner_id.lang }}</field>
<field name="lang">{{ object.event_id.lang or object.partner_id.lang }}</field>
</record>
</data>

View file

@ -41,23 +41,10 @@
<field name="city">Berlin</field>
<field name="country_id" ref="base.de"/>
<field name="phone">+49 30 12345678</field>
<field name="mobile">+49 30 87654321</field>
<field name="email">flower@example.com</field>
<field name="website">www.flower.example.com</field>
</record>
<record id="res_partner_event_2" model="res.partner">
<field name="name">OpenWood</field>
<field name="is_company" eval="True"/>
<field name="image_1920" type="base64" file="event/static/src/img/partner_open_wood.png"/>
<field name="street">Orval 1</field>
<field name="zip">6823</field>
<field name="city">Florenville</field>
<field name="country_id" ref="base.be"/>
<field name="phone">+32 987 65 43 21</field>
<field name="mobile">+32 987 65 43 21</field>
<field name="email">wow@example.com</field>
<field name="website">www.openwood.example.com</field>
</record>
<record id="res_partner_event_3" model="res.partner">
<field name="name">Tree Dealers SP</field>
<field name="is_company" eval="True"/>
@ -67,7 +54,6 @@
<field name="city">Ville de Quebec</field>
<field name="country_id" ref="base.ca"/>
<field name="phone">+1 418 123 4567</field>
<field name="mobile">+1 418 765 4321</field>
<field name="email">tree@example.com</field>
<field name="website">www.tree.example.com</field>
</record>
@ -80,7 +66,6 @@
<field name="city">Shanghai Shi</field>
<field name="country_id" ref="base.cn"/>
<field name="phone">+86 21 1234 5678</field>
<field name="mobile">+86 21 8765 4321</field>
<field name="email">ptero@example.com</field>
<field name="website">www.pterocarpus.example.com</field>
</record>

View file

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<odoo>
<record id="base.user_demo" model="res.users">
<field name="groups_id" eval="[(4, ref('event.group_event_user'))]"/>
<field name="group_ids" eval="[(4, ref('event.group_event_user'))]"/>
</record>
</odoo>