Wednesday, January 10, 2024
14 changes · master
Enhancements to existing features
The Settings page now shows QR codes for the iOS and Android mobile apps when viewed on desktop. This makes it easier for users to open the correct app store page on their phone without manually searching or typing links.
Original PR description
In the settings page, there are two link as images to go to the respective app stores for the mobile apps. This commit replace in desktop mode the images by qrcodes. Task ID 3642497 Result: 
Selection dialogs now show clearer guidance when there are no records to display, with support for custom help text. Empty-state messages also display more reliably in dialog views, improving the user experience when creating or selecting records.
Original PR description
This commit improves the no content helper in SelectCreateDialog. A new props `noContentHelp` has been introduced. It allows to pass the markuped value to insert inside the no content helper (same…
This commit improves the no content helper in SelectCreateDialog. A new props `noContentHelp` has been introduced. It allows to pass the markuped value to insert inside the no content helper (same API as View). This props is optional, and if it is not given, we fallback on an improved message than the one we had before (still no image though). To make this work, we had to set a minimal height on dialogs having a no content helper. Indeed, as it is "position: absolute", it doesn't take any space. By fixing it in views.scss, we also make it work for actions in target="new", not only for SelectCreateDialog. Finally, we tweak the z-index of the no content helper in lists to make it higher than the z-index of the sticky header, s.t. the no content helper is correctly displayed on top of the header. Task 3674835 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
Online sales orders now determine payment terms in one place instead of repeating the same logic. This reduces unnecessary processing and helps keep checkout-related order data more consistent and easier to maintain.
Original PR description
Since `sale_get_payment_term` is already called in the compute for the SO payment terms, its whole logic can be handled directly in the compute, and we do not need to call it manually anymore. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Stock replenishment now prioritizes reservations by business priority first, then by scheduled date, making allocation decisions easier to understand. The stock forecast report is also aligned with this reservation logic so expected availability better reflects how items will actually be reserved.
Original PR description
### Current behavior before PR When a replenishment takes place, moves are reserved according to their reservation date. ### Desired behavior after PR is merged When a replenishment takes place, moves are reserved according to their priority (descending) and scheduled date (ascending). --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update removes an obsolete condition from the custom payment page template that was accidentally left behind after a previous change. It helps keep the payment customization code simpler and aligned with the intended behavior, with no expected visible impact for users.
Original PR description
Following commit f61b159618c690db40519a66961ce5bcc919dc64 the t t-if should have been removed in master but was forgotten. See also: - https://github.com/odoo/enterprise/pull/53723
The web charting library used by Odoo has been updated to a newer version. This helps keep chart displays current and maintainable, with no expected change to day-to-day workflows.
Original PR description
In this commit, Chart.js library is updated from 4.3.0 to 4.4.1[1]
Note:
This version of Chart.js is build from the source repo[2] because there
is only a minified prebuild umd version.
To make this build:
1. Clone the repo[2] and checkout the 4.4.1 tagged version
2. Install the build dependencies: `pnpm install`
3. Change the umd build's config at [3] by :
```js
{
input: 'src/index.umd.ts',
plugins: plugins(),
output: {
name: 'Chart',
file: 'dist/chart.umd.js',
format: 'umd',
indent: true,
banner,
sourcemap: false,
},
}
```
4. Build the lib: `pnpm run build` ; the unminified umd version is
located at `./dist/chart.umd.js`
[1]: https://github.com/chartjs/Chart.js/compare/v4.3.0...v4.4.1
[2]: https://github.com/chartjs/Chart.js
[3]: https://github.com/chartjs/Chart.js/blob/v4.4.1/rollup.config.js#L50
task-3600470Website editors can now mark any existing page as a template, making it available in a new Custom section when creating pages. The update also improves template previews and warns users before deleting pages that are used as templates, reducing accidental loss of reusable content.
Original PR description
This commit makes it possible to mark pages available as new page template. Such marked pages are made available for selection in a "Custom" section of the new page dialog. task-3626452
This update adds automated checks for the sales order line field used in timesheet-related task workflows, helping ensure it behaves consistently. It also removes an older unused widget, reducing maintenance overhead without changing expected user workflows.
Original PR description
After this commit, tests have been implemented for so_line_field widget. Additionally, so_line_one2many widget has been removed as it is no more needed. task-3660978 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Email campaign click, open, and reply rates now exclude failed and bounced messages from their calculations. This gives teams a clearer view of engagement among successfully delivered emails and avoids underreporting performance due to delivery problems.
Original PR description
Before this commit, stat ratios on the mailing.mailing model divided the appropriate number of mailing traces by [# total_traces - # cancel_traces]. It meant that failed emails and bounced ones were counted in that value, decreasing the ratios of clicked, opened and replied emails. In order to make those 3 ratios more relevant, we now also remove # bounced_traces and # failed_traces from that total divider for some ratios, making those defined as the proportion of correctly issued emails that is clicked, opened and replied, respectively. For instance, a mailing of 4 emails with distribution: - 1 opened - 1 error (failed) - 1 cancel - 1 bounced had a 50% opened_ratio, because we already exclude the 'cancel' trace, and has now a 100% opened_ratio. The test on mailing statistics is updated accordingly. Task-3607171
This update aligns the SEPA direct debit payment page with a recent platform change by removing an outdated display condition. It helps keep the payment experience consistent and avoids template mismatches after the related core update.
Original PR description
Following commit f61b159 the t t-if should have been removed in master but was forgotten. See also: - https://github.com/odoo/odoo/pull/147657
This update adds automated checks for the sales order line selection used in timesheet-related workflows. It also removes an obsolete related widget, reducing maintenance needs while helping keep helpdesk and project task sales links reliable.
Original PR description
After this commit, tests have been implemented for so_line_field widget. Additionally, so_line_one2many widget has been removed as it is no more needed. task-3660978 related-https://github.com/odoo/odoo/pull/148176
Documents first uploaded in the Documents app are now protected from being automatically deleted when a linked business record, such as a project task, is removed. This helps prevent accidental loss of important files while still allowing automatically generated related documents to be cleaned up when appropriate.
Original PR description
We prevent document to be deleted when first uploaded in the document app and then associated to a record being deleted. Technical note: That behavior is controlled by a new flag added on document "prevent_cascade_deletion" which is set to True by default and set to false when the document is created outside the app Documents (in document mixin which automatically create a related document when creating a record). That flags can be inspected and edited in debug mode. Task-3082297
The French FEC accounting export is now handled directly in Enterprise using a more efficient file export process. This should make generating legally required FEC files much faster and more reliable for companies with very large accounting datasets.
Original PR description
The French FEC file was a separate module which was using the base64 enconding in order to generate the needed file. This could take very long on DBs with a few millions AML. Moved in to enterprise and adapted it so it uses the export_file functions which are then available and much more efficient. Related to : https://github.com/odoo/odoo/pull/139847 task-3447342
Documents first uploaded in the Documents app are no longer permanently deleted when a linked record, such as a project task, is removed. Instead, they are moved to the trash and the creator is notified, giving users a chance to recover important files before automatic cleanup after 30 days.
Original PR description
We prevent document to be deleted when first uploaded in the document app and then associated to a record being deleted. Instead, we put them in the trash and notify the creator of the document. For…
We prevent document to be deleted when first uploaded in the document app and then associated to a record being deleted. Instead, we put them in the trash and notify the creator of the document. For example, if we uploaded a document and then created a task based on it from the document app, then deleted that task, the document was deleted as a consequence of the deletion of the task. Now, the document is moved into the trash and the creator is notified. Technical notes: The deletion of the document was caused by the cascade=”ondelete” on the attachment_id field of document. Indeed, in the example above, when deleting the task, the attachment is deleted which was causing the deletion of the document. To avoid that, we have removed the cascade=”ondelete” on that field and implemented a custom cascade deletion in the unlink method of attachment model. The custom cascade delete relies on a new technical field added to document: attachment_cascade_deletion which is by default set to False so that the documents are archived instead of being deleted in the above situation. We set it by default to False because we suppose that the default way to create document is in the document app. When document are created from outside the document app, that field is set to True. Hopefully, the main case is centralized in the method _get_document_vals of the document mixin where we set attachment_cascade_deletion to True. Indeed, that method is called to create document each time an attachment is created (except if it is for a document). For example, when uploading a file for a task, we want the automatically created document to be deleted when the task will be deleted. The second case for which we allow the cascade deletion is for copied document that are related to another record (not related to themself = pure document). Note that if the user takes no action the document will be deleted after staying 30 days in the trash. Task-3082297