summaryrefslogtreecommitdiff
path: root/addons/event/data
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/event/data
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/event/data')
-rw-r--r--addons/event/data/email_template_data.xml479
-rw-r--r--addons/event/data/event_data.xml59
-rw-r--r--addons/event/data/event_demo.xml256
-rw-r--r--addons/event/data/event_demo_misc.xml101
-rw-r--r--addons/event/data/event_registration_demo.xml163
-rw-r--r--addons/event/data/res_partner_demo.xml88
-rw-r--r--addons/event/data/res_users_demo.xml6
7 files changed, 1152 insertions, 0 deletions
diff --git a/addons/event/data/email_template_data.xml b/addons/event/data/email_template_data.xml
new file mode 100644
index 00000000..4bc9af21
--- /dev/null
+++ b/addons/event/data/email_template_data.xml
@@ -0,0 +1,479 @@
+<?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>
diff --git a/addons/event/data/event_data.xml b/addons/event/data/event_data.xml
new file mode 100644
index 00000000..e08d0744
--- /dev/null
+++ b/addons/event/data/event_data.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data noupdate="1">
+ <!-- Event Mail Scheduler-->
+ <record model="ir.cron" forcecreate="True" id="event_mail_scheduler">
+ <field name="name">Event: Mail Scheduler</field>
+ <field name="model_id" ref="model_event_mail"/>
+ <field name="state">code</field>
+ <field name="code">model.run(True)</field>
+ <field name="user_id" ref="base.user_root"/>
+ <field name="interval_number">1</field>
+ <field name="interval_type">hours</field>
+ <field name="numbercall">-1</field>
+ <field name="doall" eval="False" />
+ </record>
+
+ <!-- Event Categories -->
+ <record id="event_type_data_ticket" model="event.type">
+ <field name="name">Ticketing</field>
+ <field name="auto_confirm" eval="False"/>
+ <field name="use_ticket" eval="True"/>
+ </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>
+ <field name="description">Freshly created</field>
+ <field name="sequence">1</field>
+ </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="sequence">2</field>
+ </record>
+ <record id="event_stage_announced" model="event.stage">
+ <field name="name">Announced</field>
+ <field name="description">The event has been publicly announced</field>
+ <field name="sequence">3</field>
+ </record>
+ <record id="event_stage_done" model="event.stage">
+ <field name="name">Ended</field>
+ <field name="description">Fully ended</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>
diff --git a/addons/event/data/event_demo.xml b/addons/event/data/event_demo.xml
new file mode 100644
index 00000000..856ed525
--- /dev/null
+++ b/addons/event/data/event_demo.xml
@@ -0,0 +1,256 @@
+<?xml version="1.0"?>
+<odoo><data>
+
+ <!-- Event -->
+ <record id="event.event_0" model="event.event">
+ <field name="name">Design Fair Los Angeles</field>
+ <field name="user_id" ref="base.user_demo"/>
+ <field name="date_begin" eval="(DateTime.now() + timedelta(days=10)).strftime('%Y-%m-%d 08:00:00')"/>
+ <field name="date_end" eval="(DateTime.now() + timedelta(days=14)).strftime('%Y-%m-%d 18:00:00')"/>
+ <field name="seats_limited">True</field>
+ <field name="seats_max">50</field>
+ <field name="address_id" ref="event.res_partner_location_2"/>
+ <field name="date_tz">US/Pacific</field>
+ <field name="event_type_id" ref="event_type_0"/>
+ <field name="stage_id" ref="event_stage_booked"/>
+ <field name="tag_ids" eval="[(4, ref('event.event_tag_category_1_tag_1')), (4, ref('event.event_tag_category_2_tag_1'))]"/>
+ </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="event_id" ref="event.event_0"/>
+ <field name="start_sale_date" eval="(DateTime.today() + timedelta(days=5)).strftime('%Y-%m-%d')"/>
+ <field name="end_sale_date" eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d')"/>
+ <field name="seats_max">0</field>
+ </record>
+ <record id="event_0_ticket_1" model="event.event.ticket">
+ <field name="name">Standard</field>
+ <field name="description">For only 10, you gain access to catering. Yum yum.</field>
+ <field name="event_id" ref="event.event_0"/>
+ <field name="start_sale_date" eval="(DateTime.today() + timedelta(days=5)).strftime('%Y-%m-%d')"/>
+ <field name="end_sale_date" eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d')"/>
+ <field name="seats_max">50</field>
+ </record>
+ <record id="event_0_ticket_2" model="event.event.ticket">
+ <field name="name">VIP</field>
+ <field name="description">You are truly among the best.</field>
+ <field name="event_id" ref="event.event_0"/>
+ <field name="start_sale_date" eval="(DateTime.today() + timedelta(days=5)).strftime('%Y-%m-%d')"/>
+ <field name="end_sale_date" eval="(DateTime.today() + timedelta(days=10)).strftime('%Y-%m-%d')"/>
+ <field name="seats_max">10</field>
+ </record>
+
+ <record id="event.event_1" model="event.event">
+ <field name="name">Great Reno Ballon Race</field>
+ <field name="user_id" ref="base.user_admin"/>
+ <field eval="(DateTime.today()+ timedelta(days=100)).strftime('%Y-%m-%d 20:15:00')" name="date_begin"/>
+ <field eval="(DateTime.today()+ timedelta(days=101)).strftime('%Y-%m-%d 00:30:00')" name="date_end"/>
+ <field name="event_type_id" ref="event_type_2"/>
+ <field name="address_id" ref="event.res_partner_location_0"/>
+ <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'))]"/>
+ </record>
+
+ <record id="message_event_1_0" model="mail.message">
+ <field name="model">event.event</field>
+ <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>
+ </field>
+ <field name="message_type">comment</field>
+ <field name="subtype_id" ref="mail.mt_comment"/>
+ <field name="author_id" ref="base.partner_admin"/>
+ </record>
+ <record id="message_event_1_1" model="mail.message">
+ <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="message_type">comment</field>
+ <field name="subtype_id" ref="mail.mt_comment"/>
+ <field name="author_id" ref="base.partner_demo"/>
+ </record>
+ <record id="message_event_1_2" model="mail.message">
+ <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/>
+ Feel free to green it once everything is in order.</p>
+ </field>
+ <field name="message_type">comment</field>
+ <field name="subtype_id" ref="mail.mt_comment"/>
+ <field name="author_id" ref="base.partner_admin"/>
+ </record>
+ <record id="activity_event_1_0" model="mail.activity">
+ <field name="res_id" ref="event.event_1" />
+ <field name="res_model_id" ref="event.model_event_event"/>
+ <field name="activity_type_id" ref="mail.mail_activity_data_call"/>
+ <field name="summary">Call the local state house.</field>
+ <field name="date_deadline" eval="DateTime.today()"/>
+ <field name="create_uid" ref="base.user_demo"/>
+ <field name="user_id" ref="base.user_demo"/>
+ </record>
+
+ <record id="event_2" model="event.event">
+ <field name="name">Conference for Architects</field>
+ <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'))]"/>
+ </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_date" eval="(DateTime.today() + timedelta(90)).strftime('%Y-%m-%d')"/>
+ <field name="seats_max">50</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_date" eval="(DateTime.today() + timedelta(60)).strftime('%Y-%m-%d')"/>
+ <field name="seats_max">5</field>
+ </record>
+ <record id="activity_event_2_0" model="mail.activity">
+ <field name="res_id" ref="event.event_2" />
+ <field name="res_model_id" ref="event.model_event_event"/>
+ <field name="activity_type_id" ref="mail.mail_activity_data_call"/>
+ <field name="summary">Call the caterer.</field>
+ <field name="date_deadline" eval="(DateTime.today() + relativedelta(days=3)).strftime('%Y-%m-%d %H:%M')"/>
+ <field name="create_uid" ref="base.user_admin"/>
+ <field name="user_id" ref="base.user_admin"/>
+ </record>
+ <record id="event_2_mail_0" model="event.mail">
+ <field name="event_id" ref="event.event_2"/>
+ <field name="template_id" ref="event.event_subscription"/>
+ </record>
+
+ <record id="event.event_3" model="event.event">
+ <field name="name">Live Music Festival</field>
+ <field name="user_id" ref="base.user_demo"/>
+ <field name="date_begin" eval="(DateTime.today()+ timedelta(days=130)).strftime('%Y-%m-%d 20:15:00')"/>
+ <field name="date_end" eval="(DateTime.today()+ timedelta(days=133)).strftime('%Y-%m-%d 00:30:00')"/>
+ <field name="event_type_id" ref="event_type_0"/>
+ <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'))]"/>
+ </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_date" eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d')"/>
+ <field name="seats_max">1200</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_date" eval="(DateTime.today() + timedelta(days=20)).strftime('%Y-%m-%d')"/>
+ <field name="seats_max">50</field>
+ </record>
+ <record id="activity_event_3_0" model="mail.activity">
+ <field name="res_id" ref="event.event_3" />
+ <field name="res_model_id" ref="event.model_event_event"/>
+ <field name="activity_type_id" ref="mail.mail_activity_data_call"/>
+ <field name="summary">Prepare interview with local media.</field>
+ <field name="date_deadline" eval="DateTime.today().strftime('%Y-%m-%d %H:%M')"/>
+ <field name="create_uid" ref="base.user_admin"/>
+ <field name="user_id" ref="base.user_admin"/>
+ </record>
+ <record id="event_3_mail_0" model="event.mail">
+ <field name="event_id" ref="event.event_3"/>
+ <field name="template_id" ref="event.event_subscription"/>
+ </record>
+
+ <!-- EVENT_4: very limited, intended to test seats reservation -->
+ <record id="event.event_4" model="event.event">
+ <field name="name">Business workshops</field>
+ <field name="user_id" ref="base.user_admin"/>
+ <field name="date_begin" eval="(DateTime.today() - timedelta(days=5)).strftime('%Y-%m-%d 18:00:00')"/>
+ <field name="date_end" eval="(DateTime.today() - timedelta(days=5)).strftime('%Y-%m-%d 22:30:00')"/>
+ <field name="seats_limited">True</field>
+ <field name="seats_max">4</field>
+ <field name="address_id" ref="event.res_partner_location_2"/>
+ <field name="date_tz">US/Pacific</field>
+ <field name="event_type_id" ref="event_type_1"/>
+ <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'))]"/>
+ </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_date" eval="(DateTime.today() - timedelta(30)).strftime('%Y-%m-%d')"/>
+ <field name="seats_max">4</field>
+ </record>
+ <record id="activity_event_4_0" model="mail.activity">
+ <field name="res_id" ref="event.event_4" />
+ <field name="res_model_id" ref="event.model_event_event"/>
+ <field name="activity_type_id" ref="mail.mail_activity_data_call"/>
+ <field name="summary">Prepare after movie.</field>
+ <field name="date_deadline" eval="(DateTime.today() + relativedelta(days=3)).strftime('%Y-%m-%d %H:%M')"/>
+ <field name="create_uid" ref="base.user_admin"/>
+ <field name="user_id" ref="base.user_admin"/>
+ </record>
+
+ <record id="event.event_5" model="event.event">
+ <field name="name">Hockey Tournament</field>
+ <field name="user_id" ref="base.user_demo"/>
+ <field eval="(DateTime.today()+ timedelta(days=370)).strftime('%Y-%m-%d 09:00:00')" name="date_begin"/>
+ <field eval="(DateTime.today()+ timedelta(days=371)).strftime('%Y-%m-%d 17:00:00')" name="date_end"/>
+ <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')])]"/>
+ </record>
+
+ <record id="event.event_6" model="event.event">
+ <field name="name">An unpublished event</field>
+ <field name="user_id" ref="base.user_admin"/>
+ <field eval="(DateTime.today()+ timedelta(days=30)).strftime('%Y-%m-%d 09:30:00')" name="date_begin"/>
+ <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"/>
+ </record>
+
+ <record id="event.event_7" model="event.event">
+ <field name="name">OpenWood Collection Online Reveal</field>
+ <field name="date_tz">Europe/Brussels</field>
+ <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"/>
+ <field name="tag_ids" eval="[(4, ref('event.event_tag_category_3_tag_1'))]"/>
+ <field name="description" type="html">
+<div class="oe_structure">
+ <h5>The finest OpenWood furnitures are coming to your house in a brand new collection</h5>
+ <p>And this time, we go fully ONLINE! Meet us in our live streams from the comfort of your house.<br/>
+ Special discount codes will be handed out during the various streams, make sure to be there on time.</p>
+ <p class="mb-3">For any additional information, please contact us at <a href="mailto:events@idea.com">events@idea.com</a>.</p>
+ <div class="bg-light rounded-right border-left border-secondary p-3 mb-5" style="border-left-width: 3px !important;">
+ <p class="mb-1">This event is fully online and FREE, if you have paid for tickets, you should get a refund.<br/>
+ It will require a good Internet connection to get the best video quality.</p>
+ </div>
+</div>
+ </field>
+ </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_date" eval="(DateTime.now() + timedelta(days=2)).strftime('%Y-%m-%d 15:00:00')"/>
+ </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_date" eval="(DateTime.now() + timedelta(days=2)).strftime('%Y-%m-%d 15:00:00')"/>
+ <field name="seats_max">10</field>
+ </record>
+
+</data></odoo>
diff --git a/addons/event/data/event_demo_misc.xml b/addons/event/data/event_demo_misc.xml
new file mode 100644
index 00000000..a87cce5d
--- /dev/null
+++ b/addons/event/data/event_demo_misc.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+<odoo><data>
+
+ <!-- Event Type -->
+ <record id="event_type_0" model="event.type">
+ <field name="name">Exhibition</field>
+ <field name="auto_confirm" eval="False"/>
+ <field name="use_mail_schedule" eval="False"/>
+ </record>
+ <record id="event_type_1" model="event.type">
+ <field name="name">Training</field>
+ <field name="auto_confirm" eval="False"/>
+ <field name="use_mail_schedule" eval="True"/>
+ </record>
+ <record id="event_type_2" model="event.type">
+ <field name="name">Sport</field>
+ <field name="auto_confirm" eval="False"/>
+ <field name="use_mail_schedule" eval="False"/>
+ <field name="use_timezone" eval="True"/>
+ <field name="default_timezone">US/Pacific</field>
+ </record>
+ <record id="event_type_data_conference" model="event.type">
+ <field name="use_timezone" eval="True"/>
+ <field name="default_timezone">Europe/Brussels</field>
+ </record>
+
+ <!-- Category and Tags -->
+ <record id="event_tag_category_1" model="event.tag.category">
+ <field name="name">Age</field>
+ <field name="sequence">3</field>
+ </record>
+ <record id="event_tag_category_2" model="event.tag.category">
+ <field name="name">Activity</field>
+ <field name="sequence">1</field>
+ </record>
+ <record id="event_tag_category_3" model="event.tag.category">
+ <field name="name">Type</field>
+ <field name="sequence">2</field>
+ </record>
+
+ <record id="event_tag_category_1_tag_1" model="event.tag">
+ <field name="name">5-10</field>
+ <field name="sequence">1</field>
+ <field name="category_id" ref="event_tag_category_1"/>
+ <field name="color">1</field>
+ </record>
+
+ <record id="event_tag_category_1_tag_2" model="event.tag">
+ <field name="name">10-14</field>
+ <field name="sequence">2</field>
+ <field name="category_id" ref="event_tag_category_1"/>
+ <field name="color">2</field>
+ </record>
+
+ <record id="event_tag_category_1_tag_3" model="event.tag">
+ <field name="name">15-18</field>
+ <field name="sequence">3</field>
+ <field name="category_id" ref="event_tag_category_1"/>
+ <field name="color">3</field>
+ </record>
+
+ <record id="event_tag_category_1_tag_4" model="event.tag">
+ <field name="name">18+</field>
+ <field name="sequence">4</field>
+ <field name="category_id" ref="event_tag_category_1"/>
+ <field name="color">4</field>
+ </record>
+
+ <record id="event_tag_category_2_tag_1" model="event.tag">
+ <field name="name">Culture</field>
+ <field name="sequence">10</field>
+ <field name="category_id" ref="event_tag_category_2"/>
+ <field name="color">5</field>
+ </record>
+ <record id="event_tag_category_2_tag_2" model="event.tag">
+ <field name="name">Music</field>
+ <field name="sequence">11</field>
+ <field name="category_id" ref="event_tag_category_2"/>
+ <field name="color">6</field>
+ </record>
+ <record id="event_tag_category_2_tag_3" model="event.tag">
+ <field name="name">Sport</field>
+ <field name="sequence">12</field>
+ <field name="category_id" ref="event_tag_category_2"/>
+ <field name="color">7</field>
+ </record>
+
+ <record id="event_tag_category_3_tag_1" model="event.tag">
+ <field name="name">Online</field>
+ <field name="sequence">20</field>
+ <field name="category_id" ref="event_tag_category_3"/>
+ <field name="color">8</field>
+ </record>
+ <record id="event_tag_category_3_tag_2" model="event.tag">
+ <field name="name">Conference</field>
+ <field name="sequence">21</field>
+ <field name="category_id" ref="event_tag_category_3"/>
+ <field name="color">9</field>
+ </record>
+
+</data></odoo>
diff --git a/addons/event/data/event_registration_demo.xml b/addons/event/data/event_registration_demo.xml
new file mode 100644
index 00000000..632702c1
--- /dev/null
+++ b/addons/event/data/event_registration_demo.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0"?>
+<odoo><data>
+ <!-- Design fair -->
+ <record id="event_registration_0_0" model="event.registration">
+ <field name="event_id" ref="event.event_0"/>
+ <field name="event_ticket_id" ref="event.event_0_ticket_1"/>
+ <field name="partner_id" ref="base.res_partner_address_1"/>
+ </record>
+ <record id="event_registration_0_1" model="event.registration">
+ <field name="event_id" ref="event.event_0"/>
+ <field name="event_ticket_id" ref="event.event_0_ticket_1"/>
+ <field name="partner_id" ref="base.res_partner_address_2"/>
+ </record>
+ <record id="event_registration_0_2" model="event.registration">
+ <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="partner_id" eval="False"/>
+ </record>
+
+ <!-- Reno Ballon Race -->
+ <record id="event_registration_1_0" model="event.registration">
+ <field name="event_id" ref="event.event_1"/>
+ <field name="partner_id" ref="base.res_partner_address_1"/>
+ </record>
+ <record id="event_registration_1_1" model="event.registration">
+ <field name="event_id" ref="event.event_1"/>
+ <field name="partner_id" ref="base.res_partner_address_2"/>
+ </record>
+ <record id="event_registration_1_2" model="event.registration">
+ <field name="event_id" ref="event.event_1"/>
+ <field name="name">Piers Morgan</field>
+ <field name="email">piersm@test.example.com</field>
+ <field name="partner_id" eval="False"/>
+ </record>
+ <record id="event_registration_1_3" model="event.registration">
+ <field name="event_id" ref="event.event_1"/>
+ <field name="partner_id" ref="base.res_partner_address_3"/>
+ </record>
+ <record id="event_registration_1_4" model="event.registration">
+ <field name="event_id" ref="event.event_1"/>
+ <field name="partner_id" ref="base.res_partner_address_4"/>
+ </record>
+ <record id="event_registration_1_5" model="event.registration">
+ <field name="event_id" ref="event.event_1"/>
+ <field name="name">Nigel Woodfire</field>
+ <field name="email">nigelw@test.example.com</field>
+ <field name="partner_id" eval="False"/>
+ </record>
+
+ <!-- Conference for architects -->
+ <record id="event_registration_2_0" model="event.registration">
+ <field name="event_id" ref="event.event_2"/>
+ <field name="event_ticket_id" ref="event.event_2_ticket_1"/>
+ <field name="partner_id" ref="base.res_partner_address_1"/>
+ </record>
+ <record id="event_registration_2_1" model="event.registration">
+ <field name="event_id" ref="event.event_2"/>
+ <field name="event_ticket_id" ref="event.event_2_ticket_1"/>
+ <field name="partner_id" ref="base.res_partner_address_2"/>
+ </record>
+ <record id="event_registration_2_2" model="event.registration">
+ <field name="event_id" ref="event.event_2"/>
+ <field name="event_ticket_id" ref="event.event_2_ticket_2"/>
+ <field name="name">Piers Morgan</field>
+ <field name="email">piersm@test.example.com</field>
+ <field name="partner_id" eval="False"/>
+ </record>
+ <record id="event_registration_2_3" model="event.registration">
+ <field name="event_id" ref="event.event_2"/>
+ <field name="event_ticket_id" ref="event.event_2_ticket_1"/>
+ <field name="partner_id" ref="base.res_partner_address_3"/>
+ </record>
+ <record id="event_registration_2_4" model="event.registration">
+ <field name="event_id" ref="event.event_2"/>
+ <field name="event_ticket_id" ref="event.event_2_ticket_1"/>
+ <field name="partner_id" ref="base.res_partner_address_4"/>
+ </record>
+
+ <!-- Live Music Festival -->
+ <record id="event_registration_3_0" model="event.registration">
+ <field name="event_id" ref="event.event_3"/>
+ <field name="partner_id" ref="base.res_partner_address_1"/>
+ </record>
+ <record id="event_registration_3_1" model="event.registration">
+ <field name="event_id" ref="event.event_3"/>
+ <field name="partner_id" ref="base.res_partner_address_2"/>
+ </record>
+ <record id="event_registration_3_2" model="event.registration">
+ <field name="event_id" ref="event.event_3"/>
+ <field name="name">Piers Morgan</field>
+ <field name="email">piersm@test.example.com</field>
+ <field name="partner_id" eval="False"/>
+ </record>
+ <record id="event_registration_3_3" model="event.registration">
+ <field name="event_id" ref="event.event_3"/>
+ <field name="partner_id" ref="base.res_partner_address_3"/>
+ </record>
+ <record id="event_registration_3_4" model="event.registration">
+ <field name="event_id" ref="event.event_3"/>
+ <field name="partner_id" ref="base.res_partner_address_4"/>
+ </record>
+ <record id="event_registration_3_5" model="event.registration">
+ <field name="event_id" ref="event.event_3"/>
+ <field name="name">Nigel Woodfire</field>
+ <field name="email">nigelw@test.example.com</field>
+ <field name="partner_id" eval="False"/>
+ </record>
+
+ <!-- Business Workshop -->
+ <record id="event_registration_4_0" model="event.registration">
+ <field name="event_id" ref="event.event_4"/>
+ <field name="event_ticket_id" ref="event.event_4_ticket_0"/>
+ <field name="partner_id" ref="base.res_partner_address_7"/>
+ </record>
+ <record id="event_registration_4_1" model="event.registration">
+ <field name="event_id" ref="event.event_4"/>
+ <field name="event_ticket_id" ref="event.event_4_ticket_0"/>
+ <field name="partner_id" ref="base.res_partner_address_13"/>
+ </record>
+ <record id="event_registration_4_2" model="event.registration">
+ <field name="event_id" ref="event.event_4"/>
+ <field name="event_ticket_id" ref="event.event_4_ticket_0"/>
+ <field name="partner_id" ref="base.res_partner_address_14"/>
+ </record>
+
+ <!-- OpenWood Collection Online Reveal: Gemini (all) -->
+ <record id="event_registration_7_0" model="event.registration">
+ <field name="event_id" ref="event.event_7"/>
+ <field name="event_ticket_id" ref="event.event_7_ticket_1"/>
+ <field name="partner_id" ref="base.res_partner_address_5"/>
+ </record>
+ <record id="event_registration_7_1" model="event.registration">
+ <field name="event_id" ref="event.event_7"/>
+ <field name="event_ticket_id" ref="event.event_7_ticket_1"/>
+ <field name="partner_id" ref="base.res_partner_address_10"/>
+ </record>
+ <record id="event_registration_7_2" model="event.registration">
+ <field name="event_id" ref="event.event_7"/>
+ <field name="event_ticket_id" ref="event.event_7_ticket_2"/>
+ <field name="partner_id" ref="base.res_partner_address_11"/>
+ </record>
+ <record id="event_registration_7_3" model="event.registration">
+ <field name="event_id" ref="event.event_7"/>
+ <field name="event_ticket_id" ref="event.event_7_ticket_2"/>
+ <field name="partner_id" ref="base.res_partner_address_25"/>
+ </record>
+
+ <function model="event.registration"
+ name="action_confirm"
+ 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')]]"
+ />
+
+</data></odoo> \ No newline at end of file
diff --git a/addons/event/data/res_partner_demo.xml b/addons/event/data/res_partner_demo.xml
new file mode 100644
index 00000000..50ff256c
--- /dev/null
+++ b/addons/event/data/res_partner_demo.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<odoo><data>
+
+ <!-- LOCATIONS -->
+ <record id="res_partner_location_0" model="res.partner">
+ <field name="name">Reno Airfield</field>
+ <field name="is_company">1</field>
+ <field name="street">1235 Columbia Hill Rd</field>
+ <field name="city">Reno</field>
+ <field name="state_id" ref='base.state_us_23'/>
+ <field name="zip">89508</field>
+ <field name="country_id" ref="base.us"/>
+ </record>
+
+ <record id="res_partner_location_1" model="res.partner">
+ <field name="name">Wembley Stadium</field>
+ <field name="is_company">1</field>
+ <field name="street">Wembley HA9 0WS</field>
+ <field name="city">London</field>
+ <field name="state_id" ref='base.state_uk117'/>
+ <field name="country_id" ref="base.uk"/>
+ </record>
+
+ <record id="res_partner_location_2" model="res.partner">
+ <field name="name">Los Angeles Convention Center</field>
+ <field name="is_company">1</field>
+ <field name="street">1201 S Figueroa St</field>
+ <field name="city">Los Angeles</field>
+ <field name="state_id" ref='base.state_us_5'/>
+ <field name="zip">90015</field>
+ <field name="country_id" ref="base.us"/>
+ </record>
+
+ <!-- SPONSORS / OTHER COUNTRIES -->
+ <record id="res_partner_event_1" model="res.partner">
+ <field name="name">Bloem GmbH</field>
+ <field name="is_company" eval="True"/>
+ <field name="image_1920" type="base64" file="event/static/src/img/partner_bloem.png"/>
+ <field name="street">Behrenstraße 55</field>
+ <field name="zip">10117</field>
+ <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"/>
+ <field name="image_1920" type="base64" file="event/static/src/img/partner_tree_dealers.png"/>
+ <field name="street">Place d'Youville, 995</field>
+ <field name="zip">QC G1R 3P1</field>
+ <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>
+ <record id="res_partner_event_4" model="res.partner">
+ <field name="name">Shangai Pterocarpus Furniture Co., Ltd.</field>
+ <field name="is_company" eval="True"/>
+ <field name="image_1920" type="base64" file="event/static/src/img/partner_pterocarpus.png"/>
+ <field name="street">68 Taicang Rd, Shi Men Er Lu Jie Dao, Huangpu Qu</field>
+ <field name="zip">200000</field>
+ <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>
+
+</data></odoo>
diff --git a/addons/event/data/res_users_demo.xml b/addons/event/data/res_users_demo.xml
new file mode 100644
index 00000000..04cd8668
--- /dev/null
+++ b/addons/event/data/res_users_demo.xml
@@ -0,0 +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'))]"/>
+ </record>
+ </odoo> \ No newline at end of file