Wednesday, January 31, 2024
51 changes · saas-17.1
Resolved issues and error corrections
Fixed an issue where website form fields could remain visibly editable after changing the form's send settings and saving. This helps ensure saved website pages appear correctly to visitors and avoids confusing editor artifacts.
Original PR description
With commit [1], the ability to add property field inside a website form was implemented. In this case, some models have different fields available depending on the action they perform. E.g. if you…
With commit [1], the ability to add property field inside a website form was implemented. In this case, some models have different fields available depending on the action they perform. E.g. if you select "Create a task", depending on which project you choose to create a task in, different fields will be available. For that reason, the decision was made to destroy the SnippetEditors of existing fields, so that they would update their available fields. However, while we destroy the editors, we do not properly clean the DOM before destroying them. This can lead to editor elements still being in the DOM after saving. Steps to reproduce: - Drop a form snippet - Add a "selection" field - Change the email address on which the form will be sent to - Click on save => The selection field is still in editable mode This commit fixes that by properly calling `cleanForSave` before destroying the SnippetEditors. [1]: https://github.com/odoo/odoo/commit/5c08ac23 Related to task-3278975
This update restores two user navigation actions that could fail after an internal service change. Users can reliably open “My Account” from the user menu and trigger the home action without interruption.
Original PR description
Since [1], the rpc service no longer exists, and the rpc function can be directly imported. This PR adapts a forgotten usecase, accessible when clicking on "My account" in the user menu. [1] odoo/odoo@137c43d02a27aec8302f823d8e3a1f18599489a2 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 update fixes an issue in Manufacturing shop floor quality check dialogs caused by a recent technical change in how selection fields receive their settings. It helps prevent errors when users interact with related record fields during work order quality checks.
Original PR description
Due to commit [1] The props on context for m2o take an object but the shopfloor hasn't been adapted [1] https://github.com/odoo/odoo/commit/3670f78be767396f322ff3ebf068af5c2f547b36
Miscellaneous changes
Have a product template with bom Ensure the product variant has not the same id of the template (Add and remove a template variant) In the product page > Hit "forecasted" smart button > "Manufacturing Forecast" Error will raise: Missing record Record does not exist or has been deleted. This occurs because when opening the Manufacturing Forecast from the template product we are searching the variant using the id of the template product opw-3636661 Forward-Port-Of: odoo/odoo#151
Original PR description
Have a product template with bom Ensure the product variant has not the same id of the template (Add and remove a template variant) In the product page > Hit "forecasted" smart button > "Manufacturing Forecast" Error will raise: Missing record Record does not exist or has been deleted. This occurs because when opening the Manufacturing Forecast from the template product we are searching the variant using the id of the template product opw-3636661 Forward-Port-Of: odoo/odoo#151776 Forward-Port-Of: odoo/odoo#149736
Fixes an error where a product cost rounding change (e.g. from default 2 to 3) would not be shown on the expense product and expense unit_amount Task link: https://www.odoo.com/web#model=project.task&id=3679204 task-3679204 Forward-Port-Of: odoo/odoo#151775 Forward-Port-Of: odoo/odoo#149032
Original PR description
Fixes an error where a product cost rounding change (e.g. from default 2 to 3) would not be shown on the expense product and expense unit_amount Task link: https://www.odoo.com/web#model=project.task&id=3679204 task-3679204 Forward-Port-Of: odoo/odoo#151775 Forward-Port-Of: odoo/odoo#149032
To reproduce: - Log-in as admin - Switch to debug mode - Go to Events / Configuration / Event Templates - Create a new template: * Name: Online Conference - Check 'Website menu', 'Community' and 'Allow Room Creation' option, - Save it - Go to Events / Events - Create a new event: * Name: New Online Conference * Template: Online Conference - Save it and click on 'Go to Website' smartbutton - Then click on 'Community' submenu - In the right panel, click on "Create a Room"
Original PR description
To reproduce: - Log-in as admin - Switch to debug mode - Go to Events / Configuration / Event Templates - Create a new template: * Name: Online Conference - Check 'Website menu', 'Community' and…
To reproduce:
- Log-in as admin
- Switch to debug mode
- Go to Events / Configuration / Event Templates
- Create a new template:
* Name: Online Conference
- Check 'Website menu', 'Community' and 'Allow Room Creation' option,
- Save it
- Go to Events / Events
- Create a new event:
* Name: New Online Conference
* Template: Online Conference
- Save it and click on 'Go to Website' smartbutton
- Then click on 'Community' submenu
- In the right panel, click on "Create a Room"
It crashes with:
```
TypeError: ctx.widget is undefined
template@.../web/assets/1/debug/web.assets_frontend_lazy.js line 13622 > Function:26:29 (/web/static/lib/owl/owl.js:5532)
render@.../web/assets/1/debug/web.assets_frontend_lazy.js:66320:28 (/web/static/src/core/utils/render.js:56)
renderToElement@.../web/assets/1/debug/web.assets_frontend_lazy.js:66272:22 (/web/static/src/core/utils/render.js:8)
_onClickCreate@.../web/assets/1/debug/web.assets_frontend_lazy.js:132115:35 (/website_event_meet/static/src/js/website_event_create_meeting_room_button.js:25)
```
This revert odoo/odoo@065a2f451a88 change for `website_event_meet`, as in that case the `csrf_token` value is provided directly as context value to `renderToElement` (see `websiteEventCreateMeetingRoom` publicwidget `_onClickCreate` handler)
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#151761This PR fixes an issue related to the colorpicker component, presents in both back-end and front-end. They use the same XML template but they have two different selectors within our SCSS files. task-3693078 ------------------ Some months ago, commit[1] removed some `@extend` rules related to button design within the `web_editor`, and replaced them with a `.btn` BS class. This affected both colorpicker since they share a common template, and causes layout issues on the "front-end web edi
Original PR description
This PR fixes an issue related to the colorpicker component, presents in both back-end and front-end. They use the same XML template but they have two different selectors within our SCSS files.…
This PR fixes an issue related to the colorpicker component, presents in both back-end and front-end. They use the same XML template but they have two different selectors within our SCSS files. task-3693078 ------------------ Some months ago, commit[1] removed some `@extend` rules related to button design within the `web_editor`, and replaced them with a `.btn` BS class. This affected both colorpicker since they share a common template, and causes layout issues on the "front-end web editor", which was not the expected output. The issue was fixed directly with commit[2], but by removing the `.btn` class from the template, it removed the whole styling on the back-end color picker, making it use the user agent button styling. == After == Since the colorpicker already has some CSS variables to handle its design depending on the context, we make use of the CSS variables to customize the design of the component when it is inside the backend, and make it look as it was before it lost its `.btn` class. | 17.0 | 17.0-fix-colorpicker-button-issue-chgo | | ------------- | ------------- | |  |  | Commit[1]: ee38c69503a0fd9175751f054d88bf760ec660b8 Commit[2]: 711fc86368eb5283cb0962620f0557d381904fde Forward-Port-Of: odoo/odoo#150157
To reproduce ============ - On a project, on a task - create a subtask give it a name and from the list view click on the "view" button - you get redirected to form view to create a new task that is not related to the parent task or the project Problem ======= When you click on the "view" button, the task is not saved yet, so the subtask doesn't exist yet to be viewed in Form view Solution ======== We prevent the redirection to the form view if the record is not saved yet same logi
Original PR description
To reproduce ============ - On a project, on a task - create a subtask give it a name and from the list view click on the "view" button - you get redirected to form view to create a new task that is not related to the parent task or the project Problem ======= When you click on the "view" button, the task is not saved yet, so the subtask doesn't exist yet to be viewed in Form view Solution ======== We prevent the redirection to the form view if the record is not saved yet same logic as : https://github.com/odoo/odoo/commit/9b136383c2599301413e6770cc0ff204273b589d opw-3681471 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149753
[FIX] mass_mailing: multiple attachments for same image [FIX] mass_mailing: duplicate call to saveModifiedImages task-3479586 Forward-Port-Of: odoo/odoo#151172 Forward-Port-Of: odoo/odoo#138563
Original PR description
[FIX] mass_mailing: multiple attachments for same image [FIX] mass_mailing: duplicate call to saveModifiedImages task-3479586 Forward-Port-Of: odoo/odoo#151172 Forward-Port-Of: odoo/odoo#138563
This commit fixes a ValueError that occurred when an order contained two or more order lines with kits. The error was caused by the 'self.qty' expression, which failed when 'self' was a recordset. The code has been updated to correctly handle multiple order lines with kits. opw-3708950 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151807 Forward-Port-Of: odoo/odoo#151710
Original PR description
This commit fixes a ValueError that occurred when an order contained two or more order lines with kits. The error was caused by the 'self.qty' expression, which failed when 'self' was a recordset. The code has been updated to correctly handle multiple order lines with kits. opw-3708950 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151807 Forward-Port-Of: odoo/odoo#151710
When a char field contains a value which represents a number (e.g. "00036"), the value is inserted as a number in the formula instead of a string. Because of this, the function value is not found. actual: =ODOO.PIVOT.HEADER(1,"x_studio_barcode",00003456799) expected: =ODOO.PIVOT.HEADER(1,"x_studio_barcode","00003456799") opw: 3623662 Task: 3631998 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151959 Forwar
Original PR description
When a char field contains a value which represents a number (e.g. "00036"), the value is inserted as a number in the formula instead of a string. Because of this, the function value is not found. actual: =ODOO.PIVOT.HEADER(1,"x_studio_barcode",00003456799) expected: =ODOO.PIVOT.HEADER(1,"x_studio_barcode","00003456799") opw: 3623662 Task: 3631998 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151959 Forward-Port-Of: odoo/odoo#151312
This commit fix unconsistent test. https://runbot.odoo.com/web/#id=54900&view_type=form&model=runbot.build.error&menu_id=405&cids=1 opw-3583174 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151670 Forward-Port-Of: odoo/odoo#150101
Original PR description
This commit fix unconsistent test. https://runbot.odoo.com/web/#id=54900&view_type=form&model=runbot.build.error&menu_id=405&cids=1 opw-3583174 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151670 Forward-Port-Of: odoo/odoo#150101
Currently, if the Send & Print fails in a web-service that happens *after* the PDF generation (such as UBL) we don't link the PDF and fallback on Proforma if possible. After this task, if we are in this situation we will link the invoice and not generate the proforma. Behavior is left unchanged for web-services that fail *before* PDF generation. task-id: 3690897 Forward-Port-Of: odoo/odoo#151624 Forward-Port-Of: odoo/odoo#150636
Original PR description
Currently, if the Send & Print fails in a web-service that happens *after* the PDF generation (such as UBL) we don't link the PDF and fallback on Proforma if possible. After this task, if we are in this situation we will link the invoice and not generate the proforma. Behavior is left unchanged for web-services that fail *before* PDF generation. task-id: 3690897 Forward-Port-Of: odoo/odoo#151624 Forward-Port-Of: odoo/odoo#150636
Description of the issue/feature this PR addresses: This commit allow to inherit the method _get_orderpoint_locations to filter in which location compute orderpoints imrpoving performance and usability --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150256
Original PR description
Description of the issue/feature this PR addresses: This commit allow to inherit the method _get_orderpoint_locations to filter in which location compute orderpoints imrpoving performance and usability --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150256
Current behavior: When we print the sales details report, we get an error popup Steps to reproduce: - Setup an ePos printer - Open PoS - Make an order with some products and finalize it - Click on the close session button, and print the sales details report Total paid is set here in currency: https://github.com/odoo/odoo/blob/f8f4e899b51a73b48882b2b6e33441f0e8eed477/addons/pos_daily_sales_reports/models/pos_daily_sales_reports.py#L204 opw-3702011 --- I confirm I have signed the
Original PR description
Current behavior: When we print the sales details report, we get an error popup Steps to reproduce: - Setup an ePos printer - Open PoS - Make an order with some products and finalize it - Click on the close session button, and print the sales details report Total paid is set here in currency: https://github.com/odoo/odoo/blob/f8f4e899b51a73b48882b2b6e33441f0e8eed477/addons/pos_daily_sales_reports/models/pos_daily_sales_reports.py#L204 opw-3702011 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151753
The `sum` function needs to be given a compatible for the `start` argument. Instead of using that function for a simple sum of two elements (not `int`), lets just sum them explicitly instead. Traceback: ``` TypeError: unsupported operand type(s) for +: 'int' and 'account.analytic.plan' ``` Forward-Port-Of: odoo/odoo#151738
Original PR description
The `sum` function needs to be given a compatible for the `start` argument. Instead of using that function for a simple sum of two elements (not `int`), lets just sum them explicitly instead. Traceback: ``` TypeError: unsupported operand type(s) for +: 'int' and 'account.analytic.plan' ``` Forward-Port-Of: odoo/odoo#151738
*: test_website Commit [1] modified the custom page search model so it is adding the current website in the search domain. But it was not considering the case of models not having a website_id field. The only case was the appoitment.type model. Steps to reproduce: - Install website_appointment (enterprise) - Click on Website > Site > Appointments - Crash [1]: https://github.com/odoo/odoo/commit/db670f64f4c2190f1655f9077ea62885049a3c84 Forward-Port-Of: odoo/odoo#151686 Forward-Po
Original PR description
*: test_website Commit [1] modified the custom page search model so it is adding the current website in the search domain. But it was not considering the case of models not having a website_id field. The only case was the appoitment.type model. Steps to reproduce: - Install website_appointment (enterprise) - Click on Website > Site > Appointments - Crash [1]: https://github.com/odoo/odoo/commit/db670f64f4c2190f1655f9077ea62885049a3c84 Forward-Port-Of: odoo/odoo#151686 Forward-Port-Of: odoo/odoo#150927
When a user only has access to a branch of a company, there is a lot of places where AccessError pops up because of how the domain was previously set on them. This commit aims to be a part of frequent small PR in the future to fix these problems. These PRs fixes: - Unaccessible parent company's fields (now accessible) in - Sales/Purchase Orders/Quotation form: product variant, product (product_template), and tax - Account Move (invoice/bill/etc) line, when filling product - Access
Original PR description
When a user only has access to a branch of a company, there is a lot of places where AccessError pops up because of how the domain was previously set on them. This commit aims to be a part of…
When a user only has access to a branch of a company, there is a lot of places where AccessError pops up because of how the domain was previously set on them. This commit aims to be a part of frequent small PR in the future to fix these problems. These PRs fixes: - Unaccessible parent company's fields (now accessible) in - Sales/Purchase Orders/Quotation form: product variant, product (product_template), and tax - Account Move (invoice/bill/etc) line, when filling product - Access Error as user with only access to branch when: - opening Accounting reports (BS / PL) - opening PoS dashboard - trying to add product when creating new invoice - Improves Journal access rules. Instead of making all parent's journal public, base the user access on: (explicitly granted access from user allowed companies) or (all self&parent's journal AND journal type is not Bank/Cash) - Improves styling on report's Journal dropdown button's style (in enterprise PR) community-PR: https://github.com/odoo/odoo/pull/140078 enterprise-PR: https://github.com/odoo/enterprise/pull/49820 [task-id: 3551305](https://www.odoo.com/web?debug=#id=3551305&cids=1&menu_id=4720&action=333&active_id=967&model=project.task&view_type=form) Forward-Port-Of: odoo/odoo#151562 Forward-Port-Of: odoo/odoo#140078
When we update an inline translated element (like `<span>`) for the base language `en_US` we should update the modifiers attributes for all languages. For example when updating from (16.0) https://github.com/odoo/odoo/blob/7ecd9413/odoo/addons/base/views/ir_ui_view_views.xml#L127-L129 https://github.com/odoo/odoo/blob/7ecd9413/odoo/addons/base/i18n/fr.po#L7233-L7235 to (17.0) https://github.com/odoo/odoo/blob/b1461d28/odoo/addons/base/views/ir_ui_view_views.xml#L126-L128 https://github
Original PR description
When we update an inline translated element (like `<span>`) for the base language `en_US` we should update the modifiers attributes for all languages. For example when updating from (16.0)…
When we update an inline translated element (like `<span>`) for the base
language `en_US` we should update the modifiers attributes for all
languages.
For example when updating from (16.0)
https://github.com/odoo/odoo/blob/7ecd9413/odoo/addons/base/views/ir_ui_view_views.xml#L127-L129
https://github.com/odoo/odoo/blob/7ecd9413/odoo/addons/base/i18n/fr.po#L7233-L7235
to (17.0)
https://github.com/odoo/odoo/blob/b1461d28/odoo/addons/base/views/ir_ui_view_views.xml#L126-L128
https://github.com/odoo/odoo/blob/b1461d28/odoo/addons/base/i18n/fr.po#L12087-L12089
The base term, `en_US`, is updated since the text matches but the
attributes of the translated terms, `fr_FR` for example, are not
updated. Later when the PO file is loaded in non-overwrite mode the
translated terms for `fr_FR` is not updated. This causes all sort of
issues during an upgrade for inline-translated terms -- like `<span>`.
More so since the recent change that converts domain-based attributes
into inline Python expressions.
In this patch we propagate modifiers attributes from inline-translated
items in the new base term into all translated terms when the base term
is updated. In that way we ensure the attributes are correct in all
languages even if later the loading of their corresponding PO file
doesn't update the term.
For a detailed example, let's see what happens when loading the view
above during an upgrade 16->17, right at the first load of the XML file
at https://github.com/odoo/odoo/blob/b1461d28/odoo/fields.py#L1864
```
(Pdb) p old_term
'<span attrs="{\'invisible\': [(\'reset_mode\', \'!=\', \'soft\')]}">This view has no previous version.</span>\n <span attrs="{\'invisible\': [(\'reset_mode\', \'!=\', \'hard\')]}">This view is not coming from a file.</span>\n <span attrs="{\'invisible\': [(\'reset_mode\', \'!=\', \'other_view\')]}">You need two views to compare.</span>'
(Pdb) p closest_term
'<span invisible="reset_mode != \'soft\'">This view has no previous version.</span>\n <span invisible="reset_mode != \'hard\'">This view is not coming from a file.</span>\n <span invisible="reset_mode != \'other_view\'">You need two views to compare.</span>'
(Pdb) p translation_dictionary[old_term]
defaultdict(<class 'dict'>, {'fr_FR': '<span attrs="{\'invisible\': [(\'reset_mode\', \'!=\', \'soft\')]}">Cette vue n\'a pas de version antérieure.</span>\n <span attrs="{\'invisible\': [(\'reset_mode\', \'!=\', \'hard\')]}">Cette vue ne provient pas d\'un fichier.</span>\n <span attrs="{\'invisible\': [(\'reset_mode\', \'!=\', \'other_view\')]}">Vous avez besoin de deux vues pour comparer.</span>'})
```
As we can see the new term will get an updated value for its `invisible`
attribute, while also removing `attrs`. The translated terms will be
still keep the old modifier though.
Now later when the fr_FR.po file is loaded we reach this point
https://github.com/odoo/odoo/blob/b1461d28/odoo/tools/translate.py#L1442
```
(Pdb) p term_en
'<span invisible="reset_mode != \'soft\'">This view has no previous version.</span>\n <span invisible="reset_mode != \'hard\'">This view is not coming from a file.</span>\n <span invisible="reset_mode != \'other_view\'">You need two views to compare.</span>'
(Pdb) p translation_dictionary[term_en]
defaultdict(<function DeepDefaultDict at 0x7fc9640cdfc0>, {'fr_FR': '<span attrs="{\'invisible\': [(\'reset_mode\', \'!=\', \'soft\')]}">Cette vue n\'a pas de version antérieure.</span>\n <span attrs="{\'invisible\': [(\'reset_mode\', \'!=\', \'hard\')]}">Cette vue ne provient pas d\'un fichier.</span>\n <span attrs="{\'invisible\': [(\'reset_mode\', \'!=\', \'other_view\')]}">Vous avez besoin de deux vues pour comparer.</span>'})
```
Thus the translated values are NOT updated, keeping the _wrong_
modifiers. This is later fixed during the upgrade in a clumsy way.
C.f. the warnings like this one in runbot:
```
Incomplete conversion for view(id=77, lang=fr_FR) at
<span attrs="{'invisible': [('reset_mode', '!=', 'soft')]}">Cette vue n'a pas de version ant&https://github.com/odoo-dev/odoo/pull/233;rieure.</span>
```
Note that such warnings are gone in current PR CI.
The root issue here is that when the fr_FR translation is loaded the
terms are not updated due to a combination of factors:
1. The text content of the term didn't change
2. There is no override flag set for translations
Option 2 is not a valid option during upgrades because we want to keep
custom translations. We could instead of the current patch tweak how
option 1 works and perhaps make the closest term more restricted. This
would lead to the update of the whole translation though while the
actual issue here is _just_ the modifiers. Moreover if the translations
are out of sync the translated terms will still keep the wrong values
that could still be essential for the correct functioning of the record
they belong too (view archs -- for example).
Finally this is a more extreme case (16.0):
https://github.com/odoo/enterprise/blob/1e63b4a8/sale_subscription/views/sale_order_views.xml#L142
In this case during the upgrade we fix the modifier value (refer to
runbot warning above -- it's the same script that fixes it) and set
```
invisible="(subscription_management == 'upsell') or (recurrence_id == False)"
```
for translations, which is wrong. The correct value is (17.0):
```
invisible="not plan_id or subscription_state == '7_upsell'"
```
https://github.com/odoo/enterprise/blob/530ba3ad/sale_subscription/views/sale_order_views.xml#L136
Forward-Port-Of: odoo/odoo#150152Before this commit, in the command palette, during a search, it is possible that the value entered is modified. The problem only occurs if the namespace has a debounceDelay bigger than 0 and at least one of its command providers is async. How to reproduce: ================= - Go to the command palette with the @ namespace. - Type a few characters - Re-enter a few characters If you repeat this operation several times, some characters may disappear. Why: ==== The value of the input is
Original PR description
Before this commit, in the command palette, during a search, it is possible that the value entered is modified. The problem only occurs if the namespace has a debounceDelay bigger than 0 and at least…
Before this commit, in the command palette, during a search, it is possible that the value entered is modified. The problem only occurs if the namespace has a debounceDelay bigger than 0 and at least one of its command providers is async. How to reproduce: ================= - Go to the command palette with the @ namespace. - Type a few characters - Re-enter a few characters If you repeat this operation several times, some characters may disappear. Why: ==== The value of the input is modified at each "input" event, but the searchValue in the state is only modified when the debounce trigger "search". Since the command palette template is contained in a slot, each state change causes a complete rendering of the command palette. When the search is executed, the commands are added to the state after each provider has generated them, so a rendering takes place and it is the value contained in state.searchValue that is used for the input and not the value contained in it before the rendering. Solution: ========= No longer modify state.searchValue during the search, but at each input event. 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#151772
**Step to reproduce**: - Open a pos session - Turn off the connection between the server and your POS instance - Create an order offline - Turn back on the connection between the server and your POS instance - Close the POS session **Issue**: The order created offline is not synced to the server **Cause**: The sync of the order has been implemented for the button to go back to the backend without closing but not for the closing session button. **Solution**: Make the sync
Original PR description
**Step to reproduce**: - Open a pos session - Turn off the connection between the server and your POS instance - Create an order offline - Turn back on the connection between the server and your POS instance - Close the POS session **Issue**: The order created offline is not synced to the server **Cause**: The sync of the order has been implemented for the button to go back to the backend without closing but not for the closing session button. **Solution**: Make the synch mechanism common to both buttons. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151016 Forward-Port-Of: odoo/odoo#137648
Steps: - Create a draft mailing based on a theme that has the snippets menu (the "Event Promo" theme, for instance). - Create another draft mailing, this time based on the basic theme ("Plain Text"). - Switch from the former to the latter using the form view pager. The editor for the basic theme record is not supposed to have a sidebar (snippets menu), as it uses the floating toolbar instead. But when switching between records like described above, the basic them
Original PR description
Steps: - Create a draft mailing based on a theme that has the snippets menu (the "Event Promo" theme, for instance). - Create another draft mailing, this time based on the basic theme ("Plain Text").…
Steps:
- Create a draft mailing based on a theme that has the snippets menu
(the "Event Promo" theme, for instance).
- Create another draft mailing, this time based on the basic theme
("Plain Text").
- Switch from the former to the latter using the form view pager.
The editor for the basic theme record is not supposed to have a sidebar
(snippets menu), as it uses the floating toolbar instead. But when
switching between records like described above, the basic theme gets
replaced by the theme of the preceding record, and the snippets menu is
added to the UI.
This happens because [1] patched the `setValue` function to handle the
case where the element for dropping snippets (.o_mail_wrapper_td) is
missing, in particular if it gets removed via the codeview. Such fix
most likely had in mind the scenario where the codeview is toggled on
and off, but not the call to `setValue` that also happens when switching
between records via the form view pager. As a result, the html content
of a record based on the basic theme, in which such "dropzone" is
absent, is added as a child of the previous record's .o_mail_wrapper_td
element. This is certainly not the desired behavior, as it ends up
overwriting the basic theme by the one from the previous record (the
theme is defined by a class in the .o_layout div, which is a parent of
the .o_mail_wrapper_td element).
This commit, besides fixing the described issue, takes the opportunity
to add a comment with the presumed reasoning behind commit [1] and
extends the test tour in order to prevent regressions.
[1]: https://github.com/odoo/odoo/commit/9be2cb538f937645be4650af1031c8a1445bb48b
task-3573951
Forward-Port-Of: odoo/odoo#148718
Forward-Port-Of: odoo/odoo#140197The `test_complete_chatbot_flow_ui` ensures it is possible to add reactions to the chat bot messages once the thread is saved on the server. This test was sometimes failing because the condition that is used to wait for the thread to be persisted is incorrect: it checks that a message with the user response exists but the chat bot question also contains the response text. This PR fixes the issue by using the `contains` helper instead: it will wait until the expected state is reached.
Original PR description
The `test_complete_chatbot_flow_ui` ensures it is possible to add reactions to the chat bot messages once the thread is saved on the server. This test was sometimes failing because the condition that is used to wait for the thread to be persisted is incorrect: it checks that a message with the user response exists but the chat bot question also contains the response text. This PR fixes the issue by using the `contains` helper instead: it will wait until the expected state is reached. fixes runbot-55291 Forward-Port-Of: odoo/odoo#151720
to reproduce ============ As admin: - in my Belgian company: create an accrual plan (use default values) - create an allocation for laurie poiret, use the created accrual + add 2 days of allocation - as lauriepoiret go to time off - create a time off for today or in the past - try to open time off type drop-down -> error Problem ======= The problem is that the accrual plan is not readable by the employee, but used in compute method. Solution ======== use sudo to read the accrua
Original PR description
to reproduce ============ As admin: - in my Belgian company: create an accrual plan (use default values) - create an allocation for laurie poiret, use the created accrual + add 2 days of allocation - as lauriepoiret go to time off - create a time off for today or in the past - try to open time off type drop-down -> error Problem ======= The problem is that the accrual plan is not readable by the employee, but used in compute method. Solution ======== use sudo to read the accrual plan opw-3687866 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150993
In calendar if you delete the end_date, switch to all_day event and set both start_date and stop_date and try to create the event, it will raise an error because `end` is not set. This is due to 'end' being a required field and the end_date not setting the end value. This commit adds an onchange to properly set the start and stop values from the start_date and stop_date. task-3682608 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior afte
Original PR description
In calendar if you delete the end_date, switch to all_day event and set both start_date and stop_date and try to create the event, it will raise an error because `end` is not set. This is due to 'end' being a required field and the end_date not setting the end value. This commit adds an onchange to properly set the start and stop values from the start_date and stop_date. task-3682608 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#149364
Currently the "Invoices to validate" link is broken in case the module account_3way_match (from enterprise) is installed. The same link / context is used for "Invoices to validate" and "Bills to validate". (The text inside the link is just changed depending on the journal type.) The module account_3way_match changes the context of that link to change the behaviour for the "Bills to validate" (bill specific filter). This breaks the link for "Invoices to validate". This commit makes invoice
Original PR description
Currently the "Invoices to validate" link is broken in case the module account_3way_match (from enterprise) is installed. The same link / context is used for "Invoices to validate" and "Bills to validate". (The text inside the link is just changed depending on the journal type.) The module account_3way_match changes the context of that link to change the behaviour for the "Bills to validate" (bill specific filter). This breaks the link for "Invoices to validate". This commit makes invoices and bills have dedicated / separate links. Thus after this commit account_3way_match only changes the behaviour of the "Bills to validate" link. task-3680398 Forward-Port-Of: odoo/odoo#149352
As long as the framework is not able to avoid rewriting values that are already set, we must add checks to avoid triggering multiple processes linked to that value assignment. Example: https://github.com/odoo/odoo/blob/66c11acdbedf8d1bcae6deb8ec54c5da5a3ae16d/addons/stock/models/product_strategy.py#L111 https://github.com/odoo/odoo/blob/11d81b2145e95c50481101a63d3ad1d244279af4/addons/stock/models/stock_move.py#L302-L341 https://github.com/odoo/odoo/blob/daea3d4e10b8fc2c4840fff30474a1203eff55
Original PR description
As long as the framework is not able to avoid rewriting values that are already set, we must add checks to avoid triggering multiple processes linked to that value assignment. Example: https://github.com/odoo/odoo/blob/66c11acdbedf8d1bcae6deb8ec54c5da5a3ae16d/addons/stock/models/product_strategy.py#L111 https://github.com/odoo/odoo/blob/11d81b2145e95c50481101a63d3ad1d244279af4/addons/stock/models/stock_move.py#L302-L341 https://github.com/odoo/odoo/blob/daea3d4e10b8fc2c4840fff30474a1203eff55c2/addons/sale_stock/models/sale_order.py#L402-L418 It may be unusual for a field to compute stored depending on a non-stored, but the reality is this. @Tecnativa TT45883 TT45999 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142309
When a button is updated, its `btn` classes are stripped by the editor. However, in so doing the regex replaces `btn_cta` by `_cta`. This commit fixes it. Related to opw-3644220 Forward-Port-Of: odoo/odoo#151436 Forward-Port-Of: odoo/odoo#149086
Original PR description
When a button is updated, its `btn` classes are stripped by the editor. However, in so doing the regex replaces `btn_cta` by `_cta`. This commit fixes it. Related to opw-3644220 Forward-Port-Of: odoo/odoo#151436 Forward-Port-Of: odoo/odoo#149086
Add two missing indexes on pos.order and one on pos.payment. These speed up queries executed when calling create_from_ui from the pos interface. #### speedup Customer database with 560 000 pos.orders. Example of queries benefiting from the indexes  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/
Original PR description
Add two missing indexes on pos.order and one on pos.payment. These speed up queries executed when calling create_from_ui from the pos interface. #### speedup Customer database with 560 000 pos.orders. Example of queries benefiting from the indexes  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151441 Forward-Port-Of: odoo/odoo#148842
Steps to reproduce: - open any task from project in form view - add timesheet to that task - switch to mobile view - under the timesheet section in notebook Issue: - there is no space between avatar and employee name Solution: - add space between avatar and employee to make user friendly view Task: 3633405 Forward-Port-Of: odoo/odoo#151091 Forward-Port-Of: odoo/odoo#145775
Original PR description
Steps to reproduce: - open any task from project in form view - add timesheet to that task - switch to mobile view - under the timesheet section in notebook Issue: - there is no space between avatar and employee name Solution: - add space between avatar and employee to make user friendly view Task: 3633405 Forward-Port-Of: odoo/odoo#151091 Forward-Port-Of: odoo/odoo#145775
**Current behavior:** Trying to post journal entries for an expense report sheet containing an expense that has: A) an associated analytic distribution with both a Project and Department, and B) a customer to be re-invoiced (requires the expense to be for a product which permits this operation), attempting to post the journal entries for the approved expense sheet will raise a ValueError. --- **Expected behavior:** The entries get posted to their respective accountin
Original PR description
**Current behavior:** Trying to post journal entries for an expense report sheet containing an expense that has: A) an associated analytic distribution with both a Project and Department, and B) a…
**Current behavior:**
Trying to post journal entries for an expense report sheet
containing an expense that has:
A) an associated analytic distribution with
both a Project and Department, and
B) a customer to be re-invoiced (requires the expense
to be for a product which permits this operation),
attempting to post the journal entries for the approved expense
sheet will raise a ValueError.
---
**Expected behavior:**
The entries get posted to their respective accounting journals.
---
Steps to reproduce:
0. Install the Project, Accounting, Sales, Expense apps
and enable analytic accounting in the db settings
1. Create a new expense with:
A) an analytic distribution which has
both available fields filled out, and
B) a category that permits a customer to be re-invoiced
(then enter a customer)
2. Create the report, submit it to the manager, approve it,
then attempt to post the journal entries
3. This should cause the traceback, if the process was blocked
try again after deleting any tax rules in the expense
---
Cause of the issue:
The analytic_distribution field in the hr.expense module is
stored as a dictionary. During the process of recording the
journal entries, the keys are converted from a string to
integers. However, when multiple keys are in the dict, the
conversion is set up improperly and fails.
---
Fix:
Modify the conversion sequence so that multiple dict keys are
accounted for.
---
opw-3663082
Forward-Port-Of: odoo/odoo#147985### Steps - Go to any event with tickets and using the ticket confirmation template, sending 'after new confirmation'. - Confirm a new attendee. - An email is sent but the chatter only shows the attachment and the subject, with no body. ### Issue Chatter should show full content of the email. ### Reason Above 16.2+ the 'body' is not implicitely set when genrating the template in ``mail_template.send_mail()``. As discussed with RETH, when requesting the 'body_html' for a template, sett
Original PR description
### Steps - Go to any event with tickets and using the ticket confirmation template, sending 'after new confirmation'. - Confirm a new attendee. - An email is sent but the chatter only shows the attachment and the subject, with no body. ### Issue Chatter should show full content of the email. ### Reason Above 16.2+ the 'body' is not implicitely set when genrating the template in ``mail_template.send_mail()``. As discussed with RETH, when requesting the 'body_html' for a template, setting the 'body' solves the problem. opw-3562438 Forward-Port-Of: odoo/odoo#142840
Forward-Port-Of: odoo/odoo#151746 Forward-Port-Of: odoo/odoo#151571
Original PR description
Forward-Port-Of: odoo/odoo#151746 Forward-Port-Of: odoo/odoo#151571
Current behavior before PR: When pasting using CTRL+SHIFT+V, if the textFragment includes linebreak(\n), each textFragment is divided, and each seperated fragment is inserted using `insert` command, followed by `oEnter` command. However, when `oEnter` is UNBREAKABLE, the inserted text is ROLLBACKED. Desired behavior after PR is merged: We now check whether the anchorNode's closestBlock is UNBREAKABLE. If so use `oShiftEnter` command; otherwise, use `oEnter` command which avoids ROLLBACK
Original PR description
Current behavior before PR: When pasting using CTRL+SHIFT+V, if the textFragment includes linebreak(\n), each textFragment is divided, and each seperated fragment is inserted using `insert` command, followed by `oEnter` command. However, when `oEnter` is UNBREAKABLE, the inserted text is ROLLBACKED. Desired behavior after PR is merged: We now check whether the anchorNode's closestBlock is UNBREAKABLE. If so use `oShiftEnter` command; otherwise, use `oEnter` command which avoids ROLLBACK. task-3563785 Forward-Port-Of: odoo/odoo#140876
Issue: This PR (https://github.com/odoo/odoo/pull/145412) wrongly removes "vat_required" option from "Domestique - France" fiscal postion. Solution: Set "vat_required" option back. opw-3617761 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151629 Forward-Port-Of: odoo/odoo#151518
Original PR description
Issue: This PR (https://github.com/odoo/odoo/pull/145412) wrongly removes "vat_required" option from "Domestique - France" fiscal postion. Solution: Set "vat_required" option back. opw-3617761 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151629 Forward-Port-Of: odoo/odoo#151518
This commit adds the missing neutralisation necessary for the `payment_xendit` module introduced in [1] The purpose of the standard neutralisation framework is to allow us to create database copies that will not interract with external systems in ways that could impact the production database (or if it is not possible to prevent the interractions, make sure that they are benign or wont result in actual changes), or impact the customers of the operator of the production database. This is mainly
Original PR description
This commit adds the missing neutralisation necessary for the `payment_xendit` module introduced in [1] The purpose of the standard neutralisation framework is to allow us to create database copies that will not interract with external systems in ways that could impact the production database (or if it is not possible to prevent the interractions, make sure that they are benign or wont result in actual changes), or impact the customers of the operator of the production database. This is mainly useful to allow safe support investigation on database duplicates. [1] odoo#141661 Forward-Port-Of: odoo/odoo#151511
'+ website_crm_partner_assign that overrides website_partner Implement partner slug validation for accurate URL redirection Prior to this commit, partner slugs weren't verified, leading to Google indexing outdated partner URLs even after renaming. With this change, when the virtual slug (fake slug sinc no read access on res.partner) differs from the actual one, redirection to the correct URL is enforced. Forward-Port-Of: odoo/odoo#151678 Forward-Port-Of: odoo/odoo#151524
Original PR description
'+ website_crm_partner_assign that overrides website_partner Implement partner slug validation for accurate URL redirection Prior to this commit, partner slugs weren't verified, leading to Google indexing outdated partner URLs even after renaming. With this change, when the virtual slug (fake slug sinc no read access on res.partner) differs from the actual one, redirection to the correct URL is enforced. Forward-Port-Of: odoo/odoo#151678 Forward-Port-Of: odoo/odoo#151524
Before this commit, when the company of the employees updated is not in the allowed_company_ids of the current user (could happen in the execution of a cron), an error is triggered saying we are not allowed to create a timesheet for an employee inactive. The reason is because the employee is not fetched in the check made in the timesheet creation because of the company of that employee is not in the companies contained in the environment. This commit makes sure the companies in the envi
Original PR description
Before this commit, when the company of the employees updated is not in the allowed_company_ids of the current user (could happen in the execution of a cron), an error is triggered saying we are not allowed to create a timesheet for an employee inactive. The reason is because the employee is not fetched in the check made in the timesheet creation because of the company of that employee is not in the companies contained in the environment. This commit makes sure the companies in the environment are the ones set on the employees created/updated, to be sure those employees are fetched in the check made in timesheet creation. Forward-Port-Of: odoo/odoo#151596 Forward-Port-Of: odoo/odoo#151386
[FIX] mrp: Fail to set workorder on calendar 'Planning by Workcenter' **Steps to reproduce:** 1- Install Manufacturing module 2- Create 2 or more new WOs and make sure that their corresponding MOs is not planned 3- Go to Operations > Work orders 4- Mark all of those WOs and write a start date to apply on all of them 5- Check Planning > Planning by Workcenter 'you will not find the scheduled WOs' **Current behavior before PR:** When you try to mark more than one record in Work or
Original PR description
[FIX] mrp: Fail to set workorder on calendar 'Planning by Workcenter' **Steps to reproduce:** 1- Install Manufacturing module 2- Create 2 or more new WOs and make sure that their corresponding MOs is…
[FIX] mrp: Fail to set workorder on calendar 'Planning by Workcenter' **Steps to reproduce:** 1- Install Manufacturing module 2- Create 2 or more new WOs and make sure that their corresponding MOs is not planned 3- Go to Operations > Work orders 4- Mark all of those WOs and write a start date to apply on all of them 5- Check Planning > Planning by Workcenter 'you will not find the scheduled WOs' **Current behavior before PR:** When you try to mark more than one record in Work orders and set start date for all of them at the same time it will not be set therefore it will not be visible in Planning calendar. This is happening because if you are setting the start date for the first time it will call the function that sets the start date first before calculating the finish date so it will not pass the condition where it checks if both dates have values. **Desired behavior after PR is merged:** Now we are checking just the start date if it has value or not and to raise the same user error if the customer tries to delete the finish date we are checking this on change of the finish date from a value to null. opw-3596100 Forward-Port-Of: odoo/odoo#151272 Forward-Port-Of: odoo/odoo#147861
Purpose ======= This reverts commit https://github.com/odoo-dev/odoo/commit/27a1ccc829d290c8589a535f10b31caaacd6400f which fixed the container height when course name was too long. It added a 'visibility: hidden' style which caused an issue on the course left bar where the progress bar and completed tag are located next to each other. Instead of adjusting the size of the container we prefer to limit the size of the course name to fit a single line. To do that we use the text-truncate class.
Original PR description
Purpose ======= This reverts commit https://github.com/odoo-dev/odoo/commit/27a1ccc829d290c8589a535f10b31caaacd6400f which fixed the container height when course name was too long. It added a 'visibility: hidden' style which caused an issue on the course left bar where the progress bar and completed tag are located next to each other. Instead of adjusting the size of the container we prefer to limit the size of the course name to fit a single line. To do that we use the text-truncate class. Task-3607404 Forward-Port-Of: odoo/odoo#150162 Forward-Port-Of: odoo/odoo#143136
[FIX] website: destroy widgets before instantiating the wysiwyg Steps to reproduce the problem: - Add a "Countdown" snippet on the website. - Save. - Enter in edit mode again. -> Problem: the `destroy()` of the `CountdownWidget` public widget comes from a `widgets_start_request` that is triggered when the `WysiwygAdapterComponent` has been mounted and patched (see [useEffect documentation]). The problem is that, as the widgets are only destroyed at this moment, it is possible that a w
Original PR description
[FIX] website: destroy widgets before instantiating the wysiwyg Steps to reproduce the problem: - Add a "Countdown" snippet on the website. - Save. - Enter in edit mode again. -> Problem: the…
[FIX] website: destroy widgets before instantiating the wysiwyg Steps to reproduce the problem: - Add a "Countdown" snippet on the website. - Save. - Enter in edit mode again. -> Problem: the `destroy()` of the `CountdownWidget` public widget comes from a `widgets_start_request` that is triggered when the `WysiwygAdapterComponent` has been mounted and patched (see [useEffect documentation]). The problem is that, as the widgets are only destroyed at this moment, it is possible that a widget could replace an element that has been modified during the instantiation of the `WysiwygAdapterComponent`. For example: - At the `onWillStart()` hook of the `WysiwygAdapterComponent`, the `o_editable` is added on some elements. - A widget could then replace one of these elements. - The widget is destroyed after the rendering of the `WysiwygAdapterComponent`. -> The `o_editable` class is not on the element anymore. The goal of this commit is to, as before [1], destroy the existing widgets before instantiating the `wysiwyg`. This commit also adds a test to ensure that the order of the calls to the widgets and wysiwyg lifecycle methods is coherent. Related to runbot-28700 [1]: https://github.com/odoo/odoo/commit/a3e34512bf229d5d55f9e9d9eb0a9f7211a5a826 [useEffect documentation]: https://github.com/odoo/owl/blob/master/doc/reference/hooks.md#useeffect Forward-Port-Of: odoo/odoo#151411 Forward-Port-Of: odoo/odoo#149385
This commit renames the l10n_dk_edi module name to avoid naming confusion between this module and the other DK edi modules. Forward-Port-Of: odoo/enterprise#55441
Original PR description
This commit renames the l10n_dk_edi module name to avoid naming confusion between this module and the other DK edi modules. Forward-Port-Of: odoo/enterprise#55441
In the tour, we navigate from the registration form and then go back to it. Steps are done fast and the new registration form does not manage to be loaded (and/or old form is not unmounted) by the time the registration fields are filled from the tour steps. As a result registration form is not properly filled and final 'Check in' button fails. To fix this, we add step_delay when running the tour. Forward-Port-Of: odoo/enterprise#55346
Original PR description
In the tour, we navigate from the registration form and then go back to it. Steps are done fast and the new registration form does not manage to be loaded (and/or old form is not unmounted) by the time the registration fields are filled from the tour steps. As a result registration form is not properly filled and final 'Check in' button fails. To fix this, we add step_delay when running the tour. Forward-Port-Of: odoo/enterprise#55346
"l10n_fr_reports.account_financial_report_line_02_0_6_fr_bilan_passif_balance" doesn't exist for databases in 16.0 or higher, made or migrated after this [change](http://tinyurl.com/yrf8hf2r). Also, in some cases, it is being removed by the upgrade script, https://github.com/odoo/upgrade/pull/5358, which was reverted, but some databases were still able to migrate at that time; same problem for those databases as well. TBG-1042 upg-1247501, 1240637, 1203984, 1250604 Forward-Port-Of: o
Original PR description
"l10n_fr_reports.account_financial_report_line_02_0_6_fr_bilan_passif_balance" doesn't exist for databases in 16.0 or higher, made or migrated after this [change](http://tinyurl.com/yrf8hf2r). Also, in some cases, it is being removed by the upgrade script, https://github.com/odoo/upgrade/pull/5358, which was reverted, but some databases were still able to migrate at that time; same problem for those databases as well. TBG-1042 upg-1247501, 1240637, 1203984, 1250604 Forward-Port-Of: odoo/enterprise#55397
This commit resolves an issue where loading table orders would fail due to a refactor (commit: https://github.com/odoo/odoo/commit/01b3a2e4c24fe24bb7b8bb74fc6d2e2edaa96e87). The "l10n_de_fiskaly_time_start" field was correctly added in the 'export_for_ui' method. opw-3706454 Forward-Port-Of: odoo/enterprise#55423
Original PR description
This commit resolves an issue where loading table orders would fail due to a refactor (commit: https://github.com/odoo/odoo/commit/01b3a2e4c24fe24bb7b8bb74fc6d2e2edaa96e87). The "l10n_de_fiskaly_time_start" field was correctly added in the 'export_for_ui' method. opw-3706454 Forward-Port-Of: odoo/enterprise#55423
When a user only has access to a branch of a company, there is a lot of places where AccessError pops up because of how the domain was previously set on them. This commit aims to be a part of frequent small PR in the future to fix these problems. This also includes small style improvement for report's dropdown button for Journal filter, to make it clear that company name is not clickable These PRs fixes: - Unaccessible parent company's fields (now accessible) in - Sales/Purchase O
Original PR description
When a user only has access to a branch of a company, there is a lot of places where AccessError pops up because of how the domain was previously set on them. This commit aims to be a part of…
When a user only has access to a branch of a company, there is a lot of places where AccessError pops up because of how the domain was previously set on them. This commit aims to be a part of frequent small PR in the future to fix these problems. This also includes small style improvement for report's dropdown button for Journal filter, to make it clear that company name is not clickable These PRs fixes: - Unaccessible parent company's fields (now accessible) in - Sales/Purchase Orders/Quotation form: product variant, product (product_template), and tax - Account Move (invoice/bill/etc) line, when filling product - Access Error as user with only access to branch when: - opening Accounting reports (BS / PL) - opening PoS dashboard - trying to add product when creating new invoice - Improves Journal access rules. Instead of making all parent's journal public, base the user access on: (explicitly granted access from user allowed companies) or (all self&parent's journal AND journal type is not Bank/Cash) - Improves styling on report's Journal dropdown button's style (in enterprise PR) community-PR: https://github.com/odoo/odoo/pull/140078 enterprise-PR: https://github.com/odoo/enterprise/pull/49820 [task-id: 3551305](https://www.odoo.com/web#id=3551305&cids=1&menu_id=4720&action=333&active_id=967&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#55345 Forward-Port-Of: odoo/enterprise#49820
Current behavior: When you do a global invoice with line that have a price unit of 0, then refund the order you get an error on the CFDI. Steps to reproduce: - Install l10n_mx_edi_pos - Create a product with a price unit of 0 - Create a POS order with this product and another one - Validate the order - Go in backend and create a global invoice form the orders view - Refund the order - Go on the order and check the CFDI, it will be in error opw-3630583 Forward-Port-Of: odoo/enterpr
Original PR description
Current behavior: When you do a global invoice with line that have a price unit of 0, then refund the order you get an error on the CFDI. Steps to reproduce: - Install l10n_mx_edi_pos - Create a product with a price unit of 0 - Create a POS order with this product and another one - Validate the order - Go in backend and create a global invoice form the orders view - Refund the order - Go on the order and check the CFDI, it will be in error opw-3630583 Forward-Port-Of: odoo/enterprise#54921
This reverts the commit: https://github.com/odoo/enterprise/commit/b67b9e432f2de936ab6c2c68e23cb8f0b2aca76d Purpose ======= The payroll payment file is rejected on Isabel platfrom due to a bank account that was outside of the European Union, because the BIC wasn't mentioned. The commit was originally made to avoid posting 'NOTPROVIDED' as BIC, which was rejected by some banks. Now, we skip if there is not BIC on the bank https://github.com/odoo/enterprise/blob/17.0/account_sepa/mod
Original PR description
This reverts the commit: https://github.com/odoo/enterprise/commit/b67b9e432f2de936ab6c2c68e23cb8f0b2aca76d Purpose ======= The payroll payment file is rejected on Isabel platfrom due to a bank account that was outside of the European Union, because the BIC wasn't mentioned. The commit was originally made to avoid posting 'NOTPROVIDED' as BIC, which was rejected by some banks. Now, we skip if there is not BIC on the bank https://github.com/odoo/enterprise/blob/17.0/account_sepa/models/account_journal.py#L336 It wasn't like that in the original version of that function; only got fixed recently: https://github.com/odoo/enterprise/commit/3c06ce695b80dec0c336ac2133594d9eaa07e3ba So, we can remove the context key in 16.4+. TaskID: 3710072 Forward-Port-Of: odoo/enterprise#55440
Forward-Port-Of: odoo/enterprise#55340
Original PR description
Forward-Port-Of: odoo/enterprise#55340
Before this PR: ----------------------------- - It is possible to add a step to an operation in the tablet view if it already has any steps, but it is not possible if it doesn't have any steps initially. After this PR: ----------------------------- - The issue has been resolved by adding a pop-up button that appears upon clicking for worksheet improvement. - If there are no steps initially assigned, the button will prompt the addition of steps. - If steps are already assigned, i
Original PR description
Before this PR: ----------------------------- - It is possible to add a step to an operation in the tablet view if it already has any steps, but it is not possible if it doesn't have any steps initially. After this PR: ----------------------------- - The issue has been resolved by adding a pop-up button that appears upon clicking for worksheet improvement. - If there are no steps initially assigned, the button will prompt the addition of steps. - If steps are already assigned, it will function as before. task_id : 3551582 Forward-Port-Of: odoo/enterprise#53742 Forward-Port-Of: odoo/enterprise#49703
…late Forward-Port-Of: odoo/enterprise#55424
Original PR description
…late Forward-Port-Of: odoo/enterprise#55424