diff options
| author | Thibault Delavallée <tde@odoo.com> | 2020-08-19 09:55:26 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2020-08-21 17:30:13 +0000 |
| commit | b0845c0f2b48d6c7029a34ae50fc95876630e7ed (patch) | |
| tree | cab4c50786ae087fdf6dec70b0c12ddc0c39c62d /addons/website_event/views | |
| parent | d697966585e9686f4bfce8049c1d0a21abe8a279 (diff) | |
[REM] website_event_online: merge into website_event
PURPOSE
Clean organization and models linked to Event Online feature introduced in
semi stable saas-13.3 at odoo/odoo@981f95bbf46658eda9f2d33751b9310cc67d86aa and odoo/enterprise@14722028ae0773c3710ea48ce48ff44703e83b5a
Also clean website event menu not being available in website event but only
in website event track, which implies some extra-code to manage it.
In short: merge website_event_online in website_event, website_event_track
_(online/session) in website_event_track.
RATIONALE
_online modules have been added to extend content of website_event and
website_event_track without having any impact on those module. First step
of cleaning is to move this content directly in base module.
track_session module is mainly a rewrite of track module. Second step of
cleaning is to move its content directly in website_event_track.
SPECIFICATIONS
Move remaining content of website event online to website event.
Update dependencies accordingly.
LINKS
Task ID-2319779
COM odoo/odoo#56067
ENT odoo/enterprise#12520
UPG odoo/upgrade#1654
Diffstat (limited to 'addons/website_event/views')
8 files changed, 145 insertions, 4 deletions
diff --git a/addons/website_event/views/assets.xml b/addons/website_event/views/assets.xml index e19a829e3ff..cbf9e23a6bf 100644 --- a/addons/website_event/views/assets.xml +++ b/addons/website_event/views/assets.xml @@ -10,8 +10,11 @@ <template id="assets_frontend" inherit_id="website.assets_frontend" name="Event Assets Frontend"> <xpath expr="//link[last()]" position="after"> <link rel="stylesheet" type="text/scss" href="/website_event/static/src/scss/website_event.scss"/> + <link rel="stylesheet" type="text/scss" href="/website_event/static/src/scss/website_event_templates.scss"/> </xpath> <xpath expr="//script[last()]" position="after"> + <script type="text/javascript" src="/website_event/static/src/js/display_timer_widget.js"></script> + <script type="text/javascript" src="/website_event/static/src/js/register_toaster_widget.js"></script> <script type="text/javascript" src="/website_event/static/src/js/website_geolocation.js"></script> <script type="text/javascript" src="/website_event/static/src/js/website_event.js"></script> <script type="text/javascript" src="/website_event/static/src/js/website_event_ticket_details.js"></script> diff --git a/addons/website_event/views/event_event_views.xml b/addons/website_event/views/event_event_views.xml index 6b03966b5aa..f364ac129c6 100644 --- a/addons/website_event/views/event_event_views.xml +++ b/addons/website_event/views/event_event_views.xml @@ -23,6 +23,8 @@ <div name="event_menu_configuration" groups="base.group_no_one"> <label for="website_menu" string="Website Submenu"/> <field name="website_menu"/> + <label for="menu_register_cta" string="Register Button"/> + <field name="menu_register_cta"/> <label for="community_menu" string="Community"/> <field name="community_menu"/> </div> diff --git a/addons/website_event/views/event_registration_views.xml b/addons/website_event/views/event_registration_views.xml new file mode 100644 index 00000000000..27e490d6a88 --- /dev/null +++ b/addons/website_event/views/event_registration_views.xml @@ -0,0 +1,36 @@ +<?xml version="1.0"?> +<odoo><data> + <record id="event_registration_action_from_visitor" model="ir.actions.act_window"> + <field name="name">Registrations</field> + <field name="res_model">event.registration</field> + <field name="view_mode">kanban,tree,form</field> + <field name="domain">[('visitor_id', 'in', [active_id])]</field> + <field name="help" type="html"> + <p class="o_view_nocontent_empty_folder"> + No registration linked to this visitor + </p> + </field> + </record> + + <record id="event_registration_view_form" model="ir.ui.view"> + <field name="name">event.registration.view.form.inherit.online</field> + <field name="model">event.registration</field> + <field name="inherit_id" ref="event.view_event_registration_form"/> + <field name="arch" type="xml"> + <xpath expr="//field[@name='partner_id']" position="after"> + <field name="visitor_id" groups="base.group_no_one"/> + </xpath> + </field> + </record> + + <record id="event_registration_view_tree" model="ir.ui.view"> + <field name="name">event.registration.view.tree.inherit.online</field> + <field name="model">event.registration</field> + <field name="inherit_id" ref="event.view_event_registration_tree"/> + <field name="arch" type="xml"> + <xpath expr="//field[@name='partner_id']" position="after"> + <field name="visitor_id" optional="hide" groups="base.group_no_one"/> + </xpath> + </field> + </record> +</data></odoo> diff --git a/addons/website_event/views/event_templates_list.xml b/addons/website_event/views/event_templates_list.xml index 89b8c1cd62f..4ad91388abe 100644 --- a/addons/website_event/views/event_templates_list.xml +++ b/addons/website_event/views/event_templates_list.xml @@ -97,15 +97,16 @@ <template id="event_category_tag" inherit_id="website_event.index_topbar" active="False" customize_show="True" name="Filter by Tags"> <xpath expr="//ul[hasclass('o_wevent_index_topbar_filters')]" position="inside"> <t t-foreach="categories" t-as="category"> - <li t-if="category.tag_ids" class="nav-item dropdown mr-2 my-1"> + <li t-if="category.tag_ids and any(tag.color for tag in category.tag_ids)" class="nav-item dropdown mr-2 my-1"> <a href="#" role="button" class="btn dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-folder-open"/> <t t-esc="category.name"/> </a> <div class="dropdown-menu"> <t t-foreach="category.tag_ids" t-as="tag"> - <a t-att-href="'/event?%s' % keep_query('*', tags=str((search_tags - tag).ids if tag in search_tags else (tag | search_tags).ids))" - t-attf-class="dropdown-item d-flex align-items-center justify-content-between #{'active' if tag in search_tags else ''}"> + <a t-if="tag.color" + t-att-href="'/event?%s' % keep_query('*', tags=str((search_tags - tag).ids if tag in search_tags else (tag | search_tags).ids))" + t-attf-class="dropdown-item d-flex align-items-center justify-content-between #{'active' if tag in search_tags else ''}"> <t t-esc="tag.name"/> </a> </t> @@ -205,7 +206,8 @@ <div itemprop="location" t-field="event.address_id" t-options="{'widget': 'contact', 'fields': ['city'], 'no_marker': 'true'}"/> <div class="mt8 d-flex align-items-center"> <t t-foreach="event.tag_ids" t-as="tag"> - <span t-attf-class="badge mr8 #{'badge-primary' if tag in search_tags else 'badge-light'}"> + <span t-if="tag.color" + t-attf-class="badge mr8 #{'badge-primary' if tag in search_tags else 'badge-light'} #{'o_tag_color_%s' % tag.color if tag.color else ''}"> <span t-esc="tag.name"/> </span> </t> diff --git a/addons/website_event/views/event_templates_page.xml b/addons/website_event/views/event_templates_page.xml index 5a9b449b634..cc82788c948 100644 --- a/addons/website_event/views/event_templates_page.xml +++ b/addons/website_event/views/event_templates_page.xml @@ -52,6 +52,12 @@ </t> </t> </ul> + <!-- Add Register additional CTA button, in addition to menus --> + <a t-if="event.menu_register_cta and not event.is_participating" + t-att-href="'/event/%s/register' % (slug(event))" + class="btn btn-primary ml-auto"> + Register + </a> </div> </div> </nav> diff --git a/addons/website_event/views/event_templates_page_registration.xml b/addons/website_event/views/event_templates_page_registration.xml index e57a50212fe..6375b55c293 100644 --- a/addons/website_event/views/event_templates_page_registration.xml +++ b/addons/website_event/views/event_templates_page_registration.xml @@ -121,6 +121,7 @@ <i class="fa fa-pencil mr-2" role="img" aria-label="Edit" title="Edit event registration in backend"/><em>Configure Event Tickets</em> </a> </div> + <div t-if="toast_message" class="o_wevent_register_toaster d-none" t-att-data-message="toast_message"/> <div t-if="not event.event_registrations_open" class="bg-white mb-5"> <div class="alert alert-info mb-0 d-flex justify-content-between align-items-center" role="status"> <t t-if="event.start_sale_date and event.start_sale_date > datetime.date.today()"> diff --git a/addons/website_event/views/event_templates_widgets.xml b/addons/website_event/views/event_templates_widgets.xml index 0a143d7d72b..4b994176bde 100644 --- a/addons/website_event/views/event_templates_widgets.xml +++ b/addons/website_event/views/event_templates_widgets.xml @@ -52,4 +52,30 @@ </div> </template> +<!-- Timer widget --> +<template id="display_timer_widget" name="Display Timer Widget"> + <t t-set="pre_countdown_display" t-value="bool(pre_countdown_text) or pre_countdown_display"/> + <t t-set="pre_countdown_time" t-value="datetime.datetime.now().timestamp() + int(pre_remaining_time)"/> + + <div class="o_display_timer" + t-att-data-display-class="display_class" + t-att-data-main-countdown-time="datetime.datetime.now().timestamp() + int(main_remaining_time)" + t-att-data-main-countdown-text="main_countdown_text" + t-att-data-main-countdown-display="main_countdown_display" + t-att-data-pre-countdown-time="pre_countdown_time" + t-att-data-pre-countdown-display="pre_countdown_display" + t-att-data-pre-countdown-text="pre_countdown_text"> + <t t-set="remaining_time" t-value="pre_remaining_time if pre_remaining_time else main_remaining_time"/> + <span class="o_display_timer_countdown d-flex justify-content-center"> + <span class="o_countdown_text pr-1" t-esc="pre_countdown_text if pre_countdown_text else main_countdown_text if not pre_countdown_display else ''"/> + <div t-if="int(remaining_time) > 86400" + class="o_countdown_metric_container"><span class="o_countdown_remaining o_timer_days pr-1">0</span><span class="o_countdown_metric pr-1">days</span></div> + <div t-if="int(remaining_time) > 3600" + class="o_countdown_metric_container"><span class="o_countdown_remaining o_timer_hours">00</span><span class="o_countdown_metric">:</span></div> + <div class="o_countdown_metric_container"><span class="o_countdown_remaining o_timer_minutes">00</span><span class="o_countdown_metric">:</span></div> + <div class="o_countdown_metric_container"><span class="o_countdown_remaining o_timer_seconds">00</span><span class="o_countdown_metric"></span></div> + </span> + </div> +</template> + </odoo> diff --git a/addons/website_event/views/website_visitor_views.xml b/addons/website_event/views/website_visitor_views.xml new file mode 100644 index 00000000000..471ab75f07b --- /dev/null +++ b/addons/website_event/views/website_visitor_views.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo><data> + + <record id="website_visitor_view_search" model="ir.ui.view"> + <field name="name">website.visitor.view.search.inherit.event</field> + <field name="model">website.visitor</field> + <field name="inherit_id" ref="website.website_visitor_view_search"/> + <field name="arch" type="xml"> + <xpath expr="//filter[@name='group_by_lang']" position="after"> + <filter string="Main Contact" name="group_by_parent_id" context="{'group_by': 'parent_id'}"/> + </xpath> + </field> + </record> + + <record id="website_visitor_view_tree" model="ir.ui.view"> + <field name="name">website.visitor.view.tree.inherit.event</field> + <field name="model">website.visitor</field> + <field name="inherit_id" ref="website.website_visitor_view_tree"/> + <field name="arch" type="xml"> + <xpath expr="//field[@name='page_ids']" position="after"> + <field name="event_registration_count"/> + </xpath> + </field> + </record> + + <record id="website_visitor_view_form" model="ir.ui.view"> + <field name="name">website.visitor.view.form.inherit.event</field> + <field name="model">website.visitor</field> + <field name="inherit_id" ref="website.website_visitor_view_form"/> + <field name="arch" type="xml"> + <xpath expr="//button[@id='w_visitor_visit_counter']" position="before"> + <button name="%(website_event.event_registration_action_from_visitor)d" + type="action" + class="oe_stat_button" icon="fa-ticket" + attrs="{'invisible': [('event_registration_count', '=', 0)]}"> + <field name="event_registration_count" widget="statinfo" string="Registrations"/> + </button> + </xpath> + <xpath expr="//field[@name='page_ids']" position="after"> + <field name="parent_id"/> + </xpath> + </field> + </record> + + <record id="website_visitor_view_kanban" model="ir.ui.view"> + <field name="name">website.visitor.view.kanban.inherit.event</field> + <field name="model">website.visitor</field> + <field name="inherit_id" ref="website.website_visitor_view_kanban"/> + <field name="arch" type="xml"> + <field name="page_ids" position="after"> + <field name="event_registration_count"/> + </field> + <xpath expr="//div[@id='o_page_count']" position="after"> + <div>Registrations<span class="float-right font-weight-bold"><field name="event_registration_count"/></span></div> + </xpath> + <xpath expr="//div[hasclass('w_visitor_kanban_actions_ungrouped')]" position="before"> + <div class="col"> + <b><field name="event_registration_count"/></b> + <div>Registrations</div> + </div> + </xpath> + </field> + </record> + +</data></odoo> |
