Friday, May 24, 2024
25 changes · master
Enhancements to existing features
Appointment setup screens now use clearer wording and controls to distinguish recurring appointments from one-time bookings. Confirmation pages have been redesigned so customers can more easily see appointment status, calendar options, video meeting access, and cancellation guidance.
Original PR description
Improve the appointment type form view design by: - Rewording fields - Adding 2 new radio buttons to better distinguish the recurring and the punctual appointment type categories. The 2 buttons switching between showing the max schedule date field (recurring) and the daterange widget (punctual). Improve the appointment validation template by: - Removing the "Schedule another" button - Moving the "Google Agenda", "Add to iCal/Outlook" buttons under the appointment date so that users best spot them as they were often forgotten at the bottom of the page. - Hiding the videoconference link in the provider's name and add a copy button for convenience. - ... For more details see commit messages Task-3877550
Products are now presented with a clearer goods type and a separate option to track inventory, replacing the older storable product category. This makes product setup easier to understand and ensures inventory tracking options only appear when relevant.
Project sharing tests were updated to stay aligned with related changes in the community edition. This helps ensure sales timesheet features continue to be validated correctly after the shared wizard behavior changed.
Original PR description
This commit adapts the using of `project.share.wizard` wizard due to the changes made in the related PR in community. Community PR: odoo/odoo#165065
This update makes translated messages more reliable by naming placeholders in text that contains multiple dynamic values. It helps translators reorder words naturally for different languages, reducing awkward or incorrect translations across affected Odoo Enterprise modules.
Original PR description
## The problem Translating text in a language sometimes involves reordering words. Positional arguments are always inserted in the same order, which order matches English syntax, but this isn't…
Instagram Professional Account users can now publish posts with up to 10 images at once. Previews, validation, publishing, and feed display have been updated so multi-image posts are easier to create and review consistently.
Original PR description
Purpose ======= Allow Professional Accounts to post multiple pictures at once. Specifications ============== 1> Up to 10 images can be posted at once. 2> Instagram preview and error validation has been adapted. 3> 'social_post_instagram_image' controller has been adapted for single/multiple images to be processed. 4> Feed view has been adapted so that multiple images can be shown of the post. 5> Disable the hover effect on social_* preview. Task-3446492
The appointment booking screens have been visually refreshed with a simpler, cleaner layout and clearer emphasis on appointment start times. The booking progress indicator is now available directly in Appointments, so users can benefit from guided steps even without the website appointment app installed.
Original PR description
Revamped UI for Appointments: -Eliminated card borders and background colors. -Enhanced visibility by highlighting start time. -Furthermore, moved the appointment progress bar from website_appointment to appointment module, enabling users to benefit from it without the website dependency. Task-3912312
Knowledge embedded views now show a helpful empty-state message when there are no records to display. This gives users clearer guidance and helps them create their first record directly from the embedded view.
Original PR description
This work will enable the no-content helper of the embedded views of Knowledge. When the embedded views are empty, they will now show a no-content helper indicating to the user that there is no record to display. The no-content helper will provide guidance to the users and help them creating their first record. It also includes two small refactorings: * For the `_insertEmbeddedView` method: wrap all distinct prop arguments it received in one unique `props` argument. * The display name of embedded views will now be modified through the standard `setDisplayName` instead of a DOM manipulation. task-3381729
The Documents menu is reorganized so upload, request, link, spreadsheet, and workspace creation actions sit under a clearer New dropdown, while Share is easier to access as its own button. This makes common document actions easier to find and gives document managers a direct way to create workspaces from the current location.
Original PR description
Improve the burger menu ui: - reducing the labels size. - regrouping all the actions related to a document addition (upload, request, link, spreadsheet) under a "New" button dropdown. - Get the "share" button out of the dropdown, styled secondary. - Add the possibility to create a workspace from the "New" dropdown. Only available for the users with the group "group_documents_manager". Technical: As the "groups" attribute doesn't work in the ControlPanel xml, retrieving the user groups from the js. Removing the test named "when no sharable workspace is present, check the visibility of dropdown button inside 'All' workspace" as the dropdown button is now renamed "New" and is always enabled. Task-3889854
Resolved issues and error corrections
Spreadsheet autocomplete now includes the needed date granularity when suggesting pivot fields, preventing formula errors for date-grouped data. The spreadsheet edition was also aligned with the latest underlying spreadsheet library changes, improving compatibility and reliability.
Original PR description
### [FIX] spreadsheet_edition: auto-complete with date granularity
Steps to reproduce:
- Go to CRM lead pivot view
- group by any date field by day
- insert in spreadsheet
- start typing '=odoo.pivot(1, <measure>, '
=> Currently, when the auto-complete proposes a date field (e.g. "create_date"),
the field is proposed without the granularity ("create_date", not
"create_date:month").
The formula result is an error if the granularity is missing.
Task: 3823433
X-original-commit: https://github.com/odoo/enterprise/commit/a52b11884adaefa45e2f854bf775a43afb462d2b
### [FIX] spreadsheet_edition: Update o_spreasheet to latest version
Update spreadsheet_edition code following library update.
Counterpart of https://github.com/odoo/odoo/pull/166687Miscellaneous changes
0 lines are still included in exported report when Hide lines at 0 is toggled Steps to reproduce: - Open a report, e.g. Balance Sheet (Accounting > Reporting > Balance Sheet) - In options, toggle 'Hide lines at 0' - Click in PDF to export a PDF version of the report - 0 lines are included in the PDF file When "Hide lines at 0" is toggled, lines at 0 are still included in the PDF/XLSX report, despite being hidden in the report view. This leads to a difference between what the user sees
Original PR description
0 lines are still included in exported report when Hide lines at 0 is toggled Steps to reproduce: - Open a report, e.g. Balance Sheet (Accounting > Reporting > Balance Sheet) - In options, toggle…
0 lines are still included in exported report when Hide lines at 0 is toggled Steps to reproduce: - Open a report, e.g. Balance Sheet (Accounting > Reporting > Balance Sheet) - In options, toggle 'Hide lines at 0' - Click in PDF to export a PDF version of the report - 0 lines are included in the PDF file When "Hide lines at 0" is toggled, lines at 0 are still included in the PDF/XLSX report, despite being hidden in the report view. This leads to a difference between what the user sees and what is printed. Another reason to hide lines at 0 from the printed report is that lines with Hide if Zero checked does impact the PDF. This means the two options (Hide lines at 0 and Hide if Zero) have similar impacts in the user view but different behavior in printed reports. This commit implements the function _filter_out_0_lines to remove lines at 0 from printed report if "Hide lines at 0" is toggled, and adds a test. task-3888290 Forward-Port-Of: odoo/enterprise#63061 Forward-Port-Of: odoo/enterprise#63000
Original PR description
**In this commit we have adapted the changes for the following improvement:** - The detailed_type 'storable product' is removed and instead we add a Boolean field to track inventory. - The tracking field should be visible only after the boolean field to track inventory is enabled **Task**: 3526304
## The problem
Translating text in a language sometimes involves reordering words. Positional arguments are always inserted in the same order, which order matches English syntax, but this isn't necessarily right for every syntax of every language in the world.
Here's an eloquent example of the problem, taken from the GNU gettext documentation:
```c
printf(gettext("String '%s' has %d characters\n"), s, strlen(s));
```
which one could translate in German as follows:
```c
"%d Zeichen lang ist die Zeichenkette `%s'"
```
Even without knowing any of German, you could notice that the positions of `%d` and `%s` have been swapped; yet printf would still insert its arguments in the same order.
That's the reason why, whenever there is more than one “format specifier” (`%s`), you should always use keyworded arguments so that the translators can freely reorder the words without any problems.
## The fix
This pull request fixes the problem by naming providing a name to the placeholders of every call to gettext with more than two placeholders.
Part of task-3869533
Community: https://github.com/odoo/odoo/pull/166014The GSTR-1 report now includes POS order reversal entries when a customer later requests an invoice for a POS sale. This prevents sales and HSN values from being counted twice, improving the accuracy of Indian GST reporting.
Original PR description
Fixes an issue where the GSTR-1 Report was double counting sales and HSN due to missing POS order reversal entries. Scenario: - A sale is made via POS without an invoice. - Later, an invoice is requested and generated, creating two entries: 1. Invoice sales entry. 2. Reversal of the POS order. This update ensures that these reversal entries are included in the GSTR-1 report, preventing double counting. Task Id: 3927208
Several localization and accounting EDI tests were updated to match the new invoice line behavior where product names are no longer automatically used as line names. This helps keep electronic invoicing, tax, and statutory reporting checks reliable after the product widget change.
Original PR description
*: account_avatax, account_saft, l10n_cl_edi_export, l10n_co_edi, l10n_it_reports, l10n_lu_reports, l10n_mx_edi, l10n_mx_xml_polizas, l10n_nl_reports --- This commit modifies tests to adapt to the new behavior of the invoice lines' name not using the product name anymore. --- task-3888602 Community PR: https://github.com/odoo/odoo/pull/152869
The workspace settings menu in Documents now displays with the correct spacing after a Bootstrap update caused the layout to look broken. This keeps the menu readable and easier to use for users managing document workspaces.
Original PR description
Steps to reproduce 1. Click on the cog wheel menu of a workspace 2. The menu padding is broken Reason: Bootstrap library updated. After this commit: There is no broken wheel menu of a workspace. Task:3892891
Since the commit https://github.com/odoo/enterprise/pull/52348/commits/5c11c94b972d1993de4147d96fc3faaaaddc7c57 a test has been added that check the cloc result it stored on a ICP. But the result can be a bit different then expected during custom build if custom module are installed prior mail_enterprise. Solution: Check only the value of odoo/studio module that give the custom line in database that should be always empty during installation Forward-Port-Of: odoo/enterprise#63108 Forward-
Original PR description
Since the commit https://github.com/odoo/enterprise/pull/52348/commits/5c11c94b972d1993de4147d96fc3faaaaddc7c57 a test has been added that check the cloc result it stored on a ICP. But the result can be a bit different then expected during custom build if custom module are installed prior mail_enterprise. Solution: Check only the value of odoo/studio module that give the custom line in database that should be always empty during installation Forward-Port-Of: odoo/enterprise#63108 Forward-Port-Of: odoo/enterprise#62909
This was currently defined in `crm_enterprise` which made impossible to run QUnit tests dependent on this model in community. runbot-65889 https://github.com/odoo/odoo/pull/166475 Forward-Port-Of: odoo/enterprise#63056
Original PR description
This was currently defined in `crm_enterprise` which made impossible to run QUnit tests dependent on this model in community. runbot-65889 https://github.com/odoo/odoo/pull/166475 Forward-Port-Of: odoo/enterprise#63056
Before this commit: ============== When the delivery address is in India but the invoice address is outside India, Shiprocket will not consider the shipping address and mobile number from a different country. After this commit: ============== The correct phone/mobile number is provided for the delivery address. opw - 3841506 Forward-Port-Of: odoo/enterprise#61234
Original PR description
Before this commit: ============== When the delivery address is in India but the invoice address is outside India, Shiprocket will not consider the shipping address and mobile number from a different country. After this commit: ============== The correct phone/mobile number is provided for the delivery address. opw - 3841506 Forward-Port-Of: odoo/enterprise#61234
Access with User having Accounting permissions Open a posted invoice Click 'Reset to draft' Issue: Access Error will raise """ This operation is allowed for the following groups: - Payroll/Officer : Manage all contracts Contact your administrator to request access if necessary. """ Accounting user should be able to reset to draft without having payroll permissions opw-3932705 Forward-Port-Of: odoo/enterprise#62950
Original PR description
Access with User having Accounting permissions Open a posted invoice Click 'Reset to draft' Issue: Access Error will raise """ This operation is allowed for the following groups: - Payroll/Officer : Manage all contracts Contact your administrator to request access if necessary. """ Accounting user should be able to reset to draft without having payroll permissions opw-3932705 Forward-Port-Of: odoo/enterprise#62950
An error is raised when accessing customer statement from contact page in studio. ### Steps to reproduce: - Install Studio, Contact apps and the l10n_account_customer_statements module. - Open studio and go to Reports - When clicking on the Customer Statements report an error is raised ### Cause: Studio uses the partner res.partner(0,) to display the report in edit mode, but the method _get_report_values is always searching for the partner data to fill the report. The error is raised b
Original PR description
An error is raised when accessing customer statement from contact page in studio. ### Steps to reproduce: - Install Studio, Contact apps and the l10n_account_customer_statements module. - Open studio and go to Reports - When clicking on the Customer Statements report an error is raised ### Cause: Studio uses the partner res.partner(0,) to display the report in edit mode, but the method _get_report_values is always searching for the partner data to fill the report. The error is raised because res.partner(0,) does not reference any partner. ### Solution: Modify _get_report_values to search for partner data only if the partner id is different from 0. opw-3920298 Forward-Port-Of: odoo/enterprise#62891
Fixed typo for `cdfi` that not generates the section for bank accounts on the PDF for payment complement, and with this fix was improved the way to get the values from the dict, because not in all the cases are assigned all the values. https://github.com/odoo/enterprise/blob/17.0/l10n_mx_edi/models/account_move.py#L392 Forward-Port-Of: odoo/enterprise#62836
Original PR description
Fixed typo for `cdfi` that not generates the section for bank accounts on the PDF for payment complement, and with this fix was improved the way to get the values from the dict, because not in all the cases are assigned all the values. https://github.com/odoo/enterprise/blob/17.0/l10n_mx_edi/models/account_move.py#L392 Forward-Port-Of: odoo/enterprise#62836
`action_view_carryover_lines` calls account.report._get_date_bounds_info which is only defined in `account_reports`, and is itself only called from `account_reports`. It wouldn't have worked anyway for anyone who would have tried to call it without account_reports installed. So we take the liberty of moving it to account_reports in stable. See https://github.com/odoo/odoo/pull/155614#discussion_r1609626035 for context Forward-Port-Of: odoo/enterprise#63114 Forward-Port-Of: odoo/enterpr
Original PR description
`action_view_carryover_lines` calls account.report._get_date_bounds_info which is only defined in `account_reports`, and is itself only called from `account_reports`. It wouldn't have worked anyway for anyone who would have tried to call it without account_reports installed. So we take the liberty of moving it to account_reports in stable. See https://github.com/odoo/odoo/pull/155614#discussion_r1609626035 for context Forward-Port-Of: odoo/enterprise#63114 Forward-Port-Of: odoo/enterprise#63092
To reproduce the issue, on a runbot with the demo data: 1) Setup a prefix group threshold of 2 on the Partner Ledger 2) Open the Partner Ledger ==> The lines created for the prefix groups show "0.0" in the columns supposed to contain non-number values. Instead, these columns should contain empty values on those lines. The bug originates in the common helper called to generate the prefix group lines, so it does not only impact the Partner Ledger. We fix it and modify the test a little bi
Original PR description
To reproduce the issue, on a runbot with the demo data: 1) Setup a prefix group threshold of 2 on the Partner Ledger 2) Open the Partner Ledger ==> The lines created for the prefix groups show "0.0" in the columns supposed to contain non-number values. Instead, these columns should contain empty values on those lines. The bug originates in the common helper called to generate the prefix group lines, so it does not only impact the Partner Ledger. We fix it and modify the test a little bit to check that behavior as well. Forward-Port-Of: odoo/enterprise#63052 Forward-Port-Of: odoo/enterprise#62740
Steps to reproduce: - Create an expense - Add a product (with units) - Save - Add an attachement - Change the units Issue: The price unit will change to match the total Cause: We wanted to avoid using the _price_compute in case of the OCR Solution: We are making sure that the price unit is only recomputed when using the OCR community: https://github.com/odoo/odoo/pull/165352 opw-3869104 Forward-Port-Of: odoo/enterprise#62425
Original PR description
Steps to reproduce: - Create an expense - Add a product (with units) - Save - Add an attachement - Change the units Issue: The price unit will change to match the total Cause: We wanted to avoid using the _price_compute in case of the OCR Solution: We are making sure that the price unit is only recomputed when using the OCR community: https://github.com/odoo/odoo/pull/165352 opw-3869104 Forward-Port-Of: odoo/enterprise#62425
While filing GSTR-1, we encountered the following error: ``` [0]JSON validation failed due to - #: extraneous key [supeco] is not permitted ``` In this commit, we have resolved the error mentioned above. For various reasons, the government API has not yet implemented GSTR-1 tables 14 and 15 in production though they are available in the sandbox environment. As a solution, it is best not to include supeco in the JSON until the government API releases supeco into production. Forward-P
Original PR description
While filing GSTR-1, we encountered the following error: ``` [0]JSON validation failed due to - #: extraneous key [supeco] is not permitted ``` In this commit, we have resolved the error mentioned above. For various reasons, the government API has not yet implemented GSTR-1 tables 14 and 15 in production though they are available in the sandbox environment. As a solution, it is best not to include supeco in the JSON until the government API releases supeco into production. Forward-Port-Of: odoo/enterprise#62824
This PR aims to decrease a bit the contrast of placeholder textin order to avoid confusion with regular text. Prior to this PR, placeholder texts were using a gray value from the grayscale, which was very similar to the `$body-color` in some context. To fix that issue, the color of the placeholder has been reduced to make it lighter, even though it doesn't meet `3.5:1` contrast ratio. task-3686510 - requires https://github.com/odoo/odoo/pull/164510 Forward-Port-Of: odoo/enterprise#631
Original PR description
This PR aims to decrease a bit the contrast of placeholder textin order to avoid confusion with regular text. Prior to this PR, placeholder texts were using a gray value from the grayscale, which was very similar to the `$body-color` in some context. To fix that issue, the color of the placeholder has been reduced to make it lighter, even though it doesn't meet `3.5:1` contrast ratio. task-3686510 - requires https://github.com/odoo/odoo/pull/164510 Forward-Port-Of: odoo/enterprise#63111 Forward-Port-Of: odoo/enterprise#62029
Currently, when importing a CAMT file, the system fails to use `<AddtlNtryInf>` as a fallback for the payment reference. ### Steps to Reproduce 1. Install `account_bank_statement_import_camt`. 2. Import a CAMT file with a statement that includes `<TxDtls>` but no `<RmtInf>`, and has `<AddtlNtryInf>` defined. (You can use the one provided in the tests) **Expected Result:** The imported statement's payment reference should contain the value of `<AddtlNtryInf>`. **Actual Result:** The
Original PR description
Currently, when importing a CAMT file, the system fails to use `<AddtlNtryInf>` as a fallback for the payment reference. ### Steps to Reproduce 1. Install `account_bank_statement_import_camt`. 2. Import a CAMT file with a statement that includes `<TxDtls>` but no `<RmtInf>`, and has `<AddtlNtryInf>` defined. (You can use the one provided in the tests) **Expected Result:** The imported statement's payment reference should contain the value of `<AddtlNtryInf>`. **Actual Result:** The imported statement's payment reference contains `/` instead. ### Cause The system attempts to use `<AddtlNtryInf>` as a fallback for `payment_ref`. However, it looks in the wrong place. It searches inside `<TxDtls>`, whereas `<AddtlNtryInf>` is actually a child of `<Ntry>`. opw-3878785 Forward-Port-Of: odoo/enterprise#62703