[FW][MERGE] event_*: fix demo and various frontend glitches

PURPOSE

Provide fixes after internal deployment of event online modules.

SPECIFICATIONS

Fix glitches in exhibitor menu filters.

Use Favorite name for reminder / wishlist / favorite widget of tracks.

Fix track / agenda menu management.

Fix demo data to have coherent tracks.

See sub commits for more details.

UPDATE

  * website_event_track_exhibitor.exhibitors_topbar_sponsorship
  * website_event_track_online.track_widget_reminder
  * website_event_track_session.session_topbar

LINKS

Task ID-2312007 (demo fix)
Task ID-2314778 (event online fixes)
PR odoo/odoo#56254
PR odoo/enterprise#12558

closes odoo/odoo#56300

Forward-port-of: odoo/odoo#56254
Related: odoo/enterprise#12566
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
Odoo's Mergebot
2020-08-24 13:03:14 +02:00
committed by GitHub
25 changed files with 282 additions and 107 deletions
@@ -24,27 +24,27 @@ var discoverTalkSteps = function (talkName, fromList, reminderOn, toggleReminder
}
if (reminderOn) {
steps = steps.concat([{
content: "Check Reminder is on",
content: "Check Favorite is on",
trigger: 'div.o_wetrack_js_reminder i.fa-bell',
extra_trigger: 'span.o_wetrack_js_reminder_text:contains("Reminder On")',
extra_trigger: 'span.o_wetrack_js_reminder_text:contains("Favorite On")',
run: function () {}, // it's a check
}]);
}
else {
steps = steps.concat([{
content: "Check Reminder is Off",
trigger: 'span.o_wetrack_js_reminder_text:contains("Set Reminder")',
content: "Check Favorite is Off",
trigger: 'span.o_wetrack_js_reminder_text:contains("Set Favorite")',
run: function () {}, // it's a check
}]);
if (toggleReminder) {
steps = steps.concat([{
content: "Set Reminder",
content: "Set Favorite",
trigger: 'span.o_wetrack_js_reminder_text',
run: 'click',
}, {
content: "Check Reminder is On",
content: "Check Favorite is On",
trigger: 'div.o_wetrack_js_reminder i.fa-bell',
extra_trigger: 'span.o_wetrack_js_reminder_text:contains("Reminder On")',
extra_trigger: 'span.o_wetrack_js_reminder_text:contains("Favorite On")',
run: function () {}, // it's a check
}]);
}
@@ -210,7 +210,7 @@
</section></div></field>
</record>
<!-- 15-16-18: children of 12 (Azure Interior) -->
<!-- 15-16-28: children of 12 (Azure Interior) -->
<record id="base.res_partner_address_15" model="res.partner">
<field name="is_published" eval="True"/>
<field name="website">http://azure.example.com</field>
+4 -8
View File
@@ -114,14 +114,10 @@ class Event(models.Model):
@api.depends("event_type_id", "website_menu", "community_menu")
def _compute_community_menu(self):
""" At type onchange: synchronize. At website_menu update: synchronize. """
""" Set False in base module. Sub modules will add their own logic
(meet or track_quiz). """
for event in self:
if event.event_type_id and event.event_type_id != event._origin.event_type_id:
event.community_menu = event.event_type_id.community_menu
elif event.website_menu and event.website_menu != event._origin.website_menu or not event.community_menu:
event.community_menu = True
elif not event.website_menu:
event.community_menu = False
event.community_menu = False
@api.depends("event_type_id", "website_menu")
def _compute_menu_register_cta(self):
@@ -129,7 +125,7 @@ class Event(models.Model):
for event in self:
if event.event_type_id and event.event_type_id != event._origin.event_type_id:
event.menu_register_cta = event.event_type_id.menu_register_cta
elif event.website_menu and event.website_menu != event._origin.website_menu or not event.menu_register_cta:
elif event.website_menu and (event.website_menu != event._origin.website_menu or not event.menu_register_cta):
event.menu_register_cta = True
elif not event.website_menu:
event.menu_register_cta = False
@@ -25,8 +25,8 @@
<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"/>
<label for="community_menu" string="Community" invisible="1"/>
<field name="community_menu" invisible="1"/>
</div>
</xpath>
</field>
@@ -20,14 +20,12 @@
</div>
</div>
<div class="row mt16" name="menu_register_cta"
groups="base.group_no_one"
attrs="{'invisible': [('website_menu', '=', False)]}">
groups="base.group_no_one">
<label class="col-lg-4" for="menu_register_cta"/> <field name="menu_register_cta"/>
</div>
<div class="row mt16" name="community_menu"
id="community-menu"
groups="base.group_no_one"
attrs="{'invisible': [('website_menu', '=', False)]}">
attrs="{'invisible': [('website_menu', 'in', (True, False))]}">
<label class="col-lg-4" for="community_menu"/> <field name="community_menu"/>
</div>
</div>
@@ -1,8 +1,7 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models, _
from odoo.addons.http_routing.models.ir_http import slug
from odoo import api, fields, models
class Event(models.Model):
@@ -15,6 +14,17 @@ class Event(models.Model):
readonly=False, store=True,
help="Let Visitors Create Rooms")
@api.depends("event_type_id", "website_menu", "community_menu")
def _compute_community_menu(self):
""" At type onchange: synchronize. At website_menu update: synchronize. """
for event in self:
if event.event_type_id and event.event_type_id != event._origin.event_type_id:
event.community_menu = event.event_type_id.community_menu
elif event.website_menu and (event.website_menu != event._origin.website_menu or not event.community_menu):
event.community_menu = True
elif not event.website_menu:
event.community_menu = False
@api.depends("meeting_room_ids")
def _compute_meeting_room_count(self):
meeting_room_count = self.env["event.meeting.room"].sudo().read_group(
@@ -11,6 +11,12 @@
<field name="meeting_room_count" string="Rooms" widget="statinfo"/>
</button>
</xpath>
<xpath expr="//label[@for='community_menu']" position="attributes">
<attribute name="invisible">0</attribute>
</xpath>
<xpath expr="//field[@name='community_menu']" position="attributes">
<attribute name="invisible">0</attribute>
</xpath>
<xpath expr="//field[@name='community_menu']" position="after">
<field name="meeting_room_allow_creation" invisible="1"/>
</xpath>
@@ -5,13 +5,13 @@
<field name="model">event.type</field>
<field name="inherit_id" ref="website_event.event_type_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='website_menu']" position='after'>
<xpath expr="//div[@id='community-menu']" position='after'>
<div class="row mt16" attrs="{'invisible': [('website_menu', '=', False)]}">
<label class="col-lg-4" for="meeting_room_allow_creation"/> <field name="meeting_room_allow_creation"/>
</div>
</xpath>
<xpath expr="//div[@id='community-menu']" position="attributes">
<attribute name="groups"></attribute>
<attribute name="attrs">{'invisible': [('website_menu', '=', False)]}</attribute>
</xpath>
</field>
</record>
@@ -354,7 +354,8 @@
<field name="color">1</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="date" eval="(DateTime.now() - timedelta(days=1)).strftime('%Y-%m-%d 15:30:00')"></field>
<field name="wishlisted_by_default" eval="True"/>
<field name="date" eval="(DateTime.now() - timedelta(days=1)).strftime('%Y-%m-%d 16:00:00')"></field>
<field name="tag_ids" eval="[
(4, ref('website_event_track.event_track_tag1')),
(4, ref('website_event_track.event_track_tag2')),
@@ -367,7 +368,7 @@
</record>
<!-- Location 1 -->
<record id="event_7_track_3" model="event.track">
<field name="name">A House Made of Woods ?</field>
<field name="name">Easy Way To Build a Wooden House</field>
<field name="color">2</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
@@ -385,10 +386,10 @@
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage4"/>
<field name="location_id" ref="website_event_track.event_track_location_online_1"/>
<field name="date" eval="(DateTime.now() - timedelta(days=1)).strftime('%Y-%m-%d 13:00:00')"></field>
<field name="date" eval="(DateTime.now() - timedelta(days=1)).strftime('%Y-%m-%d 12:00:00')"></field>
<field name="tag_ids" eval="[(4, ref('website_event_track.event_track_tag1')), (4, ref('website_event_track.event_track_tag11'))]"/>
<field name="is_published" eval="False"/>
<field name="duration">2</field>
<field name="duration">1</field>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_15"/>
<field name="website_cta" eval="True"/>
@@ -396,8 +397,21 @@
<field name="website_cta_url">http://www.example.com</field>
<field name="website_cta_delay">10</field>
</record>
<!-- Location 2 -->
<record id="event_7_track_5" model="event.track">
<field name="name">Top 10 Most Expensive Wood in the World</field>
<field name="color">3</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_1"/>
<field name="date" eval="(DateTime.now() - timedelta(days=1)).strftime('%Y-%m-%d 14:00:00')"></field>
<field name="tag_ids" eval="[(4, ref('website_event_track.event_track_tag3')), (4, ref('website_event_track.event_track_tag11'))]"/>
<field name="is_published" eval="True"/>
<field name="duration">1</field>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_3"/>
</record>
<!-- Location 2 -->
<record id="event_7_track_6" model="event.track">
<field name="name">Securing your Lumber during transport</field>
<field name="color">3</field>
<field name="event_id" ref="event.event_7"/>
@@ -410,8 +424,8 @@
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_28"/>
</record>
<record id="event_7_track_6" model="event.track">
<field name="name">Meet our woods producers</field>
<record id="event_7_track_7" model="event.track">
<field name="name">Woodworking: How I got started!</field>
<field name="color">3</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
@@ -423,7 +437,7 @@
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_15"/>
</record>
<record id="event_7_track_7" model="event.track">
<record id="event_7_track_8" model="event.track">
<field name="name">Dealing with OpenWood Furniture</field>
<field name="color">6</field>
<field name="event_id" ref="event.event_7"/>
@@ -436,7 +450,7 @@
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_3"/>
</record>
<record id="event_7_track_8" model="event.track">
<record id="event_7_track_9" model="event.track">
<field name="name">Kitchens for the Future</field>
<field name="color">7</field>
<field name="event_id" ref="event.event_7"/>
@@ -456,10 +470,10 @@
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage2"/>
<field name="location_id" ref="website_event_track.event_track_location_online_3"/>
<field name="date" eval="(DateTime.now() - timedelta(days=1)).strftime('%Y-%m-%d 07:00:00')"></field>
<field name="date" eval="(DateTime.now() - timedelta(days=1)).strftime('%Y-%m-%d 08:30:00')"></field>
<field name="tag_ids" eval="[(4, ref('website_event_track.event_track_tag1')), (4, ref('website_event_track.event_track_tag12'))]"/>
<field name="is_published" eval="False"/>
<field name="duration">3</field>
<field name="duration">2</field>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_31"/>
</record>
@@ -500,14 +514,14 @@
<field name="color">1</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="date" eval="DateTime.now().strftime('%Y-%m-%d 15:00:00')"></field>
<field name="date" eval="DateTime.now().strftime('%Y-%m-%d 16:00:00')"></field>
<field name="tag_ids" eval="[
(4, ref('website_event_track.event_track_tag1')),
(4, ref('website_event_track.event_track_tag2')),
(4, ref('website_event_track.event_track_tag3')),
(4, ref('website_event_track.event_track_tag13'))]"/>
<field name="is_published" eval="True"/>
<field name="duration">2</field>
<field name="duration">1</field>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_16"/>
</record>
@@ -553,6 +567,19 @@
</record>
<!-- Location 2 -->
<record id="event_7_track_15" model="event.track">
<field name="name">Logs to lumber</field>
<field name="color">3</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_2"/>
<field name="date" eval="DateTime.now().strftime('%Y-%m-%d 08:00:00')"></field>
<field name="tag_ids" eval="[(4, ref('website_event_track.event_track_tag3')), (4, ref('website_event_track.event_track_tag11'))]"/>
<field name="is_published" eval="True"/>
<field name="duration">1</field>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_31"/>
</record>
<record id="event_7_track_16" model="event.track">
<field name="name">Pretty. Ugly. Lovely.</field>
<field name="color">4</field>
<field name="event_id" ref="event.event_7"/>
@@ -565,11 +592,12 @@
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_16"/>
</record>
<record id="event_7_track_16" model="event.track">
<record id="event_7_track_17" model="event.track">
<field name="name">10 DIY Furniture Ideas For Absolute Beginners</field>
<field name="color">7</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="wishlisted_by_default" eval="True"/>
<field name="location_id" ref="website_event_track.event_track_location_online_2"/>
<field name="date" eval="DateTime.now().strftime('%Y-%m-%d 12:00:00')"></field>
<field name="tag_ids" eval="[(4, ref('website_event_track.event_track_tag1')), (4, ref('website_event_track.event_track_tag11'))]"/>
@@ -578,20 +606,32 @@
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_31"/>
</record>
<record id="event_7_track_17" model="event.track">
<record id="event_7_track_18" model="event.track">
<field name="name">6 Woodworking tips and tricks for beginners</field>
<field name="color">7</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="wishlisted_by_default" eval="True"/>
<field name="location_id" ref="website_event_track.event_track_location_online_2"/>
<field name="date" eval="DateTime.now().strftime('%Y-%m-%d 13:30:00')"></field>
<field name="date" eval="DateTime.now().strftime('%Y-%m-%d 13:00:00')"></field>
<field name="tag_ids" eval="[(4, ref('website_event_track.event_track_tag1')), (4, ref('website_event_track.event_track_tag12'))]"/>
<field name="is_published" eval="True"/>
<field name="duration">1.5</field>
<field name="duration">1</field>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_17"/>
</record>
<record id="event_7_track_19" model="event.track">
<field name="name">DIY Timber Cladding Project</field>
<field name="color">7</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_2"/>
<field name="date" eval="DateTime.now().strftime('%Y-%m-%d 14:00:00')"></field>
<field name="tag_ids" eval="[(4, ref('website_event_track.event_track_tag1')), (4, ref('website_event_track.event_track_tag11'))]"/>
<field name="is_published" eval="True"/>
<field name="duration">1</field>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_3"/>
</record>
<!-- Location 3 -->
<record id="event_7_track_l3_10" model="event.track">
<field name="name">Live Testimonial</field>
@@ -649,13 +689,13 @@
(4, ref('website_event_track.event_track_tag3')),
(4, ref('website_event_track.event_track_tag13'))]"/>
<field name="is_published" eval="True"/>
<field name="duration">2</field>
<field name="duration">1.5</field>
<field name="user_id" ref="base.user_admin"/>
<field name="partner_id" ref="base.res_partner_address_3"/>
</record>
<!-- Location 1 -->
<record id="event_7_track_22" model="event.track">
<field name="name">Tools for Wood</field>
<field name="name">Tools for the Woodworking Beginner</field>
<field name="color">3</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
@@ -668,8 +708,8 @@
<field name="partner_id" ref="base.res_partner_address_4"/>
</record>
<record id="event_7_track_23" model="event.track">
<field name="name">Repairing Tools</field>
<field name="color">3</field>
<field name="name">Restoring Old Woodworking Tools</field>
<field name="color">7</field>
<field name="event_id" ref="event.event_7"/>
<field name="stage_id" ref="event_track_stage3"/>
<field name="location_id" ref="website_event_track.event_track_location_online_1"/>
@@ -1,15 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="event_7_track_4" model="event.track">
<record id="event_7_track_3" model="event.track">
<field name="description" type="html">
<p>A summary of know-how: how and what. All the basics for this course about gardening.</p>
<p>Considering to build a wooden house? Watch this video to find out more information about a construction process and final result. Step by step simple explanation! Interested?</p>
</field>
</record>
<record id="event_7_track_5" model="event.track">
<field name="description" type="html">
<p>A summary of know-how: how and what. All the basics for this course about gardening.</p>
<p>Top most expensive wood in the world is quite interesting topic and several people may be surprised
that there are hundreds of wood types exist around the globe following different properties and use.</p>
<p>There are several variants of wood is available in the world but we are talking about most expensive
ones in the world and keeping to the point we have arranged ten most expensive wood.</p>
</field>
</record>
<record id="event_7_track_6" model="event.track">
<field name="description" type="html">
<p>Use these simple steps to easily haul LONG lumber in a short box pickup truck. A dose of carpenter's
ingenuity along with a couple boards, a sturdy strap and a few screws are all I use to easily haul
long boards from the lumberyard to the Next Level Carpentry shop or jobsite.</p>
<p>Using a unique wrapping method for a tie down strap (NOT Bungee cords!!!) allows lumber to be
cinched securely WITHOUT the need to tie and untie tricky or complicated knots.</p>
</field>
</record>
<record id="event_7_track_7" model="event.track">
<field name="description" type="html">
<p>Probably one of the most asked questions I've gotten is how I got started woodworking! In this video I share with you how/why I started building furniture!</p>
</field>
</record>
<record id="event_7_track_13" model="event.track">
<field name="description" type="html">
<p>Considering to build a wooden house? Watch this video to find out more information about a construction process and final result. Step by step simple explanation! Interested?</p>
</field>
</record>
<record id="event_7_track_15" model="event.track">
<field name="description" type="html">
<p>In this video we will see how lumber is made in a sawmill factory.</p>
</field>
</record>
<record id="event_7_track_17" model="event.track">
<field name="description" type="html">
<p> As you may have heard before, making your own furniture is actually not as difficult or as complicated as you think.
In fact, some projects are so easy anyone could successfully complete them. For example, making a cute stool out of
a old tire is a real piece of cake and if you’re in need of a coffee table you can easily put one together using
wood crates.</p>
<p>There are a lot of ideas worth exploring so start with the 10 DIY furniture ideas for absolute beginners.</p>
</field>
</record>
<record id="event_7_track_18" model="event.track">
<field name="description" type="html">
<p>In this video, I covered 6 tips and tricks to help out beginners:
<ul>
<li>Making a center marking gauge</li>
<li>Bandy clamp hack</li>
<li>Right angle clamp jig</li>
<li>Miter saw tip</li>
<li>Glue tip</li>
<li>Dowel Hack</li>
</ul>
</p>
</field>
</record>
<record id="event_7_track_19" model="event.track">
<field name="description" type="html">
<p>Link to Q&amp;A here! The time has come to hide those old block walls. Love simple and transformation type projects like this! :)-</p>
</field>
</record>
<record id="event_7_track_23" model="event.track">
<field name="description" type="html">
<p> Restoring old woodworking tools</p>
</field>
</record>
</odoo>
@@ -37,17 +37,17 @@ class Event(models.Model):
for event in self:
event.sponsor_count = result.get(event.id, 0)
@api.depends('event_type_id', 'website_menu', 'website_track_proposal')
@api.depends('event_type_id', 'website_menu')
def _compute_website_track(self):
""" Propagate event_type configuration (only at change); otherwise propagate
website_menu updated value. Also force True is track_proposal changes. """
for event in self:
if event.event_type_id and event.event_type_id != event._origin.event_type_id:
event.website_track = event.event_type_id.website_track
elif event.website_menu != event._origin.website_menu or not event.website_menu or not event.website_track:
event.website_track = event.website_menu
elif event.website_track_proposal and not event.website_track:
elif event.website_menu and (event.website_menu != event._origin.website_menu or not event.website_track):
event.website_track = True
elif not event.website_menu:
event.website_track = False
@api.depends('event_type_id', 'website_track')
def _compute_website_track_proposal(self):
@@ -80,9 +80,9 @@ class Event(models.Model):
def _update_website_menus(self, menus_update_by_field=None):
super(Event, self)._update_website_menus(menus_update_by_field=menus_update_by_field)
for event in self:
if (not menus_update_by_field) or (event in menus_update_by_field.get('website_track')):
if event.menu_id and (not menus_update_by_field or event in menus_update_by_field.get('website_track')):
event._update_website_menu_entry('website_track', 'track_menu_ids', '_get_track_menu_entries')
if (not menus_update_by_field) or (event in menus_update_by_field.get('website_track_proposal')):
if event.menu_id and (not menus_update_by_field or event in menus_update_by_field.get('website_track_proposal')):
event._update_website_menu_entry('website_track_proposal', 'track_proposal_menu_ids', '_get_track_proposal_menu_entries')
def _get_menu_type_field_matching(self):
@@ -104,7 +104,7 @@ class Event(models.Model):
self.ensure_one()
return [
(_('Talks'), '/event/%s/track' % slug(self), False, 10, 'track'),
(_('Agenda'), '/event/%s/agenda' % slug(self), False, 70, False)
(_('Agenda'), '/event/%s/agenda' % slug(self), False, 70, 'track')
]
def _get_track_proposal_menu_entries(self):
@@ -55,7 +55,7 @@ publicWidget.registry.websiteEventTrackReminder = publicWidget.Widget.extend({
});
} else {
self.reminderOn = reminderOnValue;
var reminderText = self.reminderOn ? _t('Reminder On') : _t('Set Reminder');
var reminderText = self.reminderOn ? _t('Favorite On') : _t('Set Favorite');
self.$('.o_wetrack_js_reminder_text').text(reminderText);
self._updateDisplay();
var message = self.reminderOn ? _t('Talk added to your Favorites') : _t('Talk removed from your Favorites');
@@ -74,10 +74,10 @@ publicWidget.registry.websiteEventTrackReminder = publicWidget.Widget.extend({
var $trackLink = this.$el.find('i');
if (this.reminderOn) {
$trackLink.addClass('fa-bell').removeClass('fa-bell-o');
$trackLink.attr('title', _t('Reminder On'));
$trackLink.attr('title', _t('Favorite On'));
} else {
$trackLink.addClass('fa-bell-o').removeClass('fa-bell');
$trackLink.attr('title', _t('Set Reminder'));
$trackLink.attr('title', _t('Set Favorite'));
}
},
@@ -63,13 +63,23 @@ class TestEventWebsiteTrack(TestWebsiteEventCommon):
self._assert_website_menus(event, set(['Location', 'Register', 'Community']))
event.write({'website_track_proposal': True})
self.assertFalse(event.website_track)
self.assertTrue(event.website_track_proposal)
self._assert_website_menus(event, set(['Location', 'Register', 'Community', 'Talk Proposals']))
event.write({'website_track': True})
self.assertTrue(event.website_track)
self.assertTrue(event.website_track_proposal)
self._assert_website_menus(event, set(['Location', 'Register', 'Community', 'Talks', 'Agenda', 'Talk Proposals']))
@users('user_eventmanager')
def test_write_menu(self):
event = self.env['event.event'].browse(self.event_0.id)
event = self.env['event.event'].create({
'name': 'TestEvent',
'date_begin': fields.Datetime.to_string(datetime.today() + timedelta(days=1)),
'date_end': fields.Datetime.to_string(datetime.today() + timedelta(days=15)),
'website_menu': False,
})
self.assertFalse(event.menu_id)
event.write({
'website_menu': True,
@@ -38,7 +38,7 @@
<!-- Optional wishlist filter -->
<li t-if="option_track_wishlist" 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"/> Wishlist
<i class="fa fa-folder-open"/> Favorites
</a>
<div class="dropdown-menu">
<a t-att-href="'/event/%s/track?%s' % (
@@ -53,7 +53,7 @@
keep_query('*', search_wishlist='1')
)"
t-attf-class="dropdown-item d-flex align-items-center justify-content-between #{'active' if search_wishlist else ''}">
Wishlisted
Favorites
</a>
</div>
</li>
@@ -10,15 +10,17 @@
<div t-att-class="'o_wetrack_js_reminder btn %s %s' % (
'btn-link' if reminder_light else 'btn-outline-primary',
'btn-sm' if reminder_small else '')">
<t t-if="track.is_reminder_on" t-set="title">Favorite On</t>
<t t-else="track.is_reminder_on" t-set="title">Set Favorite</t>
<i t-att-class="'fa fa-bell%s inactive_color_%s' % ('' if track.is_reminder_on else '-o', 'dark' if reminder_light and not light_theme else 'light')"
t-att-data-track-id="track.id"
t-att-title="'Reminder On' if track.is_reminder_on else 'Set a Reminder'"
t-att-title="title"
t-att-data-reminder-on="bool(track.is_reminder_on)"></i>
<span t-if="not reminder_light" class="o_wetrack_js_reminder_text">
<t t-if="not track.is_reminder_on">
Set Reminder
Set Favorite
</t><t t-else="">
Reminder On
Favorite On
</t>
</span>
</div>
@@ -72,7 +72,7 @@ class ExhibitorController(EventTrackController):
sponsors = request.env['event.sponsor'].sudo().search(search_domain)
sponsors_all = request.env['event.sponsor'].sudo().search(search_domain_base)
sponsor_types = sponsors_all.mapped('sponsor_type_id')
sponsor_countries = sponsors_all.mapped('partner_id.country_id')
sponsor_countries = sponsors_all.mapped('partner_id.country_id').sorted('name')
# organize sponsors into categories to help display
sponsor_categories = dict()
for sponsor in sponsors:
@@ -20,7 +20,7 @@ class EventEvent(models.Model):
for event in self:
if event.event_type_id and event.event_type_id != event._origin.event_type_id:
event.exhibitor_menu = event.event_type_id.exhibitor_menu
elif event.website_menu and event.website_menu != event._origin.website_menu or not event.exhibitor_menu:
elif event.website_menu and (event.website_menu != event._origin.website_menu or not event.exhibitor_menu):
event.exhibitor_menu = True
elif not event.website_menu:
event.exhibitor_menu = False
@@ -38,7 +38,7 @@ class EventEvent(models.Model):
def _update_website_menus(self, menus_update_by_field=None):
super(EventEvent, self)._update_website_menus(menus_update_by_field=menus_update_by_field)
for event in self:
if not menus_update_by_field or event in menus_update_by_field.get('exhibitor_menu'):
if event.menu_id and (not menus_update_by_field or event in menus_update_by_field.get('exhibitor_menu')):
event._update_website_menu_entry('exhibitor_menu', 'exhibitor_menu_ids', '_get_exhibitor_menu_entries')
def _get_menu_type_field_matching(self):
@@ -51,7 +51,8 @@
<i class="fa fa-phone mr-2"/><span t-esc="widget.sponsorData.phone"/>
</span>
</div>
<img class="img ml-auto"
<img t-if="widget.sponsorData.country_flag_url"
class="img ml-auto"
style="max-height: 36px;"
t-att-src="widget.sponsorData.country_flag_url"
t-att-alt="widget.sponsorData.country_name"/>
@@ -100,7 +100,7 @@
<div class="dropdown-menu">
<a t-att-href="'/event/%s/exhibitors?%s' % (slug(event), keep_query('*', sponsorships=''))"
t-attf-class="dropdown-item d-flex align-items-center justify-content-between #{'active' if not search_sponsorships else ''}">
All Countries
All Sponsorships
</a>
<t t-foreach="sponsor_types" t-as="sponsor_type">
<a t-att-href="'/event/%s/exhibitors?%s' % (
@@ -1,46 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Tracks of: "OpenWood: Furniture Collection Online Reveal" -->
<record id="website_event_track.event_7_track_1" model="event.track">
<field name="youtube_video_url">https://www.youtube.com/watch?v=66AIsiezq5g</field>
<field name="is_youtube_replay" eval="True" />
</record>
<record id="website_event_track.event_7_track_2" model="event.track">
<field name="youtube_video_url">https://www.youtube.com/watch?v=IvUU8joBb1Q</field>
<field name="is_youtube_replay" eval="True" />
</record>
<record id="website_event_track.event_7_track_3" model="event.track">
<!-- Easy Way To Build a Wooden House -->
<field name="youtube_video_url">https://www.youtube.com/watch?v=qRrA8al77a0</field>
<field name="is_youtube_replay" eval="True" />
</record>
<record id="website_event_track.event_7_track_4" model="event.track">
<field name="youtube_video_url">https://www.youtube.com/watch?v=bZ-queeu-lk</field>
<field name="is_youtube_replay" eval="True" />
<field name="is_youtube_replay" eval="True"/>
</record>
<record id="website_event_track.event_7_track_5" model="event.track">
<field name="youtube_video_url">https://www.youtube.com/watch?v=gV3g5FzmQiM</field>
<field name="is_youtube_replay" eval="True" />
<!-- Top 10 Most Expensive Wood in the World -->
<field name="youtube_video_url">https://www.youtube.com/watch?v=bZ-queeu-lk</field>
<field name="is_youtube_replay" eval="True"/>
</record>
<record id="website_event_track.event_7_track_6" model="event.track">
<field name="youtube_video_url">https://www.youtube.com/watch?v=g3IoL9hxABg</field>
<field name="is_youtube_replay" eval="True" />
<!-- Haul Long Lumber in a Shortbox Truck -->
<field name="youtube_video_url">https://www.youtube.com/watch?v=gV3g5FzmQiM</field>
<field name="is_youtube_replay" eval="True"/>
</record>
<record id="website_event_track.event_7_track_10" model="event.track">
<field name="youtube_video_url">https://www.youtube.com/watch?v=AVZtyXJB-rI</field>
<field name="is_youtube_replay" eval="True" />
</record>
<record id="website_event_track.event_7_track_11" model="event.track">
<field name="youtube_video_url">https://www.youtube.com/watch?v=LHztthKy4RE</field>
<field name="is_youtube_replay" eval="True" />
</record>
<record id="website_event_track.event_7_track_12" model="event.track">
<field name="youtube_video_url">https://www.youtube.com/watch?v=B-nEYsyRlYo</field>
<field name="is_youtube_replay" eval="True" />
<record id="website_event_track.event_7_track_7" model="event.track">
<!-- Woodworking: How I got started! -->
<field name="youtube_video_url">https://www.youtube.com/watch?v=loP-Nd7M5s8</field>
<field name="is_youtube_replay" eval="True"/>
</record>
<record id="website_event_track.event_7_track_13" model="event.track">
<field name="youtube_video_url">https://www.youtube.com/watch?v=7X8xuipr4_A</field>
<field name="is_youtube_replay" eval="True" />
<!-- Easy Way To Build a Wooden House -->
<field name="youtube_video_url">https://www.youtube.com/watch?v=qRrA8al77a0</field>
<field name="is_youtube_replay" eval="True"/>
</record>
<record id="website_event_track.event_7_track_15" model="event.track">
<!-- Logs to Lumber -->
<field name="youtube_video_url">https://www.youtube.com/watch?v=66AIsiezq5g</field>
<field name="is_youtube_replay" eval="True"/>
</record>
<record id="website_event_track.event_7_track_17" model="event.track">
<!-- 10 DIY Furniture Ideas For Absolute Beginners -->
<field name="youtube_video_url">https://www.youtube.com/watch?v=OE4BVOjJp88</field>
<field name="is_youtube_replay" eval="True"/>
</record>
<record id="website_event_track.event_7_track_18" model="event.track">
<!-- 6 Woodworking tips and tricks for beginners -->
<field name="youtube_video_url">https://www.youtube.com/watch?v=3cME3vK1aaQ</field>
<field name="is_youtube_replay" eval="True"/>
</record>
<record id="website_event_track.event_7_track_19" model="event.track">
<!-- How I Transformed this Old Block Wall - DIY Timber Cladding Project -->
<field name="youtube_video_url">https://www.youtube.com/watch?v=7X8xuipr4_A</field>
<field name="is_youtube_replay" eval="True"/>
</record>
<record id="website_event_track.event_7_track_22" model="event.track">
<!-- Basic Set of Tools for the Woodworking Beginner -->
<field name="youtube_video_url">https://www.youtube.com/watch?v=3pc-nnAykTQ</field>
<field name="is_youtube_replay" eval="True"/>
</record>
<record id="website_event_track.event_7_track_23" model="event.track">
<!-- Restoring Old Woodworking Tools -->
<field name="youtube_video_url">https://www.youtube.com/watch?v=tI5zCo-zLkY</field>
<field name="is_youtube_replay" eval="True"/>
</record>
</odoo>
@@ -25,6 +25,7 @@
'views/event_menus.xml',
'views/event_quiz_templates.xml',
'views/event_track_templates_page.xml',
'views/event_event_views.xml',
'views/event_type_views.xml'
],
'demo': [
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import event_event
from . import event_track
from . import event_track_visitor
from . import event_quiz
@@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class Event(models.Model):
_inherit = "event.event"
@api.depends("event_type_id", "website_menu", "community_menu")
def _compute_community_menu(self):
""" At type onchange: synchronize. At website_menu update: synchronize. """
for event in self:
if event.event_type_id and event.event_type_id != event._origin.event_type_id:
event.community_menu = event.event_type_id.community_menu
elif event.website_menu and (event.website_menu != event._origin.website_menu or not event.community_menu):
event.community_menu = True
elif not event.website_menu:
event.community_menu = False
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo><data>
<record id="event_event_view_form" model="ir.ui.view">
<field name="name">event.event.view.form.inherit.track.quiz</field>
<field name="model">event.event</field>
<field name="inherit_id" ref="website_event.event_event_view_form"/>
<field name="arch" type="xml">
<xpath expr="//label[@for='community_menu']" position="attributes">
<attribute name="invisible">0</attribute>
</xpath>
<xpath expr="//field[@name='community_menu']" position="after">
<field name="meeting_room_allow_creation" invisible="1"/>
</xpath>
</field>
</record>
</data></odoo>
@@ -1,12 +1,12 @@
<?xml version="1.0"?>
<odoo><data>
<record id="event_type_view_form" model="ir.ui.view">
<field name="name">event.type.view.form.inherit.meet</field>
<field name="name">event.type.view.form.inherit.track.quiz</field>
<field name="model">event.type</field>
<field name="inherit_id" ref="website_event.event_type_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@id='community-menu']" position="attributes">
<attribute name="groups"></attribute>
<attribute name="attrs">{'invisible': [('website_menu', '=', False)]}</attribute>
</xpath>
</field>
</record>