Monday, December 23, 2024
18 changes
1 change
Resolved issues and error corrections
This fix prevents an error when users create or select planning resources that do not have a linked employee. Instead of crashing, the system now safely leaves the avatar empty, allowing planning workflows to continue normally.
Original PR description
Steps to reproduce: --- - Install ``planning`` module - Give the demo user as ``administrator`` in planning. - Log in as Demo user > Go to planning - Click on ``New`` > click on the ``Resource`` field Traceback: --- ``IndexError: tuple index out of range`` The error occurs at [1] because we couldn't find an employee in ``avatar_per_employee_id``. This happens when a new resource is created in the first tab, but the ``employee_id`` is not found in the ``resource`` in the second tab. This commit resolves the above error by returning false if an employee is not present. [1]- https://github.com/odoo/odoo/blob/fb4d758ed78211a61ea797759e1fb3b02b51be60/addons/hr/models/resource.py#L34 sentry-5508268100, 6134007941 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
11 changes
Resolved issues and error corrections
This update prevents crashes when the Peppol invoicing module is updated before a related invoicing component. It keeps partner contact pages working reliably during staggered module updates.
Original PR description
In case `account_edi_ubl_cii`is not updated, but `account_peppol` is updated, it will crash as `id="peppol_address"` div does not exist yet. task-no
6 changes
Resolved issues and error corrections
This update resolves a problem where two Datev export files had the same name, causing confusion and inefficiency. The change ensures distinct file names for each export, streamlining the process and improving data organization. This fix ensures accurate and reliable Datev reporting.
Original PR description
The 2 exports have the same name, which is impractical. Let's differentiate them task-4414223 Forward-Port-Of: odoo/enterprise#75907
This update fixes several small issues in Peppol electronic invoicing, including restoring the Print & Send wizard after Peppol registration. It also improves Belgian electronic address information and simplifies internal proxy communication, helping keep e-invoicing flows reliable.
Original PR description
### Commit 1: [FIX] account_peppol: Remove useless div The div is replaced few lines below, so no need to make it visible/invisible. task-no ### Commit 2: [FIX] account_edi_ubl_cii: add belgian EAS…
### Commit 1: [FIX] account_peppol: Remove useless div The div is replaced few lines below, so no need to make it visible/invisible. task-no ### Commit 2: [FIX] account_edi_ubl_cii: add belgian EAS translation task-no ### Commit 3: [FIX] account_edi_ubl_cii: fix typo in EAS task-no ### Commit 4: [FIX] account_peppol: clean calls to proxy Before this commit, when calling our Peppol proxy, here is what the call graph would look like (prefixed by the module the method belongs to): `account_peppol._call_peppol_proxy` -> `account_peppol._make_request` --> `account_peppol._call_peppol_proxy` ---> `account_edi_proxy_client._make_request` We simplify this to: `account_peppol._call_peppol_proxy` -> `account_edi_proxy_client._make_request` task-no ### Commit 5: [FIX] account_peppol: fix reopening of Print & Send wizard With previous commit [1], we broke the flow when registering to Peppol coming from the Print & Send wizard. The Print & Send wizard was not reopening after successful registration. task-no
Fixes a communication issue where point-of-sale customer display status requests were missing required request details. This helps the IoT Box understand the request correctly, improving reliability of connected customer displays.
Original PR description
Customer display "get" action was missing `params` key, required for the IoT Box to understand the request correctly.
Employees with attendance-based, fully flexible contracts can now access their calendar even when no working schedule is set. The system uses a safe default calendar instead of blocking access, preventing disruption for payroll and attendance setups.
Original PR description
**Issue:** An employee can't access its calendar if it has a contract based on attendances with a null allowed value for its working schedule (fully flexible). **Expected:** An employee should be able to access its calendar. **Steps to reproduce:** - Activate Payroll app and presence based on attendances in employees' settings; - Open or create a contract through the current user's employee's file; - Set "Work Entry Source" to "Attendances" and leave "Working Schedule" empty; - Try to access the Calendar app. **Cause:** No calendar found on a contract. https://github.com/odoo/odoo/blob/18.0/addons/hr_work_entry_contract/models/hr_contract.py#L154 https://github.com/odoo/odoo/blob/18.0/addons/hr_work_entry_contract/models/hr_work_entry.py **Fix:** Retrieve a default temporary fully flexible calendar if none has been found on the contract. **Linked:** Enterprise PR: https://github.com/odoo/enterprise/pull/73274 opw-4288878
Installing Peppol now works smoothly even when a related invoicing module has not yet been updated. This prevents customers from being blocked during setup and removes the need for a manual module update first.
Original PR description
The aim of this commit is to ensure a smooth installation of account_peppol. Context: Commit 171b4ae657bc86bba1b113f0aed7a4ba4a154ed9 introduced the div with id peppol_address in stable. That same id is referenced by account_peppol for inheritance. Before the commit: Customer already having the `account_edi_ubl_cii` module installed will face a crash when installing peppol. To be able to to install peppol, they will need to update `account_edi_ubl_cii`. After the commit: Peppol installation goes smoothly, even if the div isn't there yet. task-id: None
Fixes a chat behavior where pressing Escape while an emoji reaction menu was open could close the entire chat window instead. This makes message reactions feel more predictable and also restores the reaction tooltip after closing the menu.
Original PR description
Before this commit, when opening message reaction menu in a chat window, clicking on ESC was closing the chat window. Steps to reproduce: - as Mitchell Admin, open a chat window of channel General…
Before this commit, when opening message reaction menu in a chat window, clicking on ESC was closing the chat window. Steps to reproduce: - as Mitchell Admin, open a chat window of channel General from click on messaging menu in systray - add an emoji reaction to the last message - click on composer to have focus on it - mouse hover the reaction then click on emoji reaction tooltip - press ESC when the message reaction menu is open => it closes the chat window instead of message reaction menu. This happens because when opening the message reaction menu, the dialog is mounted. It detects dropdown is closed after a delay, and when closing the dropdown it recovers the focus before the opening of dropdown, which could be the composer of chat window. In the case when the focus was on composer, pressing ESC on message reaction menu will close the chat window due to composer being focused. This commit fixes the issue by immediately setting the dropdown state to close when clicking to open message reaction menu, so that it won't recover the old focused element such as the composer. --------- This commit also fixes a related minor bug when closing the message reaction menu then hovering the reaction was not showing the dropdown/tooltip of reaction. This happens because the `useHover()` hook was not aware the click on dropdown content closes the hovered ref, thus it kept internally thinking the item is hovered so it wasn't updating UI to open dropdown or reaction. This is fixed by adding a parameter `stateObserver` to help the `useHover()` hook to re-check whether the targets are present on UI. Thanks to this, it can detect whether the currently hovered target has been removed, thus invoking the behaviour to mark is as no longer hovered. task-4351992 Before  After 
The point of sale mobile view now keeps long category lists from taking over the screen. Users can scroll categories while still seeing and selecting products, making checkout easier on phones or small screens.
Original PR description
Currently when users have too many categories in their pos, their are not able to see the products and cannot scroll. Steps to reproduce: ------------------- * Add categories to the pos `> 20` * Open pos shop * Change the view size to a mobile view > Observation: We cannot see all categories, cannot scroll through them, and cannot see/select products Why the fix: ------------ In mobile view we will show only 2 rows of categories and allow to scroll to see the rest. This allows for space for the products to be shown. If we have less than 3 categories and sub categories to show we will restrict the height to 1 row. opw-4371390 ## Before  ## After  https://drive.google.com/file/d/1yBOEFqX6NbI-mCLjQ9aSR-yEzJ3am50E/view?usp=sharing
The emoji picker now adapts its category navigation when emoji sizing differs across browsers or operating systems, avoiding unwanted scrollbars. This improves visual consistency and usability while keeping the picker aligned with the surrounding interface.
Original PR description
Before this commit, emoji navbar simply had `.overflow-auto`. The size of emoji category depends on browser/OS for the style of emoji, but browsers also differ in the way they render font unicodes.…
Before this commit, emoji navbar simply had `.overflow-auto`. The size of emoji category depends on browser/OS for the style of emoji, but browsers also differ in the way they render font unicodes. This means that overflow never happens on some configuration, and in a few of them it always occur. The size of emoji picker container is good and we want to keep it fixed, as it plays nicely with the rest of UI. For the size of emojis, as long as we rely on font unicode, we have to live with the different sizing. This commit suggests a new way to manage overflow which doesn't show a scroll bar while letting browser/OS choose their way to render emojis: we detect whether emoji tabs overflow, and when so it fills as most emoji it can without overflow. Navbar has many "panels", and switching to panels happen either manually (click on >> and << buttons) or with scrolling of emoji picker without any search. Commit also makes the following minor improvements: - category section position sticky was not completely hiding emoji list below (e.g. on Chrome macOS). This is fixed with a `.align-self-stretch` on the section - emoji categories are centered with emoji picker Task-4413819 ------------- _(note: size of emoji in navbar is artificially bigger to simulate some rendering in few browser/OS that have always overflow)_ Before / After  
The Mexican DIOT tax report now correctly provides the date filter information expected by the reporting interface. This prevents users from seeing an error when opening or using the tax return report filters, improving reliability for Mexican localization reporting.
Original PR description
The error in question was caused by the MX localization MexicanAccountReportCustomHandler DIOT report model neither including tax_periodicity in it's own _custom_options_initializer() which overrides the version inherited from account_generic_tax_report.py, therefore account_reports/static/src/components/account_report/filters/filters.js -> hideTaxPeriodFilter() showed an error when trying to get it. task: 4402723
This fix keeps the WhatsApp discussion experience aligned with recent Discuss app changes. The member panel now opens by default as expected, reducing confusion for users who manage or follow conversations.
Original PR description
Member panel is open by default in discuss app https://github.com/odoo/odoo/pull/191293
This fixes an error that prevented users from opening an employee's payslips when their attendance-based contract had no working schedule set. Payroll now safely uses another available timezone, falling back to UTC, so payslip access remains reliable for fully flexible contracts.
Original PR description
**Issue:** The client gets an error while accessing an employee's payslips if that employee has a contract based on attendances with a null allowed value for its working schedule. **Expected:** The…
**Issue:** The client gets an error while accessing an employee's payslips if that employee has a contract based on attendances with a null allowed value for its working schedule. **Expected:** The client should be able to access the payslips regardless on the working schedule value, even blank. **Steps to reproduce:** - Activate Payroll app and presence based on attendances in employees' settings; - Open or create a contract through an employee's file; - Set "Work Entry Source" to "Attendances" and leave "Working Schedule" empty; - Try to access the employee's payslips through the action button. **Cause:** No timezone found on a contract's calendar because the calendar is null. [https://github.com/odoo/enterprise/blob/18.0/hr_payroll/models/hr_payslip.py#L1141](https://github.com/odoo/enterprise/blob/18.0/hr_payroll/models/hr_payslip.py#L1141 ) **Fix:** Add a default value on `'UTC'` if no calendar has been found. **Linked:** Community PR : https://github.com/odoo/odoo/pull/186222 opw-4268672
This update corrects a minor issue where some labels were missing in English for the Mexican reports module. Specifically, the `l10n_mx_nationality` and `l10n_mx_type_of_operation` fields now have accurate English translations. This ensures proper reporting functionality for users in Mexico.
Original PR description
Add missing english labels for the `l10n_mx_nationality` and `l10n_mx_type_of_operation`fields.  task-no Forward-Port-Of: odoo/enterprise#76038
This update fixes a tax calculation issue in Odoo Enterprise related to sales orders using Avatax. The system now uses the sales order's warehouse for tax computation, providing a more accurate estimate. While this is a best-effort approach, it resolves discrepancies in tax rates observed during order validation and invoicing.
Original PR description
…ing taxes Steps to reproduce ================== - Create a company in Canada with the canadian fiscal localization - Configure the avatax sandbox credentials - Create a new fiscal position in the…
…ing taxes Steps to reproduce ================== - Create a company in Canada with the canadian fiscal localization - Configure the avatax sandbox credentials - Create a new fiscal position in the USA that uses the avatax API - Create a USD pricelist - Create a warehouse in Cleveland Ohio - Create a salesorder with an Ohio based customer and the USD pricelist - Select a storable product with an invoicing policy on delivered quantity - Set the avatax category of the product to "Hand tools" - Select the warehouse just created on the sales order - Click on the "Compute taxes" button => The tax is set to 1% - Confirm the sales order => The tax is still set to 1% - Validate the delivery and create + confirm a new invoice => The tax is now 2.25% Cause of the issue ================== When computing the addresses to send to Avatax, the stock move addresse was used, but at this point, they have not yet been created Solution ======== We now use the warehouse from the sales order. This is only a best-effort estimation of where the products will ship from. It's possible products ship from a different warehouse than warehouse_id. For example, you can change the default delivery route to pull from a source location in a different warehouse. However, this is probably not a common configuration. In the end, the only way to know for sure is to run the inventory-related code, which we want to avoid just for tax computation. Finally, it's also possible for users to change the warehouse manually after the order is confirmed. This can also potentially change taxes, and there's no way to anticipate this. The account.move code will continue to pull the warehouse from the stock.move, because we know it will be created before the invoice. Note that even on account.move the shipping address remains an estimation for products with an “invoice on ordered” invoicing policy. opw-4073701
This update corrects a bug where Mexican XML invoices were incorrectly displaying duplicate 8% tax amounts. The issue stemmed from a forward-porting error that was not properly addressed. The fix involves removing the problematic code and refactoring related components to ensure accurate tax calculations for Mexican invoices.
Original PR description
## Issue: - Uploading a Mexican XML file with an 8% tax results in the addition of an extra 8% tax. ## Steps to reproduce: - Create a new invoice and add a line with an 8% tax. - Validate the invoice…
## Issue: - Uploading a Mexican XML file with an 8% tax results in the addition of an extra 8% tax. ## Steps to reproduce: - Create a new invoice and add a line with an 8% tax. - Validate the invoice and export it as XML. - Upload the XML file as a vendor bill. - The vendor bill incorrectly shows two "8% taxes" instead of one. ## Solution: - The issue stems from a forward-port error from `saas-16.4` https://github.com/odoo/enterprise/commit/5681a8d5abee3a8787f3ee8612a8c3b18ed63ee6 to `17.0` https://github.com/odoo/enterprise/commit/56a2b66d84d8398ea870d559cd55cfeae44019d8 - In `17.0` we introduced this Extract method `_l10n_mx_edi_import_cfdi_get_tax_from_node` to refactor the `_l10n_mx_edi_import_cfdi_fill_invoice_line`. - We should have add the Exento checks in the new method however we mistakenly pushed code from `saas-16.4` to `17.0` without adapting it. - I removed the extra code introduced during the forward-porting. - Refactored the related code to ensure compatibility with the new changes in `17.0`. OPW-4198016
This update fixes a bug in the account reconciliation process. Previously, the system only flagged discrepancies when the ending balance didn't match the transaction sum. Now, it also identifies issues when the starting balance doesn't align with the previous statement's ending balance, ensuring more accurate reconciliation reports.
Original PR description
### Before The 'Invalid Statements' filter only considered the case of the Ending Balance not matching the Starting Balance + the sum of its transactions. We were not considering the case of the Starting Balance of the statement not matching the previous statement's Ending Balance. ### Now Fixed the condition of the filter to account for the second case. task-4397412
This update corrects a bug that prevented users from accessing CRM leads during testing. The fix ensures proper permission controls are enforced, preventing unauthorized access. This improves the reliability of our CRM test environment.
Original PR description
Fixing permission access error in the test (user does not have access to crm.lead). task-4380712 odoo/odoo#191319 Forward-Port-Of: odoo/enterprise#75965