Daily updates from Odoo
Wednesday, March 5, 2025
18 changes
5 changes
Enhancements to existing features
The VoIP keypad now shows the country flag matching the phone number being entered, making international calls easier to recognize. The keypad number styling has also been refreshed for a more modern and polished calling experience.
Original PR description
This commit improves the keypad of the VoIP modules through two main features: - Adds the flag of the country of the number the user types. - Improves the style of numbers on the numpad to have a modern look. Task-4416929
Users can now start a Knowledge comment thread with a message that includes an attachment. This removes a previous limitation where attachments could only be added after the thread already existed, making collaboration on articles smoother.
Original PR description
This commit enables the user to create a comment thread by sending a message containing an attachment. Previously it wasn't possible to upload an attachment to the 1st comment of a thread as we didn't know what the thread's id would've been. Now, when uploading an attachment on a new thread, the thread record is effectively created. If no message is sent in the end, the thread will be cleaned the next time the article is opened by the author. Task-4331677 Co-authored-by: Damien Abeloos <abd@odoo.com> Co-authored-by: Kadam Darji <kmdi@odoo.com> Co-authored-by: Thomas Josse <thjo@odoo.com>
Spreadsheet thumbnails now include images and charts, making previews more informative at a glance. This helps users identify the right spreadsheet faster in document views without opening each file.
Payroll users can now analyze payslip line information in a pivot report. This makes it easier to review payroll amounts and patterns from the reporting menu without needing custom exports or manual spreadsheet work.
Original PR description
- add pivot view for payslip lines - add the pivot action to the report menu Task: 4578442
The French FEC import process now handles much larger accounting files by preparing them in smaller parts before sending them for processing. This reduces the risk of failed imports caused by server timeouts or memory limits and improves reliability for companies with high-volume accounting data.
Original PR description
This commit changes the import mechanism of FEC files to support importing big files. The FEC files are first processed and chunked at the client side. They are then sent one chunk at a time to the server side. The chunking ensures that no memory or time limit at the server side are ever exceeded. Because some of the processing is done in JS side and the rest in Py, the tests cover both sides. A tour was also added to test the integration between the two sides. The FEC test files in `fec_test_files` folder were named with the following convension: fec_[new-line character]_[fields delimiter]_[encoding]_[extra details about the file if any] The files with .txt or .csv extension are regular FEC files. The files with .json extension are their equivalent parsed files by the JS code in FecParser. The JSON files are used for output validation in JS tests, and they are used as input files for Py tests. task-3597066
13 changes
New functionality added to Odoo
Point of Sale users can now set an additional unit of measure for products and enter sales quantities in that alternate unit. The system converts those quantities back to the product’s main unit at checkout, giving businesses more flexibility when selling items measured in different ways.
Original PR description
This commit introduces support for configuring and using a second unit of measure (UoM) for products in the same category. - Added a Second UoM field (pos_second_uom) in products, restricted to the same category as the primary UoM. - Users can configure a second UoM for better flexibility in POS. - In the POS module, users can input quantities using the second UoM, which automatically converts them to the primary UoM during checkout.
Enhancements to existing features
Users entering the Website app from their database URL will no longer be forced onto the website domain, reducing disruptive redirects when accessing the backend. Link editing was also improved so Odoo can better suggest converting matching website or database-domain links into simpler internal links.
Original PR description
*: web_editor Before this commit, there was two cases where we forced the backend to reload using a website domain: 1. When trying to enter the website app, and reaching the default website's…
*: web_editor Before this commit, there was two cases where we forced the backend to reload using a website domain: 1. When trying to enter the website app, and reaching the default website's preview. Ensuring edition of that website is made while being on the right website domain. 2. When switching website using the website switcher (multi-websites case). This commit removes the redirection in the first case. It might lead to unexpected behavior in some specific/advanced cases, but it was decided it was worth the risk, to improve the QoL of users reaching their backend by explicitly typing their `<database>`.odoo.com URL. Even though this is not supposed the case anymore as soon as their website is properly configured. At the same time, this commit strengthens (hopefully) link edition. In the past, we suggested users to automatically strip the domain part of the URL they added in their website if it matches the current domain used while being in edit mode. Now we still do that and two more checks: - If the added URL is using `<dbname>`.odoo.com, suggest to strip the domain too. It might not be right, but it's a good guess. And the user can still opt-out. - If the added URL uses the website domain, suggest to strip the domain. Related to task-4069779
Point of Sale now allows product and customer loading limits to be configured through system settings. This gives businesses more control over POS performance and data volume, especially in large databases.
Original PR description
- Introduced `ir.config_parameter` settings for product and customer limits in POS. - Refactored partner loading to use configurable customer limit. task-id: 4610131 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Colombian electronic invoicing settings now include a Demo Mode that lets businesses test DIAN workflows without actually sending documents to the tax authority. This helps teams validate setup and training scenarios by simulating successful DIAN responses safely.
Original PR description
- Adding 'Demo Mode' option in the DIAN settings section - Adding demo mode bypasses to the relevant methods to imitate recieving a positive response from DIAN without sending anything task-4087930
Belgian companies can now connect to Codabox directly, even when they are not managed by an accounting firm. This broadens access to Codabox configuration and updates related wording so the feature no longer appears limited to fiduciaries.
Original PR description
### Before Codabox used to require a fiduciary VAT and the VAT of a company (managed by the fiduciary) in order to connect to their services. - Access to Codabox was limited to companies with an accounting firm with a VAT number assigned ### Now Codabox gives the opportunity for companies to directly connect (without being a fiduciary/ being managed by one). This is through the same port as before, just receiving two identical VAT numbers. - Module summary, descriptions and other texts are updated to generalize - Companies without an accounting firm can access the Codabox configuration settings task - 4460499
Resolved issues and error corrections
Portal users editing shared project tasks now see checklist checkboxes and editor styling correctly. This makes task descriptions behave consistently with the main Odoo backend editor and avoids confusion when using checklist features.
Original PR description
**Problem**: When a portal user tries to edit a task's description by adding a checklist, the checkboxes do not appear as they do in the Odoo backend (e.g., in the To-Do app). This occurs because the editor is rendered in an `iframe` without loading the required CSS classes. **Solution**: Load `web.assets_backend` to include all necessary CSS for the editor. **Steps to Reproduce**: 1. Share a project with **"Edit"** permission for a portal user. 2. Log in as the portal user. 3. Go to any task inside the project. 4. In the description, add a checklist using `/checklist` command. - **Issue**: No checkboxes appear. - **Issue**: Other styles, like the editable border, are missing. opw-4481993 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a web interface issue where list view widgets were not applying their custom settings as intended. Users and implementers should see more reliable behavior when list views depend on dynamic configuration or custom display options.
Original PR description
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
Published Knowledge articles now include their main content directly in the page HTML instead of waiting for browser-side rendering. This helps search engines and other crawlers read public articles even when JavaScript is disabled, improving discoverability without changing the visible article experience.
Original PR description
Ensure that the HTML for Knowledge published articles is not delayed by OWL rendering promise. The content of the article should be available for web crawlers even with JavaScript disabled. The sidebar will still be loaded as a Component for convenience, and PublicWidget introduced through this commit will be converted to Interaction in future versions. task-4563216
Users can now make a copy of previous versions of quotation and quality control spreadsheet templates without hitting an error. This restores expected version-history behavior and prevents disruption when reusing or reviewing template revisions.
Original PR description
Prior to this commit, we get an error when we try to make a copy of a certain revision of a quotation/quality template spreadsheet. This is due to the method `_creation_msg` which was not implemented after inheriting the `spreadsheet.mixin` class. Steps to reproduce: - Go to Sales > Configuration > Quotation Templates (or Quality Control Templates) - Create a quotation template - Select the quotation calculator field and create a new quotation spreadsheet - In the quotation spreadsheet, select File > See version history - Select the three dots on any version and click "Make a copy" - Traceback occurs task-4568319
Payslip payments now fall back to the company currency when no payment currency is set. This prevents errors when reversing payroll-related journal entries, helping payroll and accounting teams complete corrections reliably.
Original PR description
Currently, an error was occurring when a user tried to reverse a journal entry by following these steps: - Install ``Accounting`` and ``Payroll`` module - Enabled payroll entries in Payroll >…
Currently, an error was occurring when a user tried to reverse a journal entry by following these steps: - Install ``Accounting`` and ``Payroll`` module - Enabled payroll entries in Payroll > Configuration > Settings. - Created a new employee and its corresponding contract in payroll > Create a bank account and enable ``Send Money`` in ``Private Information`` - In ``Contract`` change state from `New` to `Running` > Click on `Payslips` - Computed the payslip > generated draft journal entries > add lines in journal items and click `Pay` in payslip. - Go to ``Journal Entry`` and make a ``Reverse Entry``. ValueError: Expected singleton: res.currency() The issue occurs at [1] because, when a user makes a payment from a payslip after posting journal entries, the ``currency_id`` is not available. [1] - https://github.com/odoo/odoo/blob/0583db332efdc884975da1a074c91981d2865c9d/addons/account/wizard/account_payment_register.py#L972 This commit will fix the above issue by providing default company currency when currency is not available. sentry-6207053954
The ISO20022 payment file generation has been corrected so batch payment XML better matches bank requirements. This helps avoid rejected vendor payment files, including for banks expecting the newer ISO20022 structure.
Original PR description
Ensure that the ISO20022 payment method is enabled. Make a payment (ex, for a vendor bill) with the ISO20022 payment method. Make a Batch payment for the ISO20022 payment method. Add the payment, then validate the batch payment. Exact steps (or video) of correct behavior (on runbot): N/A Attachment: Technical guidelines for the customer's bank, NatWest. Other info : The generated XML file is poorly formatted in several ways. First, the element <BIC> should be <BICFI>. MKS found some documentation on a previous ticket (from ISO20022 website?) that mentions this change is required for pain.001.001.09. Second, the element <ReqdExctnDt> must have the <Dt> sub-elements within its contents. It appears that both of these changes were made for the SEPA payment module, but not for the ISO20022 module. opw-4557951
Appointment validation pages now show assigned resources and attendee lists correctly based on the appointment display settings. This prevents missing or misplaced information when confirming bookings, especially for automatically assigned time slots or calendar meetings without an appointment type.
Original PR description
Purpose ======= Fix the display of the resource on the validation page when in 'time_auto_assign'. Specification ============= If the apt type setting is: - 'time_auto_assign' and 'no_picture': resource(s) not displayed - 'time_auto_assign' and 'picture': if one resource -> displayed on the right with its picture if more than one resource -> displayed in the validation details related commit: odoo/enterprise@9fe0c7ab9f3276e9a79ba79831660ee0d7787582 Task-4395325
The accounting export for journal items now works correctly again after a recent update caused failures. This helps accounting teams reliably export the data they need for reporting and analysis.
Original PR description
This FW Port https://github.com/odoo/enterprise/pull/80368 introduced a bug at the export of amls: - `rpc` is not bind to `ExportDataDialog` anymore -> we import it instead - since 18.0 -> `get_fields` get a domain in its parameters opw-4622877