Monday, January 27, 2020
29 changes · master
Enhancements to existing features
This update adds automated checks for the CRM sales workflow that converts a lead into a quotation. It helps ensure future CRM changes do not accidentally break quotation creation or customer data handling.
Report footers are simplified by removing explicit labels before phone, email, and website details. This makes printed documents less cluttered while keeping the same contact information visible.
Original PR description
Task: https://www.odoo.com/web#id=1942363&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.20c89a96271a0e1d193a48d7c4b78f57 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Tags in CRM, Project, and UTM list views now use the same color styling as they do in form views. This makes records easier to scan visually and provides a more consistent experience across Odoo screens.
Original PR description
Task: https://www.odoo.com/web#id=2172123&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.5988782115232a229f969e2774fe8e69 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The timesheet grid now keeps the timer play button hidden until a user hovers over a timesheet line, reducing visual clutter. On small devices where hovering is not available, the button remains visible so users can still start timers easily.
Original PR description
Pad:https://pad.odoo.com/p/r.982aa9ddeb2b54cc72e757602222457a Task:https://www.odoo.com/web#id=2166150&action=327&model=project.task&view_type=form&menu_id=4720
The status bar is now hidden on mobile when there is no value to show. This avoids showing empty or unhelpful information, making mobile screens clearer for users.
Original PR description
Related to PR odoo/odoo#43419 which makes the statusbar widget always visible (even in readonly, when not set). However, as we only display the actual value in mobile, it is useless to display it if it has no value. Task 2172272
Tags in Helpdesk and Field Service list views now use the same colors users see in form views. This makes records easier to scan and keeps visual cues consistent across screens.
Original PR description
Task : https://www.odoo.com/web#id=2172123&action=327&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.5988782115232a229f969e2774fe8e69
Resolved issues and error corrections
The calendar date picker now uses fixed column widths, preventing dates from appearing unevenly spaced. This makes date selection clearer and more predictable for users across screens.
Original PR description
task : https://www.odoo.com/web#id=2166438&action=327&model=project.task&view_type=form&menu_id=4720 pad : https://pad.odoo.com/p/r.338243c755ae834f4f672c2bb0b8aa4b In this commit , we have statically fixed the column width of datepicker-calendar. task - 2166438 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents a web compatibility component from interfering with the framework's normal rendering process. It reduces the risk of display or behavior issues when older web widgets are used inside newer screens.
Original PR description
In Owl, 'render' is a (async) function of Component. It should not be overriden in Component specifications, especially to do something else (in this case, rendering the sub widget), without calling _super. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now create mass mailings normally when debug mode is not enabled. The form no longer blocks creation because of a hidden internal name field, reducing confusion and avoiding unnecessary warnings.
Original PR description
Task : https://www.odoo.com/web?#id=2178214&action=327&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.bdbb73aa77f5325c159b6ed2ca9e3b2f Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Searches on related one-to-many fields now correctly honor settings that include inactive records. This prevents valid records from being missed when a field is configured to look beyond only active related items.
Original PR description
Consider an x2many field `foo_ids` with `context={'active_test': False}`
in its definition, and a comodel with an active field. The value of the
field includes inactive records.
Now consider a search with a domain like `[('foo_ids.bar', op, value)]`.
The search should return all the records with corecords that satisfy the
domain `[('bar', op, value)]`, including inactive corecords, because the
field's context explicitly disables filtering on the active field.Features or functions removed from Odoo
This change removes an uninstall cleanup hook from Odoo's internal test lint module. It is a minor maintenance update that simplifies internal testing code and has no expected impact on business workflows.
Original PR description
-- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
* website_event Commit https://github.com/odoo/odoo/commit/a153ed42a09f8b7f5e0865112eb7d5affc22a353 solved a big problem which was that when an undo/redo is performed, the whole DOM was reconstructed breaking all the JS relying on the old one. For example, the latest blog posts which are dynamically loaded in JS were not removed before saving since the JS relied on the old DOM... and this broke the page because that dynamic content contained non-valid XML markup. The solution was to des
Original PR description
* website_event Commit https://github.com/odoo/odoo/commit/a153ed42a09f8b7f5e0865112eb7d5affc22a353 solved a big problem which was that when an undo/redo is performed, the whole DOM was reconstructed…
* website_event
Commit https://github.com/odoo/odoo/commit/a153ed42a09f8b7f5e0865112eb7d5affc22a353
solved a big problem which was that when an undo/redo is performed, the
whole DOM was reconstructed breaking all the JS relying on the old one.
For example, the latest blog posts which are dynamically loaded in JS
were not removed before saving since the JS relied on the old DOM... and
this broke the page because that dynamic content contained non-valid
XML markup. The solution was to destroy all JS widgets before applying
an undo/redo and rebuilding them all afterwards. Ideally this operation
should be done on the undo recording action but this would have a huge
flickering impact since many DOM would be destroyed each time the user
types text (flickering which is also bad on undo/redo but it is more
acceptable).
The problem now is the following: if a widget, like many, is declared
like this:
```
start: function () {
this.$el.append(/* Some dynamic content on page loading */);
},
destroy: function () {
this.$el.find(/* Dynamic content to remove */).remove();
},
```
Then it works in all standard cases: dynamic content is loaded on page
load and is removed when saving the editor. But this happens with the
undo/redo system:
1. The users types text, we record an undo, which is the whole page
current DOM, containing all the dynamic contents.
2. The users hits CTRL-Z:
a. We destroy all JS widgets, calling destroy, the dynamic content
is removed from the page.
b. We replace the whole DOM with the one that was saved. That one
contains the dynamic content DOM.
c. The JS widgets are recreated, calling start... creating the
dynamic content again.
Result: the dynamic content appears duplicated. On save, depending on
how the destroy was implemented only the last generated content may be
removed or both... but in any case it appears duplicated during edition.
Hopefully, our current stable version do not contain that many dynamic
content so a perfect amelioration of all of this can be found in master.
As a fix, this commit introduces an extra step between (a) and (b):
we remove the dynamic content of the DOM-to-re-apply before applying it.
For this to work, widgets have to mark their dynamic content with the
class 'o_temp_auto_element' when creating it. They also must add the
content they replace on the 'data-temp-auto-element-original-content'
attribute.
Forward-Port-Of: odoo/odoo#43552
Forward-Port-Of: odoo/odoo#43496Description of the issue/feature this PR addresses: Task: https://www.odoo.com/web?#id=2070522&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.5d8154bedf7fe1d0a2537a3859d00772 Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#38844
Original PR description
Description of the issue/feature this PR addresses: Task: https://www.odoo.com/web?#id=2070522&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.5d8154bedf7fe1d0a2537a3859d00772 Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#38844
Usecase to reproduce: - Create a subcontracted product tracked without tracked components - Create a receipt for this product - Click on show detail -> Lot_id are display even if the picking type uses create lot. The assign serial feature is not working either. The lot_id instead of lot_name is required in case of tracked components since it will open the produce wizard and the user will create lot there. However in the case of non-tracked components, the wizard will not be used nor
Original PR description
Usecase to reproduce: - Create a subcontracted product tracked without tracked components - Create a receipt for this product - Click on show detail -> Lot_id are display even if the picking type uses create lot. The assign serial feature is not working either. The lot_id instead of lot_name is required in case of tracked components since it will open the produce wizard and the user will create lot there. However in the case of non-tracked components, the wizard will not be used nor lot created. In this case the classic behavior should be used with lot_name Task: 2180191 Forward-Port-Of: odoo/odoo#43989
Steps to reproduce the bug: - Let's consider a sale tax T - Allow Pro-forma in Accounting configuration - Create a SO with a line of 100 and T on it - Print the Pro-forma invoice Bug: The base amount of T was not displayed next to T below the subtotal Inspired from report_invoice_document opw:2172383 Forward-Port-Of: odoo/odoo#43783 Forward-Port-Of: odoo/odoo#43761
Original PR description
Steps to reproduce the bug: - Let's consider a sale tax T - Allow Pro-forma in Accounting configuration - Create a SO with a line of 100 and T on it - Print the Pro-forma invoice Bug: The base amount of T was not displayed next to T below the subtotal Inspired from report_invoice_document opw:2172383 Forward-Port-Of: odoo/odoo#43783 Forward-Port-Of: odoo/odoo#43761
Description of the issue/feature this PR addresses: Fixes https://github.com/odoo/odoo/issues/43970 Current behavior before PR: Before this commit, Discount on SO line was never applied as '_onchange_discount' was not called. Desired behavior after PR is merged: In this commit, We call the method explicitly to set a discount on SO line. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43972
Original PR description
Description of the issue/feature this PR addresses: Fixes https://github.com/odoo/odoo/issues/43970 Current behavior before PR: Before this commit, Discount on SO line was never applied as '_onchange_discount' was not called. Desired behavior after PR is merged: In this commit, We call the method explicitly to set a discount on SO line. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43972
Display the readable value of lot name in the Production Order report. opw-2178868 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43974 Forward-Port-Of: odoo/odoo#43908
Original PR description
Display the readable value of lot name in the Production Order report. opw-2178868 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43974 Forward-Port-Of: odoo/odoo#43908
### Issue - Install Calendar - Technical > SMS templates > Calendar reminder > Add context action - Calendar > Tree view > meeting > action is there - Delete SMS template and/or uninstall calendar_sms Template deleted but action still there with a traceback when you click on it. ### Cause The action is never deleted. ### Solution Delete the action when the template is deleted. **OPW-2161653** Closes #42328 -- I confirm I have signed
Original PR description
### Issue
- Install Calendar
- Technical > SMS templates > Calendar reminder > Add context action
- Calendar > Tree view > meeting > action is there
- Delete SMS template and/or uninstall calendar_sms
Template deleted but action still there with a traceback
when you click on it.
### Cause
The action is never deleted.
### Solution
Delete the action when the template is deleted.
**OPW-2161653**
Closes #42328
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#43848**Description of the issue/feature this PR addresses:** Create database with Chile as country, it install modules: l10n_latam_invoice_document and l10n_cl At create a receipt get following error **Current behavior before PR:**  **Desired behavior after PR is merged:**  **Desired behavior after PR is merged:**  Can be related to solution on commit b96bb2a00737339dc53ff06167c1a0cd424ad717 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#39218
Since f322816, ACLS file is not loaded in manifest file. This fixes this issue by applying read access on survey for website_publsher. Taks ID: 2179121 Forward-Port-Of: odoo/odoo#43650
Original PR description
Since f322816, ACLS file is not loaded in manifest file. This fixes this issue by applying read access on survey for website_publsher. Taks ID: 2179121 Forward-Port-Of: odoo/odoo#43650
Dutch default settings are incorrect: - Separator Format [] - Decimal Separator , - Thousands Separator (empty) This must be: - Separator Format [3,0] - Decimal Separator , - Thousands Separator . OPW-2179020 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43922
Original PR description
Dutch default settings are incorrect: - Separator Format [] - Decimal Separator , - Thousands Separator (empty) This must be: - Separator Format [3,0] - Decimal Separator , - Thousands Separator . OPW-2179020 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43922
The previous fix (eef83eecca) was not 100% working and some menus and actions were still dangling after unlinking a deprecated report. One of the reason is that some menus are not directly under the parent menu but one level below. The easiest way to unlink those menus and actions is to use the 'generated_menu_id' field. This field points to the menu that is programmatically generated by the '_create_action_and_menu' method. This way, we are 100% sure that the menu and action related to
Original PR description
The previous fix (eef83eecca) was not 100% working and some menus and actions were still dangling after unlinking a deprecated report. One of the reason is that some menus are not directly under the parent menu but one level below. The easiest way to unlink those menus and actions is to use the 'generated_menu_id' field. This field points to the menu that is programmatically generated by the '_create_action_and_menu' method. This way, we are 100% sure that the menu and action related to the deprecated report are also deleted. opw:2169636 Forward-Port-Of: odoo/enterprise#7947
Some lines in the "CAPITAL, RESERVES AND LIABILITIES" section are using the wrong sign to compute balance, which leads to inconsistencies in the reports. opw-2152321 Forward-Port-Of: odoo/enterprise#7854
Original PR description
Some lines in the "CAPITAL, RESERVES AND LIABILITIES" section are using the wrong sign to compute balance, which leads to inconsistencies in the reports. opw-2152321 Forward-Port-Of: odoo/enterprise#7854
Steps to reproduce the bug: - Let's consider a belgian company C - Go to Accounting > Tax report > EXPORT(XML) Bug: The GridNumber 71 or 72 were never set and the xml was never accepted on intervat. opw:2179636 Forward-Port-Of: odoo/enterprise#7893
Original PR description
Steps to reproduce the bug: - Let's consider a belgian company C - Go to Accounting > Tax report > EXPORT(XML) Bug: The GridNumber 71 or 72 were never set and the xml was never accepted on intervat. opw:2179636 Forward-Port-Of: odoo/enterprise#7893
Add the subscription_id on the account.move.line is not enough in v13.0 to display it in view of the Invoice since the account.move.line has an embedded form view A another view to extend the account.move form view is required to add the subscription_id on the account.move.line (invoice line) Forward-Port-Of: odoo/enterprise#7930
Original PR description
Add the subscription_id on the account.move.line is not enough in v13.0 to display it in view of the Invoice since the account.move.line has an embedded form view A another view to extend the account.move form view is required to add the subscription_id on the account.move.line (invoice line) Forward-Port-Of: odoo/enterprise#7930
On a delivery with move entire package enabled, a package is reserved. If you scan this package, it is highlighted but its processed quantity is displayed as 0. If you validate the picking, everything is moved though. The issue was that the reserved move lines were not incremented due to a bad condition but new ones were created instead. opw-2171806 Forward-Port-Of: odoo/enterprise#7933
Original PR description
On a delivery with move entire package enabled, a package is reserved. If you scan this package, it is highlighted but its processed quantity is displayed as 0. If you validate the picking, everything is moved though. The issue was that the reserved move lines were not incremented due to a bad condition but new ones were created instead. opw-2171806 Forward-Port-Of: odoo/enterprise#7933
If we are in a configuration eg. like: - shipper in the Philippines - UPS is using negociated rates - the order is in USD The UPS RateRequest could returns a shipment rate charge like this: ``` <rate:RatedShipment> <rate:TotalCharges> <rate:CurrencyCode>USD</rate:CurrencyCode> <rate:MonetaryValue>290.30</rate:MonetaryValue> </rate:TotalCharges> <rate:NegotiatedRateCharges> <rate:TotalCharge> <rate:CurrencyCode>PHP</rate:CurrencyCode>
Original PR description
If we are in a configuration eg. like: - shipper in the Philippines - UPS is using negociated rates - the order is in USD The UPS RateRequest could returns a shipment rate charge like this: ```…
If we are in a configuration eg. like:
- shipper in the Philippines
- UPS is using negociated rates
- the order is in USD
The UPS RateRequest could returns a shipment rate charge like this:
```
<rate:RatedShipment>
<rate:TotalCharges>
<rate:CurrencyCode>USD</rate:CurrencyCode>
<rate:MonetaryValue>290.30</rate:MonetaryValue>
</rate:TotalCharges>
<rate:NegotiatedRateCharges>
<rate:TotalCharge>
<rate:CurrencyCode>PHP</rate:CurrencyCode>
<rate:MonetaryValue>14784.98</rate:MonetaryValue>
</rate:TotalCharge>
</rate:NegotiatedRateCharges>
<rate:RatedPackage>
<rate:Weight>5.0</rate:Weight>
</rate:RatedPackage>
</rate:RatedShipment>
```
We will understand it in Odoo as: 14784.98 (gotten from
NegociatedRateCharges.TotalCharges) USD (gotten from TotalCharges).
This is wrong and if there is a negotiated rate, we should use the
negociated rate currency.
opw-2157262
Forward-Port-Of: odoo/enterprise#7847
Forward-Port-Of: odoo/enterprise#7824Create a contact with complete address (first, second line, city, state, cap, etc). Create a payment for such contact, method checks, add a long memo. Save and confirm. Print the checks. Due to its second line the address will occupy more and will conflict with the memo line, making the result messy. Adding css rules to "compact" the addres will allow a second line without overflow opw-2169635 Forward-Port-Of: odoo/enterprise#7829
Original PR description
Create a contact with complete address (first, second line, city, state, cap, etc). Create a payment for such contact, method checks, add a long memo. Save and confirm. Print the checks. Due to its second line the address will occupy more and will conflict with the memo line, making the result messy. Adding css rules to "compact" the addres will allow a second line without overflow opw-2169635 Forward-Port-Of: odoo/enterprise#7829
The `fiscal_position` is either an `int` or `False`: https://github.com/odoo/odoo/blob/764135630949eb01cb2b3a4a19d6ec5b1bd39400/addons/account/models/partner.py#L189 However, `get_product_accounts` requires a browse record: https://github.com/odoo/odoo/blob/c08ce0ae46a78d4be517ad150ce729a61c4f226a/addons/account/models/product.py#L50-L54 Forward-Port-Of: odoo/enterprise#7917
Original PR description
The `fiscal_position` is either an `int` or `False`: https://github.com/odoo/odoo/blob/764135630949eb01cb2b3a4a19d6ec5b1bd39400/addons/account/models/partner.py#L189 However, `get_product_accounts` requires a browse record: https://github.com/odoo/odoo/blob/c08ce0ae46a78d4be517ad150ce729a61c4f226a/addons/account/models/product.py#L50-L54 Forward-Port-Of: odoo/enterprise#7917