Commit Graph
140385 Commits
Author SHA1 Message Date
Laurent Smet d6141b0777 [REF] account: Make 'test_portal_attachment' independant to any demo data
--task: 2290120

closes odoo/odoo#55091

Related: odoo/enterprise#12083
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
2020-08-06 11:22:13 +00:00
Laurent Smet e2f81f182d [REF] account: Make the render report tour independant to any demo data
--task: 2290120
2020-08-06 11:22:06 +00:00
Laurent Smet 34d53ebc87 [REF] account: Add generic 'AccountTestInvoicingHttpCommon' class
Thanks to this setup, we will be able to run the tours independently to any demo data.
To do so, the HttpSavepointCase is born to do the same as HttpCase but with a setUpClass.

--task: 2290120
2020-08-06 11:20:27 +00:00
jbm-odoo 9dc3057e8e [ADD] calendar_microsoft: Synchronize Microsoft calendar with Odoo
TaskID 2223219

closes odoo/odoo#54936

Related: odoo/upgrade#1557
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-08-05 13:47:42 +00:00
qsm-odoo 78ef2ec813 [FIX] website: restore sub-headings edition toggling
Since [1], the sub-headings edition was not possible anymore in the
'options' tab of the editor panel. This is because the visibility of
rows is now automatic, depending of the visibility of the inner widgets.
The custom code for that row visibility, controlled by the user, was
thus not working anymore.

Note: this fix solves the problem with big hacks. Better code will
handle foldable zones generically.

[1]: https://github.com/odoo/odoo/commit/8d57f21d7df2033f462ead60fcb5abba4546213e

Part of https://github.com/odoo/odoo/pull/55529

closes odoo/odoo#55529

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-08-06 09:46:48 +00:00
qsm-odoo 6a258db1e9 [IMP] website, *: review the 'options' tab of editor panel
*: web_editor

This will more probably change again in the future but this is a first
step towards a hierarchized 'options' tab for the editor panel.

Part of https://github.com/odoo/odoo/pull/55529
2020-08-06 09:42:48 +00:00
Nicolas Martinelli 88fa6f774b [FIX] account: domain on product
- Create a product P which cannot be sold (purchase only)
- Create a customer invoice

The product can be select on the invoice.

The `sale_ok` (as well as the `purchase_ok`) field is not taken into
account in the domain.

The solution is a bit hacky but has the advantage to be safe in regards
to customizations.

opw-2308897

closes odoo/odoo#55442

X-original-commit: 88b0b664606bb42acf26165e2b7fdda44a15e0a7
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-08-05 09:06:12 +00:00
Loan (lse) cfc066c323 [FIX] website_sale: Wrong terms and conditions in created SO
To reproduce (V12) using a fresh database with demo data:
 1. Install eCommerce and Sales
 2. Change Mitchell Admin settings so that he can see the 3 companies
 3. Go into Settings and set a distinct "Terms and Conditions" text for each companies
 4. Go the Website > Configuration, set "My website" to "Company_1" and save
 5. Go to the website shop and buy any items
 6. Find its corresponding Sale order (should be on Company_1)
=> "Terms and Conditions" used in the SO is the one of "YourCompany"

Analysis:
The terms and conditions are not specified in the SO creation,
so it runs the default value code to determine its value.
However the default code just ask to use the OdooBot company "Terms and Conditions".
https://github.com/odoo/odoo/blob/b6bf91d26b8fb45997b266c16be620d834a97cc7/addons/sale/models/sale.py#L121

OPW-2297114

closes odoo/odoo#55424

X-original-commit: 60565b5cd42da080e36fee5a94bcf8eafd15934d
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-08-04 16:32:08 +00:00
Anh Thao Pham (pta) 87be1ab6c4 [FIX] snailmail: allow to configure timeout for snailmail
When sending a letter with a PDF containing pictures, it could happen that the default timeout of 15s is too short.

Parameter "snailmail.timeout" has been added to allow configuration of this timeout.
Also a default value of 30s has been set instead of 15s.

opw-2276125

closes odoo/odoo#55415

X-original-commit: 796373ae674248cb96c576ccb968d7f19a732317
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-08-04 15:23:16 +00:00
Bruno Zanotti (ADHOC) 44fb324f7a [CLA] add new member to Adhoc CLA
closes odoo/odoo#55527

X-original-commit: ac8d173064f033136f33272a8724e937e73b1b85
Signed-off-by: Josse Colpaert <jco@openerp.com>
2020-08-06 09:34:00 +00:00
Nasreddin (bon) cc1e7dce25 [FIX] mail: User following task can't add another follower
Issue

	- Login as Mitchell Admin
	- In Projects module, Create a new project
	- Set Visibility to 'Invited employees'
	- Create new task and assign it to Mitchell Admin
	- Edit the task and add Marc Demo as follower
	- Login as Marc Demo
	- Go to the task previously created
	- Add an other follower

	IrRule Error

Solution

	Use sudo() to find all followers of a document.

opw-2303443

closes odoo/odoo#55521

X-original-commit: e0d064ffe4013ed727bdc780a3d0a7c6b16e6e9c
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Signed-off-by: bon-odoo <nboulif@users.noreply.github.com>
2020-08-06 08:54:18 +00:00
Martin Trigaux 7879179204 [I18N] base: export source terms
Some module description had changed without updating the .pot

closes odoo/odoo#55503

X-original-commit: ae3c28fe189468e91872971c397e62bad30e28f0
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-08-06 07:09:15 +00:00
jvm-odoo 5bccaaad87 [FIX] web: fix autocomplete over datepicker
Issue

	- Sales > Create a quotation
	- Click on quotation date or start
	  writing in it

	On chrome, if addresses autocomplete is enable
	and have data to show, a dropdown will overflow
	on the datepicker

Cause

	This is mainly a chrome issue and the only way
	to solve it without a fix is to disable the
	autocomplete totally which is not really a
	solution since we want the autocomplete on
	adresses

Solution

	Add the autocomplete off on datepicker field

OPW-2308278

closes odoo/odoo#55470

X-original-commit: b40fef968ab000870574ae45ba482288cdf94ad1
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Jason Van Malder (jvm) <jvm@odoo.com>
2020-08-05 13:51:32 +00:00
Nidhi Patel d5cd02fcbb [FIX] web: Fix the skiped focus on radio
Currently, when form view is opened in edit mode and if you proceed
through the tab(keyboard) then focus is skiped on radio field.
For Ex: in project when you procceed through the tab it will skip the
visibility field radio.

The issue occurs because the radio is inherited from the selection
field and in selection field the focus is set on 'select' while
there is no method to set the focus in radio and radio does not have
'select' element it has 'input'

So in this commit, override the method getFocusableElement in radio
widget and set the focus on 'input' instead of 'select'.

closes odoo/odoo#52073

Taskid: 2252798
Closes: #52073
Related: odoo/upgrade#1430
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-08-05 12:56:25 +00:00
Nidhi Patel 4cc8fe2a98 [IMP] sale_timesheet: Invoicing wizard improvements
Purpose of this task is, the invoicing wizard is being able to
define a period with a start and an end date would allow a bit
more flexibility.

Currently, the invoicing wizard allows to invoice timesheets
up to a certain date.It is links all timesheets before or equals
this date in the sale order are invoiced.

In this commit, we add  another date field so that the user can
define a period with a start and an end date and rename the
'invoice timesheets up to' field into 'Timesheets Period'. Also,
use widget 'Daterange'  in both fields and update tooltips
accordingly this fields. By default we leave this two field empty.

After this commit behaviour of invoicing wizard:
 -If these fields are empty, include all timesheets without
  distinction in the invoice
 -If these fields are set, only include the timesheets that fall
  within this period in the invoice
 -If applicable, only include approved timesheets

TaskId:2252798
Closes: #52073
2020-08-05 12:56:25 +00:00
Nisha patel e249d2b434 [FIX] fleet: Fix model_count and category in the fleet
Currently, in Configuration > Service Type > Add a new service type.
The category field is mandatory but it does not appear on list view.

So in this commit, display the mandatory category field on list view

Currently, in Configuration > Manufacturers. The count of Models is
always 0 because the it's compute stored field without the depends
so not computed each time.

So in this commit, fix the count of models by adding a correct trigger

closes odoo/odoo#55475

Taskid: 2296851
Closes: #54515
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-08-05 14:27:54 +00:00
Joseph Caburnay 9ea0aca6ea [IMP] point_of_sale,pos_*: top bar improvements and ticket list
The following changes are made in this task:

1. Remove order tabs and replace with ticket list.
2. Top bar color change.
3. Search bar in the product screen is moved in the top bar.
4. List of sub-categories are now in the same line as the category
breadcrumbs.

closes odoo/odoo#55100

Task-id: 2276678
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
2020-08-05 13:35:08 +00:00
Kevin Baptiste 71f719a61e [IMP] resource: move unavailable intervals on resource.calendar
The method `_get_unavailable_intervals` was only available on
`resource.resource`. It's now moved to the `resource.calendar`.

closes odoo/odoo#51311

Taskid: 2253893
Related: odoo/enterprise#10616
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-07-02 06:48:45 +00:00
Kevin Baptiste d24de2554e [IMP] hr,hr_attendance,hr_contract,hr_holidays,hr_presence: update employees presence icons
Make the employee presence icons more descriptive.
Allow to quickly filter the Presence Reports based on the user status.

closes odoo/odoo#54527

Taskid: 2246447
Related: odoo/upgrade#1488
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-08-05 12:22:29 +00:00
Moisés López b6489f2763 [IMP] base_automation: Return early if there are not base.automation to process
Installing base_automation module the methods: create, write, unlink and compute_field
are patched.
So, they will be used  for all models.
It is important to save resources as possible.

The patched methods in base.automation read the original data
before to change so run all base.automation records.

But What about if there are not base.automation records?
So, we can save an extra read for all models

The same to pre-filter and post-filter
It adds a return early in order to skip this extra task when it will be useless.

closes odoo/odoo#52134

Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2020-05-29 07:23:28 +00:00
Thibault Delavallée cfbbc229d8 [IMP] test_mail_full: add mass_mailing test, notably for preview / browser view
Purpose of this commit is to add some mass mailing tests in test mail full
(with all community mailing capabilities installed). In this commit we notably
tests unsubscribe and view URLs computation in sent emails, as well as
the invisible preview block for email clients.

Task ID-2239327
Task ID-2239327
PR #49886

Related: odoo/enterprise#10091
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-05 13:55:04 +00:00
Thibault Delavallée c1865706b0 [FIX] test_mail_full, test_mass_mailing: fix some tool methods
Small improvements / fixes in tool methods used in python unit tests.

Task ID-2239327
Task ID-2239327
PR #49886
2020-08-05 13:55:04 +00:00
std-odoo ed4846dd9d [IMP] mass_mailing: add preview block for mailings
PURPOSE

When displaying an email in a list the mail client (gmail, outlook...) computes
a preview based on the content. This preview is generally not well computed as
it contains a lot of garbage and tags while it should contain only relevant
text.

SPECIFICATIONS

To build this preview, all mail clients read the content of the email.
The only way to be able to customize the preview is to add an invisible
HTML element at the beginning of the email with the wanted preview text.

We add at the end of the preview `&zwnj;` (zero-width non-joiner) to
fill the end of the preview in order to not have the beginning of the
mail at the end of the preview. It doesn't work with simple space as
the mail clients trim each HTML element content.

Task ID-2172125
PR #49886
2020-08-05 13:55:04 +00:00
Sébastien Mottet (oms) ac0579263b [IMP] mass_mailing: add 'view in browser' link in mailings
PURPOSE

Add a block that allows recipients to check the email in a browser in case
their mail service provider does not render it well or to see it full screen.

SPECIFICATIONS

A thumbnail has been added in the snippet thumbnails list of the mail editor.
It allows to add an header snippet. This snippet contains a link allowing the
recipient to see the mail in its browser instead of its mail client.

Add a route to display a mailing content. This route should be recipient
dependent as mailings could contain jinja markers. Using the same access token
and check as unsubscribe route this public route allows to display a mailing
content directly rendered for a given customer.

_get_unsubscribe_url method is moved from mail_mail to mailing as it does
not really belong to the mail model. Indeed it is mailing dependent.

A view URL leading to the view in browser route is added. It is managed like
the unsubscribe url: magically avoid shortening, magically rewrite when
sending email.

Task ID-2239327
PR #49886
2020-08-05 13:55:04 +00:00
william 0809601d6d [IMP] account: do not pollute test_reconciliation with unlink log
By deleting the res.currency.rate in the setUpClass, we do not pollute
the log with the unlink info, and the test is a little bit faster.

closes odoo/odoo#48651

Related: odoo/upgrade#1502
Related: odoo/enterprise#9559
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2020-08-05 11:57:10 +00:00
william 0ea9254c81 [IMP] account: fusion wizards for automatic entries
Task 2227389

The wizards for creating Accrual Entries and Transfer Entries are quite
similar. We are merging them as they share code and business logic.

Entries in the future should not be posted for both wizards, but set to
be auto posted instead.
2020-08-05 11:57:10 +00:00
william 82dc0cb7b9 [IMP] account: soft post entries in the future
Add an easy way to not post the entries in the future when calling
post() on it, but rather set it to be auto-posted at accounting date.
This is useful when we are creating a lot of entries in batch and some
might be in the future, some in the past, and we don't want to separate
that in two batch every time. (asset, accrual, transfer,... )
2020-08-05 11:57:10 +00:00
william 276ba8e90c [FIX] account: do not store account internal type on aml
It was removed here https://github.com/odoo/odoo/pull/32303 but readded
later. We still don't want it for the same reasons.
Having it on related (non stored) is enough.
2020-08-05 11:57:09 +00:00
Nicolas Lempereur 2b4981ec1f [FIX] website_profile: _prepare_user_value edit tl ok
In courses home page, we use _prepare_user_value to get values from
search strings as render values.

But for example this cause an issue in case of edit_translations, it
has no value but if present is set to `{'edit_translations': True}` in
context.

But _prepare_user_value will set it to context as:

  {'edit_translations': ''}

Which make translation not work on page that used
`_prepare_user_value(kw)` to get values for rendering.

opw-2305816
closes #55444

closes odoo/odoo#55457

X-original-commit: 11c5daae47b50c26ceebe8feb736352b7a27a85b
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2020-08-05 11:13:09 +00:00
Didier (did) c69f2c9a3d [FIX] mail: tab cycling between chat window
Before this commit, cycling between chat window in LTR language clycled in the
wrong direction.
This commit also handle the RTL language cycling.

task-2279706

closes odoo/odoo#55456

X-original-commit: 638720f9d72616f2e921a475a5fdfd2ad9a2ab8b
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-05 11:04:12 +00:00
Thibault Delavallée fd62fa16ad [FIX] link_tracker, mass_mailing: make convert_link work in batch
In this commit we correctly use mailing variable inside a loop
on self to enable multi-mode on convert_links method.

We also update link_tracker shortening methods docstrings. We
add some explanation, notably about parameters. A variable is
fixed to better indicate parameter content (html -> content).

closes odoo/odoo#55452

X-original-commit: 3e1633d5b3590ec5657b851c21cbae059944d964
Related: odoo/enterprise#12218
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-05 10:39:09 +00:00
Alexandre Kühn 10f231f15e [FIX] mail: disable seen notification for 'channel' channels
This commit fully disables seen notification (vv) on channels with
multiple members.

This feature was already disabled on the UI, but the computation
still happened in the background. This was problematic with some
channels with thousands of members, as it took dozens of seconds
to fully compute seen "notification-related" fields during
`mail/init_messaging`.

Part of task-2308312

closes odoo/odoo#55449

X-original-commit: a03b0f3a0486dc86db1c69363723f71047812053
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-05 10:27:15 +00:00
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