Wednesday, January 10, 2024
7 changes · master
Enhancements to existing features
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
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
Website 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
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
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