Daily updates from Odoo
Tuesday, January 21, 2020
25 changes
Enhancements to existing features
This update adds documentation for a Gantt view option that controls dynamic date ranges. It helps teams understand and use the planning view configuration more confidently, with no direct change to business workflows.
Original PR description
Add documentation about the new gantt parameters. The parameter was added in enterprise (odoo/enterprise#7640). Task #2168740
This change makes the employee form controller easier to customize for specific business needs. It helps organizations adapt HR workflows with less effort while keeping the standard employee management experience intact.
Original PR description
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
Resolved issues and error corrections
This fixes the styling of a website button snippet so buttons display as intended again. It helps keep website pages visually consistent and prevents a small design regression from affecting visitors.
This fix corrects how template text is marked for translation across several Odoo Enterprise modules. It helps prevent technical labels or styling text from appearing to translators while ensuring real user-facing words are available for translation.
Original PR description
This commit fix most `t-set` errors that either led to:
1. unwanted text to be considered as translatable.
eg: `<t t-set="classes">text-left bg-100 p4</t>` would create an
`ir.translation`.
2. text that should be translatable were not.
eg: `<t t-set="text" t-value="'Both'"/>` would not create an
`ir.translation` while it should.
If a text should be translatable, it should never be inside a `t-value`:
- `<t t-set="text">Both</t>`
If a text should not be translatable, it sould either be inside `t-value`,
`t-valuef` or the `<t>` tag should have `t-translation="off"`:
- `<t t-set="classes" t-translation="off">text-left bg-100 p4</t>`
- `<t t-set="classes" t-valuef="text-left bg-100 p4"/>`
- `<t t-set="classes" t-value="'text-left bg-100 p4'"/>`
https://github.com/odoo/odoo/pull/43660
https://github.com/odoo/enterprise/pull/7839
https://github.com/odoo/design-themes/pull/203Features or functions removed from Odoo
An old web controller that is no longer used has been removed. This keeps the web module cleaner and easier to maintain, with no expected change for users.
Original PR description
This controller is no more used, probably used in the past with calendar invitation. 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
Code cleanup and technical improvements
The cohort reporting view was updated to use newer internal compatibility tools. This keeps the feature aligned with the platform's technical direction without changing the expected user experience.
Original PR description
This commit changes CohortController base class to AbstractControllerAdapter and uses the Odoo legacy custom_events because of the adapter.
Miscellaneous changes
`AttributeError: 'tuple' object has no attribute 'startswith'` When given headers that are tuples. They are expected to be string, as per [1]. The issue was introduced with [2], indeed the code was moved from inside a dict where `,` was the usual dict separator to outside of a dict where `,` at the end made them tuples. To reproduce the issue, run the `test_mail` suite after having `website_mail_channel` installed. Issue highlighted as part of task-2178641 [1] https://docs.python
Original PR description
`AttributeError: 'tuple' object has no attribute 'startswith'` When given headers that are tuples. They are expected to be string, as per [1]. The issue was introduced with [2], indeed the code was moved from inside a dict where `,` was the usual dict separator to outside of a dict where `,` at the end made them tuples. To reproduce the issue, run the `test_mail` suite after having `website_mail_channel` installed. Issue highlighted as part of task-2178641 [1] https://docs.python.org/3/library/email.policy.html#email.policy.Policy.header_store_parse [2] cae1c3977ff2777dcb77e4c2a51deb72ee57db22 Forward-Port-Of: odoo/odoo#43688 Forward-Port-Of: odoo/odoo#43675
The `ref` field on `account.move` is not required and can yield a falsy value. This produces a TypeError while doing the comparison in sorted(). closes #42434 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#42708
Original PR description
The `ref` field on `account.move` is not required and can yield a falsy value. This produces a TypeError while doing the comparison in sorted(). closes #42434 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#42708
When a payment line is created, and then the order is reloaded, by the synchronization feature for example, the name displayed on the payment line is empty. This happens because the field name is not saved on the server, so instead of using it, we are directly taking the name of the payment method linked to the payment line. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the
Original PR description
When a payment line is created, and then the order is reloaded, by the synchronization feature for example, the name displayed on the payment line is empty. This happens because the field name is not saved on the server, so instead of using it, we are directly taking the name of the payment method linked to the payment line. 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#43453 Forward-Port-Of: odoo/odoo#43385
Steps to reproduce: - Install website_sale_wishlist,stock,sale_management,contacts - General Settings>Sales>Multiple Sales Prices per Product - Create or edit a product, assign 2 different prices in pricelists A and B - Publish it to the website - If your user is Mitchell Admin, go to its related res.partner, Sales & Purchases tab/Pricelist, choose pricelist B - Create a public user and assign it pricelist A - Go to the website/shop - Reach out the product and add to the wishlist Whe
Original PR description
Steps to reproduce: - Install website_sale_wishlist,stock,sale_management,contacts - General Settings>Sales>Multiple Sales Prices per Product - Create or edit a product, assign 2 different prices in…
Steps to reproduce: - Install website_sale_wishlist,stock,sale_management,contacts - General Settings>Sales>Multiple Sales Prices per Product - Create or edit a product, assign 2 different prices in pricelists A and B - Publish it to the website - If your user is Mitchell Admin, go to its related res.partner, Sales & Purchases tab/Pricelist, choose pricelist B - Create a public user and assign it pricelist A - Go to the website/shop - Reach out the product and add to the wishlist When the current user is internal the product page will display price of B, but if you add the product to the wishlist, whishlist displays public price Same for the portal user. This happend because to avoid returning 500 when the product is unpublished c93f371d67def785f5b6d90f96eed8343e962203 the product is filtered using sudo() but the recordset is also returned with the sudo environment. Using it just to filter solve the issue opw-2166484 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43617
PURPOSE As Certification PDF can be called on failed user input, generate a certification of failure in that case. SPECIFICATIONS In the survey_report_templates.xml, when user_input.quizz_passed is false, a certification of failure can be generated. LINKS PR Task 2148449 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.
Original PR description
PURPOSE As Certification PDF can be called on failed user input, generate a certification of failure in that case. SPECIFICATIONS In the survey_report_templates.xml, when user_input.quizz_passed is false, a certification of failure can be generated. LINKS PR Task 2148449 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#42811
1- create a group payment (10 ~ 15 invoices); 2- Open the created journal entry. The first issue we see is that the breadcrumb is too big to the size of the screen. 3- Open the 'Reconciled Entries'. Before this commit, the screen was completely shifted and not visible. This occurs also because the breadcrumb is too big. Now, the references added to the name of the entry is limited to 50 characters. opw-2166551 Forward-Port-Of: odoo/odoo#43614
Original PR description
1- create a group payment (10 ~ 15 invoices); 2- Open the created journal entry. The first issue we see is that the breadcrumb is too big to the size of the screen. 3- Open the 'Reconciled Entries'. Before this commit, the screen was completely shifted and not visible. This occurs also because the breadcrumb is too big. Now, the references added to the name of the entry is limited to 50 characters. opw-2166551 Forward-Port-Of: odoo/odoo#43614
Bug in 13.0 regarding company_id field of partners when creating them from their parent contact or when setting their parent. The field 'company_id' of res.partner is set by an onchange on 'parent_id' to that of it's parent; unfortunately the field is readonly if parent_id is set and not set to force_save. Furthermore, creating a child partner from the main one (in the 'Contact' tab of the main partner form view) does not follow the same behaviour (company_id is unset in that case, meanin
Original PR description
Bug in 13.0 regarding company_id field of partners when creating them from their parent contact or when setting their parent. The field 'company_id' of res.partner is set by an onchange on 'parent_id' to that of it's parent; unfortunately the field is readonly if parent_id is set and not set to force_save. Furthermore, creating a child partner from the main one (in the 'Contact' tab of the main partner form view) does not follow the same behaviour (company_id is unset in that case, meaning that children don't have the same company as their parent). Since the company_id is already set by an onchange when we change 'parent_id' and set to readonly in that case, I assume the expected behaviour is actually that children partners should have the same company as their parent by default. Fine tuning of aa594d1269b081339bef3d3b366580e41fa5cdd1 opw:2176384,2167106 Forward-Port-Of: odoo/odoo#43539
The discount_amount didn't consider the quantity on Sales Order Line. e.g: 100€ | 10% discount | 8 products --> discount_amount was 10 € instead of 80€ Fixes #43242 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43587
Original PR description
The discount_amount didn't consider the quantity on Sales Order Line. e.g: 100€ | 10% discount | 8 products --> discount_amount was 10 € instead of 80€ Fixes #43242 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43587
Description of the issue/feature this PR addresses: new 10% tax from October 2019 Current behavior before PR: tax does not exist Desired behavior after PR is merged: tax exists -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#42566
Original PR description
Description of the issue/feature this PR addresses: new 10% tax from October 2019 Current behavior before PR: tax does not exist Desired behavior after PR is merged: tax exists -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#42566
Steps to reproduce the bug: - Let's consider a delivery method DM with fixed price of 10€ and a margin of 20% - Let's consider a storable product P - Create a SO for P and get the rate (12€) but don't add it on the SO - Confirm the SO and process the delivery Bug: A SO line was created for the freight cost without the margin. So it was 10€ instead of 12€. opw:2144894 Forward-Port-Of: odoo/odoo#43206 Forward-Port-Of: odoo/odoo#43083
Original PR description
Steps to reproduce the bug: - Let's consider a delivery method DM with fixed price of 10€ and a margin of 20% - Let's consider a storable product P - Create a SO for P and get the rate (12€) but don't add it on the SO - Confirm the SO and process the delivery Bug: A SO line was created for the freight cost without the margin. So it was 10€ instead of 12€. opw:2144894 Forward-Port-Of: odoo/odoo#43206 Forward-Port-Of: odoo/odoo#43083
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#43570 Forward-Port-Of: odoo/odoo#43561
Original PR description
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#43570 Forward-Port-Of: odoo/odoo#43561
When writting number on the point of sale keypad, if you click on the "+/-" button, you will get 0 (with buffer "-0"), but then you need to backspace 2 times to remove "-". This seems odd since this mean that: => "+/-" "backspace" "backspace" "5" will get 5.0 units => "+/-" "backspace" "backspace" "backspace" will remove line instead of what would be expected: => "+/-" "backspace" "5" will get 5.0 units => "+/-" "backspace" "backspace" will remove the line opw-2169157 Forward-Port-Of: odoo
Original PR description
When writting number on the point of sale keypad, if you click on the "+/-" button, you will get 0 (with buffer "-0"), but then you need to backspace 2 times to remove "-". This seems odd since this mean that: => "+/-" "backspace" "backspace" "5" will get 5.0 units => "+/-" "backspace" "backspace" "backspace" will remove line instead of what would be expected: => "+/-" "backspace" "5" will get 5.0 units => "+/-" "backspace" "backspace" will remove the line opw-2169157 Forward-Port-Of: odoo/odoo#43495
Courtesy of Amy from the videos! Forward-Port-Of: odoo/enterprise#7625
Original PR description
Courtesy of Amy from the videos! Forward-Port-Of: odoo/enterprise#7625
Only show this information to contract managers. It should not be disclosed to other employees. Forward-Port-Of: odoo/enterprise#7281
Original PR description
Only show this information to contract managers. It should not be disclosed to other employees. Forward-Port-Of: odoo/enterprise#7281
### Issue - Setup a company and a customer with addresses in India (used data from task 58746) - Create a quote > confirm - Delivery note > Fedex international > Validate AttributeError: 'NoneType' object has no attribute 'Purpose' ### Cause The CommercialInvoice object is not generated. ### Solution As it was generated before, I generate it only if it doesn't exists yet. **OPW-2167301** Forward-Port-Of: odoo/enterprise#7822
Original PR description
### Issue
- Setup a company and a customer with addresses in India
(used data from task 58746)
- Create a quote > confirm
- Delivery note > Fedex international > Validate
AttributeError: 'NoneType' object has no attribute 'Purpose'
### Cause
The CommercialInvoice object is not generated.
### Solution
As it was generated before, I generate it only if it doesn't exists
yet.
**OPW-2167301**
Forward-Port-Of: odoo/enterprise#7822Planning user need to read the employee_token to generate the url but they don't have access to it. You can reproduce the issue solved by this PR on the runbot v13.0 remove all HR access right accept planning to demo user, Planning > Schedule by Employee > Send Schedule > Publish & Send get an access error. Forward-Port-Of: odoo/enterprise#7812
Original PR description
Planning user need to read the employee_token to generate the url but they don't have access to it. You can reproduce the issue solved by this PR on the runbot v13.0 remove all HR access right accept planning to demo user, Planning > Schedule by Employee > Send Schedule > Publish & Send get an access error. Forward-Port-Of: odoo/enterprise#7812
opw-2172800 Forward-Port-Of: odoo/enterprise#7798 Forward-Port-Of: odoo/enterprise#7794
Original PR description
opw-2172800 Forward-Port-Of: odoo/enterprise#7798 Forward-Port-Of: odoo/enterprise#7794
Steps to reproduce the bug: - Install l10n_mx_edi - Uninstall l10n_mx_edi - Send and print an invoice or cancel and reset to draft an invoice Bug: A traceback was raised because the function l10n_mx_edi_is_required didn't exist. opw:2155904 Forward-Port-Of: odoo/enterprise#7610 Forward-Port-Of: odoo/enterprise#7601
Original PR description
Steps to reproduce the bug: - Install l10n_mx_edi - Uninstall l10n_mx_edi - Send and print an invoice or cancel and reset to draft an invoice Bug: A traceback was raised because the function l10n_mx_edi_is_required didn't exist. opw:2155904 Forward-Port-Of: odoo/enterprise#7610 Forward-Port-Of: odoo/enterprise#7601
- Install more than one language - Do not install 'es_MX' language - Install l10n_mx accounting - Go to any contact, and change the country A crash occurs since `es_MX` is not installed. opw-2172333 Forward-Port-Of: odoo/enterprise#7807
Original PR description
- Install more than one language - Do not install 'es_MX' language - Install l10n_mx accounting - Go to any contact, and change the country A crash occurs since `es_MX` is not installed. opw-2172333 Forward-Port-Of: odoo/enterprise#7807