Commit Graph
137453 Commits
Author SHA1 Message Date
Michael Mattiello (mcm) faab9ee9f6 [FIX] web: form: prevent from calling mounted twice
With this commit, the FormRenderer no longer directly extends
the WidgetAdapterMixin. It doesn't need to as its parent class
(the BasicRenderer) already uses it. Worse, they both called
WidgetAdapterMixin.on_attach_callback, and thus mounted
was called twice on Components in form views.

closes odoo/odoo#55401

X-original-commit: 4c627abd310a131a4828e9ee6be451aeee4708db
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-08-05 11:54:42 +00:00
Kevin Baptiste f1bbc282f8 [IMP] base: replace forecast with planning
This commit replaces the forecast application with planning.

closes odoo/odoo#52822

Taskid: 2253541
Related: odoo/enterprise#11082
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-08-04 13:12:26 +00:00
Thibault Delavallée cba8448487 [FW][FIX] website_event_track_(online, session): do not display colorless tags
Colorless tags on tracks are considered as used in backend only for
internal organization. They should not be displayed in frontend
notably

  * not in search dropdowns;
  * not in agenda;
  * not in cards / list views;

If a tag category holds only colorless tags, do not display as a void search
dropdown in frontend, hide it.

Followup of 981f95bbf46658eda9f2d33751b9310cc67d86aa

closes odoo/odoo#55445

X-original-commit: 5c09e2135cda2c76b179d264ff4e49a4909d5285
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-05 09:50:18 +00:00
Romeo Fragomeli 5a845325ee [FIX] portal: Avoid error at login with portal user on mobile
Before this commit, some errors were shown to the end user when
he tried to login to the mobile app with a portal user.
The problem is the user was stuck to a blank page and wasn't
able to logout even after reloading the app.

Note that even if portal users aren't supposed to access to the
backend, it's quite annoying to not be able to go back.

After this commit, portal users are automatically redirected to
the portal page ("/my") if they try go to "/web". This is the same
behavior as when portal users login via "/web/login".
By doing this we avoid having custom code in the native apps
because we already avoid any login to the app if we are out of "/web".

Note: this commit doesn't cover all cases as portal users are defined in
the "base" module and the portal page is set in the "portal" module.
So this this fix will not work if "portal" is not installed and if you
manually created a portal user (only possible in debug mode).
This is unlikely and we therefore consider that this fix covers the
majority of cases while being the safest.

Task ID: 2266024
opw-2281168

closes odoo/odoo#55439

X-original-commit: 29cbba73a71990e76f497ee892ce16fc7fc53d9f
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2020-08-05 08:26:09 +00:00
Antoine Prieels 0c3fe8736d [IMP] point_of_sale: Product configurator
Configure products with create_variants = 'never' from the POS

closes odoo/odoo#54956

Taskid: 208205
Related: odoo/upgrade#1522
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
2020-07-30 13:08:24 +00:00
shs-odooandNisha Patel d35adaa030 [IMP] base,base_setup: Improve general languages settings
Purpose of the task is, We saw that users encounter difficulties
while installing languages so improve the user onboarding experience
when user wants to install a new language.

So in this commit,
 - Change the load langauge wizard title as 'Add Language' and rename
the button as 'Add'
 - Removed documentation link as it is not up to date
 - Added the 'Add language' button to general settings and it will open
the wizard to load the languages. and move the 'manage language' button
to the debug mode.
 - After install added button 'switch to (lang)	& close' to switch to
newly added language.

closes odoo/odoo#53581

Taskid: 2281393
Closes: #53581
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Co-authored-by: Nisha Patel <nit@odoo.com>
2020-07-17 12:47:34 +00:00
Arnold Moyaux 00dd5b224b [FIX] stock: duplicated set_values
commit 51425344bb96c3b2fee8c813549bbd4561172790 introduced
a duplicated set_values so the original one is ingored and
the transit location is never acivated

closes odoo/odoo#55419

X-original-commit: 6dba1f24627928cfecd84e364e24663c7e9d7806
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-08-04 15:35:53 +00:00
Odoo's Mergebot 91e3cb9d41 [FW][MERGE] website_event_*: support Online 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

In this merge, we add several features allowing to improve event experience
in your website, especially when dealing with fully online events. Those
features are added in several new modules :

  * 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, including visitor wishlist and PWA;
  * 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 quizzes 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;

See sub commits of this merge for more details and complete specifications
of all those new modules.

THANKS TO MIGHTY SM

This merge is a joint work of members of SM Team, namely @awa-odoo @dbeguin
and @tde-banana-odoo for the global followup of the project. Additional workforce
came from @qmo-odoo and @std-odoo , with inputs from @edi-odoo (design)
and @pparidans (PWA). This project was followed by @LNAodoo for specifications.

LINKS

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-2283729 (Live/Youtube Tracks)
Task ID-2283771 (Quizzes on Talks, Leaderboard)
Task ID-2283742 (Community gathering on chat rooms)
Task ID-2291344 (Integrate Twitter Wall)

See also
Task ID-2290016 (Visitor synchronization improvements) 86708c7
Task ID-2289148 (Event Bugprovements 1) 83c8012
Task ID-2300907 (Event Bugprovements 2) 0575092
Task ID-2304817 (Event Bugprovements 3) 3498640
Task ID-2309702 (Event Preparatory Merge 4) 2b5c0b4
Task ID-2310491 (Event Preparatory Merge 5) 69d2513
Task ID-2287372 (Fix Twitter Wall) odoo/enterprise@4843313
Task ID-2309964 (Color on track) ab1c1a9
Also 93aacc5 and 19d028a

Community PR #53540
Enterprise PR odoo/enterprise#11384

closes odoo/odoo#55402

Ps: New Event Yaaay !
Forward-port-of: #53540
Related: odoo/enterprise#12195
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-04 18:15:34 +02:00
Pierre Paridans bf2aead36f [IMP] website_event_track_online: add PWA support
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 PWA support. This will improve adoption and use of our Events application.

LINKS

Task ID-2252655 (Main Online Event task)
Task ID-2283796 (Event B2Basics / Registration Flow)
Task ID-1896623 (PWA Support)
2020-08-04 14:28:29 +00:00
Thibault Delavallée 0ba681f974 [ADD] test_event_full: add a test module containing a whole event-online 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

Have a module to test all those new features.

SPECIFICATIONS

Do as much tests as possible, which will probably be around "no time". At
least have a base module allowing to add them after main merge.

LINKS

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-2283729 (Live/Youtube Tracks)
Task ID-2283771 (Quizzes on Talks, Leaderboard)
Task ID-2283742 (Community gathering on chat rooms)
Task ID-2291344 (Integrate Twitter Wall)
2020-08-04 14:28:29 +00:00
10e162d3f1 [ADD] website_event_meet_quiz: integrate quiz within meet "Community" 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

This bridge module enables a better integration of the quiz features within the
website_event_meet "Community" frontend page.

SPECS

As both quiz and meet share the "Community" frontend page, this bridge adds a
small block on the existing meet template to display the top 3 of the quiz
leaderboard.

A link on that block allows users to reach the full leaderboard page where they
can see their own position and perform a simple search for other attendees.

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
92caab1901 [ADD] website_event_track_live_quiz: integrate quiz within live track
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

This bridge module enables a better integration of the quiz features within the
"next track suggestion" at the end of a track video.

The track suggestion mechanism will let the user choose to take the quiz before
being redirected to the next track. If he takes no action, he is redirected
automatically.

LINKS

Task ID-2283735 (Talks -> Session upgrade)
Task ID-2283729 (Live/Youtube Tracks)

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: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
fe17857e89 [ADD] website_event_track_quiz: add quiz feature on event.track
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 configure a quiz on event tracks, much like eLearning.
The quiz is taken at the end of the live stream / track video.
(Or when the talk is 'live' of 'done').

SPECIFICATIONS

Users can now configure an event.quiz on event.track.

The quiz is a simple collection of event.quiz.questions that in turn contain
a few event.quiz.answers.
Only one of the answer is considered as correct and should be configured with
"awarded_points" greater than 0.

On the event.track frontend page, attendees can take the quiz when the track
is "live" (or "done") and earn the total amount of configured awarded_points.
Each quiz can only be taken once (if you fail, you can't try again).

Attendees are then ranked in a leaderboard that is displayed in the "Community"
section of the event frontend menus.
The leaderboard allows to see your own position as well as basic search for
other attendees.
The points earned during the event are event-specific and will not be shared
with other instances of event.event.

Points as well as quiz completion are stored in the relationship between a
visitor and a track (event.track.visitor).

The models are very much based on a similar feature in website_slides, even
though the implementation in event is not karma based.
We will probably have to merge the features later into a base gamification_quiz
module.

LINKS

Task ID-2252655 (Main Online Event task)
Task ID-2283771 (Quizzes on Talks, Leaderboard)

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: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
fab82c73a5 [ADD] website_event_track_live: configure Youtube videos / streams 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 to include a youtube video / live stream on event tracks and update the
interface to show "online" capabilities.

SPECIFICATIONS

This commit improves the existing event.tracks to include the possibility to
configure a Youtube live stream or video.

The frontend view of the track was adapted accordingly to show the stream /
video instead of the track description when available.

At the end of the video, the track view will automatically suggest a next track
to the attendee in order to keep him looping through interesting tracks.
Those suggestions are based on an algorithm that tries to select the track that
would be the most interesting to this attendee based on his wishlist, similar
tags with current track, same room, ...

In addition, we automatically fallback to a Youtube thumbnail for tracks
website image when available.

We support two youtube modes

  * streaming: start and end of video is detected based on youtube API;
  * replay: boolean flag on track, telling the video is a static one, allowing
    to know by advance the end of video, and to pre-compute thumbnail and give
    early access if necessary;

KNOWN LIMITATIONS

Tracks do not hold any protection for payment-based tickets. Everything that
is published is available using standard ACLs. Content protection based on
tickets is currently not supported.

LINKS

Task ID-2252655 (Main Online Event task)
Task ID-2283735 (Talks -> Session upgrade)
Task ID-2283729 (Live/Youtube Tracks)

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
e73ec2ddb9 [ADD] website_event_track_session: new session mode for 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

Purpose of this commit is to completely redesign the talks pages and frontend
flow. Notably better showcase live or upcoming talks, have a usable tracks list,
provide reworked page view with tracks suggestions, ...

SPECIFICATIONS

Mockups are given in https://docs.google.com/presentation/d/1VSxp2luUvp9xLFq9d1Wy-6IC0mP0NA8vLmh44WE5PCs/edit#slide=id.g891af57392_0_84

Main ideas are

  * new pages: view for all tracks and view for a specific track
  * list view: display two sections (Live Now, Coming Soon) displaying track
    cards. After that a list view of tracks by date. This page allows to filter
    tracks on tags and search on them;
  * page view: revamped view of a track. Two tabs: main content holds track
    description and information. Aside tab contains suggestions of tracks
    based on a given heuristics;

SPECIFICATIONS: LIST VIEW: LIVE SECTIONS

Have 2 sections: Live Now and Coming Soon. Live Now contains tracks currently
running. Coming Soon displays tracks that begins within 30 minutes.

In those sections, tracks are listed as cards with basic informations: cover
picture, title, speakers, remaining time before start or time since it has
started, ... Use the reminder widget to allow people to wishlist tracks.

Clicking on a card redirect to the track page view.

SPECIFICATIONS: LIST VIEW

Display a list view of tracks under those sections. Use a table-like display
in desktop, more card-based in mobile to ease reading. Each day is a section
of the list view, a bit like the agenda. For each track, display its name,
tags, speaker, duration. If it starts today, display remaining time. Otherwise
display its start datetime. For done tracks, do not display any time
information as it is not useful anymore. Display reminder widget on tracks
that are not done.

Accepted stages should be displayed text-only to customers. That way they
know the track exists but they cannot see the track page. Even managers
see links to be able to edit or publish tracks.

SPECIFICATIONS: PAGE VIEW

Display a main content tab, with track description and speaker information.

Display an aside tab, with track suggestions following this heuristics
  * live first;
  * then ordered by start date, finished being sent to the end;
  * wishlisted (manually or by default);
  * tag matching with current track;
  * location matching with current track;
  * finally a random to have an "equivalent wave" randomly given;
As with track list, accepted tracks are not clickable for customers.

In mobile, main content should take the whole screen and aside should be
collapsed. That way we put emphasis on main content.

SPECIFICATIONS: CTA BUTTON

Allow to configure "Call to action" button on a track. It is now possible to
give configuration of a button that appears on the track page view, above the
other track suggestions tab.

This CTA should be configured using: its name, its URL, and its delay compared
to the track beginning. Before this delay it is not displayed. JS widget ensure
button is displayed even if the page is not reloaded, to make a super wow
effect especially with live session on track.

KNOWN LIMITATIONS

Tracks do not hold any protection for payment-based tickets. Everything that
is published is available using standard ACLs. Content protection based on
tickets is currently not supported.

LINKS

Task ID-2252655 (Main Online Event task)
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
813ba6520f [ADD] website_event_track_exhibitor: new sponsor display and management
ATIONALE

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 completely redesign the talks pages and frontend
flow. Notably better showcase live or upcoming talks, have a usable tracks list,
provide reworked page view with tracks suggestions, ...

SPECIFICATIONS

Mockups are given in https://docs.google.com/presentation/d/1VSxp2luUvp9xLFq9d1Wy-6IC0mP0NA8vLmh44WE5PCs/edit#slide=id.g891af57392_0_84

Main ideas are

  * based on sponsor: exhibitors are upgraded sponsor with chat capabilities;
  * new pages: view for all exhibitors and view for a specific exhibitor;
  * list view: display a cards-based view of exhibitors, ordered by sponsorship
    level. This page allows to filter exhibitors and search on them;
  * page view: new page view of an exhibitor. Two tabs: main content holds chat
    (jitsi-based) and information. Aside tab contains suggestions of exhibitors
    based on a given heuristics;

SPECIFICATIONS: EXHIBITOR

Use sponsor model. Upgrade it with a boolean flag telling it is an exhibitor.
By default exhibitors have a chat room configured, using the previously-added
chat.room model using jitsi. Add a catchphrase (slogan) as well as opening
hour support (hours when jitsi is available for customers).

SPECIFICATIONS: LIST VIEW

Display a cards-based view of exhibitors. Display basic informations: cover
picture, title, catchphrase, country. When clicking on an exhibitor, behavior
depends on configuration

  * before the event: redirect to /register (if not registered) or display a
    popup telling it is not started yet;
  * during the event: during meeting hours, open page view of exhibitor with
    jitsi-based chat room opened by default (if defined). Outside of opening
    hours, display a popul telling it is closed;
  * after event: display page view of exhibitor, jitsi is closed;

SPECIFICATIONS: PAGE VIEW

Display a main content tab, with exhibitor description, contact information.
If defined, display the jitsi room. This is the default behavior for exhibitors.

Display an aside tab, with exhibitors suggestions following this heuristics
  * currently opened;
  * same country;
  * same language;
  * finally a random to have an "equivalent wave" randomly given;

In mobile, main content should take the whole screen and aside should be
collapsed. That way we put emphasis on main content.

LINKS

Task ID-2252655 (Main Online Event task)
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
c918c58213 [ADD] website_event_meet: allow visitors to meet at online 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

Allow the website visitors to meet at online events using chat rooms. Those are
based on jitsi rooms previously added.

SPECIFICATIONS

Define a new model holding discussion rooms, with their target and a publish
management. Inherit from chat.room mixin to enable jitsi-based chat.

Any website visitor can create a meeting room based on Jitsi. Using some
information (name, summary, room size, languyage) anyone can launch a new
discussion topic. This will make a link with a new jitsi room enabling people
to chat. Visitor-community rooms creation can be turned off on event itself.

Meeting rooms can be pinned by the event managers to choose which rooms are
displayed on top. Managers can also duplicate the full meeting rooms if a topic
is popular, or publish/unpublish rooms like usual website records.

SPECIFICATIONS: LIST VIEW

Display a card-based list view of meeting rooms. They can be filtered by
language. When a meeting room reach the maximum number of participants it is
not visible anymore for standard visitors.

The meeting rooms unpinned are cleaned after a certain period of time if there
is no activity in it usign the autovacuum cron. That way we keep a clean view
on the frontend and we keep the important (pinned) meeting rooms.

SPECIFICATIONS: PAGE VIEW

Use the same main content / aside panel display as exhibitors / tracks, to
display the jitsi in the main content. Left panel proposes suggestions of
rooms, based on current one.

When a visitor join a meeting room, we fill the jitsi username with the name
he entered during his registration.

LINKS

Task ID-2252655 (Main Online Event task)
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: Stéphane Debauche <std@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
b990f71de0 [ADD] website_jitsi: allow to create Jitsi room on the frontend
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

Build a mixin to create and manage jitsi-based chat rooms on website.

SPECIFICATIONS: CHAT.ROOM

Add a new model `chat.room` which contains all the configuration of the Jitsi
room.

A mixin `chat.room.mixin` adds a many2one to any model inheriting from it. That
way behavior is optional without adding all fields on the model. We just need
to inherit from the mixin and to use the chat room widget to build chat room
on website for any model that needs it.

SPECIFICATIONS: WIDGET

Allow to give a default username when logging to jitsi if customers are logged.
That way they gain a step and can directly participate to chat rooms.

SPECIFICATIONS: PARTICIPANT COUNT

Jitsi do not provide a REST API (or a similar API) to get the number of
participant in a room (without hosting our own instance of Jitsi). The
only way to get the number of participant is to be in the room and to use
the Javascript API. That's why the participant send in RPC the number of
participant in the room, to update the counter on the server side.

We can not ask the user who is leaving to update the counter, because he
can close the tab on his browser (and so the event will not be triggered),
so, the first participant in the room send the update in RPC.

Update of participant is done using SQL in non blocking mode so that concurrent
accesses are not an issue. Even if participant count is not really accurate
this is not an issue as managers will monitor rooms.

LINKS

Task ID-2252655 (Main Online Event task)
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: Stéphane Debauche <std@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-08-04 14:28:29 +00:00
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