Thursday, January 4, 2024
19 changes · 17.0
Resolved issues and error corrections
This fixes a crash that could happen in free trial setups after installing Restaurant POS and then changing the accounting chart through demo data. The system now also checks archived POS configurations, so old linked records are cleaned up properly and the setup continues without interruption.
Original PR description
When you install point_of_sale and then pos_restaurant, you end up with a pos_config with an archived journal. Then, if you change the chart of account via demo data, it doesn't delete the archived log and crashes. To correct this problem, we add `with_context(active_test=False)` to the pos.config search.
Fixes an issue where automated actions that show a warning could fail with a server error instead of displaying the message. This restores the expected warning dialog behavior, helping users receive guidance without interruptions.
Original PR description
Before the refactoring introduced at 0a744ac, it was possible to return a warning from a `code`-type base automation with the `action` variable:
```py
if len(record.name) > 20:
action = {
"warning": {
"title": "Name too long",
"message": "The name of the record is too long",
}
}
```
This would trigger a visual dialog with the title and message in the client.
Due to a louche `+=` operator change in the refacto, this kind of automation raises a key error on the server, as the additive part of the operator will try to access the 'warning' key in the result dict, which may not (and usually will not) exist.
I assume this was done in an attempt to 'accumulate' warnings, but the warnings in questions are dict that are not really additive anyway. Better to support the *last* returned warning rather than none at all.
This commit basically returns to the previous situation for onchange warnings.This update refreshes Odoo's spreadsheet component with several fixes that improve formula evaluation, chart timelines, autofill behavior, and export speed. Business users should see fewer spreadsheet errors and smoother day-to-day use, especially when working with formulas, charts, and exported files.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/310ca5796 [REL] 17.0.6 https://github.com/odoo/o-spreadsheet/commit/06b4a7e33 [FIX] evaluation: `evaluateFormula` no…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/310ca5796 [REL] 17.0.6 https://github.com/odoo/o-spreadsheet/commit/06b4a7e33 [FIX] evaluation: `evaluateFormula` no longer throws Task: 3576149 https://github.com/odoo/o-spreadsheet/commit/4f8cd15f4 [FIX] evaluation: track dependencies with R-tree Task: 3646902 https://github.com/odoo/o-spreadsheet/commit/d06a1a475 [FIX] Autofill: Automatic fill based on spreaded formula cells Task: 3626607 https://github.com/odoo/o-spreadsheet/commit/c404e22cc [IMP] index: export isMatrix https://github.com/odoo/o-spreadsheet/commit/503d6bff5 [FIX] chart: time axis broken for days scale Task: 3619195 https://github.com/odoo/o-spreadsheet/commit/e5a902238 [IMP] scorecard: handling CF font style on chart https://github.com/odoo/o-spreadsheet/commit/8ba492c75 [FIX] Components: rename private method arguments https://github.com/odoo/o-spreadsheet/commit/078b86662 [FIX] *: Support metaKey modifier in event handlers Task: 3606161 https://github.com/odoo/o-spreadsheet/commit/63af9b38e [IMP] demo: don't double crash on launch error https://github.com/odoo/o-spreadsheet/commit/cee016397 [FIX] export: faster border and style export https://github.com/odoo/o-spreadsheet/commit/53e20ac4a [IMP] tests: pre-compile owl templates
Restricted website editors can now optimize SEO settings for records they are already allowed to edit. This helps teams such as HR improve job page visibility without needing broader website editing permissions.
Original PR description
[[FIX] website: allow restricted editor to optimize SEO](https://github.com/odoo/odoo/pull/147981/commits/3ce4ada5c1442bfcd0b8e3531f71826f0d464234) Originally, restricted editors don't have the…
[[FIX] website: allow restricted editor to optimize SEO](https://github.com/odoo/odoo/pull/147981/commits/3ce4ada5c1442bfcd0b8e3531f71826f0d464234) Originally, restricted editors don't have the rights to edit the SEO of a record. It was probably a bad idea as they can already edit the record itself and can change the name / description of the record in the page. Changing the SEO seems to be very similar. Also, for our internal needs, we need our HR people (which are restricted editor with rights on jobs position) to be able to edit the SEO of their jobs. And we don't want to grant them the full editor right. Note: - We already have a `data-can-optimize-seo` attribute set on the HTML tag if one is logged in, but this is just about knowing if the record has SEO-mixin capability, it does not check the rights for a given record. - In master, one day, we would like to have the "Edit" button shown only when something can be edited for restricted editor (to not be able to enter edit mode to then not be able to edit anything). The same would be nice here: optimize seo menu could only be shown if you have the right, but we don't want to do an extra RPC each time for now. - We keep the info shown in readonly mode so the restricted user can see it and ask for a change to someone else if needed
The Attendance kiosk now displays correctly on phone-sized screens, making employee search, scrolling, and name visibility usable again. The back button on employee selection was also fixed so staff can reliably return to the previous screen.
Original PR description
Issue: ====== the display of kiosk mode in phone is broken Steps to reproduce the issue: ============================= - Install hr_attendance - Activate Employee Pin Identification in the settings -…
Issue: ====== the display of kiosk mode in phone is broken Steps to reproduce the issue: ============================= - Install hr_attendance - Activate Employee Pin Identification in the settings - Change to phone view - Go to attendances/kiosk mode - Identify Manually - You can't search for employee , scroll employees and see the name of the employees. - Click on any employee, the button back isn't fully shown and clicking on it does nothing. Solution: ========= Display: - Added some css for `md` size devices. Back button: - There click function was missing. Before: ===== before (320 x 832)  before (768 x 832)  After: ==== after (320 x 832)  after (768 x 832)  opw-3645708
Mobile users can now tap message attachments to preview them when multiple files are attached. The download and delete quick actions are hidden on small screens to prevent them from blocking the preview area, restoring expected attachment access.
Original PR description
When a message had more than 1 attachment, it was not possible to preview the attachment on a mobile device. This happens because the hover buttons for delete/download the file took the whole clickable area of attachment to see the preview. To enable quick actions in mobile, this require non-trivial UI tweaking. To match behaviour of version 16.0, these quick-actions have been disabled in mobile. opw-3664795 Before  After 
Odoo now allows the database restore page to use a higher upload size limit than the standard file upload setting. This prevents large backup restores from being blocked with a “request too large” error, improving reliability for administrators handling sizeable databases.
Original PR description
In #126914 a limit on the request size has been enforced, that limit is by default 128MiB and can be configured via an ir.config_parameter. When restoring a backup larger than 128MiB via the database manager, the default limit was used and the request was cancelled with a Request Entity Too Large (code 413) HTTP error. It is now possible to define a default max content length per route, that per-route limit takes over the `web.max_file_upload_size` ICP. Moved the code from `get_http_params` to `pre_dispatch` to better align with the httpocalypse new http stack. Fixes: #144144 opw-3643475
This pull request fixes several issues affecting daily Odoo use, including website redirect loops, manufacturing quantity resets, duplicated subcontracting moves, stock lot handling, and department-specific time-off views. It also improves tax detection during electronic invoice imports and corrects Italian VAT reporting, helping users avoid errors and get more accurate operational and accounting results.
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
The India localization now sets the default sales and purchase tax back to GST 5% instead of the accidentally changed IGST 18%. This helps Indian companies start with the correct standard tax setup and avoid incorrect tax amounts on new transactions.
Original PR description
Problem --------- Before, the default tax for sale and purchase was: GST 5%. Commit 084408a9bb26dcc1ac54986802b08638c72b6235, modfied by accident the default tax to IGST 18%. Objective --------- Revert the deault taxes back to GST 5%. Solution --------- Update the default taxes in the l10n_in template file. task-3634577 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Mobile visitors registering for events can now clearly see the quantity selected for each ticket when multiple ticket options are available. This helps prevent registration mistakes and improves the checkout experience on smaller screens.
Original PR description
Issue:
- In mobile when we have multiple tickets, the quantity of
selected tickets is not visible
Steps to reproduce the issue:
- Go to events
- Select any event with multiple tickets
- Go to website
- Click on register now
- Notice in mobile the quantity of selected tickets is not visible
Solution:
- Add style to the quantity of selected tickets
opw-3602057
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prFixed an issue where emails created from a selected marketing template could be sent blank after adding SMS recipients to a mailing list. The template content is now saved properly, so recipients receive the intended email design and message.
Original PR description
Steps to reproduce: - Create an SMS and send it - go to the sent option and select a contact - Click on add to list - Select a mailing list - then click on add and sent mailing (you will be redirected to email marketing) - Select a template and send it - The recipient will not be able to see the template (The email is blank) Issue: Template value is not stored in the body_html field Technical reason: When the record is saved the changes in `body_html` are discarded from [_getchanges()](https://github.com/odoo/odoo/blob/c2b160fe50c24e9f01d0d5b350f2422cfdbc72d4/addons/web/static/src/model/relational_model/record.js#L574-L581) because, field is set to readonly = 'true' after this commit https://github.com/odoo/odoo/pull/132247 After this commit: The recipient will be able to see the template Task-3556020
Employee attendance and work duration calculations now correctly consider only company-relevant global leave records. This prevents employees from having attendance data affected by time-off rules that do not apply to their company.
Original PR description
Before this commit, _get_calendar_attendances was calling the calendar method get_work_duration_data without specifying the company in the domain, ending up in wrong data if global leaves that don't concern the employee are concerning the calendar. This commit adds a domain for that method call so that only relevent global leaves are taken into account.
Users without access to analytic accounting can now create project updates without seeing an access error. The profitability section is hidden when analytic account information is unavailable, preventing the crash and keeping project update creation smooth.
Original PR description
Steps: - Go to user's setting - disable the Analytical account - Go to project update - clicking on new button - crash Issue: -When we click on new button in project update,it gives traceback(Access Error). Cause: - When the 'Analytical Account' option is disabled in user settings, attempting to create a new project record triggers an AccessError. The user lacks permission to access 'Analytic Plans' (account.analytic.plan) records. Fix: - Profitability is not visible when there is no analytic account line, we have removed it, so the access error will also be removed. task-3605507
This update resolves critical bugs in the website rental system that were causing incorrect duration calculations and timezone-related errors. These fixes ensure customers see accurate rental periods and pricing information regardless of their location, improving the reliability of the rental checkout process.
Original PR description
This PR is the fix for 17.0+ that solves the two problems explained in the PRs: https://github.com/odoo/enterprise/pull/51878 https://github.com/odoo/enterprise/pull/52102 opw-3573163
This update fixes critical issues with Mexican EDI (CFDI) global invoices in the Point of Sale system. It resolves problems where refunded orders couldn't be invoiced together and where duplicate line amounts were incorrectly reported. Users can now properly process refunds and create global invoices without errors, improving the ability to submit transactions to Mexican tax authorities.
Original PR description
**[FIX] l10n_mx_edi: Fix management of negative lines** Bug: When there were 2 lines with exactly the same amount, one line with 0 amount was reported on the CFDI. Improvement: When dealing with…
**[FIX] l10n_mx_edi: Fix management of negative lines** Bug: When there were 2 lines with exactly the same amount, one line with 0 amount was reported on the CFDI. Improvement: When dealing with multiple negative lines, put the lines having the same amount first. **[FIX] l10n_mx_edi_pos: Fix management of pos order refunds for global invoice** - Create a pos order - Refund the pos order - Try to create a global invoice for both: UserError => We don't allow refund on GI so in that case, the user is stuck and can't send the refund to the government. To fix this, the refunded lines are added to the order like order lines part of the present order. **[IMP] l10n_mx_edi[_pos]: Remove 'l10n_mx_edi.manage_invoice_negative_lines' config parameter** Since we have now the global invoice, we have to manage the negative lines on the POS. Otherwise, nobody is able to make a refund. **[FIX] l10n_mx_edi_pos: Mock unexpected call to web-service in not external test** Since the pos orders are paid and invoiced, the CFDI is created automatically. No need to call the send & print wizard. task: 3638126
This update corrects the Spanish language translation files used across Chile's electronic invoicing (EDI) modules by switching from generic Spanish (es) to Latin American Spanish (es_419). This ensures that users in Chile and other Latin American countries see properly localized translations for invoicing, stock management, and website sales features.
Original PR description
Description of the issue/feature this PR addresses: change "es.po" files to "es_419.po" files to properly make translations for latam This affects the following modules: l10n_cl_edi_exports l10n_cl_edi_stock, l10n_cl_edi_website_sale.
This update prevents CSS class names from being incorrectly translated in the stock barcode and website studio modules. CSS classes should remain in their original language to function properly, and this fix ensures they are no longer processed through translation systems, improving system stability and preventing display issues.
Original PR description
*: documents, stock_barcode See community commit for details. task-3636009 Forward-Port-Of: odoo/enterprise#53436 Forward-Port-Of: odoo/enterprise#53381
Appointments with assigned locations were incorrectly showing as "Online" on the customer-facing booking page. This fix ensures that the "Online" status only appears when no physical location is set, allowing customers to see the correct meeting location details.
Original PR description
Steps to Reproduce ================== 1) Create a new appointment type. 2) Assign a location to it. 3) Access the front-end. - It is display as being online. Technical Details ================= Following this commit https://github.com/odoo/enterprise/commit/5ed8ea8e5fa65af700484aeab7745f127166d00a, the xpath in the file appointment_templates_appointments.xml within the appointment_account_payment module is causing it to fall within the if-else statement. To resolve this, change the class position from "else div" to "if div". After this PR ================= The "Online" status will only be shown if the location is not set. Task-3668128
This fix resolves an issue where users could not save digital signature certificates in the Accounting settings. When uploading a certificate file (.pfx), the system was incorrectly processing the file data, causing a validation error. The fix ensures certificate files are properly stored and validated, allowing users to successfully add signature certificates for electronic invoicing in Chile.
Original PR description
Settings -> Accounting -> Signature Certificates Add a new valid certificate (.pfx) with the password Save Issue: Error "The certificate signature_key_file is invalid: Invalid base64-encoded string: number of data characters (5) cannot be 1 more than a multiple of 4" will appear. This occurs because after the record is created the binary field will return the size instead of data opw-3658503