Tuesday, February 25, 2025
21 changes · master
Enhancements to existing features
A small wording typo was corrected in the Danish reports area. This improves the polish and clarity of the user interface without changing any business process or functionality.
Original PR description
Well sometimes you don't really need to explain why. No task ID for this commit.
The referral dashboard’s circular progress indicator was simplified to use modern browser styling instead of generating many separate style rules. This keeps the same visual experience while reducing stylesheet size and limiting the risk of styling side effects elsewhere.
Original PR description
In hr_referral we have a special "progress bar" in a circular form. To produce this effect, in SCSS, we have a loop to generate all states (of the progress's percentage). But these loops generate a lot of rules in CSS and so have an impact on the CSS bundle. The CSS has improved a lot these last year, and now we can do amazing thing in pure CSS so this commit aims to use new technics and avoid a lot of glue code (for animation) and produce a similar result. This commit use: * CSS custom-property * `conic-gradient`: to produce a pie (circular "progress bar")
Users can now use keyboard shortcuts to delete documents or move them to the trash in the Documents app. This makes document cleanup faster and reduces the need for mouse navigation during repetitive tasks.
Original PR description
Purpose ======== Ease the navigation while deleting the documents by adding the shortcut key. Specification =============== - Add the Shortcut key `control + D` to delete and `control + m` to move in the trash for the documents. Task-4411984
This update adjusts how the expense document view is positioned so it stays compatible with related changes in the main Odoo system. It helps keep the employee expense document interface displaying correctly after the shared button area is introduced.
Original PR description
Since we are adding in the community pr the button box, we need to change the xpath a bit. task: 4418348
Resolved issues and error corrections
Maintenance requests now keep the previously selected maintenance team when a chosen work center does not have its own team assigned. This prevents accidental loss of team ownership and helps ensure requests remain routed to the right people.
Original PR description
- When a maintenance team is set in a maintenance request and a workcenter without an assigned maintenance team is selected, the maintenance team was incorrectly removed. Now, the maintenance team is only updated if the workcenter has an assigned team, preserving the previously selected team when no team is defined for the workcenter. task-4544384
Miscellaneous changes
First commit adjusts the height of pills and rows for a more uniform and compact display. The pill height is reduced from 35px to 25px, allowing more information to fit on the screen. Row height is now standardized to 25px per pill (or 25px when empty), with an additional 10px of empty space. This ensures consistent row heights, whether a row contains pills or not. Second commit improves the display of pills with several adjustments: -Rounded pill borders and reduced wrapper padding for a
Original PR description
First commit adjusts the height of pills and rows for a more uniform and compact display. The pill height is reduced from 35px to 25px, allowing more information to fit on the screen. Row height is now standardized to 25px per pill (or 25px when empty), with an additional 10px of empty space. This ensures consistent row heights, whether a row contains pills or not. Second commit improves the display of pills with several adjustments: -Rounded pill borders and reduced wrapper padding for a cleaner look. -Removed resize handles since the resize cursor is sufficient. -Eliminated pill highlighting to reduce visual clutter and prevent unnecessary flickering. Part of task-4571228 Forward-Port-Of: odoo/enterprise#79850
This fixes a data setup issue in the Swiss payroll accounting tests by using the correct phone field after an older mobile field was removed. It prevents demo data loading failures, helping test and validation environments run reliably.
Original PR description
A recent change (https://github.com/odoo/enterprise/pull/75203) removed the field `mobile` on the `res.partner` model, however the demo data in `l10n_ch_hr_payroll_account` was not fully adapted, leading to error and failure to load demo data. This commit changes the field `mobile` to `phone` to avoid the issue. Runbot Error: https://runbot.odoo.com/odoo/action-573/114995
In the follow up process, while the wizard's text is displayed correctly, the text in the chatter and in the pdf would contain too many carriage returns. The error is linked to the use of the text widget in the xml, which doesn't seem necessary in this case and is therefore removed. task-4574941 Forward-Port-Of: odoo/enterprise#79925 Forward-Port-Of: odoo/enterprise#79517
Original PR description
In the follow up process, while the wizard's text is displayed correctly, the text in the chatter and in the pdf would contain too many carriage returns. The error is linked to the use of the text widget in the xml, which doesn't seem necessary in this case and is therefore removed. task-4574941 Forward-Port-Of: odoo/enterprise#79925 Forward-Port-Of: odoo/enterprise#79517
### This commit fixes two issues introduced by [cdf65f563e6](https://github.com/odoo/odoo/pull/185954/commits/cdf65f563e6dc09ca238395e480da095232ac044): 1. Edit action incorrectly enabled for knowledge embedded view filters - These filters are not linked to server records in Knowledge - Attempting to edit leads to unwanted filter record creation - Should use delete action instead of edit for these cases 2. Favorites being lost in embedded views due to reconciliation - `_rec
Original PR description
### This commit fixes two issues introduced by [cdf65f563e6](https://github.com/odoo/odoo/pull/185954/commits/cdf65f563e6dc09ca238395e480da095232ac044): 1. Edit action incorrectly enabled for…
### This commit fixes two issues introduced by [cdf65f563e6](https://github.com/odoo/odoo/pull/185954/commits/cdf65f563e6dc09ca238395e480da095232ac044): 1. Edit action incorrectly enabled for knowledge embedded view filters - These filters are not linked to server records in Knowledge - Attempting to edit leads to unwanted filter record creation - Should use delete action instead of edit for these cases 2. Favorites being lost in embedded views due to reconciliation - `_reconciliateFavorites` deletes SearchItems that can't be reconciled - Embedded view filters are dissociated from record values - Results in loss of favorite filters when inserting views Solution: - Override `_reconciliateFavorites` to skip reconciliation for embedded views - Override `web.SearchBarMenu.FavoriteItem` to: * Restore delete action for embedded view filters * Add proper title and icon * Reimplement a `deleteFavorite` flow by patching `SearchBarMenu` - Reintroduce `deleteFavorite` in KnowledgeSearchModelMixin Reproduce Steps: 1st Issue: Create embedded view with "/kanban" or insert from another module - Add filter > edit action is present 2nd Issue: In any module - Add favorite filter - Insert view into Knowledge article - Filter is missing opw-4518370 Forward-Port-Of: odoo/enterprise#79725
This PR introduces two key features in Uruguayan electronic invoicing: Global Discounts: - Implemented the ability to apply global discounts across invoices. - Discounts are calculated and reflected in the final invoice total, ensuring compliance with DGI requirements. Down Payments: - Support for down payments was added to the invoicing process to ensure compliance with DGI requirements. ------------------------------- latam-task: 1284 adhoc-task-side: 45612 Forward-
Original PR description
This PR introduces two key features in Uruguayan electronic invoicing: Global Discounts: - Implemented the ability to apply global discounts across invoices. - Discounts are calculated and reflected in the final invoice total, ensuring compliance with DGI requirements. Down Payments: - Support for down payments was added to the invoicing process to ensure compliance with DGI requirements. ------------------------------- latam-task: 1284 adhoc-task-side: 45612 Forward-Port-Of: odoo/enterprise#75124
The appointment addon adds the `@mail/utils/common/format` module to the frontent assets. However, this module depends on another one: `@mail/utils/common/html`, which isn't there. As a consequence there's a red banner displayed in the bottom left corner, indicating that there's an odoo module issue, in all websites when the appointment addon is installed. This is causing a lot of trouble with free trials. This commit adds the missing dependency. Forward-Port-Of: odoo/enterprise#80079
Original PR description
The appointment addon adds the `@mail/utils/common/format` module to the frontent assets. However, this module depends on another one: `@mail/utils/common/html`, which isn't there. As a consequence there's a red banner displayed in the bottom left corner, indicating that there's an odoo module issue, in all websites when the appointment addon is installed. This is causing a lot of trouble with free trials. This commit adds the missing dependency. Forward-Port-Of: odoo/enterprise#80079
Steps to reproduce: - With an MX Company Setup - Issue an invoice with external trade - Print pdf Issue: Partner original RFC is shown, but according to our documentation [1] and official documentation [2] as well, we should display the generic RFC for external partners XEXX010101000 [1] https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/mexico.html#external-trade [2] https://www.sat.gob.mx/articulo/99662/articulo-29-a page 59 "15. ¿Qué datos debe cont
Original PR description
Steps to reproduce: - With an MX Company Setup - Issue an invoice with external trade - Print pdf Issue: Partner original RFC is shown, but according to our documentation [1] and official documentation [2] as well, we should display the generic RFC for external partners XEXX010101000 [1] https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/mexico.html#external-trade [2] https://www.sat.gob.mx/articulo/99662/articulo-29-a page 59 "15. ¿Qué datos debe contener la versión impresa del comprobante fiscal? En la representación impresa se incluirán como mínimo los datos establecidos en la regla 2.7.1.7. de la RMF. Fundamento: Regla 2.7.1.7. de la RMF. " opw-4473180 Forward-Port-Of: odoo/enterprise#79979 Forward-Port-Of: odoo/enterprise#79527
Before this commit, the _next_billing_details would not compute the amount in the currency of the order. Forward-Port-Of: odoo/enterprise#79289 Forward-Port-Of: odoo/enterprise#74162
Original PR description
Before this commit, the _next_billing_details would not compute the amount in the currency of the order. Forward-Port-Of: odoo/enterprise#79289 Forward-Port-Of: odoo/enterprise#74162
Users managing several branch companies may collect in a batch several payments from the branches. However this currently does not work as expected. Steps to reproduce: - Have a [main] company and a [branch] company - Create a payment in [branch] - Create a batch in [main] - Add the payment to the batch Issue: Error will raise ``` Incompatible companies on records: - “PAY00001” belongs to company “Your branch” and “Batch Payment” (batch_payment_id: 'BATCH/IN/2025/0001 (New)')
Original PR description
Users managing several branch companies may collect in a batch several payments from the branches. However this currently does not work as expected. Steps to reproduce: - Have a [main] company and a [branch] company - Create a payment in [branch] - Create a batch in [main] - Add the payment to the batch Issue: Error will raise ``` Incompatible companies on records: - “PAY00001” belongs to company “Your branch” and “Batch Payment” (batch_payment_id: 'BATCH/IN/2025/0001 (New)') belongs to another company ``` This occurs because now we check that batch and payment belong to the same company It is a change of behavior as in older versions this flows was permitted opw-4574188 Forward-Port-Of: odoo/enterprise#79719
This traceback arises when the user tries to change the orders from one stage to another. after deleting the last stage in another tab. To reproduce this issue:- 1) Install `pos_restaurant` 2) Duplicate the tab and open the preparation display in one tab 3) In another tab delete the last stage(`complete`) for the above preparation display 4) In the first tab click any product of an order from the `ready` stage 5) Now click the `ready` icon of that order 5) At the terminal you will
Original PR description
This traceback arises when the user tries to change the orders from one stage to another. after deleting the last stage in another tab. To reproduce this issue:- 1) Install `pos_restaurant` 2)…
This traceback arises when the user tries to change the orders from one stage to another.
after deleting the last stage in another tab.
To reproduce this issue:-
1) Install `pos_restaurant`
2) Duplicate the tab and open the preparation display in one tab
3) In another tab delete the last stage(`complete`) for the above preparation display
4) In the first tab click any product of an order from the `ready` stage
5) Now click the `ready` icon of that order
5) At the terminal you will see a traceback
Error:-
```
IndexError: list index out of range
File "odoo/http.py", line 2252, in __call__
response = request._serve_db()
File "odoo/http.py", line 1828, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1848, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1826, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1833, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2058, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 222, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 740, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 38, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "home/odoo/src/enterprise/saas-17.1/pos_preparation_display/models/preparation_display_orderline.py", line 51, in send_stricked_line_to_next_stage
next_stage_id = stage_ids.ids[current_stage_index + 1]
```
When the user clicks on the current stage icon it is supposed to go to the next stage with the help of the current stage index + 1.
But, because the user deleted the next stage it leads to an index error
After applying this will resolve the issue by preventing the user to modify stages
when there is an active session for that preparation display. Which making the code more robust
sentry-5056416790
Forward-Port-Of: odoo/enterprise#59415This commit adds one flow test to `l10n_ec_edi` that mocks `zeep` when sending an invoice to the SRI. This complements the existing tests that check the generated XML. task-none Forward-Port-Of: odoo/enterprise#79996 Forward-Port-Of: odoo/enterprise#77578
Original PR description
This commit adds one flow test to `l10n_ec_edi` that mocks `zeep` when sending an invoice to the SRI. This complements the existing tests that check the generated XML. task-none Forward-Port-Of: odoo/enterprise#79996 Forward-Port-Of: odoo/enterprise#77578
- Stopped ORM calls when hovering over the pencil icon to reduce flickering. - Ensured onChangeRoleName triggers only on actual input changes. - Properly initialized previousRoleName to track modifications. - Improved XML template handling for focus and blur events. This enhances performance and user experience by minimizing redundant ORM writes. Forward-Port-Of: odoo/enterprise#79176
Original PR description
- Stopped ORM calls when hovering over the pencil icon to reduce flickering. - Ensured onChangeRoleName triggers only on actual input changes. - Properly initialized previousRoleName to track modifications. - Improved XML template handling for focus and blur events. This enhances performance and user experience by minimizing redundant ORM writes. Forward-Port-Of: odoo/enterprise#79176
By default, SEPA requires a 5 day notification period prior to collecting a payment, if no payment has ever been collected using the related mandate. However, it could be that the company used another software before and imported their existing mandates (that have no payments yet in Odoo). In this case, the 5 day period does not apply and can be relaxes to the default 2 day period for running mandates. Instead of blocking the user when their required payment date is not at least 5 days fro
Original PR description
By default, SEPA requires a 5 day notification period prior to collecting a payment, if no payment has ever been collected using the related mandate. However, it could be that the company used another software before and imported their existing mandates (that have no payments yet in Odoo). In this case, the 5 day period does not apply and can be relaxes to the default 2 day period for running mandates. Instead of blocking the user when their required payment date is not at least 5 days from today (on first-time mandates), we now only show a warning at the top of the form, with links to the related payments. Blocking the user will only happen if the required payment date is not at least 2 days from today. [task-4472278](https://www.odoo.com/odoo/project.task/4472278) Forward-Port-Of: odoo/enterprise#79921 Forward-Port-Of: odoo/enterprise#77134
The send button wasn't align with the overdue Invoices above, now he is. task-4582381 linked:https://github.com/odoo/odoo/pull/198529 Forward-Port-Of: odoo/enterprise#79446
Original PR description
The send button wasn't align with the overdue Invoices above, now he is. task-4582381 linked:https://github.com/odoo/odoo/pull/198529 Forward-Port-Of: odoo/enterprise#79446
**Steps to reproduce:** - Install "Point of Sale" - Go to "Settings" - Enter the API Key for "barcodelookup.com" - Open a POS session - Scan a QR code not linked to any product **Issue:** The following error is raised: The action "point_of_sale.product_product_action_add_pos" does not exist. **Cause:** The action has been renamed to "product_template_action_add_pos". opw-4584711 Forward-Port-Of: odoo/enterprise#80040
Original PR description
**Steps to reproduce:** - Install "Point of Sale" - Go to "Settings" - Enter the API Key for "barcodelookup.com" - Open a POS session - Scan a QR code not linked to any product **Issue:** The following error is raised: The action "point_of_sale.product_product_action_add_pos" does not exist. **Cause:** The action has been renamed to "product_template_action_add_pos". opw-4584711 Forward-Port-Of: odoo/enterprise#80040
This commit will fix two errors: - for the value of average creditors days (A11) in B11 we used B18 for the calculation but it should be b15 - Error in naming for B34 and D34 (invert the two) task-4518430 Forward-Port-Of: odoo/enterprise#79811 Forward-Port-Of: odoo/enterprise#78013
Original PR description
This commit will fix two errors: - for the value of average creditors days (A11) in B11 we used B18 for the calculation but it should be b15 - Error in naming for B34 and D34 (invert the two) task-4518430 Forward-Port-Of: odoo/enterprise#79811 Forward-Port-Of: odoo/enterprise#78013