Thursday, February 26, 2026
39 changes · master
Resolved issues and error corrections
Fleet users can now see the Cars history button on public employee profiles, not just on their own employee record. This makes it easier for authorized staff to review vehicle history for employees who have car records.
Original PR description
- added smart button for Cars history to show on employee public if the user has `fleet_group_user` access right task-id: 5082555 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The chat window's Call Settings panel now keeps a proper header background while users scroll. This prevents the title from visually overlapping with the panel content, making the settings easier to read and use.
Original PR description
Before this commit, when opening the "Call Settings" in a chat window, the header of the action panel was missing a background color. Because of this, when scrolling down, the Action panel title was floating above the content and the text was overlapping, making it hard to read. This comes from `.bg-inherit` that requires the parented chain to rigorously have `.bg-inherit` too until reaching an actual bg color. In this case, one parent container lacked it, which is what this commit fixes. Task-5867464 (point 84) Before / After <img width="382" height="465" alt="Screenshot 2026-02-24 at 16 06 32" src="https://github.com/user-attachments/assets/f5c4a309-c60a-4e9b-bef0-06ee7ba731b8" /> <img width="386" height="468" alt="Screenshot 2026-02-24 at 16 06 18" src="https://github.com/user-attachments/assets/fea35f8f-2a76-4c40-b51e-28dbfce3a281" /> Forward-Port-Of: odoo/odoo#250481 Forward-Port-Of: odoo/odoo#250398
This fixes the order of sales order statuses when users group the Sales Kanban view by status. The statuses now follow the expected business flow instead of being sorted alphabetically, making the view easier to understand and use.
Original PR description
Steps to produce: --- - Install sales module. - Open sales module > orders > switch to kanban view. - Then make it group by status. Observation: --- - The order of status is not proper. - It comes as…
Steps to produce: --- - Install sales module. - Open sales module > orders > switch to kanban view. - Then make it group by status. Observation: --- - The order of status is not proper. - It comes as Cancelled, Quatation, Sale order, Quatation sent. Root cause: --- - When we perform Group By > Status, the method `web_read_group()` is executed. then in chain `_web_read_group()` calls `read_group()` without providing any explicit `orderby`. Inside `read_group()`, if orderby is not provided, it sets the order to the grouped field itself. - Inside `_read_group()`, the SQL query constructed with an order by clause on the grouped field (state). Therefore, the values are retrieved in alphabetical order as `cancel, draft, sale, sent`. Solution: --- - Define `group_expand` on the `state` field. During `read_group()`, `_read_group_fill_results()` calls this method and reorders the groups accordingly. - This overrides the alphabetical SQL order returned by `_read_group()` and ensures the correct logical status order in Kanban view. opw-5497664 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248776
This fixes an internal test so it no longer fails when existing company-wide leave records are already present. It helps keep the Time Off module's automated checks stable without changing how users manage leave.
Original PR description
The test `test_compute_associated_leaves_count` was failing with:
```
AssertionError: 3 != 2 : Calendar A should have 1 specific + 1 global leave.
```
The test assumed that only one global leave (`calendar_id=False`) existed in the database. However, the `TestHrHolidaysCommon` setup creates additional global leaves, causing the compute method to return:
```
{calendar_a: 1, calendar_b: 1, global: 2}
```
As a result, `associated_leaves_count` became 3 instead of the expected 2. The test was updated to detect the baseline number of global leaves before creating new ones.
[RB-233599](https://runbot.odoo.com/odoo/error/233599)
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fixes a crash in the email builder when users add the company team snippet and click an image. The image editing option now points to the correct component, so marketing users can continue customizing mailing content without interruption.
Original PR description
The `Img` component was renamed `Image` in commit [1]. In the forward port [2], a template with usage of `Img` was not updated to use `Image` instead, resulting in an issue when using the company teams snippet. How to reproduce: - create a new mailing using the builder - add the s_company_team_shapes snippet - click on an `<img>` element Issue: - crash (Img component is missing) Solution: - rename Img to Image [1]: https://github.com/odoo/odoo/commit/a22e22acacc9d54f39d0f07acc3054cd2a33f61e [2]: https://github.com/odoo/odoo/commit/d2b56435736e8d507434c1378cb68fae23e8511f task-5963711 Forward-Port-Of: odoo/odoo#250234
Users can now find journal items linked to archived accounts when searching by account. This ensures older or inactive accounts remain usable for financial review and reporting, reducing missing results during audits or account history checks.
Original PR description
This commit makes it possible to see the journal items for archived account when searching for the account. Previously, when searching for an account that is archived, its journal items weren't shown. task-5905559 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#250420 Forward-Port-Of: odoo/odoo#249422
The delivery location selection screen no longer tries to focus on a location when none has been selected. This prevents a small usability issue and helps keep the checkout or delivery selection experience smoother for customers.
Original PR description
Forward-Port-Of: odoo/odoo#250680
This fix prevents Odoo from crashing while reviewing view definitions that contain syntax errors. Instead of showing an unexpected system error, the affected base view validation can continue handling invalid view data more safely.
Original PR description
When syntax error will raise ``node`` will not assign. So, assign ``None`` before error will surpess. Note:- found it during testing. ``` Traceback (most recent call last): File…
When syntax error will raise ``node`` will not assign. So, assign ``None`` before error will surpess.
Note:- found it during testing.
```
Traceback (most recent call last):
File "/home/odoo/src/odoo/19.0/odoo/http.py", line 2273, in _serve_db
return service_model.retrying(serve_func, env=self.env)
File "/home/odoo/src/odoo/19.0/odoo/service/model.py", line 185, in retrying
result = func()
File "/home/odoo/src/odoo/19.0/odoo/http.py", line 2328, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/src/odoo/19.0/odoo/http.py", line 2543, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/src/odoo/19.0/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/src/odoo/19.0/odoo/http.py", line 788, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/src/odoo/19.0/addons/web/controllers/dataset.py", line 32, in call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/src/odoo/19.0/odoo/service/model.py", line 94, in call_kw
result = method(recs, *args, **kwargs)
File "/home/odoo/src/odoo/19.0/addons/web/models/models.py", line 113, in web_read
values_list: list[dict] = self.read(fields_to_read, load=None)
File "/home/odoo/src/odoo/19.0/odoo/orm/models.py", line 3490, in read
return self._read_format(fnames=fields, load=load)
File "/home/odoo/src/odoo/19.0/odoo/orm/models.py", line 3747, in _read_format
vals[name] = convert(record[name], record, use_display_name)
File "/home/odoo/src/odoo/19.0/odoo/orm/models.py", line 6686, in __getitem__
return self._fields[key].__get__(self)
File "/home/odoo/src/odoo/19.0/odoo/orm/fields.py", line 1746, in __get__
self.compute_value(recs)
File "/home/odoo/src/odoo/19.0/odoo/orm/fields.py", line 1917, in compute_value
records._compute_field_value(self)
File "/home/odoo/src/odoo/19.0/odoo/orm/models.py", line 4952, in _compute_field_value
determine(field.compute, self)
File "/home/odoo/src/odoo/19.0/odoo/orm/fields.py", line 81, in determine
return needle(*args)
File "/home/odoo/src/odoo/19.0/odoo/addons/base/models/ir_ui_view.py", line 366, in _compute_invalid_locators
if invalid_locator := assess_locator(source, spec):
File "/home/odoo/src/odoo/19.0/odoo/addons/base/models/ir_ui_view.py", line 330, in assess_locator
if node is None:
UnboundLocalError: local variable 'node' referenced before assignment
```
opw-5956964
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#250589This fixes the help icon shown on website builder options so it appears correctly for users working in right-to-left languages. It also restores the tooltip text behavior so guidance remains visible where expected.
Original PR description
Among other things, commit [0aba7f3] added a `?` icon on builder options with a tooltip. However: - since [94e17fd], the key `state.tooltip` was removed from the BuilderRow component (to use `props.tooltip` directly), but the XML wasn't properly adapted in 19.0. - the icon isn't mirrored in RTL languages. This commit fixes both issues. [0aba7f3]: https://github.com/odoo/odoo/commit/0aba7f383c86dec00e9fc6d324a5bfdec7a19707 [94e17fd]: https://github.com/odoo/odoo/commit/94e17fd9845486a959f2544e1b26199abc96a56a task-5109547 Forward-Port-Of: odoo/odoo#250232 Forward-Port-Of: odoo/odoo#244024
This fixes an internal testing helper so it correctly supports checking for more than one possible error type at once. It helps Odoo's automated tests better match standard behavior, reducing false failures and improving development reliability.
Original PR description
Per the official docs: > To catch any of a group of exceptions, a tuple containing the exception classes may be passed as exception.
This fix updates two automated test scenarios so they no longer rely on an unstable test flag. It helps keep quality checks more consistent, reducing false test failures during development.
Original PR description
In this commit, we remove the undeterministicTour key in 2 tours:
- test_form_view_mail_triggers
- test_form_view_custom_reference_field
We have replace assertions in run functions (sync) by pseudo selectors in triggers (async).
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-prThe Certifications screen now shows an empty state instead of triggering an error when no skill type is marked for certifications. Users are guided to the Skill Types list to create or adjust certification types, helping HR teams resolve the setup issue quickly.
Original PR description
[FIX] hr: add empty page for certification view **Issue:** -Creating a new Certification triggers a validation error if no Skill Type has "is_certification" checked. **To reproduce:** 1-Navigate to Skill Types in Configuration Menu. 2-Disable "is_certificate" for all types. 3-Navigate to Certifications menu. 4-Try to create a new Certification for any Employee. **Solution:** -Empty page will show, with a button guiding to the Skill Types list view for adjustment / creation if no certifications available. -**Task**: #5350163
This fix prevents an error when a user validates a custom filter after clearing the field name. Instead of crashing, Odoo now handles this invalid filter input gracefully, improving reliability in the web interface.
Original PR description
Currently, an error occurs when user tries to validate a domain with no field name. Steps to install: - Install `sale_management` > Open sale order list view > Turn on debug mode. - Click on search…
Currently, an error occurs when user tries to validate a domain with no field name.
Steps to install:
- Install `sale_management` > Open sale order list view > Turn on debug mode.
- Click on search bar > Custom filter > Click on field and remove its field name written below the list of fields.
- Click validate.
Error:
```
TypeError: Empty field name in condition ('', '=', 1)
```
Cause:
- As the field name was emptied by the user the [line] will raise a TypeError during the domain validation.
- Till `19.0` any error during domain validation was handled through [here] which was later changed to handle only ValueErrors through this [commit].
Solution:
- Handled TypeErrors during domain validation.
[line]: https://github.com/odoo/odoo/blob/260b9c0417ed2278429fcdd7f50d61786d4e9beb/odoo/orm/domains.py#L841
[here]: https://github.com/odoo/odoo/blob/a220fb71c036c93fa1e75d4d37127e5eda0118f9/addons/web/controllers/domain.py#L34
[commit]: https://github.com/odoo/odoo/commit/a1434c32e9f4dd226d512677fd96e3051b908d8b#diff-e5da86414a8020b2843fb359453238e4977027d30f73f1fa792ca63ddd8fa2a7L34-R23
sentry-7278978488
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#249993The API documentation page now properly bypasses the server’s cached index when cache is disabled in developer tools. This helps ensure administrators and developers see freshly generated documentation instead of outdated cached content.
Original PR description
Access /doc/index.json with the "disable cache" checkbox from the devtools checked. To index is generated again (emitting warnings in the logs may some docstrings be broken) but it still uses the attachment that was cached by the server. It should not use the server attachment. Reference-to: c67f64d7025c ([FIX] api_doc: respect no-cache directive on index) 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#250643 Forward-Port-Of: odoo/odoo#249504
This fix prevents Peppol-specific validation rules from blocking BIS3 invoice files used outside Peppol, such as B2C invoices shared with accountants. It helps businesses export and import these invoice files even when customer endpoint identifiers are not required.
Original PR description
…peppol checked Some people are using BIS3 files even for B2C. They give the xml files to the accountant for him/her to import the file and generate the invoice in the accounting software. In that case, since it's a B2C transaction, the EndpointId might not be set but that's ok since it's only used to generate the invoice. opw-5952109 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#249751
CRM lead generation now correctly recognizes when a customer has no lead-generation credits available. Instead of showing a misleading 'no results' message, it can present the appropriate credit-related error so users understand what action is needed.
Original PR description
Before this commit, when the user uses CRM to generate new leads and does not have credits, the error message they would get is "Your request did not return any result (no credits were used). Try removing some filters." This commit fixes this in _perform_request by instead of expecting InsufficientCreditError raised it now expects the credit_error flag to be set. task-5925047 Forward-Port-Of: odoo/odoo#250433
This fix prevents the website editor sidebar from unexpectedly switching tabs while users are translating a page and hiding or showing invisible sections. It keeps the editing experience stable, reducing confusion for content teams working on multilingual websites.
Original PR description
With commit 3a80ac79c5b0193911e8ddab442660b315562639, the builder option plugin is not a custom one in translate. And the builder option plugin automatically switches to a fallback tab (instead of customize tab) when containers are de-activated. This happens when the user hides an invisible element. This commit fixes it by skipping swithing to fallback tab if the builder is in translation mode. Steps to reproduce: - Open website builder - Drop a section - Make it invisible on desktop - Add a language to the website - Open builder in translate mode - Click on the eye of invisible elements to show the invisible section - Click again to hide it - Bug: the sidebar left the "customize" tab and switched to "block" tab task-5475107 Forward-Port-Of: odoo/odoo#250676 Forward-Port-Of: odoo/odoo#242618
This fixes a display issue in the Discuss app where users on narrower desktop windows could see an unnecessary horizontal scrollbar. The conversation area now resizes properly, making the messaging experience cleaner and easier to use.
Original PR description
Before this commit, when Odoo browser had a relatively small width but still desktop width, the Discuss app had sometimes an horizontal scrollbar. Steps to reproduce: - Open General with Demo data on…
Before this commit, when Odoo browser had a relatively small width but still desktop width, the Discuss app had sometimes an horizontal scrollbar. Steps to reproduce: - Open General with Demo data on 1080p monitor - have window take slightly below half of screen width => The Discuss app has horizontal scrollbar, from sidebar non-compact, message list, and the member panel all open at once. This horizontal scrollbar comes from the General demo data that has a sub-thread preview from the 1st message. A sub-thread preview has a max-width of 400px, which shouldn't be an issue on itself. However due to parented container not having `min-width: 0`, it didn't want to shrink lower than this max-width. This commit fixes the issue with `o-min-width-0` on the parented container to make sure this can shrink lower than the sub-thread preview's max width of 400px. Task-5956698 Before / After <img width="882" height="635" alt="Screenshot 2026-02-20 at 16 36 14" src="https://github.com/user-attachments/assets/516b66a1-f8d2-4ee9-b62f-6d94dfe98d11" /> <img width="884" height="637" alt="Screenshot 2026-02-20 at 16 37 07" src="https://github.com/user-attachments/assets/987f418c-f7e2-477b-ae9c-6c68d6a21ec5" /> Forward-Port-Of: odoo/odoo#249846
This update fixes an issue where warehouse names with only numbers (e.g., '01') were displayed incorrectly in the barcode app. The fix removes a browser setting that caused numerical warehouse codes to be reversed, ensuring they are always shown in the correct order. This improves the clarity and accuracy of product information displayed to users.
Original PR description
### Steps to detect the bug: - Download stock apps - Enable "storage locations" settings under warehouse index - Change name of warehouse with a name composed only of numbers (ex. 01) - Create a…
### Steps to detect the bug:
- Download stock apps
- Enable "storage locations" settings under warehouse index
- Change name of warehouse with a name composed only of numbers (ex. 01)
- Create a product (with barcode number)
- Insert a number of products available with smart button "on hand"
- Create a new delivery for that product
- Go to barcode app and search for the delivery you just created
- Click on it and see that the name of the warehouse will be stock/01 instead of the correct 01/stock
### The problem:
The previous configuration used direction: rtl; on the warehouse name
element in the barcode app. So if the string contains only letters the
standard visual order is maintained, however, when the string consists
entirely of numbers the rtl property forces the browser to reorder them
from right to left.
### The reson to introduce the fix:
By removing this property, it is ensured that numerical warehouse codes are displayed in their natural sequence without being flipped.
opw-5730199
Forward-Port-Of: odoo/enterprise#107920This pull request addresses a technical issue related to the loading of task demonstrations within the Sale Timesheet module. The fix ensures that task-related data is correctly displayed, improving the functionality of this key sales reporting feature. This change enhances the accuracy of time tracking data for sales teams.
Original PR description
Forward-Port-Of: odoo/enterprise#108646
This update corrects a technical issue where the IoT long polling process wasn't correctly configuring HTTP requests. Previously, a failure occurred when attempting to retrieve event data. Now, all necessary parameters are passed, ensuring reliable data retrieval from IoT devices.
Original PR description
Before this commit, when the `_poll` method in the `iot_longpolling` called itself to listen for further events, it didn't pass in the `useLna` parameter. This caused the second call to `/event` to not use HTTP and therefore could fail. After this commit, the parameters are all passed through as expected. Forward-Port-Of: odoo/enterprise#108657
This change removes an unnecessary `div` wrapper from article body content. Previously, a technical detail in how the system parsed HTML caused this wrapper to be added, which increased the complexity of article formatting. This fix ensures cleaner and more efficient HTML structure for articles.
Original PR description
Prior to this commit, `_get_transformed_body_from` wrapped the source body in a `div` because `lxml.html.fragment_fromstring` is used with a `create_parent=True` argument. That argument is required because otherwise, the function throws an error if there are multiple root nodes in the parsed string, which is frequent in an article body. The final returned string still contained that additional `div` ancestor. This does not break an article per se, but repeated usage would increase the html structure depth by 1 every time, and that additional `div` was not part of the function desired transformations. task-5960616 Forward-Port-Of: odoo/enterprise#108310
This update resolves a technical issue that caused payroll processing to crash when employee contract dates were missing. By ensuring contract dates are always set, the system now reliably calculates payroll warnings without generating errors, improving overall payroll stability.
Original PR description
This commit fixes a traceback that occurred when an `hr.employee` record had no `contract_date_start` or `contract_date_end` defined, while payroll warnings depending on those fields were present. Since `warning_date` is computed based on the contract dates, the absence of the relevant field caused a crash. We now ensure that `contract_date_start` and `contract_date_end` are set before computing `warning_date` with either one. TaskID-5944876 Forward-Port-Of: odoo/enterprise#108106
This update resolves a problem where demo data incorrectly created duplicate follower records for portal customers. The change automatically handles follower subscriptions during project creation, eliminating the need for manual duplicate entries in the demo data. This ensures consistent and accurate demo data installation.
Original PR description
Portal customers are automatically subscribed as followers when a portal-visible project is created with a customer. The demo data in documents_project_sale was still manually creating a follower for the same partner, which caused a duplicate follower creation during demo data installation. This commit removes the redundant follower record from demo data, since follower subscription is already handled automatically during project creation. task-5075093
This update corrects a reporting issue within the MRP modules by standardizing time data to minutes. A new widget has been implemented to ensure accurate time calculations and reporting, enhancing the reliability of MRP data. This change impacts how time-based metrics are displayed and processed.
Original PR description
Make sure that time fields in mrp modules are in minutes. Add a new widget in mrp_plm for updates on time data types. Replace formatFloatTime by formatDuration. Forward-Port-Of: odoo/enterprise#108078
This update fixes an issue where CABA taxes were incorrectly included in tax reports, even when invoices were unpaid. The fix ensures that CABA taxes within tax groups are properly excluded, preventing duplicate reporting and improving the accuracy of financial data. This resolves a previous bug impacting invoice reconciliation.
Original PR description
How to reproduce: - Create one CABA tax and one normal tax. - Create a tax group containing both taxes. - Create an invoice using this tax group. - In the tax report, the CABA tax appears even when the invoice is unpaid. - After reconciliation, the CABA tax amount is duplicated in the report. When the CABA tax is part of a tax group, it is selected in _read_generic_tax_report_amounts_no_tax_details. Since the tax group has tax_exigibility = 'on_invoice', the CABA tax inside the group is incorrectly included by the query. opw-5468074 Forward-Port-Of: odoo/enterprise#108171 Forward-Port-Of: odoo/enterprise#105888
This update resolves a bug where Odoo would crash when Avatax company credentials were missing. The fix prevents a crash by handling the absence of credentials gracefully within the Avatax integration process. This ensures stability and prevents disruptions to accounting operations.
Original PR description
When `_find_avatax_credentials_company` returns `None`, `_get_avatax_service_params` crashes accessing `.avalara_commit` on it. `_find_avatax_credentials_company` should probably return an empty `res.company` recordset when it cannot find a company, but for stability reasons we won't change the return value and instead fix it locally in `_get_avatax_service_params`. opw-5939708 Forward-Port-Of: odoo/enterprise#108192
This update corrects a display issue in the Timesheet grid view. Previously, hovering over the total overtime cell showed 'Weekly Overtime' instead of the correct 'Total Overtime'. The change ensures accurate overtime reporting across daily, weekly, and monthly views, improving data clarity for users.
Original PR description
### Issue: When displaying the month in the grid view and hovering the bottom right cell, where the total overtime is displayed, it shows "Weekly overtime". ### Steps to reproduce: - Open Timesheet app - In "My Timesheet", display the grid in day or month - Hover the bottom right cell - It displays "Weekly Overtime" ### Solution: Rename it to "Total overtime" to handle all periods (day, week, month). opw-5502864 Forward-Port-Of: odoo/enterprise#108594 Forward-Port-Of: odoo/enterprise#107642
This update aligns the user interface of the Sign Now wizard to provide a more consistent experience, regardless of whether the user initiates a signature request through the 'Sign Now' option or the 'Send Request' option (including self-sign and direct send). This enhances usability and reduces confusion for users.
Original PR description
in this commit i alligned the UI of sign send request wizard to look similar for both cases when the user click sign now and when the user click send request (self sign and send request) Task: 5942397
This update resolves an issue where the Work Entries button in the HR module would crash when an overtime record lacked a 'Stop' setting. The fix ensures the system handles missing 'Stop' data correctly, preventing the error and allowing users to access Work Entries data without interruption. This improves stability and usability.
Original PR description
Clicking the Work Entries smart button raises a traceback when an overtime record has no Stop (time_stop). Steps to reproduce the error: - Install ``hr_work_entry_attendance`` module with demo data -…
Clicking the Work Entries smart button raises a traceback when an overtime record has no Stop (time_stop). Steps to reproduce the error: - Install ``hr_work_entry_attendance`` module with demo data - Activate developer mode - Create an Employee A > Settings > Set Default Ruleset in Overtime Ruleset In Payroll Tab, Work Entry Source: ``Attendances`` and set Contract - Create an overtime attendance > Save > Open the Overtime Details > Unset the ``Stop(time_stop)`` > Save - Open Employee A > Click on Work Entries smart button Traceback: ```py TypeError: '<' not supported between instances of 'bool' and 'datetime.datetime' ``` https://github.com/odoo/enterprise/blob/56c3723a925f718ba39d11cde12933542ebcd7c1/hr_work_entry_attendance/models/hr_version.py#L49-L52 When ``stop(time_stop)`` is unset in the overtime, ``ot.time_stop`` is False, causing ``min()`` to compare a ``datetime`` with ``False``, which raises the above traceback. sentry-7169332615 Forward-Port-Of: odoo/enterprise#108392 Forward-Port-Of: odoo/enterprise#103764
This update corrects a formatting issue in the Eco Voucher export file generated by the payroll module, ensuring it aligns with the requirements of the Monizze system. This resolves a potential problem preventing accurate data transfer and reporting for Belgian employees.
Original PR description
This commit realigns the xlsx header with what's expected by Monizze for the eco voucher export. Forward-Port-Of: odoo/enterprise#108668
This update corrects a display issue in the appointment form where the time fields were being cut off. The changes align the time field format with a recent update, ensuring all time information is fully visible and accurate. This improves the user experience for scheduling appointments.
Original PR description
Purpose ======= Fix the appointment type form view float time fields length to not crop content. Specification ============= Following odoo/odoo#240555 the float time field format has been updated. Adapting all the appointment form view float time fields length to match the new format and not crop the content. Removing useless "hour(s)" suffix as the time representation, whether it's hours or minutes, is now represented inside the field format. Hiding the seconds as it's not relevant for appointments. Task-5717052 Forward-Port-Of: odoo/enterprise#108639
This update resolves a rounding issue that occasionally resulted in incorrect stock quantities being displayed when scanning barcodes in delivery orders. The fix ensures more accurate stock level calculations, improving order fulfillment reliability. This impacts the accuracy of stock tracking within the system.
Original PR description
To reproduce the issue: - Create a stock quantity of product1 for example of 275.84 kg in PACK1 - Create a delivery order of 3.6 kg - Go to the delivery order on stock barcode - Scan PACK1 - The new line is created as 272.2399999999 Forward-Port-Of: odoo/enterprise#108566 Forward-Port-Of: odoo/enterprise#89300
This update resolves a compatibility problem between Odoo's database (PostgreSQL) and its document signing module. Specifically, an error related to database restrictions was triggered in PostgreSQL version 18. The change was triggered by a shift in testing procedures, revealing a previously undetected issue.
Original PR description
pg16 apparently triggers `foreign_key_violation` (23503) on both `ON DELETE NO ACTION` and `ON DELETE RESTRICT`, pg18 triggers `restrict_violation` (23001) on the latter. Not sure about pg17 as I don't feel like installing one locally. Didn't catch this issue previously as I only routinely run `post_install` tests.
This update resolves an issue where manually created payroll rules would cause updates to the standard rules to fail. Now, users can successfully modify rule parameters even after a manual entry has been made, ensuring accurate payroll calculations. This improves the flexibility and reliability of the HR payroll module.
Original PR description
Purpose ======= If an value is created manually for a given date, the module update will fail once the standard one in data is created.
This update resolves an issue where the 'Swiss Wage Type Code' column was incorrectly displayed in the payroll salary rules view, even when a Swiss company wasn't selected. The fix makes this column optional, ensuring it's only added when needed, improving data accuracy and usability.
Original PR description
Bug reproduction: Install l10n_ch_hr_payroll module or swiss payroll, go to payroll -> salary rules and you will see swiss wage type code column even though the swiss company is not selected Bug cause: After installing l10n_ch_hr_payroll module, in the new view this field is inserted to the view and it is not related to which company is selected at the moment Bug solution: Making the field optional so that it is not there by default but optionally it can be added to the view. task - 5914530
This update resolves a technical issue where an outdated initialization process was still being used within the account chart template module. Removing this redundant step ensures the system functions correctly and avoids potential performance impacts. This change improves the stability and efficiency of financial reporting.
Original PR description
Commit #371a800 removes registry._init but there is a remaining occurrence in account_accountant for the chart templates.
This update corrects a minor oversight in the system's invoice matching tolerance settings. The previous version had a hardcoded tolerance value that wasn't updated, leading to potential inaccuracies in bank statement reconciliation. This fix ensures more reliable matching of financial transactions.
Original PR description
During this commit:https://github.com/odoo/enterprise/commit/15d26e62f14bb0224712a1712b47ebe16c3b8702 we forgot to change one part of the hardcoded tolerance. task-5952881 Forward-Port-Of: odoo/enterprise#108377 Forward-Port-Of: odoo/enterprise#108112
This update fixes a technical issue where certain Intrastat codes were incorrectly marked as expired. The codes, referenced in official Belgian documentation, were actually still valid. This ensures accurate reporting for international trade data within Odoo Enterprise.
Original PR description
99450000, 99500000, 99600000 & 99700000 were erroneously expired. They are still active : https://www.nbb.be/doc/dd/onegate/data/intrastat_manual_basis_en.pdf page 13 Forward-Port-Of: odoo/enterprise#108451