Daily updates from Odoo
Monday, November 18, 2024
27 changes · master
New functionality added to Odoo
Adds a new Employee State Insurance report for Indian payroll, showing employee and employer contributions for a selected month or period. This helps payroll teams review ESIC contribution details per employee and export them to Excel for easier compliance and reporting.
Original PR description
This PR adds a new ESI (Employee State Insurance) report that details the amounts contributed by employees and employers to the ESIC during a given month/period. It generates an xlsx file containing ESI details for each employee. task-4011111
Enhancements to existing features
Payroll salary rule categories can now be linked to a country, helping companies use the right categories for each local payroll setup. This reduces duplicate or conflicting category choices and removes a redundant Moroccan payroll category.
Original PR description
-added new field country_id on salary rule categories model. -added constrain to prevent from creating two categories with same code in same country. -added constrain for the category which is currently used in existing salary rule, country field should not be changed. -added domain for category_id in hr salary rule model based on the country of structure, which means the structure without the country will show the category without country and structure with country will show the categories of that specific country and category without country in hr.salary.rule -added domain for parent_id to display only categories with same country or available to all countries. -added the specific countries in l10n data for salary rule category. -added tests * = l10n_ma_hr_payroll -removed Employer's contributions rule category in Moroccon localization because its same as the Company Contribution rule category task-3947372
The default payment reminder email has been refined to make follow-up messages clearer and more polished for customers. The template also uses email-compatible styling so reminders display more reliably across email clients.
Original PR description
This commit slightly improves the default followup email message for payment reminder. task-4245024
The signing experience has been cleaned up so completed, cancelled, refused, and expired documents behave more consistently in the thank-you screen. Mobile users also get a simpler signing interface with clearer actions and better zoom controls, reducing confusion when completing documents on small screens.
Original PR description
This commit aims to fix some issues with sign: 1. on the Thank-you dialog, when clicking on cancel, document should be removed from the list. 2. don't include expired sign requests in the Thank-you dialog. 3. change the layout of Thank-you dialog. 4. for mobile view, remove "Fill in" input field. 5. for mobile view, rename the validate button. 6. changing validity to the past, should set the state to 'expired'. 7. refusing sign requests on the Thank-you dialog doesn't cancel them. 8. fix zoom in/out on mobile screens. task: 4294860
Payroll will no longer show a payslip duration warning when the selected salary structure is not configured to use worked day lines. This reduces confusing alerts for payroll teams in setups where that warning is not relevant.
Original PR description
If a structure has the setting 'use_worked_day_lines' set to False, we shouldn't show the warning for the payslip duration. Task: 4300660
This change lays groundwork for a revised Discuss messaging service used across several Odoo apps. It improves the shared communication foundation that supports chatter, activities, attachments, live chat, VoIP, and related collaboration features, helping teams benefit from more consistent messaging behavior over time.
Original PR description
https://github.com/odoo/odoo/pull/125092
WhatsApp template buttons that use a relative link, such as /my/home, are now automatically completed with the current Odoo instance domain when submitted for approval. This makes it easier to create message buttons that reliably send customers back to the right Odoo website without manually entering the full address.
Original PR description
Whenever a WhatsApp template has a url button with website_url that has no domain (e.g., /my/home), this website_url intuitively is expected to be prefixed with the current instance domain (e.g., https://odoo.com/my/home). This domain prefixing takes effect when the template is submitted for approval. This feature is useful in case we want to create a template button redirecting to the Odoo instance that created it. task-4241442
This update refines the look and behavior of Discuss-related screens and messaging tests, making conversations feel more polished and consistent. It also touches WhatsApp messaging and stock barcode image preview areas to keep related communication experiences aligned.
Original PR description
https://github.com/odoo/odoo/pull/170120
The product form layout in Intrastat reporting has been adjusted so fields take up space more consistently. This helps keep the interface cleaner and easier to use when reviewing or editing product-related Intrastat information.
Original PR description
Before this commit some fields were taking extra space and ruining the UI by breaking uniformity After this commit uniformity was restored in UI TaskId - 3794896
Resolved issues and error corrections
Belgian payroll time off requests will no longer create an eDRS activity for the person submitting or processing the request when no notified time off officers are configured. This prevents unnecessary or incorrectly assigned follow-up tasks and keeps notifications aligned with the leave type settings.
Original PR description
The eDRS activity on time off request is sent to the current logged in user if there are no `Notified Time Off Officers` specified on the leave type. However, this shouldn't be the case. The activity shouldn't be created if there are no `Notified Time Off Officers`. These changes address this issue. task-4267132
This change reverses a previous behavior where submitting a website helpdesk form could set or change the related customer on a task based on the email entered in the form. This helps avoid incorrect customer associations and keeps helpdesk/task records aligned with the intended contact data.
Original PR description
COM PR: odoo/odoo#186140 UPG PR: odoo/upgrade#6715 task-4295363
Features or functions removed from Odoo
This change removes unused code from the duplicate transactions tool in online bank synchronization. It has no expected effect on daily use, but helps keep the accounting synchronization feature easier to maintain.
Original PR description
The aim of this is removing a small dead code presents in the duplicate transactions tool. The function on line 66 is not existing anymore and the one on line 65 is never used. no task id
Code cleanup and technical improvements
Dutch statutory reporting features have been merged into the main Dutch reports module to simplify maintenance and reduce duplicated functionality. This keeps SBR and ICP reporting available in a more central place, making future updates easier and more consistent.
Original PR description
We added l10n_nl_reports_sbr, l10n_nl_reports_sbr_icp, l10n_nl_reports_sbr_ob_nummer and l10n_nl_reports_sbr_status_info in stable, this pr will do some cleaning by merging l10n_nl_reports_sbr, l10n_nl_reports_sbr_ob_nummer, l10n_nl_reports_sbr_status_info and l10n_nl_reports_sbr_icp into l10n_nl_reports and merging the ICP report from l10n_nl_intrastat into l10n_nl_reports as well.
- adhere to ruff styling
- l10n_nl_reports_sbr_tax_report_wizard: because global variables are discouraged and can be a source of bugs we removed the 'server_leaf_cert' variable and instead implemented the `SoapClientWrapper` class which now holds the `server_leaf_cert`
task: 3187031This update reorganizes how message threads and chatter loading are handled, making the underlying messaging code easier to maintain. For business users, the expected impact is smoother long-term reliability in recruitment-related communication areas without changing day-to-day workflows.
Original PR description
This reduces the complexity of thread_service, and encapsulate self-contained code of chatter-specific code of thread and message list loading. https://github.com/odoo/odoo/pull/121090
This draft updates how messaging-related data is organized behind the scenes so it can be stored and found more consistently. The change supports future cleanup and maintenance work, with little expected direct impact on day-to-day users.
Original PR description
https://github.com/odoo/odoo/pull/130602
This change updates several Enterprise modules to align with a behind-the-scenes restructuring of Odoo's messaging framework. It helps keep accounting, approvals, and documents features compatible with the latest internal architecture without changing the user-facing workflow.
Original PR description
https://github.com/odoo/odoo/pull/132442 Adapt enterprise code with moving `insert()` method in the discuss model class, rather than a service coupled with the model.
Miscellaneous changes
When a company is employing partner for construction work a special report mechanism is needed. A Subcontractor is a partner that will do construction work and invoice the Contractor. Construction Industry Scheme add deductions for labour cost on the invoice. The deducted amount must be paid and reported by the contractor through a monthly return. For more informations about CIS, see: https://www.gov.uk/what-is-the-construction-industry-scheme This commit adds: - 6 new taxes for deductio
Original PR description
When a company is employing partner for construction work a special report mechanism is needed. A Subcontractor is a partner that will do construction work and invoice the Contractor. Construction Industry Scheme add deductions for labour cost on the invoice. The deducted amount must be paid and reported by the contractor through a monthly return. For more informations about CIS, see: https://www.gov.uk/what-is-the-construction-industry-scheme This commit adds: - 6 new taxes for deductions 0, 20, 30% in sales and purchase - A CIS report inherited from the tax report - A way to directly send the report to hmrc. This imply a call to IAP - New fields on res.company and res.partner for the HMRC API related: https://github.com/odoo/iap-apps/pull/842 task:3851467 Forward-Port-Of: odoo/enterprise#66766
Before this commit, the buttons "Add By-Product" and "Validate" are both visible when the user is in a by-product move line form view from the Barcode app. This should not happen. Forward-Port-Of: odoo/enterprise#73737 Forward-Port-Of: odoo/enterprise#73242
Original PR description
Before this commit, the buttons "Add By-Product" and "Validate" are both visible when the user is in a by-product move line form view from the Barcode app. This should not happen. Forward-Port-Of: odoo/enterprise#73737 Forward-Port-Of: odoo/enterprise#73242
Sales order created from purchase orders thanks to the inter-company module were assigned the default team of the company, regardless of the customer configuration. This commit makes sure the team is correctly computed in the dedicated compute, ensuring the expected team is assigned to the Sales Order. opw-4166598 Forward-Port-Of: odoo/enterprise#72767
Original PR description
Sales order created from purchase orders thanks to the inter-company module were assigned the default team of the company, regardless of the customer configuration. This commit makes sure the team is correctly computed in the dedicated compute, ensuring the expected team is assigned to the Sales Order. opw-4166598 Forward-Port-Of: odoo/enterprise#72767
This fixes issues that arose since https://github.com/odoo/enterprise/commit/54965c8d62301ba1fa8409709a1a1fd77150f722 It fixes the fact that some tests ordered records using states and those states would be different in invoicing enterprise or accounting. Thus it would not have the same order of records and fail the test. Forward-Port-Of: odoo/enterprise#71059
Original PR description
This fixes issues that arose since https://github.com/odoo/enterprise/commit/54965c8d62301ba1fa8409709a1a1fd77150f722 It fixes the fact that some tests ordered records using states and those states would be different in invoicing enterprise or accounting. Thus it would not have the same order of records and fail the test. Forward-Port-Of: odoo/enterprise#71059
Before this commit: ==================== Only the tracking number was shown on the kitchen card for floating orders. If the user changed the name of a floating order, it could create confusion if the displayed name was different. After this commit: ================== The floating order name will be displayed for floating orders, otherwise, the tracking number will be shown. task- 4274465 Forward-Port-Of: odoo/enterprise#72750
Original PR description
Before this commit: ==================== Only the tracking number was shown on the kitchen card for floating orders. If the user changed the name of a floating order, it could create confusion if the displayed name was different. After this commit: ================== The floating order name will be displayed for floating orders, otherwise, the tracking number will be shown. task- 4274465 Forward-Port-Of: odoo/enterprise#72750
When uploading a CFDI XML invoice containing the `InformacionGlobal` element, the system fails to parse the document correctly and displays an error message. ### Steps to Reproduce 1. Install the `l10n_mx_edi` module. 2. Create a blank invoice. 3. Add a CFDI XML file containing an `InformacionGlobal` as an attachment to the invoice. (You can use the file `enterprise/l10n_mx_edi/tests/test_files/test_global_invoice_year_month_format.xml` for testing.) The chatter displays the following
Original PR description
When uploading a CFDI XML invoice containing the `InformacionGlobal` element, the system fails to parse the document correctly and displays an error message. ### Steps to Reproduce 1. Install the…
When uploading a CFDI XML invoice containing the `InformacionGlobal` element, the system fails to parse the document correctly and displays an error message. ### Steps to Reproduce 1. Install the `l10n_mx_edi` module. 2. Create a blank invoice. 3. Add a CFDI XML file containing an `InformacionGlobal` as an attachment to the invoice. (You can use the file `enterprise/l10n_mx_edi/tests/test_files/test_global_invoice_year_month_format.xml` for testing.) The chatter displays the following error: Error importing attachment 'xml_file_name.xml' as invoice (decoder=_l10n_mx_edi_import_cfdi_invoice) ### Cause The `InformacionGlobal` element in the XML requires an `Año` attribute (note the special character `ñ`). Correct encoding is crucial here to handle special characters accurately. When the XML file is first uploaded, it is parsed with the correct encoding. However, during processing, the XML is converted back to a string, losing its original encoding in the process. This causes issues with special characters like `ñ`, which can no longer be read correctly by the system, resulting in a parsing error. opw-4226968 Forward-Port-Of: odoo/enterprise#73726
If there is no warehouse set on website calculate free_qty in all warehouses. task-4251740 Forward-Port-Of: odoo/enterprise#71213
Original PR description
If there is no warehouse set on website calculate free_qty in all warehouses. task-4251740 Forward-Port-Of: odoo/enterprise#71213
Commit 1: [FIX] documents: avoid crashes on inaccessible targets Reproduce: 1. Create a shortcut for a document you are shared access to. Say it ends up in My Drive 2. Remove your access to the shortcut's target 3. Go to the folder/section (My Drive) where you have the shortcut 4. Experience an Access Error Usually, access rights of a document and its shortcuts is synchronized, so a user can see/edit both or none. This is not the case with ownership as a user can create a shortcut
Original PR description
Commit 1: [FIX] documents: avoid crashes on inaccessible targets Reproduce: 1. Create a shortcut for a document you are shared access to. Say it ends up in My Drive 2. Remove your access to the…
Commit 1: [FIX] documents: avoid crashes on inaccessible targets Reproduce: 1. Create a shortcut for a document you are shared access to. Say it ends up in My Drive 2. Remove your access to the shortcut's target 3. Go to the folder/section (My Drive) where you have the shortcut 4. Experience an Access Error Usually, access rights of a document and its shortcuts is synchronized, so a user can see/edit both or none. This is not the case with ownership as a user can create a shortcut to a document they don't own. If they are allowed to view a shortcut they own when they don't have access to the target anymore, the webclient crashes on loading target data (e.g. to show previews). We tested changing the domain of ownership-related access in user_permission, but it is very costly performance-wise, so this is our best approach in stable as it affects writes but not all reads. Commit 2: Reproduce: 1. Enable Company 1 and 2 2. Create a document with Company 1 3. Create a shortcut for the document. 4. Change document's company to Company 2 6. Only enable Company 1 4. Experience an Access Error See previous commit. Syncing company_id with shortcuts allows to avoid this. A test is included. Task-4236268 Forward-Port-Of: odoo/enterprise#71235
Bug === The "Shared With Me" folder is really slow on next.odoo.com. We used "user_permission != none" in the domain, but it's already added by the access rules, and so, that part is computed too much time in SQL. The web_search_read query, on my personal account takes (build of 4 November) - 3600ms before the change - 490ms after the change Task-4307300 Forward-Port-Of: odoo/enterprise#73269
Original PR description
Bug === The "Shared With Me" folder is really slow on next.odoo.com. We used "user_permission != none" in the domain, but it's already added by the access rules, and so, that part is computed too much time in SQL. The web_search_read query, on my personal account takes (build of 4 November) - 3600ms before the change - 490ms after the change Task-4307300 Forward-Port-Of: odoo/enterprise#73269
Purpose ======= During the migration, the owner can be reset, if the user does not have a write access on the documents (because being owner gives all access on the record). Because of that, the filter "My Documents" does not show most of our files on next.odoo.com. To mitigate that, that filter now uses the contact in addition to the owner, and during the migration, if we reset the owner, and if the contact is False, we will set the contact to the partner of the owner. Task-4310779 For
Original PR description
Purpose ======= During the migration, the owner can be reset, if the user does not have a write access on the documents (because being owner gives all access on the record). Because of that, the filter "My Documents" does not show most of our files on next.odoo.com. To mitigate that, that filter now uses the contact in addition to the owner, and during the migration, if we reset the owner, and if the contact is False, we will set the contact to the partner of the owner. Task-4310779 Forward-Port-Of: odoo/enterprise#73357
Draft for a mixed bag of MRP bugfixes for post-freeze 18.0. 1. Fixed the responsible assignment button for Quality Points in the kanban view. 2. Added tooltips to the BoM and indirect demand fields of MPS wizard. Task ID: [4154879](https://www.odoo.com/odoo/966/tasks/4154879) Forward-Port-Of: odoo/enterprise#70847
Original PR description
Draft for a mixed bag of MRP bugfixes for post-freeze 18.0. 1. Fixed the responsible assignment button for Quality Points in the kanban view. 2. Added tooltips to the BoM and indirect demand fields of MPS wizard. Task ID: [4154879](https://www.odoo.com/odoo/966/tasks/4154879) Forward-Port-Of: odoo/enterprise#70847