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)
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>
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>
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>
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>
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>
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>
Remove the field privacy in the search view since privacy
is not considered as a public field.
task-2285901
closesodoo/odoo#55398
X-original-commit: 0f6a531dcd7bba270ba83627d7140a76459c6d08
Related: odoo/enterprise#12193
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
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
closesodoo/odoo#55413
X-original-commit: 0cee7f48ce44cea6aa31fcace40206eaed5315ca
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
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
closesodoo/odoo#55412
X-original-commit: a26735f516e48acb77e234862e17e29be71d7d1d
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
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
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
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
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.
closesodoo/odoo#55408
Taskid: 2285924
X-original-commit: 50e229fe66b2a82717d4260287e18a875bbd26f5
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
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/52295closesodoo/odoo#55397
X-original-commit: dcb47d03db73b7ca8a18f50cdb14abf704e3ac52
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
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/12067closesodoo/odoo#55049
Task: 2284207
Related: odoo/enterprise#12067
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
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
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.
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.
Use "繁體中文" instead of "正體字"
It is a synonym but it is a bit more formal. It is also more coherent
with "简体中文" used for zh_CN
closesodoo/odoo#55387
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
The direction arrows in the datepicker were switched a first time in
fontawesome_overridden.scss
.o_rtl
..fa-chevron-left,.fa-chevron-right
transform: rotate(-180deg);
and a second time in datepicker.scss
.o_rtl
.bootstrap-datetimepicker-widget
.prev,.next
transform: rotate(180deg);
The buttons were flipped twice
Signed the Odoo CLA
Fixesodoo/odoo#50090Closesodoo/odoo#53369closesodoo/odoo#54880
X-original-commit: 8629fa3fdfddbf24f48a58d5add0fcadca60fba4
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Currently, there are two Kiosk mode menu in the attendance app when
we open the app we can see Two kiosk mode menu one in main menu add
second is a sub-menu of the manager menu.
purpose of this task to remove the Kiosk mode menu which is a submenu
of manager because attedance manager will always have employee officer
right which will enable the kiosk menu of employee on attendance.
closes odoo/odoo#54412
Taskid: 2296263
Closes: #54412
Related: odoo/upgrade#1475
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
The cash difference line created on a statement using a cash journal should use the loss/profit account.
Then, the line is supposed to be marked as reconciled and then, doesn't appear in the bank reconciliation report.
closesodoo/odoo#55336
X-original-commit: 60e32447cc3fda3650aa718cb0996d29976005d4
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Documentation of the affected blocks have been updated to inform about
the contents of the "today" and "now" context values.
closesodoo/odoo#54438
Related: odoo/enterprise#11831
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Currently, In timesheet module when we update the description of
existing entry and if the description is empty then it generates
required field error.
So in this commit, when a description updated as an empty then we
set a default '/' in the description.
closes odoo/odoo#55370
Taskid: 2301377
Closes: #54726
X-original-commit: 10cecadd05f0349765dc9cdb111e91c2d6d423b4
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
- Install Sales and Sale Matrix
- Go to Sales > Configuration > Settings and activate "Variant Grid Entry"
- Go to Products and edit a product with variants (lets call it "Product A"):
* For "Sales Variant Selection" in "Variants tab", choose "Order Grid Entry"
- Go to Sales > Orders > Quotations and create a quotation
* Add any product without Variant Selection set to "Order Grid Entry"
* Add "Product A" with 1 attribute
* Add any product without Variant Selection set to "Order Grid Entry"
- Here there are 3 products in the quotation with "Product A" at the second position
- Save the quotation
After the save the position of "Product A" is moved to the last position.
In a new quotation, every new order line has a sequence set to 10, except for products
with Variant Selection set to "Order Grid Entry" that set the sequence to the previous one +1,
which will put it in the last position even if another product is added after it.
[All of the above steps and explanations can also be applied to Purchase]
opw-2303096
closesodoo/odoo#55342
X-original-commit: 17c1caec4fefd089586c62c40ac5a2232eed3dcc
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
When someone is applying to any job position from the website
( via the `/website_form/` route ), the `hr.applicant` record
is created by OdooBot, and in such case, the `_compute_user`
method is never triggered as the field `user_id` (Responsible)
already has self.env.uid as default value.
This fix will in priority try to set a proper Responsible (if any
is defined on the job position) via `_compute_user` and then
assign `self.env.uid` if none is found.
closesodoo/odoo#55146
X-original-commit: e9292cb424ec04823dbce964ad4532edc20190c6
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
Improve slightly the layout of some forms related to employee and contracts.
Modified modules:
hr
hr_expense
hr_holidays
timesheet_grid
hr_contract_salary
hr_payroll_account
Task ID 2277298
closesodoo/odoo#52981
Related: odoo/enterprise#11156
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Purpose
=======
This commit intends to improve the animations on the leaderboard during survey
sessions. We now show both the ranking of each attendee before and after taking
into account the current question scores.
It allows attendees to see their position in the leaderboard shifting up / down
depending on how well they answered, and adds a bit more interactivity during
the session.
Specs
=====
The code changes to make this happen implied having multiple layers of
animations running one after the other.
The use of async/await in the JS allowed for a much smoother and less indented
code, simplifying the reading.
We now have 2 different "bars" to handle:
The bar that shows the previous leaderboard position.
The bar that shows the current question score.
This means we handle both jQuery items and modify their size & transition
properties depending on our animation.
Unfortunately, all these animations required a lot of testing to find fitting
timings, which means using quite a few setTimeout with "magic" delays.
These were just the most good looking ones and it feels like naming them with
a constant would not really help.
We also slightly improved the graphic font size / styling to make it easier to
read for potentially far away attendees.
Task 2235815
closesodoo/odoo#50991
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Before this commit there is space between alerts. It's not pretty.
It only occur when a mailing is scheduled and mail have already be send (or in progress)
task-2275560
closesodoo/odoo#55376
X-original-commit: 84c5ba24ad5e8a2371e5ca75884298d569bf2844
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This allows the method to be called in RPC
The nil extension has not been enabled as explained at odoo/odoo#12289closesodoo/odoo#55374
Cla: signature for parveenjangra290
X-original-commit: abac62f35c8cd293143e01c137c79519897eb21c
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Before this commit, when being in a settings form view with at
least two items in the breadcrumbs (the settings view preceeded by
another one), clicking on a button to execute an action didn't
properly work: an history back was done instead, thus returning to
the previous action.
For instance, go to Sales (without demo data), click on 'Set
payments' in the onboarding banner, click 'Go to the configuration
panel', and in the settings view click on 'Install More Packages'.
The issue has been introduced by [1], but we couldn't find a
scenario to reproduce it before saas-13.3.
[1] a3845ae3f0
Issue spotted in task 2277314
closesodoo/odoo#55351
X-original-commit: 6ccb108e9a621a672fde715ea78656ffeb6834e5
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
PURPOSE
Purpose of this merge is to provide several fixes to survey application
notably on conditional configuration and free text sections.
SPECIFICATIONS
This merge fixes multiple issues :
- Free text section display depending of conditional configuration and user input :
For page_per_question and page_per_section layout :
- If the section has a description:
- If the section is empty: show the section
- If the section has questions,
- If any of the section's questions is active: show the section
- Else: hide the section
- Do not compute last question based on conditional questions in session manager
- Do not show leaderboards if no nickname question in survey (if attendees cannot identify themselves).
- Block shortcut key selection after question answered (or time limit ran out) in session mode.
- Only display section if contains questions or description, even on non conditional survey ( + in breadcrumb, in print mode)
- Display only answered question in survey review mode
- Avoid auto Submit when selecting other option
- Restore mistakenly removed back buttons
- Fix is_last_page_or_question
The current question is the last one only if:
- There are no active questions that follows
- AND the current question is not conditionning the display of other questions
See sub-commits for more details.
Task ID-2225393
closesodoo/odoo#55026
Forward-port-of: odoo/odoo#48978
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Currently, In the project module, the archived/deleted sub-task is
not deducted from the count of the 'sub-tasks' stat button.
Steps to reproduce:
- Go to Project > Configuration > Settings > Enable 'sub-tasks'
- Go to a Project with sub-tasks enabled, open a task and create a sub-task
- Archive/Delete this sub-task
So in this commit, we applied filter on sub-task which show only active
sub-task on the stat button.
closes odoo/odoo#55347
Taskid: 2304887
Closes: #54904
X-original-commit: 81db237e3324922ff16f2b290922f21d98046738
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This allows get to be simplified to only handle local id.
Part of task-2308312
closesodoo/odoo#55346
X-original-commit: fa013d1d29e64706a08499d0f564327766410f8e
Related: odoo/enterprise#12159
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
- use Map for _toComputeFields
- factorize const access out of loops
- avoid Object.entries
- introduces `exists` method to avoid costly call to `get`
- ensure compute are using update to trigger potential _updateAfter
Part of task-2308312
X-original-commit: e364886c2450872a7e42cef549f253b10e55158d
Currently, the "Chat" button appears in the form view when it is
displayed as a modal and on click sends to the app switcher
because js_class is not loaded on the dialog when employee
form view is opened through the one2many(dialog).
For ex: in online appointment when on click on 'available
emloyee' it will open the employee form view in dialog and there
is a chat icon but it does not work.
So in this commit, we fix this issue by hiding the "chat" button
when the view is displayed as a modal. make a button visible
based on action context and when form view is oped through the
click of one2many then do not display the chat icon on modal
dialog.
closes odoo/odoo#55345
Taskid: 2291340
Closes: #54381
X-original-commit: e2bac64411f80a3fcf2c5d5d60ad3eccf6517e56
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Before this commit, the address of the company in the boxed template was not properly aligned with the tag line.
closesodoo/odoo#55344
Taskid: 2287262
X-original-commit: 03cfc283df715247fc33ce78698582788c1d4aa9
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
As there is no session object, it is not possible to generate a randomised set
of questions that will be displayed for all the clients.
When getting the most voted answers while checking which question is the next
one to display, or if this question is the last one, predefined questions are
regenarated each time a fake user input is created (the most voted answers.)
So at the end, while checking if a question is the last one, we compare
different objects.
This is not an issue for non-randomised survey, as everything is constant.
So, until a solution is found to keep information related to a session in
particular, randomised questions mode will be ignored in live session mode.
Task ID: 2230980
X-original-commit: 7f0981c4a61429802a5fe24dd794221b1275dfe3
In Session Mode:
Before this commit, autosubmit was only dependant of the back button,
but not of the session mode. In session mode, back button is ignored,
and auto-submit sould not happen in session as user has not the possibility
to go back in case he misclicked.
After this commit, the auto-submit only happens if back button is activated AND
if we are not in session mode. This is already checked inside
survey._can_go_back method and already given to the template.
When selecting 'other' option:
For a single or multiple choice question, if the user is selecting the
'Other' choice, Auto submit should not happen. Otherwize, the user has not the
possibility the type his custom answer.
Also, if the question has comment that does not count as answer, the user
should still be able to add a comment after having selected the answer.
The comment can be a complement of answer.
Task ID: 2230980
X-original-commit: 7f03380b49a55f3c2e36f379043c33a8a17f49ed
Unanswered questions or sections are now hidden in the survey review mode.
Only the question answered by the user will be visible.
If the survey was done during a session, the users will see their own answers,
even if the theme they selected was not the most voted one (in case of
conditional questions).
To get the questions to display :
- questions that have been answered
- + the ones that should have been answered = active questions
In session, active questions are based on most voted answers)
This commit also fixes the randomized questions handling in most voted answers,
as copied predefined questions where <NewIds> and those was not usable in
some templates.
Task ID: 2230980
X-original-commit: 8ca79727d5a93b91746c1e63d59d08550417906c
Before this commit, during a session, it was still possible to select another
choice (in a multiple choice question) even after having selected and submitted
an answer.
After this commit, if the question has already been answered or time limit
already ran out, it's not possible to use key to select another choice.
Task ID: 2230980
X-original-commit: e1acda0493092f5020576fc30768141a99b9fd48
Before this commit, is_last_page_or_question was determined only in function
of next active questions : If there are no active question after the current
one, current question is the last one.
But, in conditional questions context, if the current question is conditionning
the display of latter questions, when we display the current question, we
cannot already know if we are on the last question, as user did not answered
yet.
After this commit, the current question is the last one only if
- there are no active questions that follows
- AND the current question is not conditionning the display of other questions
For page_per_section, we check the same rule for all section's questions.
Task ID: 2232973
X-original-commit: 12d962e579d2480fbf821fb381adebf47668dbcc
Before this commit, after each scored question, a intermediate leaderboard was
shown, before going to the next question, even if no 'nickname' question was
present in the survey. So that the leaderboards were display only 'anonymous'
attendees, which is not really useful. Also, after last question, the final
leaderbaord was not shown and the survey was closed immediatelly, which was not
really coherent (show intermediate leaderboards but not the final one).
After this commit, the leaderboards and the final one are shown only if a
nickname question is present on the survey, so attendees can identify
themselves and retreive their ranking on each leaderboards.
Task ID: 2230980
X-original-commit: dd409de096c48f22476aff3f37526bc76c1cde12