when media dialog launched for the first time (with no selected
media attachment), "FileWidget.selectedAttachments" contains a default
object {url:... , alt:...} (default attachment already on the target),
and the click on "Add" button will cause a backtrace since the code on
"_save" method tries to access "image_src" attribute on all selectedAttachments
elements including default one.
The simplest solution would be to check if the object already has
an "image_src" attribute.
task-2312878
closesodoo/odoo#59351
X-original-commit: ecffbe4060eea98d3444f308bcd28bfb9287e1c3
Signed-off-by: Samuel Degueldre <sdegueldre@users.noreply.github.com>
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
To ease the process of the registration to an event, we prefill the first row
which holds the info of the attendee (name, email, phone), if they are available.
In most cases, the attendee:
- Take a ticket for himself
- Take a ticket for someone he's responsible of
- Take a ticket for someone else who doesn't want to be troubled by that
(ex: an assistant of a CEO)
task-2346145
closesodoo/odoo#58829
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
- Go to Invoicing > Configuration > Taxes
- Create a Tax and enable "Included in Price" in Advanced Options tab
- Go to Sales and create a Quotation:
* Add an Order Line with the created Tax
- Save & Confirm
- Edit the Quotation to set a delivery quantity, then save
- Go to Sales > Reporting > Sales:
* Display row by "Order #"
* In Measures, add "Untaxed Amount to Invoice"
- Check the values for the create SO
The amount for "Untaxed Amount to Invoice" is the amount with taxes included.
It is due to the fact that untaxed_amount_to_invoice field of sale.order.line is computed
from price_reduce field.
As price_reduce is computed from price_unit, if there is a tax that is included in the price,
price_reduce will also contain the tax in its value.
opw-2347571
closesodoo/odoo#59334
X-original-commit: 8c54ed42eef16817f198f10697820eddcc7d0c74
Signed-off-by: agr-odoo <agr-odoo@users.noreply.github.com>
Signed-off-by: Anh Thao PHAM <kitan191@users.noreply.github.com>
Before this this commit there would be `ZeroDivisionError` if product is archived.
Steps to Reproduce Issue:
Create product with AVCO and Automated Valuation
Create PO and Received all Quantities
Archive Product
Create Bill and Post
There will be Traceback
```
File "/data/build/odoo/addons/purchase_stock/models/account_invoice.py", line 84, in _stock_account_prepare_anglo_saxon_in_lines_vals
valuation_price_unit = valuation_price_unit_total / valuation_total_qty
ZeroDivisionError: division by zero
```
Now we consider Archived `stock_valuation_layer_ids` as well.
closesodoo/odoo#59317
X-original-commit: bedbc577d13148527fa9bab104eaf67b3ffba34f
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Handle salesmen allows to assign responsible to leads using a round robin like
algorithm. Currently a write on each lead is done to update its team and
responsible, even if number of leads is far greater than number of available
users to assign.
Current implementation can be simplified by doing one write per sales person
to assign on its batch of leads, or a single write if no salesmen has to be
assigned.
Performance counter on a mass convert wizard on 50 leads show that we gain
about 9% of queries (125 on 1471) with this simple optimization.
Task ID-2351604
PR #59084closesodoo/odoo#59324
X-original-commit: 973a2998666813ca4fbe90f1b486c1b18091c4e7
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Purpose of this commit is to
* move tests about mass management of leads (mass assignment + mass convert
wizards) in its own file to ease writing of tests;
* add some performance tests :
* performance for assignment;
* performance for convert wizard in mass mode;
Task ID-2351604
PR #59084
X-original-commit: 950dd491bc4b680e0bcfab83815313e909a3c282
Before this commit, the pager component would only quit the edit mode if
its value changed when hitting Enter.
Now, when pressing Enter while the pager value did not change, it will
leave the edit mode and trigger a "pager-changed" event regardless.
Task 2318738
closesodoo/odoo#59285
X-original-commit: a3197283d52bfda399ce45b7d5a52406885336d0
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
When manually updating the time on a daterange widget, the value sent to the
server is not converted to UTC and is sent as it appears on the input.
currently daterange widget send datetime value as it is, written in input field
if manually entered, so if user set 10:00:00 so while sending data it will be
send as it is 10:00:00 so when next time record reloaded after save, it will
display 15:30:00 if timezone UTC+5:30.
Instead, change the string date to moment object with current user timezone.
so that datetime send to server is UTC time and when next time it is loaded
it adds user timezone difference, so if timezone is UTC+5:30 and user enters
10:00:00 then while sending data to server it sends 04:30:00 and when displayed
again after reload it adds +5:30 timezone difference.
LINKS
PR #50132
Task 2240378
closesodoo/odoo#59263
X-original-commit: a029fca2d0def06ea3f67270f0e1d654d49a0c57
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Before this commit: the action menu registry items were rendered
regardless of their inner state. The problem is that these item
components can choose not to render themselves, leading to a blank
dropdown menu if no other item was present.
To fix this, the "getProps" function of the registry has been altered to
act as validation: the item will not be rendered if the return value is
falsy. The function has also been made asynchronous to allow RPC calls.
This solution is still flawed and hides a bad design choice which is to
register components and not items or item getters; this API is too
complex for its use case(s) and adds pointless depth to the DOM. The
shape of the registry should be simplified in an improvement in master.
closesodoo/odoo#59259
Task: 2325587
X-original-commit: 45c7d881a5d130f6b3222749c8c87b6c6b45e910
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Co-authored-by: Julien Mougenot <jum@odoo.com>
Co-authored-by: Mohammed Shekha <msh@odoo.com>
Issue occurs due to the way we compute the default value in base ir ui view.
The method _compute_defaults don't set extention mode under some condition
even if we provide an inherit_id view.
This commit double fix it, we use now self.env['ir.ui.view'] to create the
new view and so always compute the mode based on 'if inherit id or not'.
Second fixes is to explicitely set mode manually as 'extention'.
before commit:
when you drop snippet to blog sidebar and click save button.
The changes of user is not visible in sidebar because view created in mode
'normal' and not 'extention'
task-2311520
closesodoo/odoo#55908closesodoo/odoo#59318
X-original-commit: a944ce9beaaf984a7b1282785d03d4bfc8220f18
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Co-authored-by: jpr-odoo <jpr@openerp.com>
The method _notify_get_groups is called to determine how a user should be
notified based on the groups he belongs to.
If a record is shared via portal but the model does not have a field named
`partner_id`, the method was failing.
With this patch, the presence of the field is checked first. No additional
access_token is computed if the field is not present.
Forward port of #59123closesodoo/odoo#59310
X-original-commit: 6612c7ae766e996c57bda5c4c23132797f162f1e
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Ideally we should let background/text-color adapt to the current
color-preset. Since icons bg are forced to `$gray-100` though, this
commit will just increase readability allowing user's customization
task-2327741
closesodoo/odoo#59303
X-original-commit: 15ac3a2f08ed400ec5f64b40b7a8f5be04c46513
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Although `coupon` is not a single app, when a user tries to install this
module alone, warnings are triggered because no access rules are defined.
Those warnings are pointing the fact that models without access rules
are a bad practice.
closesodoo/odoo#59293
X-original-commit: 801dbd09e217d316d9c048da3a7c4d6597cbc68b
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
Steps to reproduce the bug:
- Select an invoice in the list
- Click Action -> Export
- Select "I want to update data (import-compatible export)"
- Click the field "Tax Cash Basis Entry of"
Bug:
Traceback
Cause:
Crashes because of a KeyError here: https://github.com/odoo/odoo/blob/2d860cdddf29b9fbd1a5401082c9f743028d2fb5/addons/web/controllers/main.py#L1743
The KeyError occurs because AccountPartialReconcile hasn't got a `name` field; `rec_name` is therefore `None`. Setting it to any field fixes the issue and `id` is the safest.
opw:2349511
closesodoo/odoo#59273
X-original-commit: 6327c86d0ea30bc056c6db320d0a1413d5807b10
Signed-off-by: backspac <backspac@users.noreply.github.com>
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Before this commit to select a parent snippet you had to click on
its title in the editor panel.
After this commit, we can still click on the title but also on the
whole line. At the same time, make it so the title has a pointer
cursor and so that long titles work too.
task-2327182
closesodoo/odoo#59262
X-original-commit: 5d3310cea75014ce3c43ee89235cd42b87e0cf99
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Co-authored-by: Benjamin Vray <bvr@odoo.com>
1. Lead to loose the tour: Remove the step of the tour that asks
to set an address (the address is auto-completed at free trial
based on domain name).
2. Bug: At step 3, it redirects to the
invoice settings to select a localization, when you click on
"install more packages", you are sent back to the sales app.
--> this bug is related to res_config_settings.js from base addon.
I tried to fix this bug by adding a data-attribute "discard" in the
res_config_settings_views and checking this additional condition in
the js.
3. Bug: Tour blocks at last step "send by email" on quotation.
After clicking on "sent" on the pop-up, there should be rainbow
effect to mark the end of the tour.
4. Bug: Sale order line: fix the blue color on Invoiced Quantity
only, instead of the full line
5. Put the "sample product" in active= false (it's necessary for
the sample invoice but should not be visible to the user, they
should create their own)
6. Merge the 2 dates fields related to expected delivery on sale.order
--> since other modules extends this module, I made the field
expected_date invisible and put the same value in both fields. This
value is the max of the order_lines.expected_date
closesodoo/odoo#59261
Taskid: 2277314
X-original-commit: 0f81816d4ddb0febd28f6c6bb5dd50ae570333e1
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This feature description had stayed there since v8. Back at the day, we used to create one tax code per tax the module created. We removed this in v9, as similar result can be achieved by looking at the generic tax report.
closesodoo/odoo#59232
X-original-commit: 3a6aaa6e95517807a11446d202566ac02ac6e03f
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
- Go to the Contacts app
- Click on the Azure Interior company, or any other company with multiple associated people
- Set the country to Mexico
- Edit the VAT field and enter the following string: UAC070620MB3
Traceback will happen after hitting save.
It happens because `self` is a recordset in this case. Moreover, while
the VAT number starts with `UA`, the country is Mexico so the check is
incorrct.
opw-2348045
closesodoo/odoo#59260
X-original-commit: 3dbdc62b3458e9af2e74d8552a17d629dc7e2393
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Changing this to radio buttons to avoid confusing the user with a
blank option
Task-2299286
closesodoo/odoo#59253
X-original-commit: ba8f62139bfcb27c14ce92f63585f9d277e74547
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
If a portal user was a customer but not a follower of a project
he didn't have access to the timesheets linked to the project.
Task-2299286
closesodoo/odoo#59252
X-original-commit: 13fc0ab18eb1e1d4ba47b7a1e66cd5079d692d8b
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
When we wanted to add data to google spreadsheet in crm or accounting
=> it raised an error
Error because it couldn't find a propriety of an undefined object.
Now we're getting the query element from searchModel and not model.
closesodoo/odoo#59251
Taskid: 2337046
X-original-commit: 8d26094b020db0245620e9898e02486acf3674bf
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Following the last summer runbot update, the URLs have changed
closesodoo/odoo#59241
X-original-commit: 7eaec4b2693b9aea67cfbde5d19dda152fd9f395
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
This patch optimizes the performance of prefetching when iterating on
large recordsets. The optimization is *transparent*, i.e., it requires
no code change for it to apply.
The worst-case scenario for prefetching is the following: the ORM has to
fetch a field for a given `record`, `record._prefetch_ids` (its prefetch
set) is *very* large (many thousands), and most records in the prefetch
set are already in cache. This requires the ORM to iterate a lot on the
prefetch set in order to make a batch of records not having the field in
cache.
records = model.browse(ids) # large recordset
for record in records:
record.foo # fetch 'foo' every 1k records
When running such a loop on an empty cache, the overhead of prefetching
(determine a batch) grows as the loop progresses. The time complexity
of this loop is actually O(N²)...
The overhead of prefetching is minimal when `record._prefetch_ids` is
about the size of a prefetching unit, i.e., 1k records. This commit
modifies the iterator method such that every record returned by the
iterator has a prefetch set of maximum 1k records.
We measured the time taken by the loop above on an empty cache, before
and after this commit, on a simple model (res.partner.category) with
100k records. The third measure is a reference one: a `_read` on all
prefetched fields (to fill in the cache) followed by the loop.
Total time Time per 1k records
Before this commit 3.690s 30ms - 45ms
After this commit 1.176s 12ms
Read then loop 1.161s -
The measures are enlightening: the overhead of prefetching was more than
200% of the reference time, and the time to prefetch records grows as
the iteration goes on! This commit reduces the overhead of prefetching
to less than 2% of the reference time, and make it scale gracefully with
data size.
closesodoo/odoo#59239
X-original-commit: d0d54d63dbf49a97e7fea36fe7fb4b860a0b6606
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
This commit makes it so that the icons of the website new-content
menu are closer to the icon of the app they are related to.
task-2329291
closesodoo/odoo#59236
X-original-commit: 4565a65e99a6dae323fd3d7ddf2010fea102bb91
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Before this commit, the terms and conditions could not be html formatted text.
closesodoo/odoo#56512
Taskid: 2304199
Related: odoo/upgrade#1689
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Currently, when click on refuse action on applicant it will
call the toogle_active and applicant is archived then it will
going to open the wizard for refuse reason due to that even if user
cancel the wizard the applicant is archived.
So in this commit, On click of the 'refuse' on applicant just open
the wizard for refuse reason and click of apply archive the applicant
with reason.
It will not affect the opening of wizard on archive of applicant from
action menu.
closesodoo/odoo#58740
Taskid: 2333037
X-original-commit: 9dfb85b494efeec7786d345315977b9bcea63b82
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
if readonly attribute is given on priority widget then priority widget should
not be clickable and hover effect should be removed so that user can easily
understand that field is readonly.
task-2339680
closesodoo/odoo#59199
X-original-commit: 53dbfc7a65a8eb2f41d6b2373cf628c4800d1f57
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
In its current state, the code contacting the iap service was prone to
fail in case of huge batches of leads being processed due to 2 factors:
- the call could timeout;
- any processed lead that was modified somewhere else in the meantime
would trigger a serialization failure and ultimately make the whole
batch fail.
This commit ensures that we process the leads by smaller batches and
that we avoid serialization failures by acquiring a lock on the current
batch.
We now also avoid useless calls to iap when an email address is linked
to well-known email providers to alleviate the payload and speed up the
server's reponse.
closesodoo/odoo#59190
X-original-commit: 0a898e16948b38a0029937c7c2eb6e2a38fd9a8a
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
Since fbf347498f, when opening a view in a
dialog, the favorite filters were not loaded.
For example on the runbot:
1. In CRM, open any lead, edit it, and open the Customer dropdown
2. Create a custom filter, save it as favorite, and close the dialog
3. Open the dialog again: you don't see your new filter
With this commit, you will see your filter at step nr. 3
closesodoo/odoo#59186
X-original-commit: 418013e8dbb2aa2d4ffd4f650f080ca5a94183f9
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Paul Morelle <madprog@users.noreply.github.com>
no content helper message is displayed in bottom in modal when there is sample
data, when no content helper message is displayed in modal and there is sample
data the ndisplay no content message in center which is not the case for modal.
To produce this issue: go to Expense -> Create Expense -> Create expense line
and if there is not expense line then sample data is displayed and no content
helper message is displayed at bottom of sample data, it should be displayed
in center of sample data with blurry effect.
With this commit this issue has been fixed.
Task-2311408
closesodoo/odoo#59175
X-original-commit: 5461efc9620a6ff6f0d61cd2a15676c6b9c58fd7
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Previously the ribbon editing UI was missing some indentation symbols
that have been added recently in the rest of the web_editor (⌙), this
commit adds those where needed. This commit also fixes an issue where
both the ribbon editing UI and the ribbon select-menu were visible at
the same time, caused by changes to how the visibility of widgets is
computed.
task-2339986
closesodoo/odoo#59158
X-original-commit: c7e4533757982592be9b0c6dfc37b9b05042b5b9
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Quant search domain was missing a '|', this made it so locations with
non-zero quants in it could still be archived. Also added a missing
space in warning message when there are multiple locations because it's
better that way.
Discovered during task: 2336455
closesodoo/odoo#59154
X-original-commit: 340dac3b2928da292c6b74971e77816304b263ab
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Currently when trying to find duplicates of a lead with an email that
cannot be normalized and without partner, a crash appears as there is
no domain part to form a valid domain.
Fix it by returning a void set if no valid email and no valid partner
is set on the lead as we cannot determine any duplicate based on void
information.
closesodoo/odoo#59147
X-original-commit: 291db77cf09c6ee76373fd168f575fda28270467
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Currently the help of stock_inventory.date includes:
"If the inventory adjustment is validated, date at which the inventory
adjustment has been validated."
But for some reason this isn't the case. This commit makes it so we now
update the `date` when the inventory is validated. Since no one
previously complained about this, we only apply it to newly validated
inventories and leave existing ones as is. Note this change makes the
`accounting_date` help accurate (i.e generated account moves already
use the date when the inventory is validated when no accounting date
set, so before this fix the dates won't match).
Discovered during task: 2336455
closesodoo/odoo#59143
X-original-commit: 1da012147fa49045bb1dff25eb304364d47e0271
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
In the function `create_missing_dropship_picking_type()`, the way to
search companies that already have dropship picking type was not robust
enough as it used the translatable `name` field in a search domain and
the ORM `search` method used the translated value of `Dropship` name value
instead of the raw value.
A better approach is to search `stock.picking.type` with a default source
location usage set to `supplier` and a default destination location usage
set to `customer`.
Related to upgrade request: #54154closesodoo/odoo#59142
X-original-commit: 203bb4d9c113f5c24ad00d39e2ae46b4689117f4
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
This PR aims at preventing the cluttering of the ServiceWorker's cache by filtering out non-necessary assets and preventing "opaque" responses from being cached.
Also, it registers earlier the listener for the PWA install event, allowing to properly show the installation's banner in most of the case.
Finally, it fixes the optional URL's language parsing by allowing custom language naming.
closesodoo/odoo#59001
Forward-port-of: odoo/odoo#58994
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
Signed-off-by: Pierre Paridans <pparidans@users.noreply.github.com>
This commit allows to filter out the requests to local-ish domains (cf.
the current host and an optionally configured CDN for the current
website) and preventing from cluttering the cache used by the
ServiceWorker with tracking files, scripts or other non-necessary
assets.
This allows to even further reduce the possible "opaque" requests from
being stored in the cache (as they use way more space than regular/basic
responses).
X-original-commit: 052bc7665e89426fb51928e43bd4a15dbf6cb705
Before this commit, when prefetching urls if one of them fails, the
following are dropped.
This commit fixes it by handling each url seperately instead of sending
all of them to `cache.addAll()`. It also reuse the same logic as the
regular FetchEvent for consistency.
X-original-commit: 47fdfb8ae73ab79100fb83751ff0f132b4a5c628
Co-authored-by: Olivier Dony <odo@odoo.com>
This commit aims at reducing the requests stored in the cache by
filtering out the error-like requests (404, 500...) and the "opaque"
requests.
Also this commit adds a check for the cache size to prevent it from
filling up, resulting into a locked out cache (blocking certain
requests).
X-original-commit: ef2d323c3a029cb58ee219f06a9809aa52d108b3
Co-authored-by: Olivier Dony <odo@odoo.com>
In multilanguage website, URLs are automatically prefixed with the
language (beside the default language) but only the default
language-slug were supported (e.g. "en", "en_US"...).
This commit supports also customized language-slug, which can actually
be any string, for the ServiceWorker's scope.
X-original-commit: 20eddda77d0ed6f2bb9b61d8ae4194e960ccc4ff
To display the PWA's install banner, the browser triggers a
`beforeinstallprompt` event when he estimates that all the requirements
for installation are fulfilled (e.g. Service-worker, manifest...).
But we have observed that the browser can trigger this event really
early in the loading of the page and even before our listener has been
registered, failing to display the banner.
This commit moves the event listener's registration out of the lifecycle
of our widget to allow it to be registered as soon as possible,
drastically reducing the risk of missed-events.
X-original-commit: a014a6c9e3baced22b158d6d8b4199bdae7562b9
This commit improves the notification displayed when we configure
the mail server and click 'Test Connection' button. It removes the
title of the notification, improves the message string and changes
the notification type to 'success' instead of default 'warning'.
Task Id : 2321763
PR #56213
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>