Tuesday, October 8, 2024
13 changes
4 changes
Enhancements to existing features
This update reorganizes how Odoo applies small compatibility adjustments to third-party libraries, making them easier to identify and troubleshoot. It reduces the risk of inconsistent behavior across modules by ensuring these adjusted libraries are loaded consistently wherever they are used.
Original PR description
Monkeypatching is not a good practice, but it's in some cases necessary. This is especiallly true when relying on third party modules. Reasons may vary: - to adjust for compatibility between versions…
Monkeypatching is not a good practice, but it's in some cases necessary.
This is especiallly true when relying on third party modules.
Reasons may vary:
- to adjust for compatibility between versions
- to fix a small detail without reworking the external module.
In Odoo, there are several places in which monkeypatching is done.
This PR aims to put most of the monkeypatching together and to make clear at a glance which external modules are subject to it, and how.
Until now, the modules present here are of broad interest, and may belong to the `base` module.
There are cases in which a single Odoo module will require a third-party monkeypatched module that will get installed as `external_dependencies` in the `__manifest__.py` file.
We can leave the monkeypatching in that module, but we suggest using the `register` function here to make it at least visible at runtime, so that from the Odoo shell we can query them for troubleshooting:
```py
>>> from odoo.tools.monkeypatch import monkeypatches
>>> from pprint import pprint
>>> pprint(monkeypatches)
{'OpenSSL': <function monkeypatch_OpenSSL at 0x7fd7d8db3b50>,
'PyPDF2': <function monkeypatch_PyPDF2 at 0x7fd7d8db3be0>,
'xlsx': <function monkeypatch_xlsx at 0x7fd7d8db3c70>,
'xlsxwriter': <function monkeypatch_xlsxwriter at 0x7fd7d8db3d00>,
'xlwt': <function monkeypatch_xlwt at 0x7fd7d8db3d90>,
'xmlrpc': <function monkeypatch_xmlrpc at 0x7fd7d8db3e20>}
```
All the monkeypatching will be done so that import <module> will already load the monkeypatched module.
Modules will have a new `<module>.__is_monkeypatched__` attribute set to True.
This will remove the need to import from odoo.tools.misc.<module> and also ensure that people not aware of the monkeypatching use the wrong version.
Community PR: https://github.com/odoo/odoo/pull/98996This update improves compatibility with newer OpenSSL and PyOpenSSL versions used for secure certificate handling. It helps electronic invoicing and related localization services continue working reliably across supported environments.
Original PR description
The OpenSSL API X509_get_notBefore got renamed to X509_getm_notBefore in OpenSSL v.1.0.0a. PyOpenSSL v19.0.0 calls the old name, PyOpenSSL v20.0.0 calls the new one. The related community PR also contains a small refactor of the _monkeypatches.py to allow simple import and creation of possible new monkeypatches and to put order onto the ones that are already in odoo.tools.misc Community PR: https://github.com/odoo/odoo/pull/95524
The Approvals app is easier to use with keyboards and screen readers. Menus, report printing, view buttons, selection states, and page landmarks now provide clearer accessibility cues, helping more users navigate the app confidently.
Original PR description
Improved accessibility for keyboard navigation and screen readers
- Added aria-labels:
- 'Actions menu' to action menu cog item
- Dynamic aria-label 'Print report: {report_name}' to print menu entry
- {view_name view} to view mode buttons
- Converted state_selection to use CheckBoxItem instead of DropdownItem:
- Improves audio narration to announce checked items properly.
- Updated main container landmarks:
- Used `<main>` node instead of `<div>` in views layout.
Task: 3603393
community:-https://github.com/odoo/odoo/pull/168878The Knowledge app now loads some interface parts only when they are needed. This should reduce initial loading work and make Knowledge feel faster, especially for users opening pages with complex views or navigation.
Original PR description
locs (js, xml, scss): ... Total lazy loaded locs: ? Task ID: `3546321`
6 changes
Enhancements to existing features
Mail suggestions and mentioned messages now use different icons for conversation threads and channels. This makes it easier for users to quickly recognize the type of discussion they are selecting or viewing.
Original PR description
**Current behavior before PR:** Channels and threads shared the same icon in the suggestion list and mentioned messages, making it difficult to visually differentiate between them. **Desired behavior after PR is merged:** This PR aims to display separate icons for threads and channels in the suggestion list and mentioned messages, improving clarity and differentiation between the two. Backport of #181742 Task-4203558 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
3 changes
Enhancements to existing features
This update fixes how accounting reports are formatted when exported to Excel files. The changes improve the layout by moving account codes to a more logical position in the spreadsheet and fixing indentation issues that previously limited reports to three levels. Users will now see cleaner, better-organized Excel exports with proper indentation support for complex report structures.
Original PR description
### [FIX] account_report: fix indentation in xlsx export Currently the indentation of XLSX export of reports was sometimes broken. The current implementation only supported up to three levels of indentation in the export as well. This fix supports a virtually infinite number of indentation levels and fixes the indentation in the XLSX exports. ### [I18N] account_reports: update terms ### [IMP] account_reports: move account code column to the right in xlsx Currently, when exporting an accounting report as XLSX file, we add a column for the account codes on the very left of the sheet. This looks a bit weird and is not the most important information to have as a first column. In this commit, we move the column to the right so the name of the line will be first, followed by the account code (if applicable). We also add a column name for the account codes. task-3986483
List views now handle selected records more cleanly on small screens by grouping selection actions into one menu and showing the selection count as a floating notice. This reduces horizontal scrolling and keeps more records visible on mobile devices.
Original PR description
Ths List view allows to select one or multiple records. While doing so, an indicator is displayed, showing how much records are selected and providing actions to perform on them. On regular computer's screen, the central part of the ControlPanel is used to display this indicator and its related buttons, hiding the SearchBar. On smaller screens, all those visual elements take a lot of space, easily triggering an horizontal scrolling and taking an additional line in the ControlPanel, which push the records a bit down on the screen. This commit reuses the CogMenu paradigm to group all the actions/buttons in a single element. To avoid the records being pushed down, the selection indicator is transformed into a floating "Toast" as an overlay to the Navbar (similar to what was previously done to the Pager). task-3336242 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The accounting secure entries wizard now alerts users when securing entries may also lock older-dated records outside the selected date. The warning includes a review action so users can inspect those affected entries before proceeding, improving visibility and reducing surprises in accounting workflows.
Original PR description
Consider the Secure Entries wizard. There it can happen that entries that are past the selected date are secured. This is possible since the hash chain corresponds to the sequence prefix, ordered by…
Consider the Secure Entries wizard.
There it can happen that entries that are past the selected date are secured. This is possible since the hash chain corresponds to the sequence prefix, ordered by sequence number.
Currently the user is not warned in case this happened.
This commit introduces a warning containing an action to show all moves that are past the selected date.
To generate the warning on runbot
1. Ensure there are no invoices with prefix INV/2020
(There should not be any on the runbot)
2. Create an invoice with (accounting) date 2020/01/02 (2 Jan 2020)
It should have name INV/2020/0001
3. Create an invoice with (accounting) date 2020/01/01 (1 Jan 2020)
It should have name INV/2020/0002
4. Activate debug mode (to see the wizard)
5. Go to Accounting (app) -> Accounting (menu) -> Secure Entries Wizard
6. Select 2020/01/01 as date (to include INV/2020/0002 but not INV/2020/0001)
7. The warning should show up
Clicking "Review" leads to a list view that includes INV/2020/0001 .
(INV/2020/002 has a higher sequence number but lower accounting date than INV/2020/0001).The point of sale delivery integration has been unified into one Urban Piper module instead of separate provider-specific modules. Businesses can now manage orders from many more delivery platforms, including Careem, Talabat, DoorDash, Deliveroo, Glovo, Grubhub, and others, through the same workflow.
Original PR description
In this commit: === - We consolidated these into a single, generic module: pos_urban_piper, designed to support all delivery providers integrated via Urban Piper. - Additionally, we introduced support for new delivery providers, including Careem, Talabat, Postmates, JustEat, EatEasy, Deliveroo, HungerStation, HungryPanda, DoorDash, Mrsool, Cari, ChowNow, Noon Food, Glovo, and Grubhub, and implemented their entire order flow management.
The website generator now includes the access token needed for the 18.0 server connection. This helps ensure the tool can continue reaching the service it depends on to generate websites.
Original PR description
Add the token necessary to get access to the WSS server.
A new automated test was added to help confirm that payment auto-validation works as expected. This reduces the risk of future changes disrupting payment processing behavior, with no direct change for end users.
Original PR description
This commit adds a unit test for payments auto validation. task- 4213193
The demo data for Argentina's reporting module has been updated to remove real partner information and replace it with fictional data. This improvement protects actual customer privacy while maintaining the ability to test and demonstrate the system's functionality.
Original PR description
This task was created to modify the demo data for Argentina, to avoid using real partner information. latam-task-1239 adhoc-task-41734 Forward-Port-Of: odoo/enterprise#71230
The system now correctly identifies late bills in GST Return-2B reports by comparing the bill date against the return period start date, rather than using an inaccurate comparison method. This ensures businesses get accurate reporting of late vendor invoices, which is important for GST compliance and financial accuracy.
Original PR description
Previous behavior: - Late bills were determined by comparing `supprd` with the `return period`, which led to inaccuracies. New behavior: - Late bills are now identified by checking if the `bill date` is earlier than the `return period start date`, ensuring more precise classification of late bills. OPW: 4210068 Forward-Port-Of: odoo/enterprise#70225