Thursday, December 11, 2025
3 changes · saas-18.4
Enhancements to existing features
This update ensures that newly imported customer and supplier records are correctly identified as ‘companies’ within Odoo. This improves data accuracy and streamlines processes related to invoicing and reporting. The change was made to align with best practices for account management.
Original PR description
Ensure imported partner records are marked as companies when creating new partners. Task-5353923 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239116 Forward-Port-Of: odoo/odoo#238793
This update enhances the refresh cycle for return data in the accounting reports. Previously, the refresh period was inconsistent, leading to unpredictable data updates. Now, the system refreshes data over a consistent one-year past and future window, ensuring reliable and predictable reporting.
Original PR description
Previously, the minimum date used for the refresh period in `_try_create_returns_for_fiscal_year` was the fiscal year itself, which caused confusion. Depending on whether we were at the beginning or the end of the fiscal year, the amount of past data being updated was inconsistent. The new behavior refreshes a fixed window of one year in the past and one year in the future, making the update range predictable and consistent. task-5388423
This update introduces a new process to automatically upload attachment files to cloud storage. This improves storage efficiency and reduces reliance on local servers. Administrators can manually trigger the migration process to move existing attachments.
Original PR description
This commit provides a cron job to migrate attachment binary to the cloud storage. The cron job is designed to be manually triggered from by the "Run Manually" button of the Scheduled Action's form…
This commit provides a cron job to migrate attachment binary to the
cloud storage. The cron job is designed to be manually triggered from
by the "Run Manually" button of the Scheduled Action's form view.
The cron job will try to upload some attachments once
1. size is greater than the minimum upload file size defined by
(ir.config_parameter: cloud_storage_min_file_size)
2. id is greater than the number defined by
(ir.config_parameter: cloud_storage_migration_min_attachment_id)
3. res_model is in a white list
(ir.config_parameter: cloud_storage_migration_message_models)
(ir.config_parameter: cloud_storage_migration_all_models)
4. not used by documents.document
optional configurations to avoid timeout issues
- cloud_storage_migration_max_file_size:
max bytes for each migrated attachment
- cloud_storage_migration_max_batch_file_size:
max total bytes for migrated attachments in one cron job execution
The cloud_storage_migration_min_attachment_id which can be accessed
from the list view can be treated as the progress of the cron job.
Manually setting it to 0 and retriggering the cron job will retry the
upload process for previously failed or ignored attachments.
taskid: 5387110
Steps
1. install a cloud storage module (cloud_storage_google, cloud_storage_azure)
2. install the cloud storage migration module (cloud_storage_migration)
3. Go to Settings for Cloud Storage Settings <img width="505" height="206" alt="image" src="https://github.com/user-attachments/assets/d72d7b52-5ce7-4209-8645-4a8ac35dd049" />
4. [Configure the cloud storage settings](https://www.odoo.com/documentation/19.0/applications/general/integrations/cloud_storage.html)
5. Setting the Minimum File Size. Attachments smaller than the size won't be uploaded to the cloud storage <img width="457" height="96" alt="image" src="https://github.com/user-attachments/assets/8dc4e6fe-9c84-44f5-a83a-28c7b2fad30a" />
6. After 4, configure settings for the cloud storage migration
a. <img width="464" height="209" alt="image" src="https://github.com/user-attachments/assets/37352453-ff0e-4e03-a4d5-7fdb8168dee1" />
b. Cron Job:
i. the link to the cloud storage migration cron job
ii. the cron job is designed to be a job only triggered by clicking "Run Manually".
iii. It will re-trigger itself until all relevant attachments are migrated.
c. Parameters:
<img width="882" height="571" alt="image" src="https://github.com/user-attachments/assets/9926ed9f-81ac-4917-b759-872ed2584217" />
d. Progress Bar:
i.progress of the migration job
ii. calculated by `cloud_storage_migration_min_attachment_id / cloud_storage_migration_max_attachment_id`
e. Attachment Report:
i. <img width="1907" height="298" alt="image" src="https://github.com/user-attachments/assets/33a77835-c6b6-4bc4-b20a-4ec68acba783" />
ii. a view to help administrator analyze which model's attachments should be migrated
iii. help to configure step 6.c.i.4 and step 6.c.i.5
f. Message Attachments
i. help to configure step 6.c.i.4
g.All attachments
i. help to configure step 6.c.i.5
7. Click Cron Job and then Click Run Manually
<img width="409" height="123" alt="image" src="https://github.com/user-attachments/assets/f60cdfcf-e6a6-4503-87fc-0be7f14ceede" />
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#239052
Forward-Port-Of: odoo/odoo#235745