Thursday, April 13, 2023
78 changes · master
Enhancements to existing features
The HR module no longer marks employee binary file fields as trackable, because those files are not actually recorded in the activity chatter. This removes a misleading setting and helps keep employee record tracking behavior clearer.
Original PR description
before this commit, tracking is enable for the binary field, but odoo is not tracking binary fields to the chatter. after this commit, the tracking attribute is removed from the binary field Related EE: https://github.com/odoo/enterprise/pull/39631 w.r.t: https://github.com/odoo/odoo/commit/8506b9d62680f5e4d4cbd06359045e33920e5b66 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The web test page now shows a persistent count of completed and remaining planned tests in the top bar. This helps development teams quickly spot testing progress and cleanup opportunities without searching through detailed test output.
Original PR description
This commit adds an information in the topbar (thus always visible) to indicate the number of QUnit.todo tests that have been completed and the number of QUnit.todo tests that are uncompleted. Example: 
The timesheet unit toggle has been made much narrower so it no longer takes up the full row. This improves the visual layout and makes timesheet entry screens feel cleaner and easier to scan.
Original PR description
Currently the width of float_toggle widget is 100% so it appears in full size. In this commit we have reduced it to 15%. task-3251667
The recruitment app now includes demo data for scheduled interviews and related email templates. This helps business users better understand and demonstrate the hiring workflow with more realistic sample scenarios.
Original PR description
task: 3256007
Task lists for main tasks, sub-tasks, and blocked-by items now use the same layout. This makes project information easier to compare and ensures future list changes apply consistently across related task views.
Original PR description
Purpose of this commit have consistent list views between project.task and the sub-tasks / blocked by o2m so that when a change is done in one place it also impacts the other places. So, in this commit add/update sub-task and blocked by page list views to make them identical. task-3165202
The timesheet unit timer display has been adjusted so its toggle button takes up less space. This provides a cleaner, more compact layout for users entering or reviewing timesheets.
Original PR description
We have added the o_field_timesheet_uom class in the timesheet_uom_timer widget,this class reduced the width of the toggle button. task-3251667
Payroll salary attachment records no longer mark a file upload field as tracked, because Odoo does not record changes to binary files in the chatter. This avoids misleading configuration and keeps payroll record tracking aligned with what the system can actually display.
Original PR description
before this commit, tracking is enable for the binary field, but odoo is not tracking binary fields to the chatter. after this commit, the tracking attribute is removed from the binary field w.r.t: https://github.com/odoo/odoo/commit/8506b9d62680f5e4d4cbd06359045e33920e5b66
Resolved issues and error corrections
This fixes an issue where extra view settings could carry over when users created or edited records from a many-to-one field. Users should now see the intended form layout, reducing confusion and preventing incorrect screens from opening.
Original PR description
This commit ensures that keys ending with _view_ref are properly removed from context when using create and edit action in many2one fields. opw-3256019
Features or functions removed from Odoo
The unused task reporting list view has been removed from the code after it was already removed from the user interface. This reduces maintenance overhead without changing the day-to-day experience for users.
Original PR description
In a previous task, the task reporting list view was removed from the interface, but the view is still present in the code. Since this view is no longer used, this PR removes it. Upgrade: https://github.com/odoo/upgrade/pull/4538
Code cleanup and technical improvements
This update replaces older helper code with standard JavaScript methods across several Odoo areas. It should not change day-to-day behavior, but it reduces technical dependency and helps keep the product easier to maintain over time.
Original PR description
Replace _.isNumber(), _.isArray(), _.filter(), _.reject(), _.unique(), _.indexOf(), _.lastIndexOf(), _.findIndex(), _.range() _.keys(), _.values(), _.str.sprintf() and some _.each() Description of the refactoring this PR addresses: Current behavior before PR: There are underscore.js function enumerated above used in odoo. Desired behavior after PR is merged: These functions has been replaced by native javascript prototypes/methods/functions. TaskId : 3246238 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Precommit hooks would stock data until a call to ``cr.flush`` was made. Notably, this happens when the ``assertRaises`` method is called. Functions were applied on records already cleared from the cache. This change adds a cleanup call for `TransactionCase` as it keeps the same cursor for all tests. Cursor precommits can now be safely executed inside tests. Task-2834304 --------------------------------------------- Forward port of #117555 as automatic forwardport would not have confl
Original PR description
Precommit hooks would stock data until a call to ``cr.flush`` was made. Notably, this happens when the ``assertRaises`` method is called. Functions were applied on records already cleared from the cache. This change adds a cleanup call for `TransactionCase` as it keeps the same cursor for all tests. Cursor precommits can now be safely executed inside tests. Task-2834304 --------------------------------------------- Forward port of #117555 as automatic forwardport would not have conflicted despite being wrong in 15.0 (though in hindsight, runbot would have been red because of deprecated marker...) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#118192 Forward-Port-Of: odoo/odoo#118160
This update fixes an issue in the mail emoji picker that could cause problems when adding emoji controls from different parts of the app. It makes the picker use the correct page element directly, improving stability for users composing messages or using emoji fields.
Original PR description
`useRef()` hook should only be used in `setup()` of component. The `add()` function of emoji picker can be used anywhere. This commit fixes the issue by limiting use of `add()` to pass Object whose `el` is an element. We should pass the ref immediately rather than the refName. https://github.com/odoo/enterprise/pull/39626
This fixes how Odoo tracks the latest update time for images shown in the activity view. It keeps image refresh behavior reliable after an internal identifier change, helping users see current images without disruption.
Original PR description
Since [1], a unique id is used for fieldNodes, therefore, the code to keep track of last update images on the activity view needs to change also. Before this commit, we search the write_date on the fieldModes using the id, and if it's not present, a new one is created using as id "write_date". Now, as a unique id is needed, we search using the name, and if it's not present, a new one is created using as id "write_date_0". Note that this is already the behavior on kanbanParse. [1]: https://github.com/odoo/odoo/commit/baebb6a5b05ac8d59501a6071a5513e31a4ca047
Group direct message member names now use separators that match the user's locale. This makes chat labels read more naturally across languages and avoids display issues caused by previously untranslatable punctuation.
Original PR description
Prior to this commit, the separator used to separate the names of the members of a group DM could not be translated. This is because the string being translated is too short to be considered by the translation system. This commit fixes the problem by no longer relying on the Odoo translation system and instead using the ECMAScript Internationalization API.
This fix keeps pop-up lists and selection panels in the right place when their content changes. It improves the reliability of mail and discussion interactions by preventing misplaced interface elements.
Original PR description
1. specify the Position for the usePosition(); 2. usePosition() should call reposition() when innerHTML of the element change; --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix keeps calendar attendee expansion elements aligned properly when the page layout changes. It prevents small display glitches in the calendar, improving reliability for users managing meetings and attendees.
Original PR description
The reposition() method got a new parameter in #116499. Many2ManyExpandable now passes the necessary argument to reposition(). 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
This change fixes a small issue that could affect the emoji picker when replying to social stream comments. It ensures the picker receives the correct page element, improving reliability without changing the user workflow.
Original PR description
`useRef()` hook should only be used in `setup()` of component. The `add()` function of emoji picker can be used anywhere. This commit fixes the issue by limiting use of `add()` to pass Object whose `el` is an element. We should pass the ref immediately rather than the refName. https://github.com/odoo/odoo/pull/118293
This change removes an unused setting related to sending quotations before confirming sales orders. Since the option had no working behavior behind it, removing it reduces confusion for users and keeps the Sales configuration cleaner.
Original PR description
task-1962182 introduce the field back in 12.5 but did not added any logic with it. The tooltip suggested the need for it tho: "Check this box if you send quotations to your customers rather than confirming orders straight away." related to 0d2be38333d8fe5a4cbef4161ac92cac00e47eb1 opw-3198202
The Studio navigation bar no longer includes the shortcut to Notes. This simplifies the Studio interface by removing an entry point that is no longer needed, with minimal impact on day-to-day use.
Original PR description
This commit simply removes the notes shortcut of the studio navbar. opw-3259540
Several enterprise apps were adjusted to stay compatible with an underlying interface change for on-screen popovers. This keeps features such as follow-ups, appointments, documents, knowledge, project planning, Gantt views, and Studio approvals working consistently without changing the user-facing workflow.
Original PR description
odoo/odoo#118066
When #114353 forward port of #112425 which adds an uninstall_hook was merged, it was not updated with the API change of #108254, which replaced the `(cr, registry)` parameters by a sole `(env)` as most if not all uninstall hooks immediately created an environment anyway. So this hook has been breaking uninstall on anything on which `website_slides_survey` depends since it was merged. Fix the hook to match the new API. Forward-Port-Of: odoo/odoo#118197
Original PR description
When #114353 forward port of #112425 which adds an uninstall_hook was merged, it was not updated with the API change of #108254, which replaced the `(cr, registry)` parameters by a sole `(env)` as most if not all uninstall hooks immediately created an environment anyway. So this hook has been breaking uninstall on anything on which `website_slides_survey` depends since it was merged. Fix the hook to match the new API. Forward-Port-Of: odoo/odoo#118197
If the invoice has a deduction line for a down payment, the EDI generated XML file should have a reference to it in the DatiFattureCollegate. We take the reference from the related sales order. Same goes for credit notes: they should have a reference to the original invoice. We take the reference from the move's reversed_entry_id field Task link: https://www.odoo.com/web#id=3210485&model=project.task Task-3210485 Forward-Port-Of: odoo/odoo#117991 Forward-Port-Of: odoo/odoo#117396
Original PR description
If the invoice has a deduction line for a down payment, the EDI generated XML file should have a reference to it in the DatiFattureCollegate. We take the reference from the related sales order. Same goes for credit notes: they should have a reference to the original invoice. We take the reference from the move's reversed_entry_id field Task link: https://www.odoo.com/web#id=3210485&model=project.task Task-3210485 Forward-Port-Of: odoo/odoo#117991 Forward-Port-Of: odoo/odoo#117396
Add support for converting moment.js date formats to strftime format in BaseImportModel opw-3247615 Forward-Port-Of: odoo/odoo#117935
Original PR description
Add support for converting moment.js date formats to strftime format in BaseImportModel opw-3247615 Forward-Port-Of: odoo/odoo#117935
This PR removes the space between the field name and the colon in the calendar view popover Before:  After:  Forward-Port-Of: odoo/odoo#118292
Original PR description
This PR removes the space between the field name and the colon in the calendar view popover Before:  After:  Forward-Port-Of: odoo/odoo#118292
This commit prevents the inclusion of negative qty SO products from the calculation of their estimated shipping weight. A negative qty can indicate a return, which would be a separate picking from the delivery => We shouldn't subtract their weight from the delivery. This subtraction may have resulted in shipping rates being calculated as lower than they should have been within the SO. Additionally fixes the following use case (requires FedEx connector): - create a SO with 2 products wi
Original PR description
This commit prevents the inclusion of negative qty SO products from the calculation of their estimated shipping weight. A negative qty can indicate a return, which would be a separate picking from the delivery => We shouldn't subtract their weight from the delivery. This subtraction may have resulted in shipping rates being calculated as lower than they should have been within the SO. Additionally fixes the following use case (requires FedEx connector): - create a SO with 2 products with the same weight - set 1st product qty = 1 - set 2nd product qty = -1 - add shipping => Shipping Method = FedEx US - click on "Get Rate" An error will occur because the SO._get_estimated_weight() = 0, and you cannot have a rate for weight = 0 TaskId - 3028023 Forward-Port-Of: odoo/odoo#118287 Forward-Port-Of: odoo/odoo#104658
Before this commit, when an event was synced with internal and external users, the corresponding partners were merged like this: 1) partner corresponding to internal users 2) regular partner If the list of emails provided by google was in another order: regular partners then internal, there were an issue: ``` emails = [a.get('email') for a in google_attendees] # sorted by google, external then internal for example partners = self._get_sync_partner(emails) # always internal then externa
Original PR description
Before this commit, when an event was synced with internal and external users, the corresponding partners were merged like this: 1) partner corresponding to internal users 2) regular partner If the…
Before this commit, when an event was synced with internal and external users, the corresponding partners were merged like this:
1) partner corresponding to internal users
2) regular partner
If the list of emails provided by google was in another order: regular partners then internal, there were an issue:
```
emails = [a.get('email') for a in google_attendees] # sorted by google, external then internal for example
partners = self._get_sync_partner(emails) # always internal then external partners
for attendee in zip(emails, partners, google_attendees):
# we are associating the external email with internal partner
# the external attendee is skipped because we take the user partner
```
This commit makes sure to return the partner is the order of the mails in _get_sync_partner.
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
Forward-Port-Of: odoo/odoo#1156601. Install Contacts, Projects 2. Settings - Register account for SMS 3. Create Contacts with mobile number and country from step 2 4. Go to Projects - create a project and stages - create SMS templates under configuration - create tasks under project/stage and add sms template Issue: lognote shows failed state when it is sent successfully and on messages notifications it shows both records Resolve by: partiallly revert commit https://github.com/odoo/odoo/commit/5de1b941ce580253a21f0e
Original PR description
1. Install Contacts, Projects 2. Settings - Register account for SMS 3. Create Contacts with mobile number and country from step 2 4. Go to Projects - create a project and stages - create SMS templates under configuration - create tasks under project/stage and add sms template Issue: lognote shows failed state when it is sent successfully and on messages notifications it shows both records Resolve by: partiallly revert commit https://github.com/odoo/odoo/commit/5de1b941ce580253a21f0e4f6da0a8ca818f26b3 opw-3251410 Forward-Port-Of: odoo/odoo#118179
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117552
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117552
The geoip2 module is not installed in the iot so this one cannot launch Odoo. This module is not used by the iot so it is not necessary to install the module in the iot and therefore to make a new build From this commit c59750d8244068e191a78631f8e0fd3d09067e3d 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 Forward-Po
Original PR description
The geoip2 module is not installed in the iot so this one cannot launch Odoo. This module is not used by the iot so it is not necessary to install the module in the iot and therefore to make a new build From this commit c59750d8244068e191a78631f8e0fd3d09067e3d 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 Forward-Port-Of: odoo/odoo#112915
Add information on pdf invoices including the totals and taxes in company currency when the invoice is set in foreign currency. This is a requirement for the gcc localization. In another task, we added a tax amount in company currency in the AE module, but people use the AE module a lot together with the l10n_gcc_invoice, which allows for dual language invoices and these amounts were not added in the gcc localization invoice. it is however needed. task : 3267784 --- I confirm I have s
Original PR description
Add information on pdf invoices including the totals and taxes in company currency when the invoice is set in foreign currency. This is a requirement for the gcc localization. In another task, we added a tax amount in company currency in the AE module, but people use the AE module a lot together with the l10n_gcc_invoice, which allows for dual language invoices and these amounts were not added in the gcc localization invoice. it is however needed. task : 3267784 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#118269
IndexError list index out of range occurs when we archive the stock picking type and try to access the point of sale session. This happens because the archive record is not read by search_read so the list is empty. ``` IndexError: list index out of range File "odoo/http.py", line 1990, in __call__ response = request._serve_db() File "odoo/http.py", line 1584, in _serve_db return service_model.retrying(self._serve_ir_http, self.env) File "odoo/service/model.py", line 134, i
Original PR description
IndexError list index out of range occurs when we archive the stock picking type and try to access the point of sale session. This happens because the archive record is not read by search_read so the…
IndexError list index out of range occurs when we archive the stock picking type and try to access the point of sale session. This happens because the archive record is not read by search_read so the list is empty.
```
IndexError: list index out of range
File "odoo/http.py", line 1990, in __call__
response = request._serve_db()
File "odoo/http.py", line 1584, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1613, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1810, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 149, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 699, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 42, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 33, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 461, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "odoo/api.py", line 448, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "addons/point_of_sale/models/pos_session.py", line 1574, in load_pos_data
loaded_data[model] = self._load_model(model)
File "addons/point_of_sale/models/pos_session.py", line 1566, in _load_model
return loader(params())
File "addons/point_of_sale/models/pos_session.py", line 1782, in _get_pos_ui_stock_picking_type
return self.env['stock.picking.type'].search_read(**params['search_params'])[0]
```
This commit added an ORM constraint that throws a validation error when
we try to archive the operation type which is used by POS configuration.
sentry - 3967651255
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#114420When user tries to print sale details in POS while generating the Sale Details if the `payment-type` is not `cash` it will add new payment in the list of payments which does not contains `session` key-valye pair. If there were multiple sessions in the report duration it will cause KeyError. Steps to reproduce: 1) Install the POS module 2) Create Multiple sessions in a shop 3) Print sale details ,and the error occurs When you print sale details, you should see the KeyError: 'session'.
Original PR description
When user tries to print sale details in POS while generating the Sale Details if the `payment-type` is not `cash` it will add new payment in the list of payments which does not contains `session` key-valye pair. If there were multiple sessions in the report duration it will cause KeyError. Steps to reproduce: 1) Install the POS module 2) Create Multiple sessions in a shop 3) Print sale details ,and the error occurs When you print sale details, you should see the KeyError: 'session'.  sentry - 4045460744 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#118063
Various fixes of the MO Overview : 1. Traceback when going into the MO Overview when purchase is installed and at least one buy route is set and used. 2. Consider free quantity to determine the quantity of products to order. 3. Remove `Availabilities`, `Receipts` and `Status` from displayables filters (and hides their related columns) when the MO is done 4. Following 6825c44, the `produce_delay` is no longer defined on the product but on the bom instead. 5. The wrong unit of measure was use
Original PR description
Various fixes of the MO Overview : 1. Traceback when going into the MO Overview when purchase is installed and at least one buy route is set and used. 2. Consider free quantity to determine the…
Various fixes of the MO Overview : 1. Traceback when going into the MO Overview when purchase is installed and at least one buy route is set and used. 2. Consider free quantity to determine the quantity of products to order. 3. Remove `Availabilities`, `Receipts` and `Status` from displayables filters (and hides their related columns) when the MO is done 4. Following 6825c44, the `produce_delay` is no longer defined on the product but on the bom instead. 5. The wrong unit of measure was used to display replenishment quantities and reservation. 6. Use the final product's MO deadline instead of it's start date to determine if the date should appear in red or not. 7. If a single product was used multiple times in a same MO, the replenishment are duplicated. 8. Use the scheduled date of the reception picking instead of the PO's expected arrival when possible. 9. The cost of a "RFQ" replenishment line is always 0. 10. The quantity pre-set in the Replenish wizard is in the line's uom instead of the product's uom. 11. Add "In Transit" lines for corresponding lines in the Forecast Report. 12. Date of a picking replenishment is always "Not available". Task-3217757 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#116475
2 issues 1. Activate cash control by making sure there is a cash payment method. There is traceback when closing session. - This is because the method call to post_closing_cash_details is not properly sent. 2. Install pos_restaurant, keep the cash payment method. Steps: - Create a new order. - Add item and go back to floor. (This will create a draft order in the backend.) - Try closing the session. - It should fail but it should not call `update_clos
Original PR description
2 issues 1. Activate cash control by making sure there is a cash payment method. There is traceback when closing session. - This is because the method call to post_closing_cash_details is not…
2 issues
1. Activate cash control by making sure there is a cash payment method.
There is traceback when closing session.
- This is because the method call to post_closing_cash_details is not
properly sent.
2. Install pos_restaurant, keep the cash payment method.
Steps:
- Create a new order.
- Add item and go back to floor. (This will create a draft order in the backend.)
- Try closing the session.
- It should fail but it should not call `update_closing_control_state_session`.
- BUG: Because `update_closing_control_state_session` is called, the session
state changed and the user can't do "continue selling" because the button
in the pos.session kanban is now "close". It should be "continue selling".
Solution:
1. Make sure the orm.call is provided the correct params.
2. Access `cashControl` from the component which is equivalent to env.pos.config.cash_control.
This commit fixes the listed issues.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#118053Currently, there is a download function exported that expects data and a url. You would provide a controller url and some data to send, and the result would be downloaded. However, it may be useful to sometimes trigger a download on the spot if there is no need to reach for a controller. Like having some json data and download it. The code already existed, so this function is now exported as `downloadFile`. Forward-Port-Of: odoo/odoo#116966
Original PR description
Currently, there is a download function exported that expects data and a url. You would provide a controller url and some data to send, and the result would be downloaded. However, it may be useful to sometimes trigger a download on the spot if there is no need to reach for a controller. Like having some json data and download it. The code already existed, so this function is now exported as `downloadFile`. Forward-Port-Of: odoo/odoo#116966
**Current behavior before PR:** When we create a nested list and change a tag of the one of the list item in nested list and press backspace from start it removes the tag. **Desired behavior after PR is merged:** Now pressing backspace from the start tag, the tag is not removed. Task - 3147461 Forward-Port-Of: odoo/odoo#115695
Original PR description
**Current behavior before PR:** When we create a nested list and change a tag of the one of the list item in nested list and press backspace from start it removes the tag. **Desired behavior after PR is merged:** Now pressing backspace from the start tag, the tag is not removed. Task - 3147461 Forward-Port-Of: odoo/odoo#115695
Before this commit `Measure` button in pivot and graph view was small compare to other buttons in control panel because flex class on left button control panel and pivot/graph view has two button groups in their left button control panel and flex class is only applied on first button group. This commit add style for pivot/graph view to display then in block to fix that issue in stable and we will move those two button group in single div in master to apply flex class on both button groups.
Original PR description
Before this commit `Measure` button in pivot and graph view was small compare to other buttons in control panel because flex class on left button control panel and pivot/graph view has two button groups in their left button control panel and flex class is only applied on first button group. This commit add style for pivot/graph view to display then in block to fix that issue in stable and we will move those two button group in single div in master to apply flex class on both button groups. task-3187910 Forward-Port-Of: odoo/odoo#114284
[FIX] mass_mailing: re-display sidebar in non-basic themed mailing [FIX] mass_mailing, web_editor: add missing toolbar in basic theme [FIX] mass_mailing: add missing tour for basic theme [FIX] web_editor: remove non-connected nodes in applyColor command Forward-Port-Of: odoo/odoo#116718 Forward-Port-Of: odoo/odoo#115550
Original PR description
[FIX] mass_mailing: re-display sidebar in non-basic themed mailing [FIX] mass_mailing, web_editor: add missing toolbar in basic theme [FIX] mass_mailing: add missing tour for basic theme [FIX] web_editor: remove non-connected nodes in applyColor command Forward-Port-Of: odoo/odoo#116718 Forward-Port-Of: odoo/odoo#115550
Steps to reproduce the bug: - Add an Image Gallery snippet on a the page. - Stay in edit mode and click on one of the arrows (left or right). - Bug -> The arrow disappears. This bug comes from the fact that the "oe_edited_link" class is added to the anchor of the arrow when clicking on it. Because of the scss related to this class, the position of the arrow is modified. This bug is fixed by adding the "o_not_editable" class to the anchor of the arrow. By doing so, the "oe_edited_link"
Original PR description
Steps to reproduce the bug: - Add an Image Gallery snippet on a the page. - Stay in edit mode and click on one of the arrows (left or right). - Bug -> The arrow disappears. This bug comes from the fact that the "oe_edited_link" class is added to the anchor of the arrow when clicking on it. Because of the scss related to this class, the position of the arrow is modified. This bug is fixed by adding the "o_not_editable" class to the anchor of the arrow. By doing so, the "oe_edited_link" is not added to the anchor of an arrow when clicking on it. task-3147271 Forward-Port-Of: odoo/odoo#118277 Forward-Port-Of: odoo/odoo#112058
To reproduce ============ on a quotation's description write a description with two or more nested bulletlists on web it looks good, but when printing the quotation the nested bulletlists are not correctly rendered. Problem ======= nested bulletlists on report level need style to correct their display Solution ======== add the style opw-3196888 Forward-Port-Of: odoo/odoo#117932
Original PR description
To reproduce ============ on a quotation's description write a description with two or more nested bulletlists on web it looks good, but when printing the quotation the nested bulletlists are not correctly rendered. Problem ======= nested bulletlists on report level need style to correct their display Solution ======== add the style opw-3196888 Forward-Port-Of: odoo/odoo#117932
Steps to reproduce: - Go to any contact - Send message to this contact (in the chatter) with text "test" - Open the email with Outlook desktop client on Windows - Reply to the mail (or transfer it) Issue: The email preview is displayed in top of the mail; `test` is displayed twice. Cause: Outlook desktop client does not handle well the `display:none`. Solution: Set font color to white and set a minimum font size and line height; the text will still be
Original PR description
Steps to reproduce: - Go to any contact - Send message to this contact (in the chatter) with text "test" - Open the email with Outlook desktop client on Windows - Reply to the mail (or transfer it) Issue: The email preview is displayed in top of the mail; `test` is displayed twice. Cause: Outlook desktop client does not handle well the `display:none`. Solution: Set font color to white and set a minimum font size and line height; the text will still be present, but not noticeable. opw-3167169 Forward-Port-Of: odoo/odoo#115331
Similar to https://github.com/odoo/odoo/commit/6cf8db906f595a0e579f9b0fd93e789c54c17fd4 Related to https://github.com/odoo/odoo/commit/2a16219ad0bd66a5fc7f0ae4852d4df3798cac8c https://online.sentry.io/issues/4048664799 Forward-Port-Of: odoo/odoo#118044
Original PR description
Similar to https://github.com/odoo/odoo/commit/6cf8db906f595a0e579f9b0fd93e789c54c17fd4 Related to https://github.com/odoo/odoo/commit/2a16219ad0bd66a5fc7f0ae4852d4df3798cac8c https://online.sentry.io/issues/4048664799 Forward-Port-Of: odoo/odoo#118044
Before this commit, the toolbar, when in mobile mode, had a BUTTON element containing: - an icon with a non-unique and unnecessary id, - a wrong/misleading title. This commit fixes such issues. task-3263984 Forward-Port-Of: odoo/odoo#118364
Original PR description
Before this commit, the toolbar, when in mobile mode, had a BUTTON element containing: - an icon with a non-unique and unnecessary id, - a wrong/misleading title. This commit fixes such issues. task-3263984 Forward-Port-Of: odoo/odoo#118364
This commit prevents the activation of options when no option section is visible, and disables overlay if there are no options to enable. Steps to reproduce the bug: - Go to website edit mode (homepage). - Click on the white area (the <main> element) below the "drag building blocks here" block. - Bug: The customize tab is activated in the editor panel, even though there are no options. task-3199281 Forward-Port-Of: odoo/odoo#114707
Original PR description
This commit prevents the activation of options when no option section is visible, and disables overlay if there are no options to enable. Steps to reproduce the bug: - Go to website edit mode (homepage). - Click on the white area (the <main> element) below the "drag building blocks here" block. - Bug: The customize tab is activated in the editor panel, even though there are no options. task-3199281 Forward-Port-Of: odoo/odoo#114707
To reproduce: 1. Manually create lot "0000001" for a lot product 2. Create a MO for this product and click generate-serial button. Validation error raised since we are trying to generate lot/sn "0000001" again. When useing action_generate_serial, ir.sequence always try create a lot/sn in form "00000dd". If user already created the same one, the generation will fail. We already tried to avoid this issue for sn in _get_next_serial() by finding the latest sn and create new one base on it.
Original PR description
To reproduce: 1. Manually create lot "0000001" for a lot product 2. Create a MO for this product and click generate-serial button. Validation error raised since we are trying to generate lot/sn "0000001" again. When useing action_generate_serial, ir.sequence always try create a lot/sn in form "00000dd". If user already created the same one, the generation will fail. We already tried to avoid this issue for sn in _get_next_serial() by finding the latest sn and create new one base on it. To fix, we also allow _get_next_serial to be applied to lot. Part of Tast-3187003 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#118374 Forward-Port-Of: odoo/odoo#117143
-- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/odoo#118239
Original PR description
-- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/odoo#118239
If allocation use the employee mode, the displayed hour must be based on the employee schedule not on the company schedule Partial revert of https://github.com/odoo/odoo/pull/96419 opw-3201224 Description of the issue/feature this PR addresses: Context: Company use a calendar of 02:31, Employee use a calendar of 05:10. I want to allocated 8h to an employee, and put 8h in the form field Current behavior before PR: Input value is converted in days for the employee so 1.55 (employee
Original PR description
If allocation use the employee mode, the displayed hour must be based on the employee schedule not on the company schedule Partial revert of https://github.com/odoo/odoo/pull/96419 opw-3201224…
If allocation use the employee mode, the displayed hour must be based on the employee schedule not on the company schedule Partial revert of https://github.com/odoo/odoo/pull/96419 opw-3201224 Description of the issue/feature this PR addresses: Context: Company use a calendar of 02:31, Employee use a calendar of 05:10. I want to allocated 8h to an employee, and put 8h in the form field Current behavior before PR: Input value is converted in days for the employee so 1.55 (employee schedule) BUT the form will display 3,88 (company schedule) Each update of date_to will recompute the display, so will reduce the hours. Employee can't take a time off of 8h as it only have 3.88 Desired behavior after PR is merged: Use employee schedule if allocation mode is employee The form will still display 8 (employee calendar) Employee can take a time off of 8h. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117749
This commit changes web_editor's powerbox search feature to also look for matches in a command's `description`, in addition to its `groupName` and `title`. For example, typing /track will suggest the Checklist command among the suggestions as its description is "Track tasks with a checklist". task-3188758 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#118322 Forward-Port-Of: odoo/odoo#113751
Original PR description
This commit changes web_editor's powerbox search feature to also look for matches in a command's `description`, in addition to its `groupName` and `title`. For example, typing /track will suggest the Checklist command among the suggestions as its description is "Track tasks with a checklist". task-3188758 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#118322 Forward-Port-Of: odoo/odoo#113751
… mailing Always apply the blacklist in mass_mail composition mode regardless of the recipient model implementing mail.thread.blacklist or not. This solves the problem of mail sent to black listed address for model not inheriting from mail.thread.blacklist. Technical notes: - it has been done in mail.compose.message _get_blacklist_record_ids ignoring the mixin mail.thread.blacklist to avoid model change in stable. - some tests have one added query because the blacklist is now queri
Original PR description
… mailing Always apply the blacklist in mass_mail composition mode regardless of the recipient model implementing mail.thread.blacklist or not. This solves the problem of mail sent to black listed address for model not inheriting from mail.thread.blacklist. Technical notes: - it has been done in mail.compose.message _get_blacklist_record_ids ignoring the mixin mail.thread.blacklist to avoid model change in stable. - some tests have one added query because the blacklist is now queried for each batch mail sends even if the model of the recipient doesn't implement mail.thread.blacklist. Task-2834862 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 Forward-Port-Of: odoo/odoo#118331 Forward-Port-Of: odoo/odoo#96722
The Check In / Check Out menu would show that the user is not linked to an employee because it was trying to read on `hr.employee` and not `hr.employee.public`. opw-3268217 Forward-Port-Of: odoo/odoo#118406
Original PR description
The Check In / Check Out menu would show that the user is not linked to an employee because it was trying to read on `hr.employee` and not `hr.employee.public`. opw-3268217 Forward-Port-Of: odoo/odoo#118406
Steps to reproduce the bug: - Create a storable product “P1”: - route: dropship - Create a purchase order: - customer: Azure interior - Deliver to: Dropship - Dropship Address: any address - Receipt Date: Tomorrow - Product: “P1” - Conform the Picking - Go to the dropship transfer: - Validate the picking - Go to the Scheduled Action > Purchase reminder - Run Manually Problem: The reminder email for the delivery is sent While the picking is in th
Original PR description
Steps to reproduce the bug: - Create a storable product “P1”: - route: dropship - Create a purchase order: - customer: Azure interior - Deliver to: Dropship - Dropship Address: any address - Receipt…
Steps to reproduce the bug:
- Create a storable product “P1”:
- route: dropship
- Create a purchase order:
- customer: Azure interior
- Deliver to: Dropship
- Dropship Address: any address
- Receipt Date: Tomorrow
- Product: “P1”
- Conform the Picking
- Go to the dropship transfer:
- Validate the picking
- Go to the Scheduled Action > Purchase reminder
- Run Manually
Problem:
The reminder email for the delivery is sent While the picking is in the
'done' status.
When we run the Scheduled action, the `_send_reminder_mail` function is
triggered in which we get the orders with the `_get_orders_to_remind`
function but we filter the purchase orders which have an "effective_date"
already set:
https://github.com/odoo/odoo/blob/181c7d82e30d0848bbac7f7d0188e81aced0af07/addons/purchase_stock/models/purchase.py#L279
but as in drop-shipping, the dest location is customer and the
"effective_date" is not set:
https://github.com/odoo/odoo/blob/16.0/addons/purchase_stock/models/purchase.py#L53
opw-3246218
Forward-Port-Of: odoo/odoo#118064Some customers in Austria are exporting their data using the DateV export available in `l10n_de_reports`. We can show the button for all DACH countries (countries where DateV is active) In the future, we shoud get this logic out of the German module, and make sure that it works for all of these countries. Forward-Port-Of: odoo/enterprise#38502
Original PR description
Some customers in Austria are exporting their data using the DateV export available in `l10n_de_reports`. We can show the button for all DACH countries (countries where DateV is active) In the future, we shoud get this logic out of the German module, and make sure that it works for all of these countries. Forward-Port-Of: odoo/enterprise#38502
It's possible to open a "Bar" without setting up the floors and tables. In this situation, we still want to see that is being sent to the preparations display. This commit fixes that behavior. First, we fix the traceback caused by sending undefined 'pos_order_id' in creating the preparation display order records. Then, when fetching the display orders, we also fetch those that are not linked to pos.order. Forward-Port-Of: odoo/enterprise#39705
Original PR description
It's possible to open a "Bar" without setting up the floors and tables. In this situation, we still want to see that is being sent to the preparations display. This commit fixes that behavior. First, we fix the traceback caused by sending undefined 'pos_order_id' in creating the preparation display order records. Then, when fetching the display orders, we also fetch those that are not linked to pos.order. Forward-Port-Of: odoo/enterprise#39705
Steps to reproduce the bug: - Go to “Master Production schedule” - Set the number of records on a page to 2 (so you will have several pages) - Hover over "replenish" button Problem: Traceback is triggered: “Cannot read properties of null (reading 'getElementsByClassName')” When the mouse pointer enter or leave, the main "REPLENSIH" button, it triggers an event that fetch elements of the rows based on a specific class attribute: https://github.com/odoo/enterprise/blob/3b6aed1e5cab06720
Original PR description
Steps to reproduce the bug: - Go to “Master Production schedule” - Set the number of records on a page to 2 (so you will have several pages) - Hover over "replenish" button Problem: Traceback is…
Steps to reproduce the bug: - Go to “Master Production schedule” - Set the number of records on a page to 2 (so you will have several pages) - Hover over "replenish" button Problem: Traceback is triggered: “Cannot read properties of null (reading 'getElementsByClassName')” When the mouse pointer enter or leave, the main "REPLENSIH" button, it triggers an event that fetch elements of the rows based on a specific class attribute: https://github.com/odoo/enterprise/blob/3b6aed1e5cab06720c7f2f2120a9589b12a1dd34/mrp_mps/static/src/components/line.js#L163-L164 https://github.com/odoo/enterprise/blob/3b6aed1e5cab06720c7f2f2120a9589b12a1dd34/mrp_mps/static/src/components/line.js#L170-L171 As we have changed the number of records to 2, the other lines are no longer in view and will no longer refer to this specific class, so when we try to access them with `getElementsByClassName` it's throw a TypeError: cannot read properties of null. opw-3245457 Forward-Port-Of: odoo/enterprise#39567
On uninstall of sale_planning, planning slots linked to an SO line would just have their SO line set to null, resulting in a planning slot with neither start/end datetimes nor an SO line. Upon reinstalling sale_planning, setting up the `check_datetimes_set_or_plannable_slot` constraint would then fail, as the previously created slots would be in an invalid state. Cascade the deletion of SO lines into the planning slots, instead of just setting the FK to NULL. Forward-Port-Of: odoo/enterp
Original PR description
On uninstall of sale_planning, planning slots linked to an SO line would just have their SO line set to null, resulting in a planning slot with neither start/end datetimes nor an SO line. Upon reinstalling sale_planning, setting up the `check_datetimes_set_or_plannable_slot` constraint would then fail, as the previously created slots would be in an invalid state. Cascade the deletion of SO lines into the planning slots, instead of just setting the FK to NULL. Forward-Port-Of: odoo/enterprise#39682 Forward-Port-Of: odoo/enterprise#39614
When one doesn't set a due date for a document request the sent mail has this kind of message : (Planned on ) This commit fix that by removing the sentence when there is no due date. Task-3231376 Forward-Port-Of: odoo/enterprise#39386
Original PR description
When one doesn't set a due date for a document request the sent mail has this kind of message : (Planned on ) This commit fix that by removing the sentence when there is no due date. Task-3231376 Forward-Port-Of: odoo/enterprise#39386
Before this commit, one couldn't log out when on the portal share page, this was due to the missing of bootstrap assets such ass dropdown.js and popper.js One couldn't upload a document with a request a file shared page. Task-3231376 Forward-Port-Of: odoo/enterprise#38238
Original PR description
Before this commit, one couldn't log out when on the portal share page, this was due to the missing of bootstrap assets such ass dropdown.js and popper.js One couldn't upload a document with a request a file shared page. Task-3231376 Forward-Port-Of: odoo/enterprise#38238
The credit limit information and credit limit warning in the PoS were displaying when the credit limit was not active in the global settings and when the credit limit was 0 (usually meaning infinite in other places in Odoo). This was confusing or abnormal. Now the credit limit is displaying if the credit limit global setting is active AND the partner credit limit is bigger than 0 AND the partner overdue its credit limit. Forward-Port-Of: odoo/enterprise#39345
Original PR description
The credit limit information and credit limit warning in the PoS were displaying when the credit limit was not active in the global settings and when the credit limit was 0 (usually meaning infinite in other places in Odoo). This was confusing or abnormal. Now the credit limit is displaying if the credit limit global setting is active AND the partner credit limit is bigger than 0 AND the partner overdue its credit limit. Forward-Port-Of: odoo/enterprise#39345
This fixes the EDI format compatibility validation on journals in other locations. Also pass the journal country code validation to the journal EC types implementation validation, copying the way other locations do. Forward-Port-Of: odoo/enterprise#37933
Original PR description
This fixes the EDI format compatibility validation on journals in other locations. Also pass the journal country code validation to the journal EC types implementation validation, copying the way other locations do. Forward-Port-Of: odoo/enterprise#37933
To reproduce ============ - on any app that has a notebook - on studio make one of the pages invisible - try to make this page visible again (impossible) Problem ======= When setting the page invisible the checkbox is not checked, so clicking on it again will trigger action to make the page invisible. The issue comes from the fact that the `checked` value of this checkbox is binded to `widget.state.attrs.invisible` but from 16, the invisible modifier is not included in `attrs` directly
Original PR description
To reproduce ============ - on any app that has a notebook - on studio make one of the pages invisible - try to make this page visible again (impossible) Problem ======= When setting the page invisible the checkbox is not checked, so clicking on it again will trigger action to make the page invisible. The issue comes from the fact that the `checked` value of this checkbox is binded to `widget.state.attrs.invisible` but from 16, the invisible modifier is not included in `attrs` directly but in `attrs.modifiers`. Solution ======== use `widget.state.attrs.modifiers.invisible` opw-3233079 Forward-Port-Of: odoo/enterprise#39711 Forward-Port-Of: odoo/enterprise#38489
Purpose: - Currently, when unfolding an article in the sidebar, a "404 not found" message is added under the row of the unfolded article if this article is not accessible by the user anymore or if it has been deleted. Now, an AccessError will be shown to the user, so that he knows why he cannot unfold the article, and the article will be removed from the sidebar. Task-3266638 Forward-Port-Of: odoo/enterprise#39454
Original PR description
Purpose: - Currently, when unfolding an article in the sidebar, a "404 not found" message is added under the row of the unfolded article if this article is not accessible by the user anymore or if it has been deleted. Now, an AccessError will be shown to the user, so that he knows why he cannot unfold the article, and the article will be removed from the sidebar. Task-3266638 Forward-Port-Of: odoo/enterprise#39454
Add a `file -> Download as JSON` top menu to easily download the json content for manual edition some users may require. Forward-Port-Of: odoo/enterprise#39536 Forward-Port-Of: odoo/enterprise#38956
Original PR description
Add a `file -> Download as JSON` top menu to easily download the json content for manual edition some users may require. Forward-Port-Of: odoo/enterprise#39536 Forward-Port-Of: odoo/enterprise#38956
Have a button in a form view, with studio_approval=True on it to make sure the action won't be executed if the user doesn't have the right to do it. Create a new record, and click on that button. Before this commit, the call to check the approvals was passed without a resId, which did not crash the first time, but the return value was wrong as the record was not yet created. After this commit, we make sure we save the record before checking the approvals and before executing the wanted
Original PR description
Have a button in a form view, with studio_approval=True on it to make sure the action won't be executed if the user doesn't have the right to do it. Create a new record, and click on that button. Before this commit, the call to check the approvals was passed without a resId, which did not crash the first time, but the return value was wrong as the record was not yet created. After this commit, we make sure we save the record before checking the approvals and before executing the wanted action. opw-3254791 Forward-Port-Of: odoo/enterprise#39282
steps: helpdesk > configuration > stages > select any stage cause: text and the kanban label were not properly aligned issue: ps-0 was not giving space between the text and the kanban label fix: improved it with ps-2 to get space between the text and the kanban label task-3141892 Forward-Port-Of: odoo/enterprise#39554 Forward-Port-Of: odoo/enterprise#36041
Original PR description
steps: helpdesk > configuration > stages > select any stage cause: text and the kanban label were not properly aligned issue: ps-0 was not giving space between the text and the kanban label fix: improved it with ps-2 to get space between the text and the kanban label task-3141892 Forward-Port-Of: odoo/enterprise#39554 Forward-Port-Of: odoo/enterprise#36041
The xmlid for the replacement contract type was not correct. Forward-Port-Of: odoo/enterprise#39616
Original PR description
The xmlid for the replacement contract type was not correct. Forward-Port-Of: odoo/enterprise#39616
The refusal notification was triggered for every applicant being archived, which whould fail when there was no referral user. Fixes #38554 task-3270054 Forward-Port-Of: odoo/enterprise#39625
Original PR description
The refusal notification was triggered for every applicant being archived, which whould fail when there was no referral user. Fixes #38554 task-3270054 Forward-Port-Of: odoo/enterprise#39625
The _validate_session() method in the l10n_de_pos_cert module was overridden without checking for a dictionary return value from the super method. This could cause unexpected behavior or errors when a redirection or a wizard was returned. For example, after calling the super function, it was possible that all orders were in the "paid" state and the session validation was not completed. This would cause the orders to be an empty recordset and generate errors when generating a template. Aft
Original PR description
The _validate_session() method in the l10n_de_pos_cert module was overridden without checking for a dictionary return value from the super method. This could cause unexpected behavior or errors when a redirection or a wizard was returned. For example, after calling the super function, it was possible that all orders were in the "paid" state and the session validation was not completed. This would cause the orders to be an empty recordset and generate errors when generating a template. After this commit it checks for a dictionary return value and returns it immediately if one is found, preventing the rest of the code from executing. This ensures that the code is only executed when it is appropriate to do so. opw-3265441 Forward-Port-Of: odoo/enterprise#39647
Current behaviour: The implementation of the `fetch_mail` function interogates the email server used for the EDI based on the IMAP uids. When first setting up the incoming email server record, the `l10n_cl_last_uid` used to track the last maximum uid that was processesed is set to 1. In pratice this leads to the function searching the IMAP server for mails from 1:*, i.e. a list of ALL IMAP uids is returned and a `for` loop is used to fetch one email at a time and validate the email attach
Original PR description
Current behaviour: The implementation of the `fetch_mail` function interogates the email server used for the EDI based on the IMAP uids. When first setting up the incoming email server record, the…
Current behaviour:
The implementation of the `fetch_mail` function interogates
the email server used for the EDI based on the IMAP uids. When first
setting up the incoming email server record, the `l10n_cl_last_uid` used
to track the last maximum uid that was processesed is set to 1.
In pratice this leads to the function searching the IMAP server for mails
from 1:*, i.e. a list of ALL IMAP uids is returned and a `for` loop is used
to fetch one email at a time and validate the email attachements for invoice
data. `l10n_cl_last_uid` gets updated outside the for loop to the last
processed uid in the current run.
The problem arises when the client connects to a new email server already
containing thousand of emails. In that case, while trying to process all
emails, the process will time out on the standard cpu limit (900s). Thus
the `for` loop never finishes and `l10n_cl_last_uid` never updates. At each
new run, the function begins from uid=1 again and timing out again.
After this fix:
We add a conservative default batch size (hardcoded to 50), so that the
`for` loop will only loop over the next 50 queued emails. Given an average
processing time of 2-3 seconds for each fetched email, this should guarantee
that the process never times out on current hardware and default settings.
As the default recurrence for the fetchmail cron job is "every 5 minutes",
we can expect that in most real life scenarios the clients DB should sync
in a matter of days maximum.
We also add a `server.write({'l10n_cl_last_uid': new_max_uid})` to the
try block relating to the email processing. This will keep track more often
of the last max processed IMAP uid in case the job is aborted for some other
unforseen reason.
opw-3225345
Forward-Port-Of: odoo/enterprise#39577ProgrammingError: can't adapt type 'pos.category' is generated when we follow below steps this is because the in search domain category_ids is required numbers(ids) but in function 'preparation_displays' was passed object. Steps to reproduce: 1) Install 'point_of_sale' module > Activate 'Preparation Display' from Configuration > Settings 2) Open pos session having preparation display like 'Bar'. 3) Create and validate a order > Close the session. 4) Click on 'Orders' > 'Preparation Disp
Original PR description
ProgrammingError: can't adapt type 'pos.category' is generated when we follow below steps this is because the in search domain category_ids is required numbers(ids) but in function 'preparation_displays' was passed object.
Steps to reproduce:
1) Install 'point_of_sale' module > Activate 'Preparation Display' from
Configuration > Settings
2) Open pos session having preparation display like 'Bar'. 3) Create and validate a order > Close the session. 4) Click on 'Orders' > 'Preparation Display' and select 'Open Display' according
to order.
5) Click on order item and the error will be generated in backend.
See:

By applying this, `categories.ids` will be passed instead of `category`.
sentry - 4063535802
Forward-Port-Of: odoo/enterprise#39485In https://github.com/odoo/enterprise/pull/35050 we created hooks throughout the checkout process in order to easily pass values to localization-specific templates. (for example, `_cart_values()`). Now that several localizations are customizing the checkout process (in particular Chile, see https://github.com/odoo/enterprise/pull/38737) all the hooks need to be called (via inheritance) meaning that they all need to call `super()`. So this fixes the few hooks that don't yet call super(). F
Original PR description
In https://github.com/odoo/enterprise/pull/35050 we created hooks throughout the checkout process in order to easily pass values to localization-specific templates. (for example, `_cart_values()`). Now that several localizations are customizing the checkout process (in particular Chile, see https://github.com/odoo/enterprise/pull/38737) all the hooks need to be called (via inheritance) meaning that they all need to call `super()`. So this fixes the few hooks that don't yet call super(). Forward-Port-Of: odoo/enterprise#39428
The custom handler linked to this report was missing the override of _dynamic_lines_generator, necessary in order not to load the lines of the generic tax report on top of the ones defined by account.report.line objects for this report. Forward-Port-Of: odoo/enterprise#39623
Original PR description
The custom handler linked to this report was missing the override of _dynamic_lines_generator, necessary in order not to load the lines of the generic tax report on top of the ones defined by account.report.line objects for this report. Forward-Port-Of: odoo/enterprise#39623
Partner name not filled when importing CAMT.053 files from UNICREDIT. Forward-Port-Of: odoo/enterprise#37503
Original PR description
Partner name not filled when importing CAMT.053 files from UNICREDIT. Forward-Port-Of: odoo/enterprise#37503
…r b2b before this commit ================== if line note or line section is added in invoice then wrong json is prepared there is multi line for same tax then GSTR-1 b2b json value is only take first line value after this commit: ================== ignore line note and line section in report sum all line value with same tax for GSTR-1 B2B Forward-Port-Of: odoo/enterprise#39580
Original PR description
…r b2b before this commit ================== if line note or line section is added in invoice then wrong json is prepared there is multi line for same tax then GSTR-1 b2b json value is only take first line value after this commit: ================== ignore line note and line section in report sum all line value with same tax for GSTR-1 B2B Forward-Port-Of: odoo/enterprise#39580
Steps to reproduce: - install and use the French language; - create a contract based on planning for an employee; - create a planning for this employee; - publish the planning; - create a payslip; - select the employee; - change the dates to correspond to the period. Issue: Example for the month of March: `ValueError: time data '01 mars 2023' does not match format '%d %b %Y'` Solution: Use the same solution as for the "hr_payroll_attendance" module: ccfa0a60f1702f464f4b4bdd7caf61
Original PR description
Steps to reproduce: - install and use the French language; - create a contract based on planning for an employee; - create a planning for this employee; - publish the planning; - create a payslip; - select the employee; - change the dates to correspond to the period. Issue: Example for the month of March: `ValueError: time data '01 mars 2023' does not match format '%d %b %Y'` Solution: Use the same solution as for the "hr_payroll_attendance" module: ccfa0a60f1702f464f4b4bdd7caf616d7ceff349 Important remark: It is a direct manager who is in the same timezone who manages the employee's planning. opw-3252214 Forward-Port-Of: odoo/enterprise#39413
This commit fixes the api.depends to the 'auth_totp' module which isnt a dependency. And it also fix an error cause by missing client-data when loading the wizard (due to multifactor header). original PR: https://github.com/odoo/enterprise/pull/38060 task-2925880 Forward-Port-Of: odoo/enterprise#39326 Forward-Port-Of: odoo/enterprise#38912
Original PR description
This commit fixes the api.depends to the 'auth_totp' module which isnt a dependency. And it also fix an error cause by missing client-data when loading the wizard (due to multifactor header). original PR: https://github.com/odoo/enterprise/pull/38060 task-2925880 Forward-Port-Of: odoo/enterprise#39326 Forward-Port-Of: odoo/enterprise#38912
Changing the typo in label 'Time based pricing' to 'Time-based pricing' (with a hyphen) on the product form. Task-id: 3264238 Forward-Port-Of: odoo/enterprise#39366
Original PR description
Changing the typo in label 'Time based pricing' to 'Time-based pricing' (with a hyphen) on the product form. Task-id: 3264238 Forward-Port-Of: odoo/enterprise#39366
issue: Before this commit, in the portal view of tickets while closing tickets the wizard open was under the tab of the website navbar. So in this commit, add the top margin to make the ticket close dialog visible under the navbar. task-2954190 Forward-Port-Of: odoo/enterprise#30890
Original PR description
issue: Before this commit, in the portal view of tickets while closing tickets the wizard open was under the tab of the website navbar. So in this commit, add the top margin to make the ticket close dialog visible under the navbar. task-2954190 Forward-Port-Of: odoo/enterprise#30890
- Helpdesk: remove extra blank space in tip of the helpdesk tour - Planning: fix the planning tour task-3099432 Forward-Port-Of: odoo/enterprise#39532 Forward-Port-Of: odoo/enterprise#35260
Original PR description
- Helpdesk: remove extra blank space in tip of the helpdesk tour - Planning: fix the planning tour task-3099432 Forward-Port-Of: odoo/enterprise#39532 Forward-Port-Of: odoo/enterprise#35260