Since saas-11.3:
Bootstrap sanitizer sanitizes html and removes attributes which are not
defined in whitelist, here is the documentation link:
https://getbootstrap.com/docs/4.3/getting-started/javascript/#sanitizer
Restore sanitize=false for bootstrap popover.
A scenario where the sanitizer will break a popover: compare 2 products
and open Compare popover and try to delete a comparison item from the
popover -> item can not be deleted because data-product_product_id has
been removed by sanitizer and so the item can not be deleted because
deletion logic depends on data-product_product_id.
Reference commit: https://github.com/odoo/odoo/commit/36caf5fc16b5a95a0bf37f08f0caf974683b2df6
Closes https://github.com/odoo/odoo/pull/31961
task-1950702
According to MDN, HTMLMediaElement returns
> A Promise which is resolved when playback has been started, or is
> rejected if for any reason playback cannot be started.
>
> Note: Older browsers may not return a value from play().
Since un-resolved un-handled promises re-raise and trigger the crash
manager, this is extremely noticeable if the browser doesn't support
the media type or is not currently allowed to play
medias (e.g. configured to prevent auto-play).
This just avoids the error, but eventually it might be useful to
display a toast noting the user could allow sounds iff the rejection
reason is NotAllowedError. This fix would probably be implementable /
implemented on older revisions (which might have the issue, just not
as prominent as unhandledrejection is not hooked into the crash
manager).
closesodoo/odoo#33260
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Somehow this worked before and isn't working now but that parameter is never used
closesodoo/odoo#33214
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
In the context of a livechat session, a placeholder that looks like a
person is better than a generic "missing picture" one, when the user has
no public avatar.
In order to allow a different placeholder without exposing a public
placeholder parameter, a separate route is introduced for the
purpose of displaying user avatars:
/web/partner_image/<id>/<field>/<model>
and can be simplified to:
/web/partner_image/<id> for loading a partner avatar (`image_small`).
The common part of the /web/image route was moved into a helper
function that is not directly exposed.
Task-ID 1924666
Closes#32664
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
If the account was not set on the new move line, a onchange added a new tax line leading to a duplicate
Also enforce the company on the tax selection
closesodoo/odoo#33250
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Before this commit, coupons were printed using the connected user language
instead of the customer language.
opw-1970448
closesodoo/enterprise#4142
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
X-port/Cherry-pick of odoo/enterprise@5a4ce5a3bc
This commit fixes a few issues with quizz
* change background-color to white in fullscreen mode;
* prevent going up to the top of the page when selecting an answer;
* highlight selected answers in fullscreen;
* fix the display of already completed quizzes
Commit linked to task ID 1978530 (fixes linked to internal testing).
closesodoo/odoo#33140
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit fixes a few issues with courses which have certification
* fix links to already passed certifications: currently it crashed, now it
redirects to the certification end screen;
* "Begin your certification now" green box link now has same behaviour
as links in the list view. It redirects to either the start certification
screen or the first slide in fullscreen mode. Moreover once the user has
started the course (at least one completed slide) this box disappears as
it is not really useful anymore;
Some dead code is removed.
Commit linked to task ID 1978530 (fixes linked to internal testing).
- When tyring to test a survey as a "Survey User" you are redirected to the
homepage.
This is due to a faulty access rights check that only allows "Survey
Managers" to test them.
closesodoo/odoo#33132
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit fixes the "End Course" button displayed after successfully passing
a quizz. Before this commit, the button didn't do anything, now, it redirects
to the slides homepage.
ommit linked to task ID 1978530 (fixes linked to internal testing).
closesodoo/odoo#33133
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit fixes the courses (slide.channel) completion displayed on the user
profile page. It uses the number of completed slides instead of the percentage
of completion. This is due to the completion field having been updated
recently to store number of completed slides instead of a computed percentage
for performances reasons [1]
Commit linked to task ID 1978530 (fixes linked to internal testing).
[1] See 534822e54c
This commit adds back the slide type icons on the sidebar list
in fullscreen and not fullscreen mode.
Commit linked to task ID 1978530 (fixes linked to internal testing).
This commit fixes the selector for the slide_course_join widget. This issue
comes from the removal of the selector 'o_wslides_wrap' recently removed
when cleaning the DOM [1].
Commit linked to task ID 1978530 (fixes linked to internal testing).
[1] See e5c7e43c71
Before this commit, only the users who validated their email could change
their own profile. In addition to that behavior we let administrators update
all profiles.
Commit linked to task ID 1978530 (fixes linked to internal testing).
Because functionnal specs changed after we merged the task...
Follow-up of task 1911260
closesodoo/odoo#32904
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Since the refactoring of forum, faq sanitize is set to False.
The editor of the faq can make what he want...
But disable sanitize will break the translation since fields.py has code:
```python
def _setup_attrs(self, model, name):
super(Html, self)._setup_attrs(model, name)
# Translated sanitized html fields must use html_translate or a callable.
if self.translate is True and self.sanitize:
self.translate = html_translate
```
Now we don't become html_translate magically, but we need to specify it
in the field definition direclty.
Courtesy of @mart-e
This commit closes opw-1978662
closesodoo/odoo#33112
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
In the tree view for account.invoice, two columns are signed
(amount_total and residual) and two columns are not signed
(amount_untaxed and amount_tax).
Now, all the columns with numeric values are signed.
This commit reverts the commit : 622af0b7cc
opw-1964348
closesodoo/odoo#33097
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
- Create 3 products:
C1, no tracking
P1, tracked by lot
P2, tracked by lot
- Create a BOM: to product 1 unit of P1, use 1 unit of C1. It also
produces 1 unit of P2 as byproduct.
- On the Stock location, create a Put Away Strategy to send:
P1 to Shelf 1
P2 to Shelf 2
- Create a MO, validate until then end
P1 is correctly sent to Shelf 1, but P2 is sent to Stock instead of
Shelf 2.
No call is performed to `get_putaway_strategy` at move line creation.
opw-1972130
closesodoo/odoo#33109
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Allow the cancellation of invoices 'In Payment', since there is no good
reason to not be able to do it.
opw-1981682
closesodoo/odoo#33093
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Open a record with a chatter (ie an opw task), add an attachment, enable
debug mode and click on "Set Defaults" in the debug tools, traceback.
The `message_attachment_count` field is a special view added by the
chatter on the form view. This field exists on the view but is absent on
the list of field listed by the XML file. Setting a default value on
that special field is not supported.
opw-1972372
closesodoo/odoo#33044
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
When a sale order is free, no transaction are created but you are
redirected to the page '/shop/confirmation' that display a transaction
and lead to bad displaying because there are no transaction.
To fix this behaviour, we redirect to the portal view of this sale order.
We've also added the 'href=#' on the button link to have it written in
white.
closesodoo/odoo#33019
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Steps to reproduce:
- Create a product as user for Company A.
- Set a tax on it for Company A.
- As a user in company B, set a default tax for the account associated with the product and/or company.
- As a multicompany user of Company A and B, in company B, create an invoice with the product.
When the onchange is triggered - no tax.
https://github.com/odoo/odoo/blob/11c950ef23faefb5b826c7fb6eb0dccb8e345ca0/addons/account/models/account_invoice.py#L1644-L1654
Its because first we evaluate product taxes for all companies, if none then the account, if none again then the company.
Then they are filtered by company, but in reality the only taxes that need filtering are product taxes (as account
taxes and company taxes should already belong)
fixes#27696
opw:1963881
closesodoo/odoo#33013
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
- Activate Invoice Online Payment
- Set Authorize to pay through Odoo (S2S)
- Create a new customer (do not give portal access)
- Create invoice -> send to them
- Open invoice in incognito mode
- Try to pay invoice online with Authorize
An error is raised:
The transaction cannot be processed because some contact details are
missing or invalid: City, Country. Please sign in to complete your
profile.If you don't have any account, please ask your salesperson to
update your profile.
The error is quite confusing, and the user is missing the main point: he
needs to sign in.
There is no reason to display the fact that contact details are missing
for a public user, so this part is now shown only if the user is logged
in.
opw-1981003
closesodoo/odoo#33116
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
- Open the bank reconciliation widget
- Throttle the connection
- Click multiple times on the same move line in order to select it
The line is added multiple times to the statement line.
We mitigate the behavior thanks to a `debounce`.
Fixes#33000
opw-1978551
closesodoo/odoo#33020
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Before this commit, the date_last_stage_update field in fill everytime at task creation. This does not make sense if ther is no project linked to the task or if there is no stages associated to the project/task.
This commit populates the date_last_stage_update field only when needed. So, we can now have newly created task without date_last_stage_update filled.
closesodoo/odoo#31999
Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
On write, a check is done that raises
'You can not modify already invoiced timesheets …'.
We put that check in a function so that this behaviour can be extended.
(restricted by an override, or relaxed by not calling the super)
opw 1974968
closes#33057closesodoo/odoo#33092
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
Steps to reproduce the bug:
- Configured bank account for CHF with all the ISR related informations
- Click on "Send & Print" on a customer invoice with that bank account
- Save the email template
Bug:
An error was raised because the key 'attachments' didn't exist in the variable
rslt.
opw:1970005
closesodoo/odoo#33042
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Create a model and extend this model using an inherits. Define a
constraint in the inherited model that uses a field of the parent model.
Create a valid element using the inherited model then write an invalid
value. This pass the constraint although it should raise an exception.
The problem resides in the `write` function of `models.py`. It first
write values on the inherited model then write values on the parent
model. The order is wrong, it should write on the parent model first
then on the child model.
The solution is to change the order fields are written: first we update
child references to their parents, then we update the parents, then we
update the child.
opw-1962705
closes#32919closesodoo/odoo#33003
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>