Tuesday, June 25, 2024
31 changes · master
Enhancements to existing features
Arabic text in Sign documents now displays with properly connected letters and correct contextual shapes. This makes signed PDFs and related document output easier to read and more professional for Arabic-speaking users.
Original PR description
Before this commit: Arabic letters were not displayed properly. In particular they have the correct direction but lack ligature, since arabic letters have different shapes depending on the surrounding letters. They were displayed in one shape only (The isolated shape). This commit aims to address this issue by using the arabic_reshaper library. That would simply replace each letter with the unicode of the correct shape depending on the surrounding letters. Task: 3494707 ----------------------------------- This is what we had before: the letters are not connected, and they are in an isolated form.  This is what we have now: the letters displayed in the correct shape. 
This update keeps Enterprise spreadsheet features aligned with the latest spreadsheet engine changes. It improves pivot spreadsheet behavior, including support for flipping pivot axes, and ensures formulas, autofill, comments, and templates continue to work reliably after the upgrade.
Original PR description
This commit is the counterpart of https://github.com/odoo/odoo/pull/169914. It adapts the enterprise code to the o-spreadsheet update.
Sale order forms now hide the recurring details area when there is no information to show. This removes unnecessary blank space and makes subscription-related orders easier to read.
Original PR description
Prior to this commit, when the `recurring_details` field was empty in the footer of a sale order form view, this field was always rendered and created an unwanted empty space. This commit hides the field when it's empty. task-3983459 Requires: - https://github.com/odoo/odoo/pull/169625 --- | Before | After | |--------|--------| | <img width="357" alt="Capture d’écran 2024-06-20 à 14 37 43" src="https://github.com/odoo/enterprise/assets/80679690/1fe04ec4-f6a5-4067-9160-5055bb6a228b"> | <img width="314" alt="Capture d’écran 2024-06-20 à 14 37 59" src="https://github.com/odoo/enterprise/assets/80679690/fbab2795-b3a6-4f51-aec5-01a6f05c837d"> |
Resolved issues and error corrections
Peruvian cash and bank reports now use Odoo's official SUNAT bank code field instead of an older built-in code list. This helps keep reports aligned with current compliance data and reduces the risk of outdated bank codes being used.
Original PR description
Now was added the Odoo field to bank code provided by the SUNNAT, and that field must be used in the bank report. Now is used and deprecated the dict that has that codes.
Features or functions removed from Odoo
An unused helper for document spreadsheet template tours was removed. This is an internal cleanup that reduces maintenance overhead without changing how users work with spreadsheets or documents.
Original PR description
This commit removes a test helper for template tours that was no longer used. Task: [4011350](https://www.odoo.com/web#id=4011350&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
Code cleanup and technical improvements
Spreadsheet formulas now handle values like numbers and true/false choices in a more consistent way. This supports more reliable spreadsheet behavior, especially when using pivot tables and autofill features.
Original PR description
This commit is the counterpart of https://github.com/odoo/odoo/pull/169914. It adapts the autofill plugin and its tests to the parsing of arguments. It also adapts the tests to the new formatting of arguments (boolean is now a boolean in the formula, a number is a number, etc.). Task: 3991743
Miscellaneous changes
Current behaviour: --- Brazilian phone numbers are not managed correctly following the 2016 changes in Brazil. (Adding a 9 to mobile phone numbers) Cause of the issue: --- Phonenumbers metadata were patched to add 9 in mobile numbers, however, when E164 is selected, phone numbers aren't formatted, thus patched metadata not being applied. See format_number in phonenumbers "Early exit for E164 case" Fix: --- See community commit Adding extra tests in test_whatsapp opw-3861847
Original PR description
Current behaviour: --- Brazilian phone numbers are not managed correctly following the 2016 changes in Brazil. (Adding a 9 to mobile phone numbers) Cause of the issue: --- Phonenumbers metadata were patched to add 9 in mobile numbers, however, when E164 is selected, phone numbers aren't formatted, thus patched metadata not being applied. See format_number in phonenumbers "Early exit for E164 case" Fix: --- See community commit Adding extra tests in test_whatsapp opw-3861847 Forward-Port-Of: odoo/enterprise#65336
An unnecessary internal log message was removed from the spreadsheet chart editing area. This helps keep browser logs cleaner without changing any user-facing spreadsheet behavior.
This update corrects an internal styling value used to control shadows in the Enterprise web interface. It has no visible impact for users, but keeps the underlying stylesheet valid and easier to maintain.
Original PR description
In commit odoo/enterprise@aab87024b9dc901dfbca9a9de9739a698989d3f4 we introduced variables to enable the box-shadows on some bootstrap components. However the property was set to `0` which is an invalid property value. The correct value is `none`. This issue doesn't have any visible impact, so it's safe to be fixed in master. task-3755095
This fix keeps the new message separator appearing correctly in WhatsApp conversations, even after many messages are sent. It also updates the related automated test so it matches the corrected notification behavior.
Original PR description
When sending a lot of messages, it can happen that the new message separator does not appear anymore. The community counterpart of this PR fixes this issue but modify a notification payload that is asserted in a whatsapp test. This PR updates this test to match the notification content. community: https://github.com/odoo/odoo/pull/170601
### Issue: The VAT lines in tax reports do not populate correctly. ### Steps to reproduce: - Activate l10n_es module - Go to Accounting > Reporting > Statement Reports > Tax Report - Select a 'Generic Tax Report' and click on 'VAT Record Books (XLSX)' - In the report, only Spain and partners without countries have a NIF number ### Cause: A line of code is only populating the NIF field in the report if the partner has no country or if the country is Spain. In addition, other lines
Original PR description
### Issue: The VAT lines in tax reports do not populate correctly. ### Steps to reproduce: - Activate l10n_es module - Go to Accounting > Reporting > Statement Reports > Tax Report - Select a 'Generic Tax Report' and click on 'VAT Record Books (XLSX)' - In the report, only Spain and partners without countries have a NIF number ### Cause: A line of code is only populating the NIF field in the report if the partner has no country or if the country is Spain. In addition, other lines related to the NIF are not populated as they should. ### Solution: Add conditions to populate the NIF lines as the specs demands it. Specs: https://sede.agenciatributaria.gob.es/static_files/AEAT/LSI.xlsx (second point) opw-3918623 Forward-Port-Of: odoo/enterprise#63923
At component record creation, the sequence is based on `mps.mps_sequence`. However, mps can contain multiple records. This PR extract the sequence of the parent record to calculate the sequence of its components. Forward-Port-Of: odoo/enterprise#65064
Original PR description
At component record creation, the sequence is based on `mps.mps_sequence`. However, mps can contain multiple records. This PR extract the sequence of the parent record to calculate the sequence of its components. Forward-Port-Of: odoo/enterprise#65064
This will add an input type: gratification for the luxembourg payslips. If there is a gratification in the other inputs, the rules will be added to the payslip and the gratification is computed in the same way as the 13th month. Task: 3794333 Forward-Port-Of: odoo/enterprise#64830 Forward-Port-Of: odoo/enterprise#63800
Original PR description
This will add an input type: gratification for the luxembourg payslips. If there is a gratification in the other inputs, the rules will be added to the payslip and the gratification is computed in the same way as the 13th month. Task: 3794333 Forward-Port-Of: odoo/enterprise#64830 Forward-Port-Of: odoo/enterprise#63800
This PR fixes a contrast issue on a primary button within the sign module due to a `text-white` class applied. The default button utility classes already provide a good contrast, meaning that adding extra class is not useful. To fix the issue, we simply remove the class from the button. task-3692048 | Light mode (`:focus` state) | Dark mode | |--------|--------| | <img alt="image" src="https://github.com/odoo/enterprise/assets/128030743/b73a2fe7-f802-4461-9015-16a2f4b46d92"> | <img al
Original PR description
This PR fixes a contrast issue on a primary button within the sign module due to a `text-white` class applied. The default button utility classes already provide a good contrast, meaning that adding extra class is not useful. To fix the issue, we simply remove the class from the button. task-3692048 | Light mode (`:focus` state) | Dark mode | |--------|--------| | <img alt="image" src="https://github.com/odoo/enterprise/assets/128030743/b73a2fe7-f802-4461-9015-16a2f4b46d92"> | <img alt="image" src="https://github.com/odoo/enterprise/assets/128030743/8354c78f-6525-4aef-9057-fdb706b3cd0d"> | Forward-Port-Of: odoo/enterprise#64801
Steps to reproduce: - Install Helpdesk - Create two internal user with admin access to Helpdesk - Log as the first user and create a ticket for the second user with empty phone Issues: An access error is shown as we do not have the rights to write on the partner phone. To fix this issue a sudo was added as well as a filter in the inverse to make sure we skip ticket without a partner phone in the inverse. opw-3989614 Forward-Port-Of: odoo/enterprise#65289 Forward-Port-Of: odoo/enterpri
Original PR description
Steps to reproduce: - Install Helpdesk - Create two internal user with admin access to Helpdesk - Log as the first user and create a ticket for the second user with empty phone Issues: An access error is shown as we do not have the rights to write on the partner phone. To fix this issue a sudo was added as well as a filter in the inverse to make sure we skip ticket without a partner phone in the inverse. opw-3989614 Forward-Port-Of: odoo/enterprise#65289 Forward-Port-Of: odoo/enterprise#64860
We are unable to update the 'create date' and 'write date' through the ORM method. Therefore, I used a patch. task-4004191 Forward-Port-Of: odoo/enterprise#65151
Original PR description
We are unable to update the 'create date' and 'write date' through the ORM method. Therefore, I used a patch. task-4004191 Forward-Port-Of: odoo/enterprise#65151
Currently the tax lock date is not checked correctly in a test when posting a move. This problem is solved in the related community PR. This commit ensures the test does not fail after the community fix. To do this we just remove and re-introduce the tax lock date. community PR: https://github.com/odoo/odoo/pull/170475 Forward-Port-Of: odoo/enterprise#65262
Original PR description
Currently the tax lock date is not checked correctly in a test when posting a move. This problem is solved in the related community PR. This commit ensures the test does not fail after the community fix. To do this we just remove and re-introduce the tax lock date. community PR: https://github.com/odoo/odoo/pull/170475 Forward-Port-Of: odoo/enterprise#65262
Adapt the tests to match the changes done community-side to properly handle negative procurements. Community PR: odoo/odoo#165100 Forward-Port-Of: odoo/enterprise#65237 Forward-Port-Of: odoo/enterprise#64575
Original PR description
Adapt the tests to match the changes done community-side to properly handle negative procurements. Community PR: odoo/odoo#165100 Forward-Port-Of: odoo/enterprise#65237 Forward-Port-Of: odoo/enterprise#64575
…ter its parent web_enterprise modifies the js template for the list_renderer by introducing an upsell point for Studio in the optional columns dropdown. That inheritance spec was not at any particular place in the inheritance hierarchy. On some views (e.g. account invoices) this feature was not available. This commit fixes the issue by manually forcing the extension in web_enterprise to go just after list_renderer.xml from the web module. After this commit, the upsell feature is ava
Original PR description
…ter its parent web_enterprise modifies the js template for the list_renderer by introducing an upsell point for Studio in the optional columns dropdown. That inheritance spec was not at any particular place in the inheritance hierarchy. On some views (e.g. account invoices) this feature was not available. This commit fixes the issue by manually forcing the extension in web_enterprise to go just after list_renderer.xml from the web module. After this commit, the upsell feature is available on the views that did not have it before. Forward-Port-Of: odoo/enterprise#64942 Forward-Port-Of: odoo/enterprise#64776
**Steps to reproduce:** - Install Rental module - Check gantt view in Rental > Schedule **Current behavior before PR:** We are just showing the products that has orders. This is happening because in those commit https://github.com/odoo/enterprise/pull/37757/commits/0c2f235d4876467df287f30ab3cb09785603cd7f https://github.com/odoo/enterprise/pull/37757/commits/836909419893b522890776d3ec2f16476ae21108 we introduced the group limit and get_gantt_data and rental_schedule has not get adapted w
Original PR description
**Steps to reproduce:** - Install Rental module - Check gantt view in Rental > Schedule **Current behavior before PR:** We are just showing the products that has orders. This is happening because in…
**Steps to reproduce:** - Install Rental module - Check gantt view in Rental > Schedule **Current behavior before PR:** We are just showing the products that has orders. This is happening because in those commit https://github.com/odoo/enterprise/pull/37757/commits/0c2f235d4876467df287f30ab3cb09785603cd7f https://github.com/odoo/enterprise/pull/37757/commits/836909419893b522890776d3ec2f16476ae21108 we introduced the group limit and get_gantt_data and rental_schedule has not get adapted with this new behaviour. So what is happening is that '_read_group_product_ids' https://github.com/odoo/enterprise/blob/17.0/sale_renting/report/rental_schedule.py#L20 is not called as there is a limit so https://github.com/odoo/enterprise/blob/17.0/web_gantt/models/models.py#L76 This computes to be False so https://github.com/odoo/odoo/blob/17.0/odoo/models.py#L2745:L2754 '_read_group_fill_results' will not get called to call '_read_group_product_ids' **Desired behavior after PR is merged:** After override 'get_gantt_data' we are now checking if all products count is more than the limit we just return the products that already have orders. **Other solution:** We might just remove the group_limit https://github.com/odoo/enterprise/blob/17.0/sale_renting/report/rental_schedule_views.xml#L54 and just go with the '_read_group_product_ids'. opw-3959031 Forward-Port-Of: odoo/enterprise#65232 Forward-Port-Of: odoo/enterprise#63720
Forward-Port-Of: odoo/enterprise#65297
Original PR description
Forward-Port-Of: odoo/enterprise#65297
Some fields introduced in the pos_iot has string domains that are no longer valid since [^1]. As a result, the user sees all the related records when selecting the values for those fields from the `res.config.settings` form. In this commit, we are converting the domains from string to lambda expressions for it to work in the new restriction introduced in [^1]. Related: https://github.com/odoo/odoo/pull/169588 **Up to saas-17.2:** <img width="1024" alt="Screenshot 2024-06-18 at 10 32
Original PR description
Some fields introduced in the pos_iot has string domains that are no longer valid since [^1]. As a result, the user sees all the related records when selecting the values for those fields from the `res.config.settings` form. In this commit, we are converting the domains from string to lambda expressions for it to work in the new restriction introduced in [^1]. Related: https://github.com/odoo/odoo/pull/169588 **Up to saas-17.2:** <img width="1024" alt="Screenshot 2024-06-18 at 10 32 50" src="https://github.com/odoo/enterprise/assets/3245568/6b4d05d7-b7f8-4e12-8e57-65c9d70bf875"> **Starting saas-17.3:** <img width="986" alt="Screenshot 2024-06-18 at 10 30 33" src="https://github.com/odoo/enterprise/assets/3245568/9c4964d4-8f81-4b4d-8399-7140927c5dc7"> [^1]: https://github.com/odoo/odoo/commit/f66c9159045b9b63044b6897ecc831cdad57967f Forward-Port-Of: odoo/enterprise#64755
Steps to reproduce ================== 1. Go to the Accounting module 2. Open Vendor Bills 3. Click on the Scan button with debugger mode ON => Hence gives traceback Cause of the issue ================== The Issue was due to the `BillQrScan` component doing the props validation same as the `Dialog` component, the `slots` object is a mandatory prop for Dialog component but not needed for `BillQrScan`. This commit solves the traceback generating due to props validation on `BillQrScan
Original PR description
Steps to reproduce ================== 1. Go to the Accounting module 2. Open Vendor Bills 3. Click on the Scan button with debugger mode ON => Hence gives traceback Cause of the issue ================== The Issue was due to the `BillQrScan` component doing the props validation same as the `Dialog` component, the `slots` object is a mandatory prop for Dialog component but not needed for `BillQrScan`. This commit solves the traceback generating due to props validation on `BillQrScan` component. Forward-Port-Of: odoo/enterprise#65047
Following the doc https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2023-11/EPC132-08%20SCT%20C2PSP%20IG%202023%20V1.1.pdf , InitgPty/Id is not required in the XML file. We used to block the generation if we had no value to put in it; not anymore. opw-3985622 Forward-Port-Of: odoo/enterprise#65255 Forward-Port-Of: odoo/enterprise#65214
Original PR description
Following the doc https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2023-11/EPC132-08%20SCT%20C2PSP%20IG%202023%20V1.1.pdf , InitgPty/Id is not required in the XML file. We used to block the generation if we had no value to put in it; not anymore. opw-3985622 Forward-Port-Of: odoo/enterprise#65255 Forward-Port-Of: odoo/enterprise#65214
When we introduced dynamic templates in Knowledge, we merged the models `knowledge.article` and `knowledge.article.template` and introduced a new field `is_template` in the `knowledge.article` model to distinguish the templates from the regular articles. In the `website_helpdesk_knowledge` module, we forgot to exclude the templates from the search domains. As a result, the helpdesk frontend view can list and search within templates. Steps to reproduce the issue: 1. Log in as "Admin". 2
Original PR description
When we introduced dynamic templates in Knowledge, we merged the models `knowledge.article` and `knowledge.article.template` and introduced a new field `is_template` in the `knowledge.article` model…
When we introduced dynamic templates in Knowledge, we merged the models `knowledge.article` and `knowledge.article.template` and introduced a new field `is_template` in the `knowledge.article` model to distinguish the templates from the regular articles. In the `website_helpdesk_knowledge` module, we forgot to exclude the templates from the search domains. As a result, the helpdesk frontend view can list and search within templates. Steps to reproduce the issue: 1. Log in as "Admin". 2. Install `website_helpdesk_knowledge` module. 3. Go on the Helpdesk module. 4. On the helpdesk overview, click on the vertical dots of the "Customer Care" team card. 5. On the dropdown menu, click on the "Settings" option. 6. On the "Help Center" section, click on the "Knowledge" option. 7. On the "Visibility & Assignment" section, click on "Invited portal users and all internal users" option. 8. Save the changes. 9. Go on the Website module. 10. On the website navbar, click on "Customer Care" nav bar. 11. The interface should list article templates. => TO BE: The system should not list any templates. To fix that issue, we will simplify the search domains and exclude the templates from the search results using the `is_template` field. Reference: https://github.com/odoo/enterprise/pull/48691 task-3987469 Forward-Port-Of: odoo/enterprise#64468