Commit Graph
140385 Commits
Author SHA1 Message Date
21e429daae [IMP] website_event_track_online: add a (void) community menu and page
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

PURPOSE

Prepare community addition (both quiz-based and room-based) by adding
a community link and page management.

SPECIFICATIONS

In order to show the leaderboard and the meeting rooms on the same page we
have to put a page and a route at the base of two upcoming modules: meet and
quiz. The only common ancestor of those two will be website_event_track_online
who gains a field for the community menu.

It currently does nothing and leads to a void page. Both meet and quiz modules
will add their own logic: meeting rooms or leaderboard. Having bothi installed
displays rooms with a small leaderboard.

See next commits for more details on those modules.

LINKS

Task ID-2252655 (Main Online Event task)
Task ID-2283771 (Quizzes on Talks, Leaderboard)
Task ID-2283742 (Community gathering on chat rooms)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Quentin Mourier <qmo@odoo.com>
Co-Authored-By: Stéphane Debauche <std@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
57da236657 [IMP] website_event_track_online: improve agenda page
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

PURPOSE

Improve Agenda page, to make it more inline with new Online Event design.
Make it more usable, with a better UX and mobile-friendly.

SPECIFICATIONS: AGENDA

Keep a per-day and per-room display, as we think it is a nice design. Hours
should be fixed: all hours between first hour and last hour of a day's tracks
should be displayed. Otherwise you have some "holes" in agenda, and each
line does not hold the same time range.

Display tags and reminders on tracks. Support accepted tracks, not clickable
but already displayed for people to organize their venue, especially with the
wishlist / reminder feature in mind.

Try to make it mobile friendly, by allowing horizontal scroll instead of
displaying all rooms on a small device.

SPECIFICATIONS: SEARCHING

Allow to search on tracks, as well as some basic filtering. Use the look
from event page to have something more inlined with current website layout.

Due to time limitations, currently agenda custom JS-based search is inlined
in bar looking like other event search bars. However no menu based on tags
or wishlist is available as everything is done in JS. Routes do not support
any tag or search, and adding it would take some time we don't have anymore.

KNOWN LIMITATIONS

Columns still do not have same width, complicated to do with dynamic column
number and overlapping tracks going outside of locations columns.

Mobile layout could be improved but is already browsable.

Search is still custom, and will be improved in master.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2299857 (Event Design Review)

Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Elisabeth Dickison <edi@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
Elisabeth DickinsonandThibault Delavallée 19c6f11bf2 [IMP] website_event_track_online: improve design of sponsor logos
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

SPECIFICATIONS

Current 'our sponsors' banner is made for 5/6 sponsors but does not scale
well with more sponsors. It takes a lot of space and requires a lot of scrolling
in mobile mode.

Go for a mozaic style, more compact and better displayed on both mobile
and desktop.
  * current: https://tinyurl.com/ycughxlg
  * proposal: https://tinyurl.com/y8dzazcy

Allow to make ribbon display optional. This is done by adding a field with
ribbon color: gold, silver, bronze, or no ribbon. This solution is limited but
allows to give flexibility enough for current layouting.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2299857 (Event Design Review)

Co-Authored-By: Elisabeth Dickison <edi@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
2f47bcf24b [IMP] website_event_track_online: improve track stage management + agenda based on tage
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

PURPOSE

Purpose of this commit is to be able to showcase tracks by announcing them
before publishing them. People may see them before event managers encode all
relevant informations and publish it.

SPECIFICATIONS: ACCEPTED ON STAGE

Add a is_accepted field on tracks stage model. Accepted tracks should be
displayed on frontend (agenda, list view) without being available in complete
view (no read access). Customers may see the track name and know what it will
be about while event managers finish to encode details of the track itself.

No field is added on track model for that. Using the stage itself is
sufficient for what it does, aka allowing filtering in frontend. No need to
add a column for that as it is not as important as published flag.

SPECIFICATIONS: DONE STAGES -> PUBLISH

When a track reaches a stage which "is_done" field is set, automatically
publish it. It allows to manage agenda creation from backend

  * accepted -> display track on website for teasing purpose (agenda, track
    list), but not accessible to non event users;
  * done -> available to everyone, published;

SPECIFIATIONS: AGENDA UPDATE

Display accepted tracks even for customers; make them not clickable, only
displayed. Manually crafting url for those tracks should still raise an
error as they are not accessible.

An accepted track is simply a track whose stage has is_accepted boolean
flag set.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)
Task ID-2299857 (Event Design Review)
Task ID-2283735 (Talks -> Session upgrade)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
Krupal OzaAurélien WarnonDavid BeguinThibault Delavallée <tde@odoo.com>m>
64f08cc7ab [IMP] website_event_track_online: improve image and track / speaker synchronization
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

SPECIFICATIONS: PARTNER SYNCHRONIZATION

Right now, information on the track page in frontend is dependent on partner
through related fields. It is not possible to have contact data specific to
the sponsor without modifying the related partner.

In this commit we make track information fields based on partner while allowing
to update this contact information. Name, email, mobile and phone are now
computed stored based on partner and editable.

SPECIFICATIONS: IMAGE MANAGEMENT

Add a website_image field holding image to display in frontend, notably in
the upcoming new list and page views for tracks. This image is optional and
a default image is computed through a website_image_url field. It allows to
have default images without storing the same image on all tracks.

SPECIFICATIONS: DEMO UDPATE

In order to ensure synchronization, reset demo data partner_id so that demo
data is bioutifoul.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)
Task ID-2283735 (Talks -> Session upgrade)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Krupal Oza <koz@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>m>
2020-08-04 14:28:29 +00:00
e79a68d97d [IMP] website_event_track_online: improve sponsor partner synchronization
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

SPECIFICATIONS: PARTNER SYNCHRONIZATION

Right now, information on the sponsor page in frontend is dependent on partner
through related fields. It is not possible to have contact data specific to
the sponsor without modifying the related partner.

In this commit we make sponsor a model based on partner while allowing to
update its contact information. Name, email, mobile and phone are now computed
stored based on partner and editable.

A new image_512 field is introduced, as base image field is too small for
a new list view of sponsors we plan to make.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)
Task ID-2283738 (Sponsors -> Exhibitors upgrade)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
2b10f951f4 [IMP] website_event_track_online: allow to group track tags into categories
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

PURPOSE

Allow to have categories of tags, used notably to build a dynamic menu
when displaying tracks.

SPECIFICATIONS

Introduce tag category model on event track tags, like already existing in
slides (tag and tag group). Link tags to categories in a m2o / o2m fashion.

Each tag category will make a menu in the new frontend track list view. Each
tag will be a menu entry.

Add some demo data to showcase track tags and categories.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)
Task ID-2283735 (Talks -> Session upgrade)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
std-odoo 64304aca2e [IMP] website_event_online: add a new widget to display toast message
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

SPECIFICATIONS

Create a new widget that allows us to display toast message on the event
registration frontend page. Its purpose is notably to send a toaster message
to customers when they are redirected to the register page. It will be
used notably when exhibitors are not yet open before an event, to try to
make people register to the event with an explanation.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)
2020-08-04 14:28:29 +00:00
David Beguin 6e15f7d113 [IMP] website_event_online: add display-timer widget
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

SPECIFICATIONS

Add a timer widget that allows to display a DOM element at the end of a given
time. The widget can be configured with two steps

  * main timer: countdown to display the DOM element;
  * pre-countdown: countdown to display the main timer;

For example, in the context of a event track (talk), the pre-timer can be used
to announce when the talk will start. The main timer will then be displayed
once the pre-timer is over. At the end of the main timer, the DOM element is
finally displayed.

[Talk start in 03:45] -> [Survey available in 05:00] -> [Take the Survey!]

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283735 (Talks -> Session upgrade)
2020-08-04 14:28:29 +00:00
a0892ad39e [IMP] website_event_online: add some CSS tools / fixes
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

SPECIFICATIONS

Add some common CSS to be used in several new modules that will use a "aside
panel / main content" like display. This will be used for

  * exhibitor: display exhibitors list (cards) / page view (main content of
    exhibitor with jitsi + suggestions on left);
  * tracks: display track list (cards + list) / page view (main content of
    track, with youtube and/or quiz + suggestions on left);
  * community: display room list (cards) / page view (main content of room
    with jitsi + suggestions on left);

Incoming modules will soon use this SCSS.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)
Task ID-2299857 (Event Design Review)
Task ID-2284043 (Visitor-based track wishlist)
Task ID-2283738 (Sponsors -> Exhibitors upgrade)
Task ID-2283735 (Talks -> Session upgrade)
Task ID-2283742 (Community gathering on chat rooms)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
b3d2df460f [IMP] website_event_online: add time-related computation on events
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

PURPOSE

Reduce complexity of frontend templates and ease time-related display by
adding computed fields on event.

SPECIFICATIONS

Add following information to be used in future templates

  * is_ongoing: between start and end of event;
  * is_done: after end of event;
  * start_today: will start today, for example to display remaining hours
    before start;
  * start_remaining: remaining time before start;

Ensure timezone are correctly taken into account. Base heuristic is

  * datetime are stored in UTC in database;
  * TZ of event is stored on date_tz of event;
  * make most computation based on UTC: compare UTC of current visitor to
    UTC of event datetime;

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
Thibault Delavallée 54dafd3b7f [IMP] website_event_online: support colors on tags
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

PURPOSE

Tags are not really user friendly in current website event. Add colors !

SPECIFICATIONS

Add colors on event tag model. That way they put more color and emphasis on
frontend. Allow to edit them from backend using color widget.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flo)
2020-08-04 14:28:29 +00:00
ae8ac2ebb3 [IMP] website_event(_track)_online: improve registration flow
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, .

PURPOSE

Improve the overall registration flow. In addition to already improved features
(email, standard pages), some improvements are done here specifically for
Online feature.

SPECIFICATIONS: REGISTER MENU

Add a register button to the right that can be removed through an option on
the event itself. Currently register menu is lost within other event menus.
In this commit we add a CTA to the right lf event naviguation in order to show
it to customers. If current user has registered this button is not displayed.

This is done in addition to already existing register menu. This one can be
tweaked through frontend menu edition. CTA has another purpose, bringing
people to register through a visible CTA.

SPECIFICATIONS: REGISTRATION CONFIMATION

At the end of registration process, add a link to the talks. It allows to
send people directly to the talk page in order to complete their wishlist.

SPECIFICATIONS: IS PARTICIPATING

Make "is participating" field functionally working for public users. It is now
computed based on visitor. If a visitor is available check its registrations
in order to determine if current user has registered to the event.

Remove support of 'email' based computation of "is participating" as this is
quite unsafe: partner and visitor should give results interesting enough.h.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
96da588891 [IMP] website_event(_track)_online: improve pages and menus management
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

PURPOSE

Improve menu generation, linked to website_event and website_event_track.
Also remove frontend menu management, getting back backend management.

SPECIFICATIONS: MENU GENERATION

Add sequence to menus, allowing to ensure order of menus. This is done through
an override of some methods, leading to a transparent modification of behavior.

SPECIFICATIONS: MENU MANAGEMENT

Remove front-end menu management. Keep only the global "website menu" customize
option. Indeed it is quite slow and clutters the frontend management UI.

Get fields back on event and event type backend views. Put them in group noone
to avoid having too much fields on form view while allowing to thune them.

JS and code allowing to manage through frontend is simply de-activated in this
commit. That way existing use of website_event(_track) is not impacted by this
commit.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
8d37126629 [IMP] website_event_track_online : add wishlist mechanism on event tracks
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

PURPOSE

Allow visitors and logged users to wishlist tracks and link tracks to visitors.
Purpose is to improve engagement and promote tracks before an event.

SPECIFICATIONS: TRACK WISHLIST

Add a link between visitors or partners, and tracks. This link is done in a new
many2many relationship build on event.track.visitor new model. It is used to
store the wishlist flag. That way even public users can wishlist a track
using their visitor.

At login, information is propagated to their partner. It means that wishlist
are saved if customer logs in or registers.

We also add a widget for frontend pages. It allows to toggle the wishlist flag
on tracks. It is based on visitor and/or current user, leading to a complete
flow even for anonymous people.

We allow to set some tracks as "keynotes". Those are considered as wishlisted
by default. In order to avoid storing too much information, we do not create an
entry in the wishlist table for each attendee. We simply consider all event
attendees to have wishlisted this track by default. In order to be able to mute
a keynote, a blacklist mechanism is implemented. Using the same relationship
table between visitors or partners and tracks, a flag is added that blacklists
the track.

Fields are added on visitor allowing to dynamically build a domain to find
visitors that wishlisted a track (or did not blacklist list in case of default
wishlist). This could be used for example to automatically contact attendees
before a track, like what is done in enterprise counterpart of this merge.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow
Task ID-2284043 (Visitor-based track wishlist)
Task ID-2283869 (Notify attendees by push)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
0659a500ef [IMP] website_event_online: ensure to link visitor at registration
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

PURPOSE

Ensure to have a visitor when people registers, in order to enable wishlist
or notifications. Improve visitor model to keep information when people change
device.

SPECIFICATIONS: REGISTRATION FLOW

This commit ensures a visitor is created when a registration is done on an
event. Creation is done only if a visitor does not already exists like all
visitor-based flows.

In case of multiple registrations made by the same visitor, only the first
registration is linked to the created/existing visitor. We take the opportunity
to update the visitor's information based on the registration's infos.

We also add some fields to get all visitors from an event, based on visitor
and registration link. This could be used for example to contact them, like
sending a mailing or push notification to all attendees of an event.

SPECIFICATIONS: VISITOR LOGIN / INFORMATION UPDATE

When a user is linked to a visitor (e.g. when customer logs in) its partner
is propagated to the registration. Using visitor as middle-model it allows
to propagate information through those models, leading to better contact
data notably.

SPECIFICATIONS: VISITOR IMPROVEMENTS + PUSH TOKEN

In this commit we improve visitor behavior. Currently when there are several
visitors that may be linked to the same user, only the last one is kept and
other one are unlinked.

However visitor model holds push tokens, allowing to store approval for push
notifications. Unlinking records is therefore a bad idea as we may loose
information. In order to solve this an intermediate solution is implemented.
A new parent_id field is added on visitors. Instead of unlinking "duplicates"
we link them to the parent and de-activate them. This means more visitors
are present in database, but this is required to keep push tokens.

A better solution would probably be to separate visitor from push tokens
but as this merge targets a stable version it was difficult to do in a clean
way.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow
Task ID-2284043 (Visitor-based track wishlist)
Task ID-2283869 (Notify attendees by push)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
506832302d [IMP] website_event_online: add base for tests
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

PURPOSE

In this commit we add base for tests linked to online event and all its
sub modules.

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
8793b9b425 [ADD] website_event_*: add Online Event support base modules
RATIONALE

Events are sometimes held online, gathering a community. In this merge we
improve Event application to better support full-online events with improved
tracks, wishlists, chat rooms, ...

PURPOSE

Add base modules for some incoming Online Event features.

SPECIFICATIONS

This commit simply adds modules to be completed while working on new Online
Event feature. This is mainly done to ease future work as Online Event was
developed in a stable release, leading to some restrictions for pre-merging
and organizing commits.

Containing :

  * website_jitsi: allow to manage jitsi-based chat rooms, with widget to
    integrate into website pages;
  * website_event_online: website_event upgrades required to support online
    event;
  * website_event_track_online: website_event_track upgrades required to
    support online tracks;
  * website_event_meet: chat and discussions rooms online, allowing to gather
    a community online in an event;
  * website_event_track_exhibitor: sponsors -> exhibitors upgrade with chat
    capabilities, new list and page views;
  * website_event_track_session: new session-based tracks display and
    management, new list and page views;
  * website_event_track_live: support youtube and streaming on tracks, as well
    as improved next video suggestion;
  * website_event_track_quiz: add gamification tools on tracks. Allow to gain
    points with quiz on talks;

As well as some bridge modules

  * website_event_meet_quiz: integrate leaderboard in community rooms;
  * website_event_track_live_quiz: integrate quiz and streaming;

Future commits will fill those modules

LINKS

Community PR #53540
Enterprise PR odoo/enterprise#11384

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)
Task ID-2299857 (Event Design Review)
Task ID-2284043 (Visitor-based track wishlist)
Task ID-2283869 (Notify attendees by push)
Task ID-2283738 (Sponsors -> Exhibitors upgrade)
Task ID-2283735 (Talks -> Session upgrade)
Task ID-2283771 (Quizzes on Talks, Leaderboard)
Task ID-2283742 (Community gathering on chat rooms)
Task ID-2291344 (Integrate Twitter Wall)

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Quentin Mourier <qmo@odoo.com>
Co-Authored-By: Stéphane Debauche <std@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
Jérémy Hennecart 1ea07e47fc [FIX] website_calendar: remove privacy in search filter
Remove the field privacy in the search view since privacy
is not considered as a public field.

task-2285901

closes odoo/odoo#55398

X-original-commit: 0f6a531dcd7bba270ba83627d7140a76459c6d08
Related: odoo/enterprise#12193
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-04 14:26:58 +00:00
Pierre Collinet (pic) af7b23f4ae [IMP] crm: Redirect to activity view from systray
Purpose: Redirect to lead activity view when clicking
on activity systray for leads. The idea is to give the
user a quick overview of his "To Do List" activities.

Specification: The path from the systray (opportunity/leads)
should redirect to the view with the buttons instead of the
one from the pipeline.

On top of the existing filters/domain, it adds the time-based
filter : Today, Late, Future Activities, ...

Task ID-2281254
Community PR odoo#55383

closes odoo/odoo#55413

X-original-commit: 0cee7f48ce44cea6aa31fcace40206eaed5315ca
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-04 15:09:20 +00:00
Thibault Delavallée 656e322be8 [FIX] crm: convert values given to computed fields
Followup of 9c9f477f04e8f4ee9b18092fe894890c2ab31b58 and f8179007f9aa662be7318edeb18426ea1c906c15

In some cases (notably event_crm addon in 13.4) a country record is propagated
instead of a country ID; converting as write values ensure we always deal with
IDs in all cases.

Also add some tests to cover more test cases. Notably phone and email behavior
in 13.3 compared to other fields. For example phone is kept is partner's phone
is void. It may leads to inconsistencies (partner US, Belgian phone number).
We think it is better to keep values and let salesmen change them than
voiding values customer gave.

PR #55390
Task ID-2311981

closes odoo/odoo#55412

X-original-commit: a26735f516e48acb77e234862e17e29be71d7d1d
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-04 15:08:57 +00:00
Thibault Delavallée e3b9ad64f6 [FIX] crm: do not propagate void email / phone of partner to lead
Consider a lead with valid email and/or phone. Some process assign a partner
to it, like mass convert. This partner has no email and/or phone. We should
not void lead values for email and/or phone, as this is information loss.

This is a followup of 89ca89ca92 . Test cases are added to try to
avoid future regressions.

Task ID 2311981
PR #54619

X-original-commit: 0b69d98cf4cbd2c99d7c3fb510e324f49652eea5
2020-08-04 15:08:56 +00:00
Thibault Francois 1aaed1ce64 [FIX] crm: select a partner on lead keep old value
FIXUP of 9c9f477f04e8f4ee9b18092fe894890c2ab31b58
         [FIX] crm_lead: do not erase computed field based on partner

Don't erase the field on the lead if you emptied the field partner_id
but erase them if you select a partner_id that have empty value
for the corresponding field
otherwise you end up with mixed address field.

Make an exception for the phone and the email_from
Keep the value from the lead if the partner_id has no value
for those field

X-original-commit: ed3979f84e65ebfa9534f12196a8fa41cade8370
2020-08-04 15:08:56 +00:00
Thibault Francois e6cb48b7e4 [FIX] crm_lead: do not erase computed field based on partner
Issue:
When you write partner_id = False on a lead
it erase all the values computed based on the res.partner
this lead to data loss during the conversion to opportunies
by the lead assignation process

Solution:
Revert to v13.0 behavior, don't erase the value
of the address, phone, email when the partner is set to
False

+ Fix typo in method name

X-original-commit: 21db6cf93fea7d07ec4a8655fc6030a177abc36f
2020-08-04 15:08:56 +00:00
Yannick Tivisse 62355b6ad3 [FIX] test_new_api: Fix bad shared cache usage for stored computed fields
Purpose
=======

Since the 13.0, a regression has been introduced in hr_timesheet.

Considering:
- The account.analytic.line model, representing a timesheet entry
- The project.task model, representing a task, on which we have the fields:
    - timesheet_ids: One2many
    - planned_hours: Computed (sudo), stored, representing the sum of the timesheet amounts
- An ir.rule restricting the timesheets CRUD to his own only.

A user can only see its own timesheets on a task, but the field "Planned Hours",
which is stored-compute_sudo, should take all the timesheet lines into account

However, when adding a new line and then recomputing the value, no existing line
from another user is binded on self, then the value is erased and saved on the
database.

Specification
=============

This commit introduces a test that illustrates that bad usage of a shared cache.

A correct way to fix this could be to avoid using the cache if an ir.rule is pointing
to the related model. That would force the recomputation in a real sudoed environment.

closes odoo/odoo#55408

Taskid: 2285924
X-original-commit: 50e229fe66b2a82717d4260287e18a875bbd26f5
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-08-04 15:01:45 +00:00
Krunal Trivedi eecb1e01fc [FIX] portal_rating: fix traceback on rating
before this commit:
when user provides feedback on chatter without selecting rating stars
it generates an error and prevents from submitting feedback.
in this commit:
changed default_rating_value to zero in order to prevent the error.
now, it is possible to provide feedback without selecting rating stars.

task-2268849
Closes https://github.com/odoo/odoo/pull/52295

closes odoo/odoo#55397

X-original-commit: dcb47d03db73b7ca8a18f50cdb14abf704e3ac52
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-04 14:26:35 +00:00
Odoo's Mergebot 82a25bf916 [MERGE] web,lunch: searchpanel: stop storing active categories
Three major changes are introduced in this PR:

1. The loading of the action model extensions has been split:
- when calling load, a first promise is returned. It is meant to be
resolved as soon as all the query informations are available.
- a second promise returned by a new method "isReady" is resolved when
all of the extension data have been fetched.
This difference allows to not wait for server calls irrelevant for the
query. By default "isReady" will always wait for a full load call, but
this is meant to be overridden in case optimisations can be made.

2. The local storage logic of the search panel has been moved into the
documents module.

3. Point 2. allows for a variety of optimisations now that we do not have
to constantly wait for a potential default value hidden in the storage.
This is why this PR also introduces a way for the search panel model
extension to sometimes return its query informations sooner than after
being completely loaded.

Enterprise PR: https://github.com/odoo/enterprise/pull/12067

closes odoo/odoo#55049

Task: 2284207
Related: odoo/enterprise#12067
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-08-04 15:40:10 +02:00
Julien Mougenot 2524c7aaac [IMP] web: Do not store search panel categories
This commit handles two things:

1) Move the local storage logic of the search panel into the documents
module.

2) This allows for a variety of optimisations now that we do not have to
constantly wait for a potential default value hidden in the storage.
This is why this commit also introduces a way for the search panel model
extension to sometimes return its query informations sooner than after
being completely loaded.

Task 2284207
2020-08-04 12:46:27 +00:00
Julien Mougenot cc6a60bec9 [IMP] web: Optimize action model loading
The loading of the action model extensions have been split in this
commit:
- when calling load, a first promise is returned. It is meant to be
resolved as soon as all the query informations are available.
- a second promise returned by a new method "isReady" is resolved when
all of the extension data have been fetched.

This difference allow to not wait for server calls irrelevant for the
query. By default "isReady" will always wait for a full load call, but
this is meant to be overridden in case optimisations can be made.
2020-08-04 12:44:18 +00:00
Julien Mougenot 6e780b2e4f [IMP] lunch: Make dispatch actions synchronous
Before this commit, the return value of some of the dispatch actions of
the lunch model extension was wrapped inside a promise with the use of
the "async" keyword. This caused the synchronous aspect of all these
methods to be delayed.

Now they are not longer asynchronous.
2020-08-04 12:44:18 +00:00
Julien Mougenot f8ab35f9e1 [IMP] web: Model: small simplifications
Small refactor of some aspects of the main model.js class to make it
more consistent and extensible.
2020-08-04 12:44:18 +00:00
Martin Trigaux 918ccf5b0e [IMP] base: rename zh_TW
Use "繁體中文" instead of "正體字"
It is a synonym but it is a bit more formal. It is also more coherent
with "简体中文" used for zh_CN

closes odoo/odoo#55387

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-08-04 11:04:36 +00:00
Yousef Al-Hadhrami 00048bd24c [FIX] web: avoid double switching in RTL
The direction arrows in the datepicker were switched a first time in
fontawesome_overridden.scss

  .o_rtl
    ..fa-chevron-left,.fa-chevron-right
       transform: rotate(-180deg);

and a second time in datepicker.scss
  .o_rtl
     .bootstrap-datetimepicker-widget
        .prev,.next
	   transform: rotate(180deg);

The buttons were flipped twice

Signed the Odoo CLA

Fixes odoo/odoo#50090
Closes odoo/odoo#53369

closes odoo/odoo#54880

X-original-commit: 8629fa3fdfddbf24f48a58d5add0fcadca60fba4
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-08-04 10:53:15 +00:00
shs-odoo 116b9f1450 [IMP] hr_attendance: Remove duplicate Kiosk mode menu
Currently, there are two Kiosk mode menu in the attendance app when
we open the app we can see Two kiosk mode menu one in main menu add
second is a sub-menu of the manager menu.

purpose of this task to remove the Kiosk mode menu which is a submenu
of manager because attedance manager will always have employee officer
right which will enable the kiosk menu of employee on attendance.

closes odoo/odoo#54412

Taskid: 2296263
Closes: #54412
Related: odoo/upgrade#1475
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-08-04 05:00:48 +00:00
Laurent Smet 45c9dc8e38 [FIX] account: Fix counterpart account for cash difference
The cash difference line created on a statement using a cash journal should use the loss/profit account.
Then, the line is supposed to be marked as reconciled and then, doesn't appear in the bank reconciliation report.

closes odoo/odoo#55336

X-original-commit: 60e32447cc3fda3650aa718cb0996d29976005d4
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2020-08-04 06:54:45 +00:00
Julien Mougenot f21dc0c84b [DOC] doc: Document "today" and "now" in context
Documentation of the affected blocks have been updated to inform about
the contents of the "today" and "now" context values.

closes odoo/odoo#54438

Related: odoo/enterprise#11831
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-08-04 08:25:37 +00:00
Nisha patel 2c9d14cfa3 [FIX] hr_timesheet: Allow to update the empty description on timesheet
Currently, In timesheet module when we update the description of
existing entry and if the description is empty then it generates
required field error.

So in this commit, when a description updated as an empty then we
set a default '/' in the description.

closes odoo/odoo#55370

Taskid: 2301377
Closes: #54726
X-original-commit: 10cecadd05f0349765dc9cdb111e91c2d6d423b4
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-08-04 07:43:45 +00:00
Anh Thao Pham (pta) 365dc62c93 [FIX] purchase/sale_product_matrix: fix sequence of order lines
- Install Sales and Sale Matrix
- Go to Sales > Configuration > Settings and activate "Variant Grid Entry"
- Go to Products and edit a product with variants (lets call it "Product A"):
  * For "Sales Variant Selection" in "Variants tab", choose "Order Grid Entry"
- Go to Sales > Orders > Quotations and create a quotation
  * Add any product without Variant Selection set to "Order Grid Entry"
  * Add "Product A" with 1 attribute
  * Add any product without Variant Selection set to "Order Grid Entry"
- Here there are 3 products in the quotation with "Product A" at the second position
- Save the quotation
After the save the position of "Product A" is moved to the last position.

In a new quotation, every new order line has a sequence set to 10, except for products
with Variant Selection set to "Order Grid Entry" that set the sequence to the previous one +1,
which will put it in the last position even if another product is added after it.

[All of the above steps and explanations can also be applied to Purchase]

opw-2303096

closes odoo/odoo#55342

X-original-commit: 17c1caec4fefd089586c62c40ac5a2232eed3dcc
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-08-03 15:19:24 +00:00
Arnaud Baes e106c6af7f [FIX] hr_recruitment: OdooBot assigned as Applicant Responsible
When someone is applying to any job position from the website
( via the `/website_form/` route ), the `hr.applicant` record
is created by OdooBot, and in such case, the `_compute_user`
method is never triggered as the field `user_id` (Responsible)
already has self.env.uid as default value.

This fix will in priority try to set a proper Responsible (if any
is defined on the job position) via `_compute_user` and then
assign `self.env.uid` if none is found.

closes odoo/odoo#55146

X-original-commit: e9292cb424ec04823dbce964ad4532edc20190c6
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-07-29 14:01:42 +00:00
Simon Genin (ges) 8a6a4766d9 [IMP] hr_employee: improve form usability
Improve slightly the layout of some forms related to employee and contracts.

Modified modules:
hr
hr_expense
hr_holidays
timesheet_grid
hr_contract_salary
hr_payroll_account

Task ID 2277298

closes odoo/odoo#52981

Related: odoo/enterprise#11156
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-08-04 09:21:00 +00:00
Aurélien Warnon 4abe3ea9c7 [IMP] survey: animate leaderboard in survey sessions
Purpose
=======

This commit intends to improve the animations on the leaderboard during survey
sessions. We now show both the ranking of each attendee before and after taking
into account the current question scores.

It allows attendees to see their position in the leaderboard shifting up / down
depending on how well they answered, and adds a bit more interactivity during
the session.

Specs
=====

The code changes to make this happen implied having multiple layers of
animations running one after the other.
The use of async/await in the JS allowed for a much smoother and less indented
code, simplifying the reading.

We now have 2 different "bars" to handle:
The bar that shows the previous leaderboard position.
The bar that shows the current question score.

This means we handle both jQuery items and modify their size & transition
properties depending on our animation.

Unfortunately, all these animations required a lot of testing to find fitting
timings, which means using quite a few setTimeout with "magic" delays.
These were just the most good looking ones and it feels like naming them with
a constant would not really help.

We also slightly improved the graphic font size / styling to make it easier to
read for potentially far away attendees.

Task 2235815

closes odoo/odoo#50991

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-04 07:47:25 +00:00
Didier (did) 20b34ae867 [FIX] mass_mailing : remove space between alerts
Before this commit there is space between alerts. It's not pretty.
It only occur when a mailing is scheduled and mail have already be send (or in progress)

task-2275560

closes odoo/odoo#55376

X-original-commit: 84c5ba24ad5e8a2371e5ca75884298d569bf2844
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-04 08:38:29 +00:00
Parveen c653afc81e [IMP] account: add return value
This allows the method to be called in RPC
The nil extension has not been enabled as explained at odoo/odoo#12289

closes odoo/odoo#55374

Cla: signature for parveenjangra290
X-original-commit: abac62f35c8cd293143e01c137c79519897eb21c
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-08-04 08:20:15 +00:00
Aaron Bohy 721f38b11d [FIX] base: can execute action from settings
Before this commit, when being in a settings form view with at
least two items in the breadcrumbs (the settings view preceeded by
another one), clicking on a button to execute an action didn't
properly work: an history back was done instead, thus returning to
the previous action.

For instance, go to Sales (without demo data), click on 'Set
payments' in the onboarding banner, click 'Go to the configuration
panel', and in the settings view click on 'Install More Packages'.

The issue has been introduced by [1], but we couldn't find a
scenario to reproduce it before saas-13.3.

[1] a3845ae3f0

Issue spotted in task 2277314

closes odoo/odoo#55351

X-original-commit: 6ccb108e9a621a672fde715ea78656ffeb6834e5
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-08-03 16:17:19 +00:00
Odoo's Mergebot ee623f1f26 [FW][MERGE][FIX] survey: apply multiple fix on conditional configuration and free text section
PURPOSE

Purpose of this merge is to provide several fixes to survey application
notably on conditional configuration and free text sections.

SPECIFICATIONS

This merge fixes multiple issues :

- Free text section display depending of conditional configuration and user input :
   For page_per_question and page_per_section layout :
    - If the section has a description:
        - If the section is empty: show the section
        - If the section has questions,
            - If any of the section's questions is active: show the section
            - Else: hide the section

- Do not compute last question based on conditional questions in session manager

- Do not show leaderboards if no nickname question in survey (if attendees cannot identify themselves).

- Block shortcut key selection after question answered (or time limit ran out) in session mode.

- Only display section if contains questions or description, even on non conditional survey ( + in breadcrumb, in print mode)

- Display only answered question in survey review mode

- Avoid auto Submit when selecting other option

- Restore mistakenly removed back buttons

- Fix is_last_page_or_question
    The current question is the last one only if:
        - There are no active questions that follows
        - AND the current question is not conditionning the display of other questions

See sub-commits for more details.

Task ID-2225393

closes odoo/odoo#55026

Forward-port-of: odoo/odoo#48978
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-04 08:44:36 +02:00
Christophe Monniez 12f035db8b [FIX] base: fix qweb ast validation with python 3.8.4
In python 3.8.4, when the ast.Name method is used with either `True`,
`False` and `None`, an ValueError is raised [1].

Because of that, Odoo fails to validate some Qweb views when used with
this particular Python version.

This fix is needed as Python 3.8.4 will be the default in the next
Debian version [2].

1: https://docs.python.org/3/whatsnew/changelog.html#id7
2: https://packages.debian.org/bullseye/python3.8

closes odoo/odoo#55305

Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
2020-08-03 11:56:07 +00:00
Nisha patel e0a7add01f [FIX] project: Fix sub-tasks stat button count
Currently, In the project module, the archived/deleted sub-task is
not deducted from the count of the 'sub-tasks' stat button.

Steps to reproduce:
 - Go to Project > Configuration > Settings > Enable 'sub-tasks'
 - Go to a Project with sub-tasks enabled, open a task and create a sub-task
 - Archive/Delete this sub-task

So in this commit, we applied filter on sub-task which show only active
sub-task on the stat button.

closes odoo/odoo#55347

Taskid: 2304887
Closes: #54904
X-original-commit: 81db237e3324922ff16f2b290922f21d98046738
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-08-03 15:49:52 +00:00
Sébastien Theys ba03b6c697 [FIX] mail: save JS records per model and use exists if possible
This allows get to be simplified to only handle local id.

Part of task-2308312

closes odoo/odoo#55346

X-original-commit: fa013d1d29e64706a08499d0f564327766410f8e
Related: odoo/enterprise#12159
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-08-03 15:49:04 +00:00
Sébastien Theys fe029223a5 [FIX] mail: speed up JS models by better using JS language
- use Map for _toComputeFields
- factorize const access out of loops
- avoid Object.entries
- introduces `exists` method to avoid costly call to `get`
- ensure compute are using update to trigger potential _updateAfter

Part of task-2308312

X-original-commit: e364886c2450872a7e42cef549f253b10e55158d
2020-08-03 15:49:04 +00:00
Sébastien Theys 1d7285dc56 [FIX] mail: speed up JS models x2m link/unlink by keeping prev Set
Part of task-2308312

X-original-commit: 1a06077443582f99f58c8c62ab517e7e527f58ed
2020-08-03 15:49:03 +00:00