Daily updates from Odoo
Tuesday, March 5, 2024
22 changes · master
New functionality added to Odoo
Point of Sale category navigation has been updated so cashiers can access product categories at all times. This should make checkout workflows smoother and reduce interruptions when finding items during a sale.
Original PR description
POS categories should be accessible at all times. Task-3673139
Enhancements to existing features
The Barcode App now stays in fullscreen mode after page refreshes and gives users a reliable way back to the main Barcode menu when breadcrumbs are unavailable. This reduces confusion during warehouse operations, inventory adjustments, manufacturing, and batch picking workflows.
Original PR description
__[IMP] stock_barcode*: force fullscreen__ > Before this commit, the fullscreen attribute of the barcode's actions was set in the python, but by set it directly in the actions itself, the fullscreen won't be lost when the user refreshes the page. **[IMP] stock_barcode: go back to main menu** > In the Barcode App, when an operation or an inventory adjustment is opened and the page is refreshed, the breadcrumb is lost and it's no more possible to go back, so the back button does nothing. > > With this commit, in case there is no previs action, the back button will return to the Barcode App main menu. In addition of that, some minor code cleans were done. See commits for more details. *task-3636518*
This update removes unnecessary internal processing in the Chilean electronic invoicing module. It keeps the same business behavior while making the code simpler and easier to maintain.
Original PR description
Remove unnecessary recordset wrap in set
Customers paying for a subscription can now be invited to save their payment method for future automatic payments when supported. They can also remove saved payment methods from subscriptions that do not require online payment, giving them more control and improving the payment experience.
Original PR description
With this improvement, during a subscription payment with payment methods which support tokenization it is now possible to invite customers to automate their future payments by saving the payment token to the subscription. This update will provide to the customer a better experience while handling payments. Besides that, before this commit it was not possible for the customer removing a token linked with subscriptions which didn't have online required payment. Now, it is possible to remove them in case the customer change his mind. Task-id: 3144077
This update improves how Odoo web pages use clearer, more user-friendly URLs and refines navigation behavior on mobile devices. It helps users share and return to pages more reliably, while keeping mobile app navigation smoother on iOS and Android.
Recruitment forms now limit referral user options to people connected to the relevant company. This helps recruiters choose appropriate referrals and reduces mistakes in multi-company environments.
Original PR description
This commit adds an additional constraint to the referral user in the form view of the hr.applicant model of recruitment. The purpose of this is to have access to only the referrals that are related to the company domain of the user. task-3744170
This update removes the old employee home address field from several HR, payroll, document, appraisal, and salary contract flows. It helps keep employee data handling more consistent across these apps and reduces reliance on outdated employee address references.
The salary contract demo data now shows an employee going through recruitment, receiving an offer, and becoming an employee. This gives business users a more realistic example for testing or demonstrating the hiring and salary package workflow.
Original PR description
After this commit, one employee (abigail peterson) became an employee with the recruitment procedure (applicant to employee with an offer). task : 3596938
Resolved issues and error corrections
The company bike benefit in Belgian salary packages now uses a grouped dropdown by default. This makes the option list clearer and helps employees or HR users choose the right bike-related benefit more easily.
Original PR description
With this commit, by default the display type of the company bike is "dropdown-group" instead of "dropdown" task : 3659590
Fixed an error that could appear when using the auto plan button with only the Planning app installed. The sales-specific logic now runs only when the Sales Planning feature is available, preventing disruptions for Planning users.
Original PR description
Part of this commit- https://github.com/odoo/enterprise/pull/51742/commits/6f66cc46ddb554725b6bc8ab68691597f5eba24e If only the planning is installed, then the sale_order_id will not be found, causing a traceback. I have moved this code to the sale_planning. task-3764488
Code cleanup and technical improvements
This update adjusts automated tests across several Odoo Enterprise apps so they handle setup steps more reliably. It also removes obsolete test markers, helping keep the test suite ready for an upcoming testing framework migration without changing customer-facing features.
Miscellaneous changes
The current code was made in response to an issue where the exact_price value would not always be in the response of /orders, which would cause issues and inconsistencies. As of now, this issue seems to not happen anymore and we can thus revert to the original way of handling that which uses less api calls and a faster flow. Forward-Port-Of: odoo/enterprise#58040
Original PR description
The current code was made in response to an issue where the exact_price value would not always be in the response of /orders, which would cause issues and inconsistencies. As of now, this issue seems to not happen anymore and we can thus revert to the original way of handling that which uses less api calls and a faster flow. Forward-Port-Of: odoo/enterprise#58040
To reproduce: ============= - on Safari (Epiphany for Linux) - on a task for which you can "Sign Report" - click on "Sign Report" -> on portal "Sign" button is badly positioned which make it unclickable Problem: ======== - apparently on Browsers like Safari, we must specify position for the button otherwise it won't be correctly positioned Solution: ========= - add `align-self-star` to make sure the button is correctly positioned at the start of the grid layout opw-3725269  Forward-Port-Of: odoo/enterprise#56517
Currently, the static declaration of the topbar component is defined twice using two different syntaxes. The duplication has probably been caused by a rebase here: https://github.com/odoo/enterprise/pull/51579 To avoid confusion and remove dead code, we will delete the old syntax declaration and keep the modern one recommended by the JS Framework team. task-3777600 Forward-Port-Of: odoo/enterprise#57333
Original PR description
Currently, the static declaration of the topbar component is defined twice using two different syntaxes. The duplication has probably been caused by a rebase here: https://github.com/odoo/enterprise/pull/51579 To avoid confusion and remove dead code, we will delete the old syntax declaration and keep the modern one recommended by the JS Framework team. task-3777600 Forward-Port-Of: odoo/enterprise#57333
Each payment acquirer has its own implementation specificities: some implement a 'payment with redirection' flow and others a 'direct payment flow'; sometimes the 'payment with redirection' flow is even implemented as a 'direct payment' flow through an iframe; one payment acquirer could support webhooks while another does not and relies on another mechanism to fetch payment status updates... It can be tricky to guess where to look in the code to determine how a payment acquirer is implemented
Original PR description
Each payment acquirer has its own implementation specificities: some implement a 'payment with redirection' flow and others a 'direct payment flow'; sometimes the 'payment with redirection' flow is…
Each payment acquirer has its own implementation specificities: some implement a 'payment with redirection' flow and others a 'direct payment flow'; sometimes the 'payment with redirection' flow is even implemented as a 'direct payment' flow through an iframe; one payment acquirer could support webhooks while another does not and relies on another mechanism to fetch payment status updates... It can be tricky to guess where to look in the code to determine how a payment acquirer is implemented. On top of that, the online payments ecosystem evolves at a fast pace due to competition, buyouts, and legislation enforcement. Acquirers are thus frequently migrated to new APIs that might differ in implementation from the previous API. To help figure out the *which*, *why*, *how*, and *when* of payment API implementations, a README.md file is added to the main directory of all payment acquirer modules. They can be browsed in human-readable format on GitHub. task-2374916 See also: - https://github.com/odoo/odoo/pull/153016 Forward-Port-Of: odoo/enterprise#57921 Forward-Port-Of: odoo/enterprise#56182
Enterprise side of COM PR: odoo/odoo/pull/155214 Note that a couple of terms were manually translated by finding the terms in other es_MX.po files so that all terms from ticket screenshot will be correctly translated. This is due to a ecommerce (website_sale) refactoring in v17 that made it so some of the terms no longer exist specifically in the l10_mx* locale, so their translations couldn't be automatically backported from the existing v17 translations. opw-3452127 Forward-Port-Of: odoo
Original PR description
Enterprise side of COM PR: odoo/odoo/pull/155214 Note that a couple of terms were manually translated by finding the terms in other es_MX.po files so that all terms from ticket screenshot will be correctly translated. This is due to a ecommerce (website_sale) refactoring in v17 that made it so some of the terms no longer exist specifically in the l10_mx* locale, so their translations couldn't be automatically backported from the existing v17 translations. opw-3452127 Forward-Port-Of: odoo/enterprise#57800 Forward-Port-Of: odoo/enterprise#57358
Purpose ======= Fix the unpublished appointment types images which weren't showing for public users when accessing the invitation link. Instead of the appointment type image, the default web placeholder was displayed. Specifications ============== As the appointment types are unpublished and the user is public, when trying to retrieve the image by using `ir.binary._find_record` it was checking the access rights/rules on 'read' and launching an AccessError. As the record wasn't found,
Original PR description
Purpose ======= Fix the unpublished appointment types images which weren't showing for public users when accessing the invitation link. Instead of the appointment type image, the default web placeholder was displayed. Specifications ============== As the appointment types are unpublished and the user is public, when trying to retrieve the image by using `ir.binary._find_record` it was checking the access rights/rules on 'read' and launching an AccessError. As the record wasn't found, a fallback was made on the default web placeholder image. Fixing that by always granting the access to the appointment type image. Task-3725132 Forward-Port-Of: odoo/enterprise#56712
Having a partner and a label that match an account in a bill line leads to the account to be predicted even if it is of the wrong account type. Steps: - Create a payable account X with name containing ABC - Open vendor bill, set partner ABC - On the invoice line set the label to ABC and unfocus the line -> The account that is predicted is account X opw-3717805 Forward-Port-Of: odoo/enterprise#57790
Original PR description
Having a partner and a label that match an account in a bill line leads to the account to be predicted even if it is of the wrong account type. Steps: - Create a payable account X with name containing ABC - Open vendor bill, set partner ABC - On the invoice line set the label to ABC and unfocus the line -> The account that is predicted is account X opw-3717805 Forward-Port-Of: odoo/enterprise#57790
Steps to reproduce: - Create a payroll declaration sheet - Populate the declaration - Delete the declaration sheet - Create another payroll declaration sheet - Populate the declaration again - Try to generate the declaration pdfs Current behaviour: - Error raised Expected behaviour: - Generate declaration pdfs successfully Explanation: When deleting declaration sheet, declarations will not be deleted. They remained in the database. Therefore when excuting the generate p
Original PR description
Steps to reproduce: - Create a payroll declaration sheet - Populate the declaration - Delete the declaration sheet - Create another payroll declaration sheet - Populate the declaration again - Try to generate the declaration pdfs Current behaviour: - Error raised Expected behaviour: - Generate declaration pdfs successfully Explanation: When deleting declaration sheet, declarations will not be deleted. They remained in the database. Therefore when excuting the generate pdfs scheduled action, the system will search the declarations and try to browse the deleted declaration sheet. As a result, error raised. X-original-commit: 7ad17cb Forward-Port-Of: odoo/enterprise#57955
Steps to reproduce: - go to the field service - go to any task add product to it - generate the pdf report 'worksheet report pdf' Issue: - 'totals' labels is not aligned to the right Solution: - aligned the 'labels' to the right us css class Task:3549234 Forward-Port-Of: odoo/enterprise#57951 Forward-Port-Of: odoo/enterprise#50101
Original PR description
Steps to reproduce: - go to the field service - go to any task add product to it - generate the pdf report 'worksheet report pdf' Issue: - 'totals' labels is not aligned to the right Solution: - aligned the 'labels' to the right us css class Task:3549234 Forward-Port-Of: odoo/enterprise#57951 Forward-Port-Of: odoo/enterprise#50101
Before this commit the test `test_image_crop` sometimes failed. This was because the browser quit while the image of the image cropper was loading. This operation caused an error, that was caught by the browser and then by the test infrastructure but *after* the tour was marked as succesful. After this commit, we wait a little bit longer, that is, until the cropper widget (which is a JQuery extension) appears. runbot-error-59063 Forward-Port-Of: odoo/enterprise#58002
Original PR description
Before this commit the test `test_image_crop` sometimes failed. This was because the browser quit while the image of the image cropper was loading. This operation caused an error, that was caught by the browser and then by the test infrastructure but *after* the tour was marked as succesful. After this commit, we wait a little bit longer, that is, until the cropper widget (which is a JQuery extension) appears. runbot-error-59063 Forward-Port-Of: odoo/enterprise#58002
Since https://github.com/odoo/enterprise/commit/79461fce51f1f931b34aa66f8886a5faaf9c0908 The matching with SO changed. Suppose a SO already invoiced and reconciled with a payment. Before the commit above: - the SO rule was failing. - the AML rule was able to retrieve the related payment. After: - the SO rule found a match. - since there is no available aml to match on the invoice, nothing is suggested to the user on the bank reco widget. ticket_id: 3776876 Forward-Port-Of: odoo/en
Original PR description
Since https://github.com/odoo/enterprise/commit/79461fce51f1f931b34aa66f8886a5faaf9c0908 The matching with SO changed. Suppose a SO already invoiced and reconciled with a payment. Before the commit above: - the SO rule was failing. - the AML rule was able to retrieve the related payment. After: - the SO rule found a match. - since there is no available aml to match on the invoice, nothing is suggested to the user on the bank reco widget. ticket_id: 3776876 Forward-Port-Of: odoo/enterprise#57958