Friday, November 24, 2023
86 changes · master
New functionality added to Odoo
Odoo now supports Xendit as a payment provider, expanding the payment options merchants can offer customers. This addition includes setup, transaction handling, refunds, and related tests so businesses can accept payments through Xendit more reliably.
Original PR description
Adding new payment provider: Xendit into list of payment providers 2946329 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
This update refreshes Odoo's spreadsheet engine with improvements to find and replace, menu display, formula support, and clipboard behavior. Users should see smoother spreadsheet interactions, faster calculations in some cases, and fewer errors when copying, pasting, or deleting spreadsheet content.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/255821ba6 [REL] 17.1.0-alpha.4 https://github.com/odoo/o-spreadsheet/commit/7b499ad42 [REF] F&R: remove `selected`…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/255821ba6 [REL] 17.1.0-alpha.4 https://github.com/odoo/o-spreadsheet/commit/7b499ad42 [REF] F&R: remove `selected` from selected match https://github.com/odoo/o-spreadsheet/commit/1249dcd30 [IMP] FindAndReplace: Add sheet granularity in Find & Replace Task: 3250881 https://github.com/odoo/o-spreadsheet/commit/f9d9e3dea [IMP] Find&ReplaceComponent: remove component state Task: 3250881 https://github.com/odoo/o-spreadsheet/commit/28dcd8aaf [IMP] spreadsheet: focus on side panel Task: 3250881 https://github.com/odoo/o-spreadsheet/commit/4c3505970 [FIX] Spreadsheet: remove `_focusGrid` constraint https://github.com/odoo/o-spreadsheet/commit/14c2e53d9 [FIX] sheet: remove zombie code https://github.com/odoo/o-spreadsheet/commit/bc8e2d215 [FIX] sheet: remove rows faster https://github.com/odoo/o-spreadsheet/commit/9c14cbd1b [FIX] tokenizer: faster current char lookup https://github.com/odoo/o-spreadsheet/commit/620f4343c [FIX] tokenize: replace special chars faster https://github.com/odoo/o-spreadsheet/commit/b73eb62f9 [REF] cell: remove useless getter Task: 3586686 https://github.com/odoo/o-spreadsheet/commit/1db9c0729 [FIX] icons: use correct comment syntax in xml files https://github.com/odoo/o-spreadsheet/commit/3a3d52ac6 [IMP] menu: allow to add a secondary icon to a menu Task: 3487684 https://github.com/odoo/o-spreadsheet/commit/972c38542 [IMP] headers overlay: simplify CSS & use bootstrap Task: 3487684 https://github.com/odoo/o-spreadsheet/commit/d0972d162 [IMP] function: add CELL function Task: 3484040 https://github.com/odoo/o-spreadsheet/commit/ab3f28949 [IMP] evaluation: add __originSheetId to EvalContext Task: 3484040 https://github.com/odoo/o-spreadsheet/commit/d6f4877b1 [IMP] functions: avoid calling function.compute by hand Task: 3484040 https://github.com/odoo/o-spreadsheet/commit/02149b9d6 [FIX] clipboard: fix array formula copy https://github.com/odoo/o-spreadsheet/commit/64c28e5df [FIX] evaluation: faster range matrix https://github.com/odoo/o-spreadsheet/commit/668ddc5f3 [FIX] clipboard: traceback on paste from copy after deleting that sheet https://github.com/odoo/o-spreadsheet/commit/256d82b2c [FIX] evaluation: cache range references values Task: 3588401 https://github.com/odoo/o-spreadsheet/commit/e38f9a2ce [REF] evaluation: group compilation parameters https://github.com/odoo/o-spreadsheet/commit/3abaf9c4e [FIX] lookup: cache string normalization Task: 3588401 https://github.com/odoo/o-spreadsheet/commit/e6bd8f433 [FIX] cells,borders: cancel useless commands Task: 3603259 https://github.com/odoo/o-spreadsheet/commit/37770485f [FIX] cells: faster getter to get cell Task: 3588401 https://github.com/odoo/o-spreadsheet/commit/1193498eb [FIX] model: don't flatten command result
Resolved issues and error corrections
The planning Gantt view now shows the correct percentage in each progress bar instead of displaying 0% for every row. This helps users quickly understand progress and workload status without misreading planning data.
Original PR description
ISSUE:
- percentage in gantt progress bar in planning is putting 0% for
every row.
REASON:
- ratio is divided by 100 before being rounded, leading to 0.
SOLUTION:
- round before dividing by 0.Features or functions removed from Odoo
This change removes unused partner record elements that were only used by tests, reducing unnecessary stored and preloaded data. Test coverage is reorganized into dedicated test modules so behavior remains covered while the core partner model stays leaner.
Original PR description
### [REM] base: remove unused method of `res.partner` `open_parent`/`main_partner` are unused. Remove them. ### [REM] base: remove `date` field of `res.partner` This field is only used in tests, but it still takes up space (because of the index) and is prefetched for no reason. Remove it, but keep it in the `test_read_group` module test, and move some tests there (`test_read_group` and the `test_read_progress_bar.py` file). `test_groupby_date` and `test_read_group_1` have been removed because the `test_read_group` module already tests these cases (coverage remains the same). https://github.com/odoo/enterprise/pull/51119 https://github.com/odoo/upgrade/pull/5374
Code cleanup and technical improvements
The BACS payment module has been renamed to make clear it is specific to the United Kingdom. This aligns it with Odoo localization naming practices and avoids unnecessary automatic installation in CI staging environments.
Original PR description
This commit renames the 'account_bacs' module to 'l10n_uk_bacs' to reflect its UK-specific implementation of the BACS payment system. The renaming aligns with Odoo's convention for localization modules, ensuring it is not automatically installed on runbot environments. This change prevents unnecessary installations on CI staging environments and improves clarity regarding the module's purpose and scope. task-3580608 Community-PR: https://github.com/odoo/odoo/pull/141316 Enterprise-PR: https://github.com/odoo/enterprise/pull/50258 Upgrade-PR: https://github.com/odoo/upgrade/pull/5346 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Forward-Port-Of: odoo/odoo#142734
Original PR description
Forward-Port-Of: odoo/odoo#142734
This update removes outdated translation markers and unused formatting flags from Odoo translation files and related code. It keeps translation resources cleaner and easier to maintain without changing business features or user workflows.
Original PR description
Clean up of WEB_TRANSLATION_COMMENT and python-format from the po(t) files. The `python-format` flag specifies the "flavor" of format specifier to use, but our code only uses this format and doesn't check the flag at all, making it useless. The variable WEB_TRANSLATION_COMMENT contains the string "openerp-web" which was used in po/pot files to flag translations to be used on the client side, but has been replaced by JAVASCRIPT_TRANSLATION_COMMENT since odoo#105589. This pull request: - Removes WEB_TRANSLATION_COMMENT from the code - Re-exports .pot files that still contain openerp-web - `msgmerge`s po files that still contain openerp-web - Removes the obsolete entries created by msgmerge - Removes every occurrence of python-format Task-3599456. Enterprise: https://github.com/odoo/enterprise/pull/51147 Design Themes: https://github.com/odoo/design-themes/pull/749
The report configuration button now opens the most relevant setup page depending on whether the user is viewing a report section or a standalone report. Section setup pages also provide direct access to configure individual reports, making report administration easier and faster.
Original PR description
Prior to this commit, the button on the report led to the report form view. However, after implementing a section, we decided that instead of redirecting to the report form, it should now redirect to the section form view. Currently, clicking the 'config' button within a section will direct the user to the section's form view. On the other hand, for a simple report, clicking the button will redirect the user to the report's form view. Additionally, on the section config page, we've included a button in the tree view that lists different reports within the section. This button allows direct access to the config page of a specific report. task: 3595246
Clean up of WEB_TRANSLATION_COMMENT and python-format from the po(t) files. The python-format flag specifies the "flavor" of format specifier to use, but our code only uses this format and doesn't check the flag at all, making it useless. The variable WEB_TRANSLATION_COMMENT contains the string "openerp-web" which was used in po/pot files to flag translations to be used on the client side, but has been replaced by JAVASCRIPT_TRANSLATION_COMMENT since odoo/odoo#105589. This pull request:
Original PR description
Clean up of WEB_TRANSLATION_COMMENT and python-format from the po(t) files. The python-format flag specifies the "flavor" of format specifier to use, but our code only uses this format and doesn't check the flag at all, making it useless. The variable WEB_TRANSLATION_COMMENT contains the string "openerp-web" which was used in po/pot files to flag translations to be used on the client side, but has been replaced by JAVASCRIPT_TRANSLATION_COMMENT since odoo/odoo#105589. This pull request: - Removes WEB_TRANSLATION_COMMENT from the code - Re-exports .pot files that still contain openerp-web - `msgmerge`s po files that still contain openerp-web - Removes the obsolete entries created by msgmerge - Removes every occurrence of python-format Task-3599456. Community: https://github.com/odoo/odoo/pull/142878 Design Themes: https://github.com/odoo/design-themes/pull/749
The Planning app now uses the current standard translation method instead of an outdated one. This keeps the code aligned with the wider platform cleanup and helps avoid future maintenance issues without changing user-facing behavior.
Original PR description
https://github.com/odoo/odoo/pull/141399 has removed translation function _lt from the whole codebase. It has however been reintroduced in the planning codebase by odoo/enterprise#50748. This commit simply modifies _lt by _t in the diff of this previous pr.
This change updates Web Studio tests after an unused partner method was removed elsewhere. It also makes test cleanup more reliable so one approval test does not affect another, reducing false failures in development checks.
Original PR description
`open_parent`/`main_partner` has been removed in the community PR. Use anothers methods to test web_studio. The `_unregister_hook` is not rollback safe, then I need to add it as a cleanup in the `TestStudioApproval`/`TestStudioApprovalPost` setUp. In fact, `test_10_exclusive_collision` patched `open_commercial_entity` but the `_unregister_hook` was called after the TransactionCase rollback, it means that `_unregister_hook` wasn't able to unpatch `open_commercial_entity` (the search called didn't return anything). Then the `test_approval_method_patch` (of the next test Class) crashed because of this (check that `open_commercial_entity` is not patched). https://github.com/odoo/odoo/pull/112769 https://github.com/odoo/upgrade/pull/5374
Field service tasks now keep their customer information when no sales order is linked. The delivery address is only copied when a related sales order exists, preventing accidental loss of customer details.
Original PR description
… linked Before this commit: - When no SO linked to the fsm task, customer is set to False. After this commit: - Make sure an SO is linked to the fsm task before propagating the delivery address. X-original-commit: a774806
The Point of Sale apps now use the standard Odoo dialog system instead of a separate popup system. This reduces duplicated code and helps provide a more consistent experience across checkout, payments, discounts, loyalty, restaurant, and localization flows.
Original PR description
pos*: l10n_es_pos, l10n_fr_pos_cert, point_of_sale, pos_adyen, pos_discount, pos_hr, pos_loyalty, pos_mercury, pos_online_payment, pos_paytm, pos_restaurant, pos_sale, pos_six, pos_stripe In this commit we replace the `popup_service` from `pos` with the `dialog_service` from `web`. There is no need to have a separate service for the same functionality. This leads to less code duplication and a more consistent user experience. Task: 3524758 https://github.com/odoo/enterprise/pull/48180 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update removes older styling markers from links and highlighted actions across several Odoo Enterprise screens. It keeps the interface behavior the same while simplifying how buttons and links are displayed and maintained.
Original PR description
See https://github.com/odoo/odoo/pull/23115 Note: we might want to do the opposite or introduce a new 'o_primary' class for views
Several Point of Sale add-ons now use the shared Odoo dialog system instead of a separate POS-specific popup system. This reduces duplicated code and helps deliver a more consistent experience across POS workflows such as invoicing, payments, IoT devices, employee login, and localization features.
Original PR description
[REF] pos*: use dialog service pos*: l10n_cl_edi_pos, l10n_de_pos_cert, l10n_mx_edi_pos, pos_hr_mobile, pos_iot, pos_l10n_se, pos_preparation_display, pos_sale_stock_renting, pos_settle_due In this commit we replace the `popup_service` from `pos` with the `dialog_service` from `web`. There is no need to have a separate service for the same functionality. This leads to less code duplication and a more consistent user experience. Task: 3524758 https://github.com/odoo/odoo/pull/136845
The BACS payments module has been renamed to show it is specifically for UK payment processing. This improves clarity for users and prevents the module from being installed unnecessarily in automated staging environments.
Original PR description
This commit renames the 'account_bacs' module to 'l10n_uk_bacs' to reflect its UK-specific implementation of the BACS payment system. The renaming aligns with Odoo's convention for localization modules, ensuring it is not automatically installed on runbot environments. This change prevents unnecessary installations on CI staging environments and improves clarity regarding the module's purpose and scope. Community-PR: https://github.com/odoo/odoo/pull/141316 Enterprise-PR: https://github.com/odoo/enterprise/pull/50258 Upgrade-PR: https://github.com/odoo/upgrade/pull/5346 task-3580608
Previously, 'amount_currency' was calculated using data from the purchase line. However, numerous variables could interfere with the accurate computation of 'purchase_price_unit' (e.g., taxes, taxes without account, standard costing method, kit product, and potentially more). This commit revises the approach by utilizing the pre-calculated value and converting it to the desired currency. This maintains coherence between the balance and 'amount_currency' without necessitating the recreation of
Original PR description
Previously, 'amount_currency' was calculated using data from the purchase line. However, numerous variables could interfere with the accurate computation of 'purchase_price_unit' (e.g., taxes, taxes…
Previously, 'amount_currency' was calculated using data from the purchase line. However, numerous variables could interfere with the accurate computation of 'purchase_price_unit' (e.g., taxes, taxes without account, standard costing method, kit product, and potentially more). This commit revises the approach by utilizing the pre-calculated value and converting it to the desired currency. This maintains coherence between the balance and 'amount_currency' without necessitating the recreation of a function like '_get_price_unit()' in 'purchase_stock.' ## Reproduce Errors ## ### Tax Included in price without Account: - Create a currency, CTest, with a conversion factor of 10 (10 CTest = 1 USD). - Define a new tax: ° No accounts in repartition lines ° Rate: 15% ° Included in the price - Create a Purchase Order: ° 1 unit | 100 CTest | Tax applied - Receive the product. -> SVL value is 10 USD, because tax without account increments the stock value. Refer to 'test_valuation_multicurrency_with_tax'. -> Check SVL journal entry: credit / debit is 10, but amount currency is 86.96 CTest instead of 100 CTest. ### Reproduce With Kit ## - Create a currency, CTest, with a conversion factor of 10 (10 CTest = 1 USD). - Create a Kit (storable, fifo), with 5 unit of CPM (storable fifo) in it's BoM - Create a Purchase Order: Kit: 1 unit | 100 CTest - Receive product -> Check SVL journal entry: credit / debit is 10, but amount currency is 500 CTest instead of 100 CTest. Video example: https://watch.screencastify.com/v/kCpY0GHbSCoa933efUyd End result: Purchase value = ¥ 100.00, Account move value = ¥ 600.00 --- OPW-3453703 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143033 Forward-Port-Of: odoo/odoo#141689
* Create a tax of type `group` and with a `tax_scope` set * Add a child tax without `tax_scope` set This will raise an error because the `tax_scope` is not exactly the same since it doesn't have a value. We should be able to share sub taxes without a scope, exactly like for `type_tax_use`. This is also what the message suggests. Forward-Port-Of: odoo/odoo#143089 Forward-Port-Of: odoo/odoo#142951
Original PR description
* Create a tax of type `group` and with a `tax_scope` set * Add a child tax without `tax_scope` set This will raise an error because the `tax_scope` is not exactly the same since it doesn't have a value. We should be able to share sub taxes without a scope, exactly like for `type_tax_use`. This is also what the message suggests. Forward-Port-Of: odoo/odoo#143089 Forward-Port-Of: odoo/odoo#142951
Add a condition that check if the DB is connected to the iot box before the start of the websocket client, before, if no DB was connected the Thread was lauched for nothing and an exeption was thrown --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143132
Original PR description
Add a condition that check if the DB is connected to the iot box before the start of the websocket client, before, if no DB was connected the Thread was lauched for nothing and an exeption was thrown --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143132
In commit b47be9f254b2f7327ea3e0e92c6b1b97bff016d0 we changed the background of the popover selector making the title unreadable in white mode. This commit applies the text-dark color to make sure the title is readable. It also removes the primary background on hover behind the btns to use a color change instead. We will later on improve this component with the btn-link + contextual class to manage the hover effect in another task. When a field is selected the active class is added on th
Original PR description
In commit b47be9f254b2f7327ea3e0e92c6b1b97bff016d0 we changed the background of the popover selector making the title unreadable in white mode. This commit applies the text-dark color to make sure the title is readable. It also removes the primary background on hover behind the btns to use a color change instead. We will later on improve this component with the btn-link + contextual class to manage the hover effect in another task. When a field is selected the active class is added on the parent `<li>` rather than the `<button>` This commit applies it on the button to display an active state on the selected element. task-3577065 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140654
Copy-paste mistake in the template after refactoring. IDCodice for the Sender has to be filled with the CodiceFiscale and not with the VAT number.  Task link: https://www.odoo.com/web#id=3597050&model=project.task opw-3597050 Forward-Port-Of: odoo/odoo#143122
Original PR description
Copy-paste mistake in the template after refactoring. IDCodice for the Sender has to be filled with the CodiceFiscale and not with the VAT number.  Task link: https://www.odoo.com/web#id=3597050&model=project.task opw-3597050 Forward-Port-Of: odoo/odoo#143122
When the user creates a new article in Knowledge using a template, the system shows a dialog indicating that there is a conflict between the client and the server. This commit will ensure that the conflict dialog won't show up when the document does not have any versioning yet. Steps to reproduce the issue: 1. Go on Knowledge 2. Open the editor 3. Click on the "Browse Template" button 4. Choose a template 5. Click on the "Load Template" button Justification --- When the editor i
Original PR description
When the user creates a new article in Knowledge using a template, the system shows a dialog indicating that there is a conflict between the client and the server. This commit will ensure that the…
When the user creates a new article in Knowledge using a template, the system shows a dialog indicating that there is a conflict between the client and the server. This commit will ensure that the conflict dialog won't show up when the document does not have any versioning yet. Steps to reproduce the issue: 1. Go on Knowledge 2. Open the editor 3. Click on the "Browse Template" button 4. Choose a template 5. Click on the "Load Template" button Justification --- When the editor is started, the system generates a new snapshot with ids generated randomly (see: constructor of `OdooEditor`, `historyReset`, `_historyGetSnapshotStep`). When checking if the document is "stale" (i.e: out of sync), the system verifies the existence of a history step with the id specified in the `data-last-history-steps` attribute of the first node of the document (see: `_isLastDocumentStale`). If such a history step does not exist, the client document is considered "stale" and will be discarded. The `data-last-history-steps` attribute is set by the last writer when saving the document. When creating an article from a template, the server generates a new record and copies the template's body in the article's body. The system does not set any `data-last-history-steps` in the document. As a result, the document will be considered "stale" when opening the article and a conflict dialog will warn the user that the current document will be discarded. This commit will update the `_isLastDocumentStale` function to ensure that a document that has not been versioned yet won't be considered as "stale". The `data-last-history-steps` attribute will then be set when the user opens the article and save it. task-3587990 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#141821
Description of the issue/feature this PR addresses: Current behavior before PR: condition: install sale_loyalty only - right after archived e-wallet program, system will show python pop-up error tuple index out of range Video before https://github.com/odoo/odoo/assets/106657372/f1d9267d-4ba0-4d1b-abff-0e730e1155d9 Desired behavior after PR is merged: - able to open archived e-wallet program Video after: https://github.com/odoo/odoo/assets/106657372/fc146400-4474-4580-b
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: condition: install sale_loyalty only - right after archived e-wallet program, system will show python pop-up error tuple index out of range Video before https://github.com/odoo/odoo/assets/106657372/f1d9267d-4ba0-4d1b-abff-0e730e1155d9 Desired behavior after PR is merged: - able to open archived e-wallet program Video after: https://github.com/odoo/odoo/assets/106657372/fc146400-4474-4580-b7de-1722f5c20341 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143092
Step to reproduce the bug: -Go to the employee app -Go to an employee form view -Click on the archive button -Put a description -Click on the archive button -> Odoo error Bug explaination: The tracking is not implemented for the html field, so when we archive an employee the tracking cannot work. Expected behavior: The employee is archived and the tracking is done without errors. Bug resolution: The tracking has been removed from the html field. The tracking is now replaced by
Original PR description
Step to reproduce the bug: -Go to the employee app -Go to an employee form view -Click on the archive button -Put a description -Click on the archive button -> Odoo error Bug explaination: The tracking is not implemented for the html field, so when we archive an employee the tracking cannot work. Expected behavior: The employee is archived and the tracking is done without errors. Bug resolution: The tracking has been removed from the html field. The tracking is now replaced by a message in the chatter in the write method. Behavior after this commit: The employee is archived and the tracking is done without errors with a mesage in the chatter if a value is entered for the departure_description field has a value. task-3576659 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140527
Added a contextual action 'Unreserve' on batch pickings. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142556
Original PR description
Added a contextual action 'Unreserve' on batch pickings. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142556
Add taxes in l10n_es: - Retenciones IRPF 19% Consejeros y administradores - Retenciones IRPF 35% Consejeros y administradores **Current behavior before PR:** Update taxes list with 2 new taxes. This is the open issue : https://github.com/OCA/l10n-spain/issues/3174 MT-2835 Please reviews @moduon @rafaelbn @Shide :) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142927 Forward-Port-Of: odoo/odoo#130
Original PR description
Add taxes in l10n_es: - Retenciones IRPF 19% Consejeros y administradores - Retenciones IRPF 35% Consejeros y administradores **Current behavior before PR:** Update taxes list with 2 new taxes. This is the open issue : https://github.com/OCA/l10n-spain/issues/3174 MT-2835 Please reviews @moduon @rafaelbn @Shide :) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142927 Forward-Port-Of: odoo/odoo#130728
Description of the bug: task field is displayed in leave type form when company field is False Steps to reproduce: - install time off app - open a leave type form Source: When installling time off app, _compute_{timesheet_project_id, timesheet_task_id, timesheet_generate} work perfectly, when company = False => project/task = False and timesheet_generate = True Then, the post_init is executed. it will set the project and task according to env.company when company is False. so now pro
Original PR description
Description of the bug:
task field is displayed in leave type form when company field is False
Steps to reproduce:
- install time off app
- open a leave type form
Source:
When installling time off app,
_compute_{timesheet_project_id, timesheet_task_id, timesheet_generate} work perfectly, when company = False => project/task = False and timesheet_generate = True
Then, the post_init is executed. it will set the project and task according to env.company when company is False. so now project and task can have values even that the leave company is False. Then in the xml, we hide project if company is null and task if project is null, that's why project is not displayed but not task
Solution:
- In post_init method, we only get leaves types without a company set and stop using env.company to be coherent with the compute methods.
X-original-commit: e647374
Forward-Port-Of: odoo/odoo#143016This commit fixes an issue where if one sets no_create_edit and no_quick_create to true on a m2o while no_create is unset, no dropdown is shown to tell the user that no record was found. task-3599696 Forward-Port-Of: odoo/odoo#142880
Original PR description
This commit fixes an issue where if one sets no_create_edit and no_quick_create to true on a m2o while no_create is unset, no dropdown is shown to tell the user that no record was found. task-3599696 Forward-Port-Of: odoo/odoo#142880
In Fattura Semplificata, copy-paste mistake in the template after refactoring. IDCodice for the Sender has to be filled with the CodiceFiscale and not with the VAT number. (We only use VAT number if we don't find the CodiceFiscale.) related PR: odoo/odoo#143122 Task link: https://www.odoo.com/web#id=3597050&model=project.task opw-3597050 Forward-Port-Of: odoo/odoo#143175
Original PR description
In Fattura Semplificata, copy-paste mistake in the template after refactoring. IDCodice for the Sender has to be filled with the CodiceFiscale and not with the VAT number. (We only use VAT number if we don't find the CodiceFiscale.) related PR: odoo/odoo#143122 Task link: https://www.odoo.com/web#id=3597050&model=project.task opw-3597050 Forward-Port-Of: odoo/odoo#143175
Current behavior: If a product had a sales description, it was displayed in the order when settling it from a sale order. But only the name should be displayed in the PoS. Steps to reproduce: - Create a product with a sales description - Create a sale order with this product - Go to the PoS and settle the order from the sale order - The name of the product is name + sales description instead of just the name. opw-3547814 --- I confirm I have signed the CLA and read the PR guidelines
Original PR description
Current behavior: If a product had a sales description, it was displayed in the order when settling it from a sale order. But only the name should be displayed in the PoS. Steps to reproduce: - Create a product with a sales description - Create a sale order with this product - Go to the PoS and settle the order from the sale order - The name of the product is name + sales description instead of just the name. opw-3547814 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142765 Forward-Port-Of: odoo/odoo#141306
Versions: --------- - saas-16.3+ Steps to Reproduce: ------------------- 1. go to Sales / Products / Discount & Loyalty; 2. go to 10% Discount Coupons; 3. click on Generate Coupons; 4. generate for Selected Customers (yourself); 5. repeat to get a second coupon; 6. go to webshop and try to buy something; 7. at checkout, try to apply the first coupon. Issue: ------ Clicking the coupon's "Use" button doesn't seem to do anything. Cause: ------ The `claim_reward` method iterat
Original PR description
Versions: --------- - saas-16.3+ Steps to Reproduce: ------------------- 1. go to Sales / Products / Discount & Loyalty; 2. go to 10% Discount Coupons; 3. click on Generate Coupons; 4. generate for Selected Customers (yourself); 5. repeat to get a second coupon; 6. go to webshop and try to buy something; 7. at checkout, try to apply the first coupon. Issue: ------ Clicking the coupon's "Use" button doesn't seem to do anything. Cause: ------ The `claim_reward` method iterates over all potential coupons, always selecting the last, most recent one, only to reject it if the code doesn't match the coupon selected by the user. Solution: --------- Return as soon as a matching coupon is found. opw-3562615 Forward-Port-Of: odoo/odoo#142054
When removing an item in x2many fields from the res.config.settings form, the client interprets it as a set of link commands for the remaining items, as a result, the items that should have been removed are not removed. This generalizes the fix made for the splash screen images in pos_self_order by which this issue was first observed. The test is also moved to the point_of_sale module as it is not specific to pos_self_order. Also note that the test is manually doing what is observed from t
Original PR description
When removing an item in x2many fields from the res.config.settings form, the client interprets it as a set of link commands for the remaining items, as a result, the items that should have been removed are not removed. This generalizes the fix made for the splash screen images in pos_self_order by which this issue was first observed. The test is also moved to the point_of_sale module as it is not specific to pos_self_order. Also note that the test is manually doing what is observed from the client. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143165
When there was no product in 'Gift Card Products' every product was generating product equal to it's value. Now when there is no product specified, no product will generate gift card. opw-3415384 Forward-Port-Of: odoo/odoo#142503 Forward-Port-Of: odoo/odoo#140112
Original PR description
When there was no product in 'Gift Card Products' every product was generating product equal to it's value. Now when there is no product specified, no product will generate gift card. opw-3415384 Forward-Port-Of: odoo/odoo#142503 Forward-Port-Of: odoo/odoo#140112
Various fixes over the subcontracting flow, mainly due to the mixup between setting a `quantity_done` directly on the subcontracted move then validating the reception picking and using the `record components` menu. More details in the commit messages. Task-3383596 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142513 Forward-Port-Of: odoo/odoo#129009
Original PR description
Various fixes over the subcontracting flow, mainly due to the mixup between setting a `quantity_done` directly on the subcontracted move then validating the reception picking and using the `record components` menu. More details in the commit messages. Task-3383596 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142513 Forward-Port-Of: odoo/odoo#129009
This commit fixes a bug in page creation by the configurator. This only happened with pages containing only one snippet, like the "Pricing" page or the "Privacy Policy" page (default themes). Because of this bug, the snippet that should be placed in the page had its parent element `<section>` replaced with a `<div>`, so the section options were no longer available in edit mode, such as background options, delete/duplicate/save the snippet, etc. Steps to reproduce the bug: - Create a new we
Original PR description
This commit fixes a bug in page creation by the configurator. This only happened with pages containing only one snippet, like the "Pricing" page or the "Privacy Policy" page (default themes). Because of this bug, the snippet that should be placed in the page had its parent element `<section>` replaced with a `<div>`, so the section options were no longer available in edit mode, such as background options, delete/duplicate/save the snippet, etc. Steps to reproduce the bug: - Create a new website using the configurator. - Check the "Pricing" box in the list of features to create the "Pricing" page. - Once the website creation is complete, go to the "/pricing" page. - In edit mode, click on the "comparisons" snippet. - Bug: Some options are missing for the snippet, for example, it's not possible to delete the snippet or change its background. task-3570903 Forward-Port-Of: odoo/odoo#143049 Forward-Port-Of: odoo/odoo#139867
The arrow in the inputs of the side panel was stuck to the side of the input, without any padding. Task: [3376873](https://www.odoo.com/web#id=3376873&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) 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#143191 Forwa
Original PR description
The arrow in the inputs of the side panel was stuck to the side of the input, without any padding. Task: [3376873](https://www.odoo.com/web#id=3376873&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) 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#143191 Forward-Port-Of: odoo/odoo#139808
Correct the wording of "Visa Expire Date" to "Visa Expiration Date" for the visa_expire field to be more grammatically correct. task-3595978 Forward-Port-Of: odoo/odoo#143222 Forward-Port-Of: odoo/odoo#142161
Original PR description
Correct the wording of "Visa Expire Date" to "Visa Expiration Date" for the visa_expire field to be more grammatically correct. task-3595978 Forward-Port-Of: odoo/odoo#143222 Forward-Port-Of: odoo/odoo#142161
Description of the issue/feature this PR addresses: On the return slip, the 2 barcodes are too close to each other. So, it's too easy to scan the wrong barcode. We should add a bit more space between the 2 barcodes (For the demo, I had to take another document for managing the scanning) 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#142916
Original PR description
Description of the issue/feature this PR addresses: On the return slip, the 2 barcodes are too close to each other. So, it's too easy to scan the wrong barcode. We should add a bit more space between the 2 barcodes (For the demo, I had to take another document for managing the scanning) 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#142916
I. In URL regex there were certain issues wherein it failed to validate against domain list under certain circumstances involving URLs with two dots. for eg. this.document.anything. Now we ensure that if a URL regex does not ends with the domains in tldWhiteList, it must start with `http://`, `https://`, `www.` or if it does not start with `http://`, `https://`, `www.`, it must end with a domain from the tldWhiteList. II. Commit [1](https://github.com/odoo/odoo/commit/a42a19e484d63cebeae
Original PR description
I. In URL regex there were certain issues wherein it failed to validate against domain list under certain circumstances involving URLs with two dots. for eg. this.document.anything. Now we ensure…
I. In URL regex there were certain issues wherein it failed to validate against domain list under certain circumstances involving URLs with two dots. for eg. this.document.anything. Now we ensure that if a URL regex does not ends with the domains in tldWhiteList, it must start with `http://`, `https://`, `www.` or if it does not start with `http://`, `https://`, `www.`, it must end with a domain from the tldWhiteList. II. Commit [1](https://github.com/odoo/odoo/commit/a42a19e484d63cebeaed10b75ac20e507ff85d56) introduces a stronger regex for url containing symbols. It did so by using a negative lookbehind, which was not supported on some version of Safari iOS and edge. Later commit [2](https://github.com/odoo/odoo/commit/ff99e454e2a38ae54aa57cb0df80df139e921ccb) was introduced in attempt to reproduce the same behaviour without using negative lookbehind but missed some cases such as github compare link where the url had multiple symbols. This commit is an attempt to reproduce the same behaviour like [1](https://github.com/odoo/odoo/commit/a42a19e484d63cebeaed10b75ac20e507ff85d56) while improving [2](https://github.com/odoo/odoo/commit/ff99e454e2a38ae54aa57cb0df80df139e921ccb). [1] : a42a19e [2] : ff99e45 task-3468646 Forward-Port-Of: odoo/odoo#143250 Forward-Port-Of: odoo/odoo#135321
[FIX] crm : Individual contact address auto population Steps to reproduce: 1- Install CRM app 2- Go to pipeline and create a new lead 3- Write a name for contact and click on 'Create and edit...' 4- Choose 'individual' as contact type and select the company related to this individual 5- the address will remain empty and will not be auto populated Current behavior before PR: The address is not auto populating when creating a new individual contact through a new lead. This happens
Original PR description
[FIX] crm : Individual contact address auto population Steps to reproduce: 1- Install CRM app 2- Go to pipeline and create a new lead 3- Write a name for contact and click on 'Create and edit...' 4- Choose 'individual' as contact type and select the company related to this individual 5- the address will remain empty and will not be auto populated Current behavior before PR: The address is not auto populating when creating a new individual contact through a new lead. This happens because when you choose the contact type to individual the address type is not chosen by default so it is not populating any of the addresses Desired behavior after PR is merged: The address is now auto populating as I am passing to the form a default value for the address type which is 'Contact' which is the default value when you create a contact from Contacts app opw-3569833 Forward-Port-Of: odoo/odoo#141681
Forward-Port-Of: odoo/odoo#142483
Original PR description
Forward-Port-Of: odoo/odoo#142483
When an Italian e-invoice is generated, it will include DDT sequence of DDT stock moves. If those stock moves have picking type different of 'outgoing' (eg: Dropshipping), the picking type does not have DDT sequence leading to a traceback. Now we only consider DDT stock moves if they have the outgoing picking type. Steps to reproduce: - Create local database - Install accounting, purchase, l10n_it_stock_ddt - Switch to Italian company - Activate dropshipping in settings - Put Fattura
Original PR description
When an Italian e-invoice is generated, it will include DDT sequence of DDT stock moves. If those stock moves have picking type different of 'outgoing' (eg: Dropshipping), the picking type does not have DDT sequence leading to a traceback.
Now we only consider DDT stock moves if they have the outgoing picking type.
Steps to reproduce:
- Create local database
- Install accounting, purchase, l10n_it_stock_ddt
- Switch to Italian company
- Activate dropshipping in settings
- Put Fattura Elettronica mode in "test" in settings ("demo" mode should be fine to)
- Create a a storable dropship product
- Create a sale order with dropship product and confirm it
- Click on purchase smart button and confirm purchase
- Validate to dropship transfer
- Create invoice from SO and confirm it (should get the DDT smart button)
- Click "Process now" on top of invoice => Traceback
opw-3544775
Forward-Port-Of: odoo/odoo#141802Step to reproduce the issue: 1) Install l10n_eg and l10n_eg_edi_eta modules and select the company EG Company 2) Configure all required fields to post an Invoice with an Egyptian company (wrong credentials are ok since the issue can be triggered without really sending the e-invoice) 3) Create an invoice with an invoice line that has a quantity of 12 and a price unit of 12.8 with a 100% discount 4) Post the invoice 5) open the created json document in the 'EDI Documents' tab Result: Th
Original PR description
Step to reproduce the issue: 1) Install l10n_eg and l10n_eg_edi_eta modules and select the company EG Company 2) Configure all required fields to post an Invoice with an Egyptian company (wrong credentials are ok since the issue can be triggered without really sending the e-invoice) 3) Create an invoice with an invoice line that has a quantity of 12 and a price unit of 12.8 with a 100% discount 4) Post the invoice 5) open the created json document in the 'EDI Documents' tab Result: The 'salesTotal' field has a value of 153.60000000000002, causing the E-invoice rejection by the authorities Expected result: 153.6 opw-3569383 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143337
To reproduce ============ having a special character in url like `à` (it's possible) try to print an invoice, a weird character is printed next to currency symbol Problem ======= Apparently the method responsible of converting from string to html analyzes the few first characters to determine the encoding, so having the base url in the beginning with its special character leads to wrong encoding. Solution ======== convert using html parser with unicode encoding opw-3415418 Fo
Original PR description
To reproduce ============ having a special character in url like `à` (it's possible) try to print an invoice, a weird character is printed next to currency symbol Problem ======= Apparently the method responsible of converting from string to html analyzes the few first characters to determine the encoding, so having the base url in the beginning with its special character leads to wrong encoding. Solution ======== convert using html parser with unicode encoding opw-3415418 Forward-Port-Of: odoo/odoo#142287
Before the windows image couldn't run because the module websocket-client was missing, now it's added in the list of module to install on windows --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143205
Original PR description
Before the windows image couldn't run because the module websocket-client was missing, now it's added in the list of module to install on windows --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143205
Currently, discuss push-to-talk only works when the browser has focus because key events are not fired otherwise. This commit adds an extension for chromium-based browsers that allows to register a system-wide push-to-talk shortcut and adapts the rtc service in order to listen to the extension events. Forward-Port-Of: odoo/odoo#140752
Original PR description
Currently, discuss push-to-talk only works when the browser has focus because key events are not fired otherwise. This commit adds an extension for chromium-based browsers that allows to register a system-wide push-to-talk shortcut and adapts the rtc service in order to listen to the extension events. Forward-Port-Of: odoo/odoo#140752
Steps: - Install `website_sale` - Enable demo payment provider - Set a positive delivery fixed price - set a discount with conditional rules `If minimum 1 item(s) bought` and Rewards: `Free shipping` - Go to /shop, add a product and checkout - Error "The cart has been updated, Please refresh the page" Because amount in kwargs in `shop_payment_transaction` was compared to `amount_total`to check the order but `amount_total` doesn't contains delivery cost unlike `am
Original PR description
Steps:
- Install `website_sale`
- Enable demo payment provider
- Set a positive delivery fixed price
- set a discount with conditional rules `If minimum 1 item(s) bought` and Rewards: `Free shipping`
- Go to /shop, add a product and checkout
- Error "The cart has been updated, Please refresh the page"
Because amount in kwargs in `shop_payment_transaction` was compared to `amount_total`to check the order but `amount_total` doesn't contains delivery cost unlike `amount`
Forward-Port-Of: odoo/odoo#143404
Forward-Port-Of: odoo/odoo#143108Currently, a chat window is folded when hidden and the server is notified. This is incorrect and leads to useless rpc calls/undesirable fold state. A chat window is only hidden when space is lacking to display them all. Only a user interaction should be able to fold a chat window. Since folding the chat window when hidden is an implementation detail only used to show the chat window header in the hidden windows dropdown, this PR removes this behavior and adapt the hidden windows menu to
Original PR description
Currently, a chat window is folded when hidden and the server is notified. This is incorrect and leads to useless rpc calls/undesirable fold state. A chat window is only hidden when space is lacking…
Currently, a chat window is folded when hidden and the server is notified. This is incorrect and leads to useless rpc calls/undesirable fold state. A chat window is only hidden when space is lacking to display them all. Only a user interaction should be able to fold a chat window. Since folding the chat window when hidden is an implementation detail only used to show the chat window header in the hidden windows dropdown, this PR removes this behavior and adapt the hidden windows menu to achieve the same result. Steps to reproduce the issue: - Go to Odoo, resize your browser so that it can only fit 2 chat windows. - Open two chat windows, server is notified twice: so far so good. - Open another chat window: server is notified twice: this is not correct, the server should only be notified of the newly opened chat window. - Reload the page: the server is notified once for each window not fitting in the screen, this is incorrect as well. task-3600480 Forward-Port-Of: odoo/odoo#143438 Forward-Port-Of: odoo/odoo#142477
- Open a record with the chatter (a task for instance); - Zoom your browser until the chatter is inline with the task (as it is the case on mobile) - Write a big message. Before this commit, the composer takes all the allowed place on the screen, and we cannot see or scroll-down to the older messages. Now, the behavior is the same as is done in mobile, the composer stays sticky, but it will not take all the allowed place, and leave place to see and scroll-down the older messages. opw-
Original PR description
- Open a record with the chatter (a task for instance); - Zoom your browser until the chatter is inline with the task (as it is the case on mobile) - Write a big message. Before this commit, the composer takes all the allowed place on the screen, and we cannot see or scroll-down to the older messages. Now, the behavior is the same as is done in mobile, the composer stays sticky, but it will not take all the allowed place, and leave place to see and scroll-down the older messages. opw-3593032 Forward-Port-Of: odoo/odoo#143295
Steps to reproduce: - Create a BoM with a single component - Create a MO using that bom and confirm it - Set more consumed components than planned and validate the MO - Open the overview Issue: While the overview correctly displays the used quantity, the real cost column still uses the initial demand to compute its costs instead of the quantity used. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143401
Original PR description
Steps to reproduce: - Create a BoM with a single component - Create a MO using that bom and confirm it - Set more consumed components than planned and validate the MO - Open the overview Issue: While the overview correctly displays the used quantity, the real cost column still uses the initial demand to compute its costs instead of the quantity used. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143401
There's currently no way to move a dashboard from a section to another You have to start again from a blank dashboard in the other group. Task: 3592986 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#142893
Original PR description
There's currently no way to move a dashboard from a section to another You have to start again from a blank dashboard in the other group. Task: 3592986 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#142893
This RPC /mail/thread/data is called on every form view change, even when not saved. It comes from the chatter onWillUpdateProps and calling `load` then `fetchData` We don't want to reload chatter when every time props updates. Do it when the record `onWillLoadRoot` Task: 3569123 https://github.com/odoo/enterprise/pull/50607 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140662
Original PR description
This RPC /mail/thread/data is called on every form view change, even when not saved. It comes from the chatter onWillUpdateProps and calling `load` then `fetchData` We don't want to reload chatter when every time props updates. Do it when the record `onWillLoadRoot` Task: 3569123 https://github.com/odoo/enterprise/pull/50607 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140662
When performing a manual stock revaluation, the value difference is distributed equally among the available stock. This method breaks down however in case of a devaluation where some items in stock are already valued less than the unit cost difference: this results in a negative value. This commit will prevent such devaluations by raising a `UserError` whenever the remaining value of a stock.valuation.layer becomes negative. Additionally, after a revaluation, the `standard_price` field will n
Original PR description
When performing a manual stock revaluation, the value difference is distributed equally among the available stock. This method breaks down however in case of a devaluation where some items in stock are already valued less than the unit cost difference: this results in a negative value. This commit will prevent such devaluations by raising a `UserError` whenever the remaining value of a stock.valuation.layer becomes negative. Additionally, after a revaluation, the `standard_price` field will now also be updated for fifo valued products. opw-3340298 Forward-Port-Of: odoo/odoo#136934 Forward-Port-Of: odoo/odoo#126157
- Since 6fac5cfb8d1cfd2b00c7ff30940aa770412ae571, the opening cash difference is not posted in the suspense account. This commit fixes that. - Removes the error preventing the deletion of cash difference journal entries. task-id: 3460173 Forward-Port-Of: odoo/odoo#134154
Original PR description
- Since 6fac5cfb8d1cfd2b00c7ff30940aa770412ae571, the opening cash difference is not posted in the suspense account. This commit fixes that. - Removes the error preventing the deletion of cash difference journal entries. task-id: 3460173 Forward-Port-Of: odoo/odoo#134154
The language was added at dccc8f39d0 but we need a flag to display in the language switcher. (even if [Flags are not languages](https://www.flagsarenotlanguages.com)) (open to suggestions for a better flag) Forward-Port-Of: odoo/odoo#142499
Original PR description
The language was added at dccc8f39d0 but we need a flag to display in the language switcher. (even if [Flags are not languages](https://www.flagsarenotlanguages.com)) (open to suggestions for a better flag) Forward-Port-Of: odoo/odoo#142499
Description of the issue/feature this PR addresses: It was not possible to obtain suggestions by entering a GST in the Tax ID field when creating a contact. Current behavior before PR: When a GST number is entered in the Tax ID field of the contact creation form, nothing happens. Desired behavior after PR is merged: Suggestions can now be accessed by entering a GST number in the Tax ID field of the contact form. Also, add the option of allowing completion even with an 'insufficient cr
Original PR description
Description of the issue/feature this PR addresses: It was not possible to obtain suggestions by entering a GST in the Tax ID field when creating a contact. Current behavior before PR: When a GST number is entered in the Tax ID field of the contact creation form, nothing happens. Desired behavior after PR is merged: Suggestions can now be accessed by entering a GST number in the Tax ID field of the contact form. Also, add the option of allowing completion even with an 'insufficient credit' error. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143370
**Description of the issue/feature this PR addresses:** Before this commit when you unlink a sale.order.line the field carrier_id of sale.order is set False for each line. This commit prevent also serialisation failure on ecommerce. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143335 Forward-Port-Of: odoo/odoo#141649
Original PR description
**Description of the issue/feature this PR addresses:** Before this commit when you unlink a sale.order.line the field carrier_id of sale.order is set False for each line. This commit prevent also serialisation failure on ecommerce. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143335 Forward-Port-Of: odoo/odoo#141649
The additional lines originating from the product configurator are sometimes not well handled by the framework. With this additional steps in the test, we ensure the line remains after selecting it without editing anything, a case that was broken several times already. Forward-Port-Of: odoo/odoo#143484 Forward-Port-Of: odoo/odoo#143374
Original PR description
The additional lines originating from the product configurator are sometimes not well handled by the framework. With this additional steps in the test, we ensure the line remains after selecting it without editing anything, a case that was broken several times already. Forward-Port-Of: odoo/odoo#143484 Forward-Port-Of: odoo/odoo#143374
All the stock widgets are exported except for StockReschedulingPopover. Export it so that it can be used elsewhere. Additionally, fix the name of the class to correct a typo. Forward-Port-Of: odoo/odoo#135971
Original PR description
All the stock widgets are exported except for StockReschedulingPopover. Export it so that it can be used elsewhere. Additionally, fix the name of the class to correct a typo. Forward-Port-Of: odoo/odoo#135971
During upgrade, it try to create picking type if not exist like pos type and everytime will create new sequence too for that picking type. during the creation of picking type there is python constraints that raised if same sequence name with same company exist. so to avoid that will check before creating new sequence if already same company sequence exist then update the sequence name with id. Description of the issue/feature this PR addresses: Current behavior before PR: Desired beha
Original PR description
During upgrade, it try to create picking type if not exist like pos type and everytime will create new sequence too for that picking type. during the creation of picking type there is python constraints that raised if same sequence name with same company exist. so to avoid that will check before creating new sequence if already same company sequence exist then update the sequence name with id. 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#139277
The aim of this commit is handling the invoice payment terms in the oioubl xml file. task-id: 3422407 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142501
Original PR description
The aim of this commit is handling the invoice payment terms in the oioubl xml file. task-id: 3422407 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142501
Since odoo/odoo@b3a2fb51bc48b83, it is not possible to use partial points rewards. However this commit only fixes the behavior for loyalty cards, where it should be applied to many other program types. Forward-Port-Of: odoo/odoo#143334
Original PR description
Since odoo/odoo@b3a2fb51bc48b83, it is not possible to use partial points rewards. However this commit only fixes the behavior for loyalty cards, where it should be applied to many other program types. Forward-Port-Of: odoo/odoo#143334
The following situation happened with module `industry_fsm`, when trying to delete a cancelled sales order corresponding to a task. When doing so, the server crashes with error "Could not find all values of X to flush them", which means that a dirty field (pending update) has lost its value from cache. The issue is related to recursive computed fields. Before deleting a record, method `unlink()` invokes `modified()`, which determines all the fields that depend on the record to be deleted,
Original PR description
The following situation happened with module `industry_fsm`, when trying to delete a cancelled sales order corresponding to a task. When doing so, the server crashes with error "Could not find all…
The following situation happened with module `industry_fsm`, when trying to delete a cancelled sales order corresponding to a task. When doing so, the server crashes with error "Could not find all values of X to flush them", which means that a dirty field (pending update) has lost its value from cache. The issue is related to recursive computed fields. Before deleting a record, method `unlink()` invokes `modified()`, which determines all the fields that depend on the record to be deleted, and marks them to recompute. Those fields should be recomputed after the record is deleted, and not before. We found out that the recursive call to `modified()` made for recursive fields can force the recomputation of the recursive field itself before the record is deleted, which causes `unlink()` to crash. The fix consists in marking the fields for recomputation at the very end of method `modified()`, after all the fields to recompute have been determined. This ensures that the processing of recursive fields always uses the current value of the field instead of its recomputed value. Forward-Port-Of: odoo/odoo#143267 Forward-Port-Of: odoo/odoo#142712
Issue 1: When dealing with retention tax, the payment CFDI leads to a traceback. Issue 2: - Create an invoice - Change the "Payment Way" - Change the invoice due date in order to move the invoice to PPD - Create the CFDI of the invoice => The FormaPago is the selected "Payment Way" instead of 99 Forward-Port-Of: odoo/enterprise#51353
Original PR description
Issue 1: When dealing with retention tax, the payment CFDI leads to a traceback. Issue 2: - Create an invoice - Change the "Payment Way" - Change the invoice due date in order to move the invoice to PPD - Create the CFDI of the invoice => The FormaPago is the selected "Payment Way" instead of 99 Forward-Port-Of: odoo/enterprise#51353
This commit fix a UI issue due to unset max-width on the o_grid_row_title. HOW TO REPRODUCE: - Go in project - Create a task with a very long name - Go in timesheet - Record a tisheet line linked to the created task ISSUE: - The title takes all the screen and we cannot see the timesheets. FIX: - Put a maximun width for the row titles in order to trigger the text-truncate taskid:3539337 Forward-Port-Of: odoo/enterprise#51390
Original PR description
This commit fix a UI issue due to unset max-width on the o_grid_row_title.
HOW TO REPRODUCE:
- Go in project
- Create a task with a very long name
- Go in timesheet
- Record a tisheet line linked to the created task
ISSUE:
- The title takes all the screen and we cannot see the timesheets.
FIX:
- Put a maximun width for the row titles in order to trigger the
text-truncate
taskid:3539337
Forward-Port-Of: odoo/enterprise#51390When fetching the record data from the server via `join_spreadsheet_session`, we rely on the field `display_name` while expecting it to be a string. This will however not be the case since [1] (i.e. if `_rec_name=""` then `display_name=False`). The client components are expecting a string, we therefore fix `join_spreadsheet_session` accordingly. [1] https://github.com/odoo/odoo-security/commit/c68fb4a494acc38b97678ed2a1fe18dbf8f3fa9d Task: 3562167 Forward-Port-Of: odoo/enterprise#51296
Original PR description
When fetching the record data from the server via `join_spreadsheet_session`, we rely on the field `display_name` while expecting it to be a string. This will however not be the case since [1] (i.e. if `_rec_name=""` then `display_name=False`). The client components are expecting a string, we therefore fix `join_spreadsheet_session` accordingly. [1] https://github.com/odoo/odoo-security/commit/c68fb4a494acc38b97678ed2a1fe18dbf8f3fa9d Task: 3562167 Forward-Port-Of: odoo/enterprise#51296
When `payload` response is false, need to handle error. opw-3604932 Forward-Port-Of: odoo/enterprise#51261
Original PR description
When `payload` response is false, need to handle error. opw-3604932 Forward-Port-Of: odoo/enterprise#51261
https://github.com/odoo/enterprise/pull/47717 fixed the display of the fuel type for a new car, as it was not being shown. However, the change from that PR was not respecting stable policy. This commit fixes this by changing the selection values from a static list to a lambda function that returns that list This makes the selection values not be stored in the database. Forward-Port-Of: odoo/enterprise#51297
Original PR description
https://github.com/odoo/enterprise/pull/47717 fixed the display of the fuel type for a new car, as it was not being shown. However, the change from that PR was not respecting stable policy. This commit fixes this by changing the selection values from a static list to a lambda function that returns that list This makes the selection values not be stored in the database. Forward-Port-Of: odoo/enterprise#51297
When you open the wizard to select generate a link, the car_id is auto completed throught the compute field. The compute takes the first fleet.vehicle where the employee or applicant is the driver or future driver, but does not check that the vehicle is of type car. So when the employee has a car and a bike or just a bike, it can put the bike in the car_id field (event if the domain on the field prevent from selecting anything else than car) Forward-Port-Of: odoo/enterprise#51300
Original PR description
When you open the wizard to select generate a link, the car_id is auto completed throught the compute field. The compute takes the first fleet.vehicle where the employee or applicant is the driver or future driver, but does not check that the vehicle is of type car. So when the employee has a car and a bike or just a bike, it can put the bike in the car_id field (event if the domain on the field prevent from selecting anything else than car) Forward-Port-Of: odoo/enterprise#51300
This RPC /mail/thread/data is called on every form view change, even when not saved. It comes from the chatter onWillUpdateProps and calling `load` then `fetchData` We don't want to reload chatter when every time props updates. Do it when the record `onWillLoadRoot` Task: 3569123 Forward-Port-Of: odoo/enterprise#50607
Original PR description
This RPC /mail/thread/data is called on every form view change, even when not saved. It comes from the chatter onWillUpdateProps and calling `load` then `fetchData` We don't want to reload chatter when every time props updates. Do it when the record `onWillLoadRoot` Task: 3569123 Forward-Port-Of: odoo/enterprise#50607
Steps: - Open Helpdesk. - Go to mobile view. - Check for galaxy fold. Issue: - The 'My Performance' text gets cut and some part gets hidden. Cause: - The text is too long. Fix: - We are adding a new row in the table for 'My performance' text. task-3392129 Forward-Port-Of: odoo/enterprise#43490
Original PR description
Steps: - Open Helpdesk. - Go to mobile view. - Check for galaxy fold. Issue: - The 'My Performance' text gets cut and some part gets hidden. Cause: - The text is too long. Fix: - We are adding a new row in the table for 'My performance' text. task-3392129 Forward-Port-Of: odoo/enterprise#43490
When auditing a line with a subformula of `cross_report and an engine `aggregation the domain returned in `_get_audit_line_domain` will not have the correct `date_scope`. When we loop trough `expression._expand_aggregations()` the date_scope that we use on `audit_or_domains` should be the one of the expression **if** it has a subformula `cross_report` and not the one on the `expression_to_audit`. Task-id 3531220 Forward-Port-Of: odoo/enterprise#51138 Forward-Port-Of: odoo/enterprise#50153
Original PR description
When auditing a line with a subformula of `cross_report and an engine `aggregation the domain returned in `_get_audit_line_domain` will not have the correct `date_scope`. When we loop trough `expression._expand_aggregations()` the date_scope that we use on `audit_or_domains` should be the one of the expression **if** it has a subformula `cross_report` and not the one on the `expression_to_audit`. Task-id 3531220 Forward-Port-Of: odoo/enterprise#51138 Forward-Port-Of: odoo/enterprise#50153
**Steps:** - Open timesheet - Switch to mobile view - Start the timer - Select a Project / Task from dropdown - (Appears in all the views) **Issue:** - When a project/task is selected, extra height appears beneath it **Cause:** - The extra height is caused due to the arrow button which has a size of 1.3em **Fix:** - Making a new scss file for this instead of changing in base files and adding style to reduce the size of the button. **Task:** 3387850 Forward-Port-Of: odoo/ente
Original PR description
**Steps:** - Open timesheet - Switch to mobile view - Start the timer - Select a Project / Task from dropdown - (Appears in all the views) **Issue:** - When a project/task is selected, extra height appears beneath it **Cause:** - The extra height is caused due to the arrow button which has a size of 1.3em **Fix:** - Making a new scss file for this instead of changing in base files and adding style to reduce the size of the button. **Task:** 3387850 Forward-Port-Of: odoo/enterprise#43428
## Description The pivot view of the budget analysis can be really slow for large database with lots of `crossovered.budget.lines`. This issue is also present if one exports the view to the Dashboard app. ## Analysis The pivot view will request multiple `read_group`, computing the sum of `practical_amount`, triggering it's compute. Said compute loops over all lines, making a separate SQL query for each. In the context of having a large amount lines, the inherent cost of running a query (ser
Original PR description
## Description The pivot view of the budget analysis can be really slow for large database with lots of `crossovered.budget.lines`. This issue is also present if one exports the view to the Dashboard…
## Description The pivot view of the budget analysis can be really slow for large database with lots of `crossovered.budget.lines`. This issue is also present if one exports the view to the Dashboard app. ## Analysis The pivot view will request multiple `read_group`, computing the sum of `practical_amount`, triggering it's compute. Said compute loops over all lines, making a separate SQL query for each. In the context of having a large amount lines, the inherent cost of running a query (serialization/deserialization, network transfer) can accumulate to some non-negligible amount. ## Fix Group by the lines on their date-range and account_id. In the case of line that has an `account.analytic.line` associated with it, we also make sure that if a `general_budget_id` is present on the `crossovered.budget.lines`, then the accounts of the budget should match those of the analytic line. ## Benchmark Database on 16.0, 17k `crossovered.budget.lines`, 18k `account.analytic.line`, 31k `account.move.line`. Loading the Budget Analysis pivot view (lines have an analytic account on them) | | Before | After | |-------------|----------|----------| | Timing | 40 secs | 3.1 secs | | Query count | 39k | 150 | Loading the Budget Analysis pivot view (lines have *no* analytic account on them) | | Before | After | |-------------|---------|--------| | Timing | 70 secs | 4 secs | | Query count | 35k | 130 | ## Reference opw-3535910 opw-3573566 Forward-Port-Of: odoo/enterprise#51329 Forward-Port-Of: odoo/enterprise#49871
Issue: ====== When you add a new selection sign item in a template and add new options or update them it will raise an error. Steps to reproduce the error: ============================= - Open any editable sign template - Add a selection field - Click on the selection field - Add new option in the options field Origin of the error: ==================== In saas-16.4 option_ids contains a `REPLACE_WITH` command which is an array of length 3 of this format `[SET, _, ids]` so each tim
Original PR description
Issue: ====== When you add a new selection sign item in a template and add new options or update them it will raise an error. Steps to reproduce the error: ============================= - Open any editable sign template - Add a selection field - Click on the selection field - Add new option in the options field Origin of the error: ==================== In saas-16.4 option_ids contains a `REPLACE_WITH` command which is an array of length 3 of this format `[SET, _, ids]` so each time we set the new options with the new ids. In 17.0 option_ids contains a list of `LINK` command where each one have an id to link , so we will have an array of commands each of this format `[LINK, id, _]` that's why the old code doesn't work anymore. Solution: ========= We get all the ids of the `LINK` commands opw-3596542 Forward-Port-Of: odoo/enterprise#51010
The w-lg-50 was applied on the search box but the dropdown displaying the search results is inside the form tag. This commit applies the classes on the `<form>` tag instead, for the width to be applied on both the input and its dropdown. task-3582583 | Before | After | | -- | -- | | |  | Fo
Original PR description
The w-lg-50 was applied on the search box but the dropdown displaying the search results is inside the form tag. This commit applies the classes on the `<form>` tag instead, for the width to be applied on both the input and its dropdown. task-3582583 | Before | After | | -- | -- | | |  | Forward-Port-Of: odoo/enterprise#50187
Purpose: -------- Align the date selector buttons of the embedded calendar view to the left to match the design of the "regular" calendar view. Task-3598721 Forward-Port-Of: odoo/enterprise#51186
Original PR description
Purpose: -------- Align the date selector buttons of the embedded calendar view to the left to match the design of the "regular" calendar view. Task-3598721 Forward-Port-Of: odoo/enterprise#51186
Before this commit, if there was no instructions on the workorder an empty confirmation dialog opens to show the button "Fill Worksheet". After this commit, the dialog is not shown and the worksheet form is opened directly. Forward-Port-Of: odoo/enterprise#50827
Original PR description
Before this commit, if there was no instructions on the workorder an empty confirmation dialog opens to show the button "Fill Worksheet". After this commit, the dialog is not shown and the worksheet form is opened directly. Forward-Port-Of: odoo/enterprise#50827
The cell menu item `see pivot properties` was not displayed when right clicking on a pivot cell. Task: [3557299](https://www.odoo.com/web#id=3557299&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#49024
Original PR description
The cell menu item `see pivot properties` was not displayed when right clicking on a pivot cell. Task: [3557299](https://www.odoo.com/web#id=3557299&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#49024
task-3595627 Forward-Port-Of: odoo/enterprise#51253 Forward-Port-Of: odoo/enterprise#50645
Original PR description
task-3595627 Forward-Port-Of: odoo/enterprise#51253 Forward-Port-Of: odoo/enterprise#50645
**[FIX] account_reports: memory error when the journals in the `account_journal_report` are so many.** Changing the query to fetch account_journals and joining account_move_lines to exclude any journals with no lines instead of getting account_move_lines and joining the journals. opw-3583235 Forward-Port-Of: odoo/enterprise#51016
Original PR description
**[FIX] account_reports: memory error when the journals in the `account_journal_report` are so many.** Changing the query to fetch account_journals and joining account_move_lines to exclude any journals with no lines instead of getting account_move_lines and joining the journals. opw-3583235 Forward-Port-Of: odoo/enterprise#51016
The test `list with a contextual domain` was failing on some timezone because the date isn't well patched. We cannot correctly patch the date at the moment, because PyDate doesn't use luxon but new Date(). Fix the issue by setting the date to 12PM, so the test will work in most timezones. We should properly fix the issue once PyDate make the switch to luxon. Forward-Port-Of: odoo/enterprise#51249
Original PR description
The test `list with a contextual domain` was failing on some timezone because the date isn't well patched. We cannot correctly patch the date at the moment, because PyDate doesn't use luxon but new Date(). Fix the issue by setting the date to 12PM, so the test will work in most timezones. We should properly fix the issue once PyDate make the switch to luxon. Forward-Port-Of: odoo/enterprise#51249
Before This Commit: Currently, the variables are not populating in the proper sequence. It makes the variable tab look untidy. After This Commit: Sequence the variables with variable type in the sequence Location Defaults > Header > Buttons > Body Variables Solution: used the _order attribute to sort the variables in the order of variable type and placeholder 1. location - address 2. location - latitude, longitude 3. location - name 4. header 5. button 6. body Task - 3
Original PR description
Before This Commit: Currently, the variables are not populating in the proper sequence. It makes the variable tab look untidy. After This Commit: Sequence the variables with variable type in the sequence Location Defaults > Header > Buttons > Body Variables Solution: used the _order attribute to sort the variables in the order of variable type and placeholder 1. location - address 2. location - latitude, longitude 3. location - name 4. header 5. button 6. body Task - 3516187 Forward-Port-Of: odoo/enterprise#48526
[FIX] Appointment based on user don't use manual confirmation What are the steps to reproduce your issue? - Create/Open an appointment type - Availability on: Resources - Options / Manual Confirmation: Yes - Update the appointment type - Availability on: Users - Set some Users - Publish - Open the page of the appointment - Schedule appointment and confirm What is the current behavior that you observe? - Traceback, division by zero - Confirmation line in mail te
Original PR description
[FIX] Appointment based on user don't use manual confirmation
What are the steps to reproduce your issue?
- Create/Open an appointment type
- Availability on: Resources
- Options / Manual Confirmation: Yes
- Update the appointment type
- Availability on: Users
- Set some Users
- Publish
- Open the page of the appointment
- Schedule appointment and confirm
What is the current behavior that you observe?
- Traceback, division by zero
- Confirmation line in mail template
What would be your expected behavior in this case?
- Appointment planned and confirmed on UI
- No confirmation line ine the mail
Caused by task-2453291
opw-3603634
Forward-Port-Of: odoo/enterprise#51215
Forward-Port-Of: odoo/enterprise#51133This pull request tackles two layout-related issues within the Knowledge editor that lead to overflow problems: 1. The first issue pertains to the improper shrinking of the editor's right column when there's limited available space. Currently, the right column can overflow the layout when the user types a lengthy title or resizes the sidebar. 2. The second issue revolves around the burger menu being affected by the width set when resizing the sidebar. Presently, the burger menu can overflow
Original PR description
This pull request tackles two layout-related issues within the Knowledge editor that lead to overflow problems: 1. The first issue pertains to the improper shrinking of the editor's right column when there's limited available space. Currently, the right column can overflow the layout when the user types a lengthy title or resizes the sidebar. 2. The second issue revolves around the burger menu being affected by the width set when resizing the sidebar. Presently, the burger menu can overflow the layout when the user resizes the sidebar on desktop and switch to mobile. task-3507172 Forward-Port-Of: odoo/enterprise#51190 Forward-Port-Of: odoo/enterprise#47422
Forward-Port-Of: odoo/enterprise#51037
Original PR description
Forward-Port-Of: odoo/enterprise#51037