Daily updates from Odoo
Tuesday, November 26, 2024
101 changes
21 changes
Resolved issues and error corrections
Employee civil status options in the private information section are now included in translation files. This lets users see those labels in their chosen language instead of always in English.
Original PR description
In the employees module, the civil status field in the private information section has terms that are always in English. These terms were not exported to be translated. This commit makes them translatable and exports them to the translators. Opw-4292046 Opw-4278798 Enterprise: https://github.com/odoo/enterprise/pull/73406
The Razorpay onboarding flow now sends users to the correct Odoo page after setup. This prevents a mismatch with the newer URL structure and helps merchants complete payment setup smoothly.
Original PR description
Updated the redirect URL from `/web` to `/odoo` to align with the new URL structure introduced.
Miscellaneous changes
Before this commit, if an invalid record existed in db, and it was open from a list, a notification was raised even if the user didn't modify the record. Also, if an invalid record is open, and the user click to create a new record, a notification is raised. Now, the notifications only raise if the user modifies the record. opw-3987849 Forward-Port-Of: odoo/odoo#187106
Original PR description
Before this commit, if an invalid record existed in db, and it was open from a list, a notification was raised even if the user didn't modify the record. Also, if an invalid record is open, and the user click to create a new record, a notification is raised. Now, the notifications only raise if the user modifies the record. opw-3987849 Forward-Port-Of: odoo/odoo#187106
This commit will correct the fact that the siret and APE number must be displayed also when the country code is from the DOM-TOM task:4290323 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187800 Forward-Port-Of: odoo/odoo#185862
Original PR description
This commit will correct the fact that the siret and APE number must be displayed also when the country code is from the DOM-TOM task:4290323 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187800 Forward-Port-Of: odoo/odoo#185862
### Steps to Reproduce 1. Install i10n_il module 2. Go to Settings->Invoicing **Expected behavior:** Tax il_vat_inputs_17 (VAT inputs) is selected as default Purchase tax **Actual behavior:** Tax il_vat_self_inv_purchase (Self Invoice) is selected as default Purchase tax. This causes new Vendor Bills to be created without VAT Forward-Port-Of: odoo/odoo#186325
Original PR description
### Steps to Reproduce 1. Install i10n_il module 2. Go to Settings->Invoicing **Expected behavior:** Tax il_vat_inputs_17 (VAT inputs) is selected as default Purchase tax **Actual behavior:** Tax il_vat_self_inv_purchase (Self Invoice) is selected as default Purchase tax. This causes new Vendor Bills to be created without VAT Forward-Port-Of: odoo/odoo#186325
We fix a problem occuring in pivot and graph views. Have a property like properties.441515 used somewhere as groupby. If that property has not been added via the search bar menu, the corresponding (fake) field definition is not known (fillSearchViewItemsProperty has not been called). Thus in that case, a crash occurs because one tries to read info in the undefined field definition for instance. This can happen in several ways: - save a favorite with a property used somewhere (context.group
Original PR description
We fix a problem occuring in pivot and graph views. Have a property like properties.441515 used somewhere as groupby. If that property has not been added via the search bar menu, the corresponding (fake) field definition is not known (fillSearchViewItemsProperty has not been called). Thus in that case, a crash occurs because one tries to read info in the undefined field definition for instance. This can happen in several ways: - save a favorite with a property used somewhere (context.group_by or context.pivot_row_groupby for example), reload, apply the favorite -> crash. - add the pivot or graph view to dashboard or to spreadsheet, (re)Load the dashboard or the spreadsheet -> crash. We fix the problem by adding on the fly a fake field definition when the groupbys used by the views are known (i.e. when the view models are about to fetch the data). Task ID: 4141824 Forward-Port-Of: odoo/odoo#187287
This commit reduces the number of read to a getter `editedRecord` which loops on all the record of the list to find the current one in edition. Forward-Port-Of: odoo/odoo#188384
Original PR description
This commit reduces the number of read to a getter `editedRecord` which loops on all the record of the list to find the current one in edition. Forward-Port-Of: odoo/odoo#188384
In this commit https://github.com/odoo/odoo/pull/155339/commits/ca2d54a81ebb2611c14b0fc06784bd5d285856e3, in the task form, we changed the sol field to make it editable even when the user has no sale access. Trying to edit this field in such conditions produces an Access Error, so we revert this commit. task-4207245 related-https://github.com/odoo/odoo/pull/155339 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188431 F
Original PR description
In this commit https://github.com/odoo/odoo/pull/155339/commits/ca2d54a81ebb2611c14b0fc06784bd5d285856e3, in the task form, we changed the sol field to make it editable even when the user has no sale access. Trying to edit this field in such conditions produces an Access Error, so we revert this commit. task-4207245 related-https://github.com/odoo/odoo/pull/155339 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188431 Forward-Port-Of: odoo/odoo#182158
Using fiscal_country_codes in the invisible condition can result in the field being displayed multiple times, as multiple countries may meet the condition. Instead, we are using country_code, as it is more logical for the field to be visible only if the company is located in that specific country. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188099
Original PR description
Using fiscal_country_codes in the invisible condition can result in the field being displayed multiple times, as multiple countries may meet the condition. Instead, we are using country_code, as it is more logical for the field to be visible only if the company is located in that specific country. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188099
The chart template loading process involves loading demo data for branches [^1], but at the moment this is not tested and broken. This commit fixes the flow and adds a test. [^1]: https://github.com/odoo/odoo/blob/b79bcb0574354a17a2aa64e2fe8d05da95535257/addons/account/models/chart_template.py#L232 Enterprise PR: https://github.com/odoo/enterprise/pull/74409 task-none Forward-Port-Of: odoo/odoo#188247
Original PR description
The chart template loading process involves loading demo data for branches [^1], but at the moment this is not tested and broken. This commit fixes the flow and adds a test. [^1]: https://github.com/odoo/odoo/blob/b79bcb0574354a17a2aa64e2fe8d05da95535257/addons/account/models/chart_template.py#L232 Enterprise PR: https://github.com/odoo/enterprise/pull/74409 task-none Forward-Port-Of: odoo/odoo#188247
**Current behavior:** With a product that is invoiced based on ordered qty, has avg costing, and real time valuation: it is possible to invoice and received quantity in such an order that, when there is a landed cost associated with an invoice instance of the product, the standard price of the product may be updated with an incorrect value. **Expected behavior:** Product cost follows 'average' selection logically. **Steps to reproduce:** *Enable anglo-saxon accounting* 1. Create
Original PR description
**Current behavior:** With a product that is invoiced based on ordered qty, has avg costing, and real time valuation: it is possible to invoice and received quantity in such an order that, when there…
**Current behavior:** With a product that is invoiced based on ordered qty, has avg costing, and real time valuation: it is possible to invoice and received quantity in such an order that, when there is a landed cost associated with an invoice instance of the product, the standard price of the product may be updated with an incorrect value. **Expected behavior:** Product cost follows 'average' selection logically. **Steps to reproduce:** *Enable anglo-saxon accounting* 1. Create a product with: * real time property valuation * average cost method * on ordered quantities control policy 2. Create a purchase order for the product, for 100 000 units of the product at 1.35 each -> confirm the order 3. Create an invoice for 23 000 units, receive 23 000 units and backorder the rest 4. Create a landed cost on the invoice for 23 000 in the company currency units 5. Post the invoice 6. Create a second invoice for 27 000 units and post it 7. Receive 27 000 more units from the receipt 8. See that the product standard price is not the expected value of 1.81 **Cause of the issue:** The landed cost on the invoice is not taken into account. Since the price unit for the moves informing the new price value are obtained with `_get_price_unit()`, we end up only taking into account the sum value of the invoice lines linked to the move. So the landed cost does not get included in the subsequent price unit calculation here: https://github.com/odoo/odoo/blob/22e7bfb591c43e849c554eb4c128279d76ad31f9/addons/stock_account/models/stock_move.py#L328 **Fix:** Extract a method which returns invoice lines to the `_get_price_unit()` method of purchase_stock so that we may return line records that represent landed costs that will otherwise be omitted. opw-4048396 Forward-Port-Of: odoo/odoo#188131 Forward-Port-Of: odoo/odoo#185889
When adding a custom filter, we can produce a domain of the form ["id", "in", [ 1415T215, 1545481, ... ]] with a very long list of ids. In this commit we make the domain description contain only the 20 first ids of the list. If we don't do that we obtain a (unscrollable) search bar facet that is not fully visible when confirming the domain. Forward-Port-Of: odoo/odoo#188438
Original PR description
When adding a custom filter, we can produce a domain of the form
["id", "in", [
1415T215,
1545481,
...
]]
with a very long list of ids. In this commit we make the domain description contain only the 20 first ids of the list. If we don't do that we obtain a (unscrollable) search bar facet that is not fully visible when confirming the domain.
Forward-Port-Of: odoo/odoo#188438Current: Users go to Elearning > Certificates to create a test and do not fill in a description for the test. After the employee finishes the test, they are given a certificate and it is displayed in the employee profile but it is displayed as "False" as shown in the image. This PR fixes that error and fills it back as '' so that it does not display 'False' if the test does not have a description.  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186531
Problem --------- Additional attachments linked to an Email Template used in the Send & Print are completely ignored. They should not, and it's especially useful for Timesheets. Steps --------- 1. Install Accouting, Timesheet and Sales 2. In debug, access mail templates 3. Go to the 'Invoice: Sending' record > Setting tab 4. In Dynamic Reports, add 'Timesheet' 5. Go to sale 6. Create an SO with 'Junior Architect' product for 10 units 7. Confirm the SO 8. Click the Timesheet widget
Original PR description
Problem --------- Additional attachments linked to an Email Template used in the Send & Print are completely ignored. They should not, and it's especially useful for Timesheets. Steps --------- 1.…
Problem --------- Additional attachments linked to an Email Template used in the Send & Print are completely ignored. They should not, and it's especially useful for Timesheets. Steps --------- 1. Install Accouting, Timesheet and Sales 2. In debug, access mail templates 3. Go to the 'Invoice: Sending' record > Setting tab 4. In Dynamic Reports, add 'Timesheet' 5. Go to sale 6. Create an SO with 'Junior Architect' product for 10 units 7. Confirm the SO 8. Click the Timesheet widget on the SO form view 9. Register some hours for today (for example 3 hours) 10. On the SO Form view, click 'Create Invoice' 11. Select the option to invoice timesheeted hours and select from today to today as the date range 12. Create the Invoice and post 13. Send & Print -> The timesheet report appears in the send and print widget, when you click send, the timesheet report is actually not sent. Solution --------- 1. Add a placeholder in the send&print widget, the placeholders are stored in the `mail_attachments_widget` used for such purposes. The dynamic reports are defined with an new key: `dynamic_report` to differenciate them from the `manual` attachments and the invoice PDF. This new key eases the complexity to retreive and create the attachments fom the placeholders list. 2. Add a method when sending the mails to generate the dynamic reports only if the reports have not been removed in the S&P widget (`skip != False`). Since the attachments placed in the mails are a collection of elements from `mail_attachments_widget` that possess a valid attachment ID. We add the relevant attachment data in the mail_attachments_widget of the invoice. task-4283972 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187381
Since this commit [1], where the "media dialog insert media" was added, the runbot sometimes fails because the tour contacts the "media-api.odoo.com" API, which is not allowed in a tour. This commit fixes the issue by inserting an icon instead of an image, as the icon does not require any API call. [1]: https://github.com/odoo/odoo/commit/2231148db55cfc6fa3f3f5b2b5c5250b74f2feac runbot-107920 Forward-Port-Of: odoo/odoo#188480
Original PR description
Since this commit [1], where the "media dialog insert media" was added, the runbot sometimes fails because the tour contacts the "media-api.odoo.com" API, which is not allowed in a tour. This commit fixes the issue by inserting an icon instead of an image, as the icon does not require any API call. [1]: https://github.com/odoo/odoo/commit/2231148db55cfc6fa3f3f5b2b5c5250b74f2feac runbot-107920 Forward-Port-Of: odoo/odoo#188480
**task-4280164 opw-3985404** --- **[FIX] web_editor: removes figure parent of removed image** Steps to reproduce the issue: - In website, edit mode. - Drag and drop a "Picture" snippet onto the page. - Click the image in the "Picture" snippet. - Delete the image by clicking the "Remove" button in the image options. - Inspect the DOM of the "Picture" snippet. - Bug: The figure element which wrapped the image is still there. After this commit, when an image wrapped by a figure e
Original PR description
**task-4280164 opw-3985404** --- **[FIX] web_editor: removes figure parent of removed image** Steps to reproduce the issue: - In website, edit mode. - Drag and drop a "Picture" snippet onto the page.…
**task-4280164 opw-3985404** --- **[FIX] web_editor: removes figure parent of removed image** Steps to reproduce the issue: - In website, edit mode. - Drag and drop a "Picture" snippet onto the page. - Click the image in the "Picture" snippet. - Delete the image by clicking the "Remove" button in the image options. - Inspect the DOM of the "Picture" snippet. - Bug: The figure element which wrapped the image is still there. After this commit, when an image wrapped by a figure element is removed, the figure is also removed. --- **[FIX] web_editor: allows to edit events sidebar photos link** Before this commit, it was not possible to edit the link of the events sidebar photos. This occurred for 2 reasons: A - The image link option didn't work with images wrapped in a figure element. B - After fixing point A, the "href" attribute modification was ignored when saving the "/event" page. Steps to reproduce A: - Go to the "/event" page in edit mode. - Click on the 'Customize' tab and enable the sidebar. - Click a photo in the sidebar. - Bug: the URL input for setting the link is not available in the "Image" options. Steps to reproduce B (after fixing A): - Go to the "/event" page in edit mode. - Click on the 'Customize' tab and enable the sidebar. - Click a photo in the sidebar. - Edit the "Your URL" input. (e.g. [www.odoo.com](http://www.odoo.com/)) - Save the page. - Click the image with the modified link. - Bug: the new link was not saved. To fix issue B, we added the "href" attribute to the list of allowed root attributes. --- **[FIX] website_event: prevents removing sidebar photos** Steps to reproduce the issue: - Go to the "/event" page in edit mode. - Enable the sidebar. - Click a photo in the sidebar. - Click the "Delete" button in the image options. - The image is removed even though it shouldn't be allowed to remove it. This commit hide the "Delete" button for these sidebar images. --- **[FIX] website_event: fix editing of figcaption for event sidebar photos** Steps to reproduce the bug (only on Chrome): - Go to the "/event" page. - Enter edit mode. - Click the "Customize" tab and enable the "Sidebar". - Try to add a character at the end of the figcaption of the second photo in the sidebar. - Bug: it's not possible to add a new character. This requires further investigation, but the issue comes from how Chrome handles editing elements inside links. The fact that the <a> element was set to display inline caused the issue. This commit fixes the issue by setting the <a> element to display block, which is more appropriate anyway. Forward-Port-Of: odoo/odoo#186278
Steps to reproduce: - Create a product having the following attributes: - Color, which has `create_variant`: 'always' - Custom, which has `create_variant`: 'no_variant' - For each attribute, add a few values - Create a sale order for that product, using a combination of both attributes - Go to Inventory/Operation/Procurement/Replenishment - On the corresponding product, click on 'Order Once' - On the created Purchase Order, try to edit the product through the configurator Issue:
Original PR description
Steps to reproduce: - Create a product having the following attributes: - Color, which has `create_variant`: 'always' - Custom, which has `create_variant`: 'no_variant' - For each attribute, add a…
Steps to reproduce: - Create a product having the following attributes: - Color, which has `create_variant`: 'always' - Custom, which has `create_variant`: 'no_variant' - For each attribute, add a few values - Create a sale order for that product, using a combination of both attributes - Go to Inventory/Operation/Procurement/Replenishment - On the corresponding product, click on 'Order Once' - On the created Purchase Order, try to edit the product through the configurator Issue: A traceback will appear, as the generated matrix for this product will be a collection of pairs from [Color,Custom] values. But as the moves have no `product_no_variant_attribute_value_ids` to store that information, that part of the information will be lost and the generated orderpoint from which the PO is made will only be using an existing product.product. While this does not solve the issue, it at least allows to open the product configurator even though the line is faulty. Note: Same issue appear through a MTO flow, although in this case the product description will be correct. But trying to open the configurator would still lead to a traceback anyway. opw-4197302 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188031
In case the quantity of a purchase order line is negative the generated picking will be a delivery but not a return. Meaning validating this delivery will not update quantity received on the purchase order line. This commit makes sur the `to_refund` key on stock move impact the value of `qty_received` only if the stock move is actually a return. opw: 4259022 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -
Original PR description
In case the quantity of a purchase order line is negative the generated picking will be a delivery but not a return. Meaning validating this delivery will not update quantity received on the purchase order line. This commit makes sur the `to_refund` key on stock move impact the value of `qty_received` only if the stock move is actually a return. opw: 4259022 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#187946
If we only use the community module, there is no interface to activate the automated stock accounting feature on the accounting page. Instead, we have to manually assign group_stock_accounting_automatic to each user. However, from PR odoo/odoo#133254, any setting changes will change all of the property_valuations to 'manual_periodic'. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187826
Original PR description
If we only use the community module, there is no interface to activate the automated stock accounting feature on the accounting page. Instead, we have to manually assign group_stock_accounting_automatic to each user. However, from PR odoo/odoo#133254, any setting changes will change all of the property_valuations to 'manual_periodic'. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187826
For an expense report paid by an employee, the bank account should be set on the employee form and be used to create the Journal Entry and in Register Payment Wizard. enterprise: https://github.com/odoo/enterprise/pull/71080 task-4206895 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188210 Forward-Port-Of: odoo/odoo#181870
Original PR description
For an expense report paid by an employee, the bank account should be set on the employee form and be used to create the Journal Entry and in Register Payment Wizard. enterprise: https://github.com/odoo/enterprise/pull/71080 task-4206895 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188210 Forward-Port-Of: odoo/odoo#181870
Since we moved away from activity_schedule in odoo/odoo#107804, the mail_activity_automation_skip context doesn't work anymore and activities get created regardless We add a check at the beginning of the function to make the context flag work again --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186898
Original PR description
Since we moved away from activity_schedule in odoo/odoo#107804, the mail_activity_automation_skip context doesn't work anymore and activities get created regardless We add a check at the beginning of the function to make the context flag work again --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186898
18 changes
Resolved issues and error corrections
This update adjusts an internal performance test limit for creating subscriptions after related feature changes increased the expected number of system queries. It helps keep automated checks aligned with the new behavior without changing what users see.
Original PR description
Due to a new feature to the new feature in the corresponding community PR, the number of query when making subscription is increased due to a series of computes. (passing through event_sale and the new module) task-4283517
Code cleanup and technical improvements
This change reorganizes where the WhatsApp message seen-status behavior lives, aligning it with the Discuss area of the product. It should not noticeably change how users work, but it helps keep the codebase better organized for future maintenance.
Original PR description
Enterprise counter-part. Part of task-3265211 https://github.com/odoo/odoo/pull/188127
Miscellaneous changes
Update enterprise formatting override for MX addresses to be consistent with community, see PR: https://github.com/odoo/odoo/pull/186926 Forward-Port-Of: odoo/enterprise#74503
Original PR description
Update enterprise formatting override for MX addresses to be consistent with community, see PR: https://github.com/odoo/odoo/pull/186926 Forward-Port-Of: odoo/enterprise#74503
Steps - install hr_work_entry_contract_enterprise - Payroll > Work Entries > Select "This year" filter - ** UncaughtPromiseError > OwlError ** Cause With the addition of variable time ranges in Gantt, a new `year` scale is selectable but is missing from the view. Change Add year scale. When clicking on a cell or clicking on the "New" button, the start and end date of the work entries to create will be the beginning and end of the month. opw-4321645 Forward-Port-Of: odoo/enterprise
Original PR description
Steps - install hr_work_entry_contract_enterprise - Payroll > Work Entries > Select "This year" filter - ** UncaughtPromiseError > OwlError ** Cause With the addition of variable time ranges in Gantt, a new `year` scale is selectable but is missing from the view. Change Add year scale. When clicking on a cell or clicking on the "New" button, the start and end date of the work entries to create will be the beginning and end of the month. opw-4321645 Forward-Port-Of: odoo/enterprise#73820
Before this change the message was showing an out-of-date minimun amount to report info of the receptor. Also, the message is more clearly to the user: what are the cases and how to solve them Old Message  New Message  LATAM 1291 / Adhoc ticket 82478 Forward-Port-Of: odoo/enterprise#74485 F
Original PR description
Before this change the message was showing an out-of-date minimun amount to report info of the receptor. Also, the message is more clearly to the user: what are the cases and how to solve them Old Message  New Message  LATAM 1291 / Adhoc ticket 82478 Forward-Port-Of: odoo/enterprise#74485 Forward-Port-Of: odoo/enterprise#73203
Another pass of marking some routes/methods as read-only, as a follow-up to https://github.com/odoo/odoo/pull/186319 and https://github.com/odoo/odoo/pull/186786 Forward-Port-Of: odoo/enterprise#74147
Original PR description
Another pass of marking some routes/methods as read-only, as a follow-up to https://github.com/odoo/odoo/pull/186319 and https://github.com/odoo/odoo/pull/186786 Forward-Port-Of: odoo/enterprise#74147
Steps to reproduce ================== - Install crm,web_studio - Enable leads - Go to CRM > Configuration > Sales Team - Open the first record - Uncheck Pipeline and Leads - Go to CRM > Sales > Teams - Open studio => Undefined graph model for Sales Team: Pre-Sales Cause of the issue ================== The window action uses the following domain `[["use_opportunities", "=", true]]` It is not used from within studio. opw-4285413 Forward-Port-Of: odoo/enterprise#74432 Forwar
Original PR description
Steps to reproduce ================== - Install crm,web_studio - Enable leads - Go to CRM > Configuration > Sales Team - Open the first record - Uncheck Pipeline and Leads - Go to CRM > Sales > Teams - Open studio => Undefined graph model for Sales Team: Pre-Sales Cause of the issue ================== The window action uses the following domain `[["use_opportunities", "=", true]]` It is not used from within studio. opw-4285413 Forward-Port-Of: odoo/enterprise#74432 Forward-Port-Of: odoo/enterprise#74091
Forward-Port-Of: odoo/enterprise#74214 Forward-Port-Of: odoo/enterprise#72823
Original PR description
Forward-Port-Of: odoo/enterprise#74214 Forward-Port-Of: odoo/enterprise#72823
The inheritance with almost empty view was not working properly because the framework was not able to combine empty archs. This commit is the direct follow up of the related commit in odoo repository. task-4241455 Forward-Port-Of: odoo/enterprise#71457
Original PR description
The inheritance with almost empty view was not working properly because the framework was not able to combine empty archs. This commit is the direct follow up of the related commit in odoo repository. task-4241455 Forward-Port-Of: odoo/enterprise#71457
Before this commit, when an upsell order was in draft and the parent order was modified (another upsell was confirmed or the parent order was modified directly), the parent_line compute was not trigerred. It could cause issues in customizations. Forward-Port-Of: odoo/enterprise#73973
Original PR description
Before this commit, when an upsell order was in draft and the parent order was modified (another upsell was confirmed or the parent order was modified directly), the parent_line compute was not trigerred. It could cause issues in customizations. Forward-Port-Of: odoo/enterprise#73973
Various bugs are fixed here: 1. From search panel to search panel, Drag and Drop from MY/Folder X to MY => It creates a shortcut, it's odd => we likely wanted to move it 2. From search panel to search panel, Drag and Drop from X to X (in my drive or not) * In MY it creates a shortcut It's odd, we shouldn't do anything * In other places it calls the server for nothing. 3. From kanban card to search panel, drop into MY/X => It creates a shortcut in "My Drive" We want to be able to move i
Original PR description
Various bugs are fixed here: 1. From search panel to search panel, Drag and Drop from MY/Folder X to MY => It creates a shortcut, it's odd => we likely wanted to move it 2. From search panel to search panel, Drag and Drop from X to X (in my drive or not) * In MY it creates a shortcut It's odd, we shouldn't do anything * In other places it calls the server for nothing. 3. From kanban card to search panel, drop into MY/X => It creates a shortcut in "My Drive" We want to be able to move it, or create a shortcut (if using CTRL) as for other destinations Task-4236526 Forward-Port-Of: odoo/enterprise#71690
Bug === A system administrator can view all frozen folders / spreadsheet, because of that, when he changes the access on a folder, it can be propagated on the frozen folders and on the frozen spreadsheets inside. But, the frozen spreadsheets can not be editable. To solve that issue, we now need to open the share panel of the frozen spreadsheets to change their access. Task-4346980 Forward-Port-Of: odoo/enterprise#74148
Original PR description
Bug === A system administrator can view all frozen folders / spreadsheet, because of that, when he changes the access on a folder, it can be propagated on the frozen folders and on the frozen spreadsheets inside. But, the frozen spreadsheets can not be editable. To solve that issue, we now need to open the share panel of the frozen spreadsheets to change their access. Task-4346980 Forward-Port-Of: odoo/enterprise#74148
In studio, click on Edit Menu in the main navbar. Add a menu or edit the name of a menu. Click Confirm Before this commit, the hierarchical list of the menu editor was not updated. This was due to the fact that studio's dialog service is altered to allow it to have the specific studio sub environment It is that way since 2ae63d9a43ba973d905232105201d88e423a8245 As a consequence, the "menu changed" event triggerd by the menu service on the main environment's bus was not forwarded to to studi
Original PR description
In studio, click on Edit Menu in the main navbar. Add a menu or edit the name of a menu. Click Confirm Before this commit, the hierarchical list of the menu editor was not updated. This was due to the fact that studio's dialog service is altered to allow it to have the specific studio sub environment It is that way since 2ae63d9a43ba973d905232105201d88e423a8245 As a consequence, the "menu changed" event triggerd by the menu service on the main environment's bus was not forwarded to to studio's env's bus. After this commit, the hierarchical list is updated correctly task-4001101 Forward-Port-Of: odoo/enterprise#74354
### Steps to reproduce the issue: 1. Create an Invoice with "ODOO_BUG" as payment reference 2. Create a Bank Transaction with the same amount and customer as the Invoice and "ODOO_BUG" as Label 3. The Transaction and the Invoice are automatically matched 4. Create an Invoice with "ODOO BUG" as payment reference 5. Create a Bank Transaction with the same amount and customer as the Invoice and "ODOO BUG" as label 6. The Transaction and the Invoice are not automatically matched ### Expla
Original PR description
### Steps to reproduce the issue: 1. Create an Invoice with "ODOO_BUG" as payment reference 2. Create a Bank Transaction with the same amount and customer as the Invoice and "ODOO_BUG" as Label 3.…
### Steps to reproduce the issue: 1. Create an Invoice with "ODOO_BUG" as payment reference 2. Create a Bank Transaction with the same amount and customer as the Invoice and "ODOO_BUG" as Label 3. The Transaction and the Invoice are automatically matched 4. Create an Invoice with "ODOO BUG" as payment reference 5. Create a Bank Transaction with the same amount and customer as the Invoice and "ODOO BUG" as label 6. The Transaction and the Invoice are not automatically matched ### Explanation: When evaluating `st_line_text_values` in `_get_invoice_matching_st_line_tokens`, the values are split at every whitespace. When trying to find `account.move.line` that match the tokens resulting from the operations, every `name`, `move_id.name` or `move_id.ref` with a whitespace in it will not be recognized due to the whitespaces being removed from the `account.bank.statement.line` side. ### Fix reasoning: From a business perspective, no Invoice/Payment/Bill reference should have a space in it bar some already covered exceptions. To avoid performance heavy queries, the text value will simply be added to `exact_tokens` and treated as such, allowing for an automatical reconciliation between an `account.move.line` and an `account.bank.statement.line` if their refs match perfectly. opw-4114296 Forward-Port-Of: odoo/enterprise#71431
Steps to reproduce: - Install both hr_contract_salary and l10n_hk_Hr_payroll - Try to review a contract in recruitment Current behaviour: - Exception raised Expected behaviour: - No exception raised Explanation: - Internet allowance is based on employee actual work days. However, for candidate who hasn't join the company, they won't have any work days. Therefore the salary internet rules prorata_rate will be divided by zero, and raised exceptions. X-original-commit: f9e7
Original PR description
Steps to reproduce: - Install both hr_contract_salary and l10n_hk_Hr_payroll - Try to review a contract in recruitment Current behaviour: - Exception raised Expected behaviour: - No exception raised Explanation: - Internet allowance is based on employee actual work days. However, for candidate who hasn't join the company, they won't have any work days. Therefore the salary internet rules prorata_rate will be divided by zero, and raised exceptions. X-original-commit: f9e7d39 Forward-Port-Of: odoo/enterprise#73630
This commit add the export to xml button on the intrastat report for Germany. More information can be found here: - https://erhebungsportal.estatistik.de/Erhebungsportal/informationen/hilfe-zur-meldungsabgabe-3749 task-4194404 Forward-Port-Of: odoo/enterprise#74467 Forward-Port-Of: odoo/enterprise#71785
Original PR description
This commit add the export to xml button on the intrastat report for Germany. More information can be found here: - https://erhebungsportal.estatistik.de/Erhebungsportal/informationen/hilfe-zur-meldungsabgabe-3749 task-4194404 Forward-Port-Of: odoo/enterprise#74467 Forward-Port-Of: odoo/enterprise#71785
Currently, when receiving a new message, it opens a new chat bubble, i.e. a chat window that is folded on the right. This is the preferred behaviour for most users. For whatsapp operators, however, they want to reply to visitors questions as quickly as possible. Therefore having the chat window open automatically on receiving new messages is quite useful for them. This PR adds automatically opening of chat window on receiving new messages for whatsapp conversations. All other conversations
Original PR description
Currently, when receiving a new message, it opens a new chat bubble, i.e. a chat window that is folded on the right. This is the preferred behaviour for most users. For whatsapp operators, however, they want to reply to visitors questions as quickly as possible. Therefore having the chat window open automatically on receiving new messages is quite useful for them. This PR adds automatically opening of chat window on receiving new messages for whatsapp conversations. All other conversations are still open as chat bubble, as this is the preferred showing for all other users that want to know there are new messages without being disturbed while using Odoo web client. Task-4354021 https://github.com/odoo/odoo/pull/188422 Forward-Port-Of: odoo/enterprise#74468
Before this commit, when a list/pivot/graph object is inserted in a spreadsheet, it was loaded **and then** the spreadsheet was displayed. It could cause a confusion for the user because, as soon as he clicks on insert, he receives a notification that the spreadsheet is created in Documents and then he has to wait for the spreadsheet to be displayed. With this commit, the spreadsheet is displayed as soon as possible and the list/pivot/graph object is loaded in the background. For the pivot
Original PR description
Before this commit, when a list/pivot/graph object is inserted in a spreadsheet, it was loaded **and then** the spreadsheet was displayed. It could cause a confusion for the user because, as soon as he clicks on insert, he receives a notification that the spreadsheet is created in Documents and then he has to wait for the spreadsheet to be displayed. With this commit, the spreadsheet is displayed as soon as possible and the list/pivot/graph object is loaded in the background. For the pivot, the spreadsheet is turned into readonly mode until the pivot is loaded, as we need the pivot to be loaded to know the cells to insert. Task: 4256694 Forward-Port-Of: odoo/enterprise#73714
55 changes
Enhancements to existing features
Chatbot answer buttons in Live Chat now appear outside the message bubble. This makes the available responses easier to see and select, improving the visitor chat experience.
Original PR description
Moved chatbot answers buttons outside of the message bubble  task-4354009
A new link has been added in the UrbanPiper point-of-sale settings to direct users to an Odoo survey form. This makes it easier to collect the required information for UrbanPiper setup and onboarding.
Original PR description
In this commit: === - Added a link to redirect users to the Odoo survey form for gathering required details for urbanPiper. task-4350722
This change makes it easier to customize the date used when closing subscriptions. It helps businesses adapt subscription closing behavior to their own processes without changing the full closing workflow.
Original PR description
Before this commit it was not possible to change the end_date without override the whole function Since the end_date define the behavior (really closing or not) of set_close be able to easily override this behavior is handy
Resolved issues and error corrections
This fixes the live chat chatbot layout so answer buttons appear outside the message bubble as intended. The change improves readability and makes chatbot interactions look cleaner for website visitors.
Original PR description
Before this commit, chatbot answers buttons appear inside the message bubble. This happens because the new xpath target introduced in https://github.com/odoo/odoo/pull/188407 had the wrong position argument. This commit fixes the issue by changing the position to `after`. Before:  After: 
This fixes a timezone mismatch that could cause Odoo to incorrectly decide whether a page became outdated after a websocket disconnection. Users should see more accurate refresh warnings, reducing unnecessary confusion or missed prompts.
Original PR description
The outdated page watcher detects when the page is outdated i.e. when the autovacuum ran while the websocket was disconnected. To do so, it compares the last disconnection datetime with the last autovacuum datetime received from the server. However, last disconnected datetime is saved in UTC while value coming from the server is parsed using the default timezone. This PR fixes the issue by handling both datetime with the default timezone.
The blog author snippet now uses the stored author name instead of directly checking the author record. This prevents public website visitors from hitting permission-related issues when viewing blog posts, helping author information display consistently.
Original PR description
Author snippet previously used the author_id field on the blog post record which would run in to permission issues as public user. Used the already existing author_name field on the blog record which also seemed to be used in older versions of Odoo to bypass this permission issue. opw-4330319
The HTML editor now correctly detects when selected text has a custom font size, so users can use the remove formatting button to reset it. The toolbar also shows the correct font size when selecting all content, reducing confusion while editing formatted text.
Original PR description
**Behaviour before PR:** When a `font-size` is applied on a text, remove-format icon is disabled in toolbar when that text is selected and user is unable to reset `font-size`. This happens because in `formatSpecs` `isFormatted` method fails to get correct value in case of `setFontSizeClassName`. Same scenario is with `isFormatted` method of `fontSize`. **Behaviour after PR:** Now remove-format icon is enable when font-sized text is selected and user can remove and reset font-size of selected text. task-4263625 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Task records in Website Project will no longer log phone or company-name changes that are not useful for task history. This keeps task activity cleaner and avoids inconsistent behavior depending on which related apps are installed first.
Original PR description
Before this commit, the partner_phone field in `project.task` model is tracked because it is a related field linked to `partner_id.phone` and `phone` is tracked. Moreover, that field is also defined in `industry_fsm` module but its definition is different which could lead to unexpected behavior depending on the installation order. This commit duplicates the definition of that field from industry_fsm to website_project to make sure to not have a different behavior depending on the installation order of those modules. It also removes the tracking on `partner_company_name` since it is not really useful in task if one day `company_name` in `res.partner` model is tracked.
This fixes a visual issue in the mail area where logged notes displayed with an unnecessary border. The change makes note entries look cleaner and more consistent, improving readability without changing functionality.
Original PR description
Before / After <img width="254" alt="Screenshot 2024-11-25 at 14 23 16" src="https://github.com/user-attachments/assets/0ea6235e-ad18-4001-8c6c-31860e5d0371"> <img width="268" alt="Screenshot 2024-11-25 at 14 23 00" src="https://github.com/user-attachments/assets/efb3a21b-ce6c-4999-9aea-e67e52332011">
The sick leave relapse checkbox is now only visible to authorized time off officers. This prevents regular employees from seeing an internal payroll-related option that they should not access.
Original PR description
A checkbox to indicate if a Sick leave is a relapse of a previous sick leave was added to version 18.0. Regular users can see the checkbox when creating or viewing sick leave while the intention was for only time off officers to be able to see it. This patch fixes this issue by assigning the checkbox to the correct group. task-4354558
Fixed a layout issue in Appraisals where feedback editor buttons could appear broken when users clicked into feedback fields. This keeps the appraisal feedback experience cleaner and easier to use across screen sizes.
Original PR description
Steps ----- 1. Appraisals > Click on one or go to Configuration > Appraisal templates 2. Click on the feedback. A text 'Type "/" for commands' appears with buttons in a broken layout. Cause ----- With the new html_editor, editor buttons are descendants of `o_appraisal_input` in the DOM. Changes ----- - restrict the selector that is used to prevent overflow so it doesn't impact editor - hide the power buttons to avoid overflow when ui size is between `sm` and `md` (they are hidden automatically below `sm`) opw-4338929
This fix ensures overtime work entries are only generated when the relevant overtime setting/status allows it. It helps avoid incorrect overtime records, improving payroll and attendance accuracy for affected employees.
Original PR description
Purpose ======= The field was introduced when the overtime generation mechanism was already existing. But was included into the decision process to generate overtime work entries.
**Issue:** Two terms appear in English on an invoice. **Expected:** These terms should be translated in Spanish. **Steps to reproduce:** - Activate Accounting app in a Mexican database; - Create a customer invoice; - Send and print including the CFDI; - Open the PDF for the invoice; - The terms "Usage" and "Predial Account" appear untranslated. **Cause:** No translation have been found for these keys. **Fix:** Add Spanish translations for these terms. opw-4332513
Original PR description
**Issue:** Two terms appear in English on an invoice. **Expected:** These terms should be translated in Spanish. **Steps to reproduce:** - Activate Accounting app in a Mexican database; - Create a customer invoice; - Send and print including the CFDI; - Open the PDF for the invoice; - The terms "Usage" and "Predial Account" appear untranslated. **Cause:** No translation have been found for these keys. **Fix:** Add Spanish translations for these terms. opw-4332513
Users can now delete Data Cleaning storage records without hitting an unexpected system error. This prevents disruption during routine storage cleanup and keeps the Data Cleaning workflow reliable.
Original PR description
When the user tries to delete the storage record, A traceback will appear. Steps to reproduce the error: - Install ``data_cleaning`` module - Go to Data Cleaning > Storage > Select any record >…
When the user tries to delete the storage record,
A traceback will appear.
Steps to reproduce the error:
- Install ``data_cleaning`` module
- Go to Data Cleaning > Storage > Select any record > Actions > Delete > Delete
Traceback:
```
UndefinedTable: relation "ir_attachment_report" does not exist
LINE 1: DELETE FROM "ir_attachment_report" WHERE id IN (498, 963, 12...
^
File "odoo/http.py", line 2363, in __call__
response = request._serve_db()
File "odoo/http.py", line 1891, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1954, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 137, in retrying
result = func()
File "odoo/http.py", line 1921, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2168, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 329, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 727, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 35, in call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 517, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "odoo/models.py", line 4498, in unlink
cr.execute(SQL(
File "odoo/sql_db.py", line 354, in execute
res = self._obj.execute(query, params)
```
``ir.attachment.report`` model is ``_auto = False``.
So, a database table will not be created for the model.
When the user tries to delete the record of that model,
It will lead to the above traceback.
sentry-6073448766Code cleanup and technical improvements
This update cleans up automated guided test flows across several Odoo apps by removing unnecessary steps and using more realistic user interaction helpers. The change is internal, but it helps keep testing easier to maintain and better aligned with real user behavior.
Original PR description
In commit, we remove empty runs that no longer have a reason to exist. We also prefer to use tour helpers ( hover ) instead of using makeVisible functions in order to simulate user interactions as best as possible. We take advantage of this commit to remove the nextTick helper in webStudio (we no longer need it since 3bfd2e9cf8 ) https://github.com/odoo/enterprise/pull/74252
This update cleans up automated test flows across several Odoo apps by removing unnecessary steps and using more realistic interaction helpers. It does not change customer-facing features, but it should make internal test coverage easier to maintain and closer to real user behavior.
Original PR description
In commit, we remove empty runs that no longer have a reason to exist. We also prefer to use tour helpers ( hover ) instead of using makeVisible functions in order to simulate user interactions as best as possible. We take advantage of this commit to remove the nextTick helper in webStudio (we no longer need it since 3bfd2e9cf8 ) https://github.com/odoo/odoo/pull/187999
Miscellaneous changes
**task-4280164 opw-3985404** --- **[FIX] web_editor: removes figure parent of removed image** Steps to reproduce the issue: - In website, edit mode. - Drag and drop a "Picture" snippet onto the page. - Click the image in the "Picture" snippet. - Delete the image by clicking the "Remove" button in the image options. - Inspect the DOM of the "Picture" snippet. - Bug: The figure element which wrapped the image is still there. After this commit, when an image wrapped by a figure e
Original PR description
**task-4280164 opw-3985404** --- **[FIX] web_editor: removes figure parent of removed image** Steps to reproduce the issue: - In website, edit mode. - Drag and drop a "Picture" snippet onto the page.…
**task-4280164 opw-3985404** --- **[FIX] web_editor: removes figure parent of removed image** Steps to reproduce the issue: - In website, edit mode. - Drag and drop a "Picture" snippet onto the page. - Click the image in the "Picture" snippet. - Delete the image by clicking the "Remove" button in the image options. - Inspect the DOM of the "Picture" snippet. - Bug: The figure element which wrapped the image is still there. After this commit, when an image wrapped by a figure element is removed, the figure is also removed. --- **[FIX] web_editor: allows to edit events sidebar photos link** Before this commit, it was not possible to edit the link of the events sidebar photos. This occurred for 2 reasons: A - The image link option didn't work with images wrapped in a figure element. B - After fixing point A, the "href" attribute modification was ignored when saving the "/event" page. Steps to reproduce A: - Go to the "/event" page in edit mode. - Click on the 'Customize' tab and enable the sidebar. - Click a photo in the sidebar. - Bug: the URL input for setting the link is not available in the "Image" options. Steps to reproduce B (after fixing A): - Go to the "/event" page in edit mode. - Click on the 'Customize' tab and enable the sidebar. - Click a photo in the sidebar. - Edit the "Your URL" input. (e.g. [www.odoo.com](http://www.odoo.com/)) - Save the page. - Click the image with the modified link. - Bug: the new link was not saved. To fix issue B, we added the "href" attribute to the list of allowed root attributes. --- **[FIX] website_event: prevents removing sidebar photos** Steps to reproduce the issue: - Go to the "/event" page in edit mode. - Enable the sidebar. - Click a photo in the sidebar. - Click the "Delete" button in the image options. - The image is removed even though it shouldn't be allowed to remove it. This commit hide the "Delete" button for these sidebar images. --- **[FIX] website_event: fix editing of figcaption for event sidebar photos** Steps to reproduce the bug (only on Chrome): - Go to the "/event" page. - Enter edit mode. - Click the "Customize" tab and enable the "Sidebar". - Try to add a character at the end of the figcaption of the second photo in the sidebar. - Bug: it's not possible to add a new character. This requires further investigation, but the issue comes from how Chrome handles editing elements inside links. The fact that the <a> element was set to display inline caused the issue. This commit fixes the issue by setting the <a> element to display block, which is more appropriate anyway. Forward-Port-Of: odoo/odoo#186278
This commit fixes an issue where the Bill button was displayed even when early receipt printing was not enabled in the POS configuration. opw-4274728 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#184684
Original PR description
This commit fixes an issue where the Bill button was displayed even when early receipt printing was not enabled in the POS configuration. opw-4274728 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#184684
Steps to reproduce the issue: ============================= - Add a button in terms and conditions in an sale quotation - Print it as PDF - The button styles are missing Origin of the issue: ==================== After [1] the buttons are defined using css variables which are not supported by wkhtmltopdf. Solution: ========= Redefine the button styles for reports using scss variables in the same way they are done in `bootstrap_review_backend.scss` opw-4311049 [1]: https://gith
Original PR description
Steps to reproduce the issue: ============================= - Add a button in terms and conditions in an sale quotation - Print it as PDF - The button styles are missing Origin of the issue: ==================== After [1] the buttons are defined using css variables which are not supported by wkhtmltopdf. Solution: ========= Redefine the button styles for reports using scss variables in the same way they are done in `bootstrap_review_backend.scss` opw-4311049 [1]: https://github.com/odoo/odoo/commit/058212e12b5079eba870bde9775fe98f27928935 Forward-Port-Of: odoo/odoo#186907
Before this commit, if a sale order had some note lines and the rest of the lines had tax on them, there would be two lines created when applying a down payment. opw-4281589 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187300
Original PR description
Before this commit, if a sale order had some note lines and the rest of the lines had tax on them, there would be two lines created when applying a down payment. opw-4281589 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187300
Breadcrumb tooltips are not translated. This is because the tooltip is defined directly within props, which are not translated. This commit redefines the tooltip in a different way that allows translation. opw-4160838 Forward-Port-Of: odoo/odoo#187062 Forward-Port-Of: odoo/odoo#184555
Original PR description
Breadcrumb tooltips are not translated. This is because the tooltip is defined directly within props, which are not translated. This commit redefines the tooltip in a different way that allows translation. opw-4160838 Forward-Port-Of: odoo/odoo#187062 Forward-Port-Of: odoo/odoo#184555
### Steps to reproduce: - Install "l10n_pe_pos" - Switch to a Peruvian company and open a POS session - Sell a product with a partner specified (different from "Consumidor Final") - Try to refund the order - The partner is back to "Consumidor Final" and can't be changed ### Cause: The code supposed to put back the right partner is checking a wrong field (`this.pos.consumidorFinalAnonimoId` is undifined) so the partner is not correctly set. ### Solution: Use the correct field : `this
Original PR description
### Steps to reproduce: - Install "l10n_pe_pos" - Switch to a Peruvian company and open a POS session - Sell a product with a partner specified (different from "Consumidor Final") - Try to refund the order - The partner is back to "Consumidor Final" and can't be changed ### Cause: The code supposed to put back the right partner is checking a wrong field (`this.pos.consumidorFinalAnonimoId` is undifined) so the partner is not correctly set. ### Solution: Use the correct field : `this.pos.session._consumidor_final_anonimo_id` opw-4282195 Forward-Port-Of: odoo/odoo#187917
**Fix a bug that prevented approving allocation requests that required multiple approvers** **Steps to reproduce** 1. Create a new time off type and set `approval` to `By employee's approver and time off officer`. 2. Create a new allocation: * Use the time off type created above. * Set the number of days to 20. 3. Save the created allocation. 4. Go to `Management -> Allocations`. 5. Select the created allocation and press on the actions cog. 6. Press on `Approve Allocations`
Original PR description
**Fix a bug that prevented approving allocation requests that required multiple approvers**
**Steps to reproduce**
1. Create a new time off type and set `approval` to `By employee's approver and time off officer`.
2. Create a new allocation:
* Use the time off type created above.
* Set the number of days to 20.
3. Save the created allocation.
4. Go to `Management -> Allocations`.
5. Select the created allocation and press on the actions cog.
6. Press on `Approve Allocations`.
7. The allocation state doesn't change to `second approval`.
The action `Approve Allocations` doesn't take into account the allocations that are in the first stage of approval.
task-4207884
Forward-Port-Of: odoo/odoo#181364It is not necessary useful to prevent the event in our case, so we can just stop doing it while maintaining the same functionality. Preventing the event writes a log in the console, and we prefer to avoid having a log if we can keep the service without it. Forward-Port-Of: odoo/odoo#188418
Original PR description
It is not necessary useful to prevent the event in our case, so we can just stop doing it while maintaining the same functionality. Preventing the event writes a log in the console, and we prefer to avoid having a log if we can keep the service without it. Forward-Port-Of: odoo/odoo#188418
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#188421 Forward-Port-Of: odoo/odoo#188235
Original PR description
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#188421 Forward-Port-Of: odoo/odoo#188235
The `test_rate_limiting_base_ok` ensures that rate limiting does not activate when requests are made within the accepted delay. However, the test only waits for the exact delay duration, whereas the rate limiter expects the delay to be strictly greater than the threshold. This PR introduces a small additional wait time before each request to ensure it falls within the accepted range. It also verifies that the WebSocket (WS) remains connected at the end of the test. runbot-73027 Forward
Original PR description
The `test_rate_limiting_base_ok` ensures that rate limiting does not activate when requests are made within the accepted delay. However, the test only waits for the exact delay duration, whereas the rate limiter expects the delay to be strictly greater than the threshold. This PR introduces a small additional wait time before each request to ensure it falls within the accepted range. It also verifies that the WebSocket (WS) remains connected at the end of the test. runbot-73027 Forward-Port-Of: odoo/odoo#188461
In the overview, any user with no time off rights can go to the custom groupby filter "Leave" and see the time off type of other users. This commit hides this filter to prevent access. task-4241846 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186597
Original PR description
In the overview, any user with no time off rights can go to the custom groupby filter "Leave" and see the time off type of other users. This commit hides this filter to prevent access. task-4241846 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186597
Since October 2024, the Facebook mobile site (m.facebook.com) uses an 'X-Frame-Options' header set to 'deny', preventing iframe embedding across different domains. This header enforces a security policy restricting cross-origin access to the content. Meta has not provided any communication regarding this change. Until it is resolved, we have no choice but to hide the iframe on mobile to prevent users from seeing a "unavailable content" icon. Steps to reproduce: - In website edit mode. -
Original PR description
Since October 2024, the Facebook mobile site (m.facebook.com) uses an 'X-Frame-Options' header set to 'deny', preventing iframe embedding across different domains. This header enforces a security policy restricting cross-origin access to the content. Meta has not provided any communication regarding this change. Until it is resolved, we have no choice but to hide the iframe on mobile to prevent users from seeing a "unavailable content" icon. Steps to reproduce: - In website edit mode. - Drag and drop the "Facebook" snippet into the footer. - Save the page. - Open the dev tools and enable the mobile preview. - Bug: The "Facebook" snippet crashes. More info about the issue: https://developers.facebook.com/community/threads/550478830783215/ opw-4302563 opw-4309180 opw-4222359 opw-4277045 Forward-Port-Of: odoo/odoo#188200 Forward-Port-Of: odoo/odoo#186813
Using fiscal_country_codes in the invisible condition can result in the field being displayed multiple times, as multiple countries may meet the condition. Instead, we are using country_code, as it is more logical for the field to be visible only if the company is located in that specific country. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188099
Original PR description
Using fiscal_country_codes in the invisible condition can result in the field being displayed multiple times, as multiple countries may meet the condition. Instead, we are using country_code, as it is more logical for the field to be visible only if the company is located in that specific country. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188099
### Steps to Reproduce 1. Install i10n_il module 2. Go to Settings->Invoicing **Expected behavior:** Tax il_vat_inputs_17 (VAT inputs) is selected as default Purchase tax **Actual behavior:** Tax il_vat_self_inv_purchase (Self Invoice) is selected as default Purchase tax. This causes new Vendor Bills to be created without VAT Forward-Port-Of: odoo/odoo#186325
Original PR description
### Steps to Reproduce 1. Install i10n_il module 2. Go to Settings->Invoicing **Expected behavior:** Tax il_vat_inputs_17 (VAT inputs) is selected as default Purchase tax **Actual behavior:** Tax il_vat_self_inv_purchase (Self Invoice) is selected as default Purchase tax. This causes new Vendor Bills to be created without VAT Forward-Port-Of: odoo/odoo#186325
_*=payment_razorpay In This PR Razorpay payment onboarding form to take advantage of the Razorpay Connect Onboarding Flow. It integrates the Razorpay Onboarding using the IAP proxy. **Purpose** ======== Help users easily onboard with Razorpay by using the Razorpay Connect API. **Specification** =========== **1.Connect and authorized the razorpay account.** - To connect to a sub-merchant's Razorpay account, the application redirects the user to a Razorpay-hosted webpage. The
Original PR description
_*=payment_razorpay In This PR Razorpay payment onboarding form to take advantage of the Razorpay Connect Onboarding Flow. It integrates the Razorpay Onboarding using the IAP proxy. **Purpose**…
_*=payment_razorpay In This PR Razorpay payment onboarding form to take advantage of the Razorpay Connect Onboarding Flow. It integrates the Razorpay Onboarding using the IAP proxy. **Purpose** ======== Help users easily onboard with Razorpay by using the Razorpay Connect API. **Specification** =========== **1.Connect and authorized the razorpay account.** - To connect to a sub-merchant's Razorpay account, the application redirects the user to a Razorpay-hosted webpage. The user can approve or deny the authorisation request on this page. **2.Get an access token.** - After you obtain an access token, you can use it to access the sub-merchant data on Razorpay APIs. The access is controlled based on the scope requested for and granted by the user during the authorization process. **3.Get a refresh token.** - You can use refresh tokens to generate a new access token. If your access token expires, you will receive a 4XX response from the API. You can make a request using your refresh token to generate a new access token. **4.Revoke token.** - The API supports token revocation to enhance security and manage access. If needed, tokens can be revoked through this mechanism. **5.Create & update webhook.** - This method is responsible for creating or updating the Razorpay webhook associated with the current Odoo instance.The webhook is crucial for updating payment states within Odoo when changes occur in Razorpay. **6.Revoke the application from Razorpay.** - User can initiate the revocation of their application from the Razorpay side facilitating a seamless process for application revocation. task-3537535 Forward-Port-Of: odoo/odoo#188316 Forward-Port-Of: odoo/odoo#158578
The links created with the product_label_section_and_note_field widget won't work correctly. This commit, will change the link to the new format. This commit is a followup of odoo/odoo@98f7486 Forward-Port-Of: odoo/odoo#188403
Original PR description
The links created with the product_label_section_and_note_field widget won't work correctly. This commit, will change the link to the new format. This commit is a followup of odoo/odoo@98f7486 Forward-Port-Of: odoo/odoo#188403
When a SO is partially invoiced, and we change the 'Invoicing Switch Threshold' such that the partial invoices are before the new threshold, the SO will not take invoices into account for computation of amount to invoice / invoiced. Steps to reproduce (needs account_accountant installed): - Create a SO with a line having prod invoiced on delivery and qty 3 - Set delivered quantity to 1 - Click Create Invoice > create the draft invoice, set a date (date1) in the past - set a date2 Settin
Original PR description
When a SO is partially invoiced, and we change the 'Invoicing Switch Threshold' such that the partial invoices are before the new threshold, the SO will not take invoices into account for computation of amount to invoice / invoiced. Steps to reproduce (needs account_accountant installed): - Create a SO with a line having prod invoiced on delivery and qty 3 - Set delivered quantity to 1 - Click Create Invoice > create the draft invoice, set a date (date1) in the past - set a date2 Settings > Accounting > Invoicing Switch Threshold later than date1 - Back to the SO, set delivered quantity to 2 - Click Create Invoice > create a new invoice and confirm it Issue: Sale order amount invoiced will take into account only the latest invoice, while it should account also for the legacy invoices opw-4295531 Forward-Port-Of: odoo/odoo#188032 Forward-Port-Of: odoo/odoo#187211
# First fix Steps to reproduce: ------------------- 1. Install Project and Sales apps 2. Log in as admin user (e.g. Mitchell Admin), and create a billable project for a customer A 3. Invite user B (e.g. Marc Demo) to the project 4. Only give project (user) access rights to the user B, remove all other access rights 5. Create an SO with customer A as partner, add a service product (e.g. Junior Architect), confirm the SO and create a timesheet 6. Log in as user B, create a task in the bi
Original PR description
# First fix Steps to reproduce: ------------------- 1. Install Project and Sales apps 2. Log in as admin user (e.g. Mitchell Admin), and create a billable project for a customer A 3. Invite user B…
# First fix Steps to reproduce: ------------------- 1. Install Project and Sales apps 2. Log in as admin user (e.g. Mitchell Admin), and create a billable project for a customer A 3. Invite user B (e.g. Marc Demo) to the project 4. Only give project (user) access rights to the user B, remove all other access rights 5. Create an SO with customer A as partner, add a service product (e.g. Junior Architect), confirm the SO and create a timesheet 6. Log in as user B, create a task in the billable project from the task form, make sure customer A is set as partner 7. Save the task, an access error is raised Fix: ------------------- When creating a new task from the form, _inverse_partner_id() is called, which calls task._get_last_sol_of_customer(). As the user has no Sales access, the search of the SOL in _get_last_sol_of_customer() will raise an Access Error in such case. We add a sudo() before calling _get_last_sol_of_customer() to give the user access to the SOL we are looking for. # Second fix Steps to reproduce: ------------------- 1. Configure a user with the project > user and sales > user: own documents access rights 2. Log in with this user 3. Create a task in a billable project (e.g. for Deco Addict) 4. The compute automatically sets an SOL but the current user doesn't have access to the SOL (make sure that the user does not have access to the SOL that is set) 5. Error when trying to update the value of the SOL Fix: ------------------- We add a sudo() in _get_partner_display() to give the user access to the SO. As the user may not have access to the SO of the SOL that is currently set in the task. task-4207245 version-17.2 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188307 Forward-Port-Of: odoo/odoo#182184
Versions -------- - 17.0+ Steps ----- 1. Have 50% discount program; 2. have a deliverable $300 product; 3. have a $10 shipping method that's free for orders over $250; 4. in eCommerce, add the $300 product to your cart; 5. go to checkout; 6. remove the automatically applied discount; 7. proceed to payment; 8. select the $10 shipping method; 9. click the "Claim" button for the 50% discount. Issue ----- Shipping is still free despite the order being below $250. Cause -----
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Have 50% discount program; 2. have a deliverable $300 product; 3. have a $10 shipping method that's free for orders over $250; 4. in eCommerce, add the $300 product to your cart; 5. go to checkout; 6. remove the automatically applied discount; 7. proceed to payment; 8. select the $10 shipping method; 9. click the "Claim" button for the 50% discount. Issue ----- Shipping is still free despite the order being below $250. Cause ----- Delivery rate isn't recomputed after applying rewards. Solution -------- After applying a reward in eCommerce, update programs & rewards. If the reward isn't a payment program (gift card or eWallet), and the selected carrier has a `free_over` rule, recompute shipping costs. opw-4319533 Forward-Port-Of: odoo/odoo#188281 Forward-Port-Of: odoo/odoo#187296
After discussion with Pagero support, the BIC of the Payee must be set, therefore we add a constraint to enforce it when invoicing to Chorus Pro. opw-4139689 Forward-Port-Of: odoo/odoo#188277 Forward-Port-Of: odoo/odoo#187535
Original PR description
After discussion with Pagero support, the BIC of the Payee must be set, therefore we add a constraint to enforce it when invoicing to Chorus Pro. opw-4139689 Forward-Port-Of: odoo/odoo#188277 Forward-Port-Of: odoo/odoo#187535
Before this commit: Some logger.error(...) were ambigious and would just catch the exception to log it's error name without much details. Therefore it was wasting time trying to figure the cause of the error as we lack the traceback details After this commit: Most of them were switch to logger.exception which does add the Exception information to the logging messages automatically. Which include the error message alongside the full traceback. Log messages were also rewrote to be more
Original PR description
Before this commit: Some logger.error(...) were ambigious and would just catch the exception to log it's error name without much details. Therefore it was wasting time trying to figure the cause of the error as we lack the traceback details After this commit: Most of them were switch to logger.exception which does add the Exception information to the logging messages automatically. Which include the error message alongside the full traceback. Log messages were also rewrote to be more comprehensive than the: "An error encountered" Example of logs that would be improved: ``` 2024-11-19 07:19:50,611 1138 ERROR ? odoo.addons.hw_drivers.tools.helpers: Unable to load file: PrinterInterface_L.py 2024-11-19 07:19:50,612 1138 ERROR ? odoo.addons.hw_drivers.tools.helpers: An error encountered : (1280, 'Success') ``` Forward-Port-Of: odoo/odoo#187959 Forward-Port-Of: odoo/odoo#186162
Based on the received OXP feedback we are: * Activating cash basis by default. * All taxes are based on payment. task-4226448 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188106
Original PR description
Based on the received OXP feedback we are: * Activating cash basis by default. * All taxes are based on payment. task-4226448 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188106
Before this commit: duplicate words appeared in the GST state validation warning. After this commit: the duplicate words have been removed from the GST state validation warning. Forward-Port-Of: odoo/odoo#188243 Forward-Port-Of: odoo/odoo#187986
Original PR description
Before this commit: duplicate words appeared in the GST state validation warning. After this commit: the duplicate words have been removed from the GST state validation warning. Forward-Port-Of: odoo/odoo#188243 Forward-Port-Of: odoo/odoo#187986
The previously named 'Taxable Salary' for the salary rule 'GROSS' and the category 'GROSS' should be renamed in the US to 'Gross Pay'. Task: 4329661 Forward-Port-Of: odoo/enterprise#73760
Original PR description
The previously named 'Taxable Salary' for the salary rule 'GROSS' and the category 'GROSS' should be renamed in the US to 'Gross Pay'. Task: 4329661 Forward-Port-Of: odoo/enterprise#73760
The FormatAddressMixin implements a feature that will replace some parts of a view with some other when having no_address_format in the context. commit 28d8ee5ea27106bf21e5a25c3fce48d39ffed4fd partially solved the problem, but not for all the spots where we need to do a `get_view` without being parasited with the foreign tree parts. opw-4335439 Forward-Port-Of: odoo/enterprise#74529 Forward-Port-Of: odoo/enterprise#74257
Original PR description
The FormatAddressMixin implements a feature that will replace some parts of a view with some other when having no_address_format in the context. commit 28d8ee5ea27106bf21e5a25c3fce48d39ffed4fd partially solved the problem, but not for all the spots where we need to do a `get_view` without being parasited with the foreign tree parts. opw-4335439 Forward-Port-Of: odoo/enterprise#74529 Forward-Port-Of: odoo/enterprise#74257
Before this change the message was showing an out-of-date minimun amount to report info of the receptor. Also, the message is more clearly to the user: what are the cases and how to solve them Old Message  New Message  LATAM 1291 / Adhoc ticket 82478 Forward-Port-Of: odoo/enterprise#74485 F
Original PR description
Before this change the message was showing an out-of-date minimun amount to report info of the receptor. Also, the message is more clearly to the user: what are the cases and how to solve them Old Message  New Message  LATAM 1291 / Adhoc ticket 82478 Forward-Port-Of: odoo/enterprise#74485 Forward-Port-Of: odoo/enterprise#73203
Some strings weren't translatable/were missing from the pot files to be translated. Since these strings weren't translatable (i.e. no lost work), they have been updated to be more grammatically correct + understandable where useful. opw-4321317 Forward-Port-Of: odoo/enterprise#74132 Forward-Port-Of: odoo/enterprise#73854
Original PR description
Some strings weren't translatable/were missing from the pot files to be translated. Since these strings weren't translatable (i.e. no lost work), they have been updated to be more grammatically correct + understandable where useful. opw-4321317 Forward-Port-Of: odoo/enterprise#74132 Forward-Port-Of: odoo/enterprise#73854
The Indian government has revised the threshold limit for reporting inter-state invoices of unregistered customers in GSTR-1 from ₹250,000 to ₹100,000. With this PR, the threshold limits for unregistered customers (B2CL, B2CS, and CDNUR) are updated based on the invoice date: -For invoices dated before November 2024, the limit remains ₹250,000. -For invoices dated November 2024 or later, the limit is reduced to ₹100,000. task-4170878 Forward-Port-Of: odoo/enterprise#74557 Forward-Port-O
Original PR description
The Indian government has revised the threshold limit for reporting inter-state invoices of unregistered customers in GSTR-1 from ₹250,000 to ₹100,000. With this PR, the threshold limits for unregistered customers (B2CL, B2CS, and CDNUR) are updated based on the invoice date: -For invoices dated before November 2024, the limit remains ₹250,000. -For invoices dated November 2024 or later, the limit is reduced to ₹100,000. task-4170878 Forward-Port-Of: odoo/enterprise#74557 Forward-Port-Of: odoo/enterprise#72446
### Steps to reproduce: - Install Data Cleaning and Helpdesk modules - Create 2 Helpdesk tickets with conditions: - at least 1 helpdesk ticket has an SLA policy and is in a stage excluded by the SLA policy - at least 1 helpdesk ticket doesn't have an SLA deadline and has an SLA policy and is also in a stage excluded by the SLA policy - Merge those 2 tickets - Notice a traceback pops-up ### Current behavior before PR: In this commit https://github.com/odoo/enterprise/pull/69352/
Original PR description
### Steps to reproduce: - Install Data Cleaning and Helpdesk modules - Create 2 Helpdesk tickets with conditions: - at least 1 helpdesk ticket has an SLA policy and is in a stage excluded by the SLA…
### Steps to reproduce: - Install Data Cleaning and Helpdesk modules - Create 2 Helpdesk tickets with conditions: - at least 1 helpdesk ticket has an SLA policy and is in a stage excluded by the SLA policy - at least 1 helpdesk ticket doesn't have an SLA deadline and has an SLA policy and is also in a stage excluded by the SLA policy - Merge those 2 tickets - Notice a traceback pops-up ### Current behavior before PR: In this commit https://github.com/odoo/enterprise/pull/69352/commits/97e83104dad816a7a65345dea74a66e5dbea94cb a new merge method was introduced but in the new file we created we are importing datetime from datetime and then using datetime.datetime and since we are already importing the sepcific class we don't need to call it like module.class.method ### Desired behavior after PR is merged: We are calling the method directly from the class without using the module before the call so it is only datetime.max opw-4330793 Forward-Port-Of: odoo/enterprise#74383
This draft change touches the Belgian reporting area, but the provided details only indicate a generic message update. Based on the available information, it appears to be a minor internal change with limited business impact.
## [IMP] hr_payroll_expense: Add Error when no expense rule is found This commit improves "expenses to be reimbursed in a payslip "config Before this commit: There was no way for a user to know if a payslip set to be reimbursed in a payslip would never be due to a bad configuration. After this commit: The user now gets an error when choosing to reimburse an expense through a payslip, asking to first setup a proper rule. task-id: 4273421 ## [IMP] hr_payroll_expense: Add a test
Original PR description
## [IMP] hr_payroll_expense: Add Error when no expense rule is found This commit improves "expenses to be reimbursed in a payslip "config Before this commit: There was no way for a user to know if a payslip set to be reimbursed in a payslip would never be due to a bad configuration. After this commit: The user now gets an error when choosing to reimburse an expense through a payslip, asking to first setup a proper rule. task-id: 4273421 ## [IMP] hr_payroll_expense: Add a test ensuring no sheet if no rule In https://github.com/odoo/enterprise/commit/6e4a94f530643a9ad7b461d49e149a339bc6a341, the issue of expense sheets being linked to payslips whose structure missed an expense ruled was resolved, but no test was added. This adds a test covering this case, to make sure it never happens again Forward-Port-Of: odoo/enterprise#72912
A CP200 employee may be eligible for exoneration based on the number of dependent children they have. This change: * Takes the value of exoneration into account in the computation of termination fees withholding taxes. * Refactors the computation of withholding taxes for `double holiday pay`, `13th month` and `termination fees` into one function. task-3909012 Forward-Port-Of: odoo/enterprise#73931 Forward-Port-Of: odoo/enterprise#73557
Original PR description
A CP200 employee may be eligible for exoneration based on the number of dependent children they have. This change: * Takes the value of exoneration into account in the computation of termination fees withholding taxes. * Refactors the computation of withholding taxes for `double holiday pay`, `13th month` and `termination fees` into one function. task-3909012 Forward-Port-Of: odoo/enterprise#73931 Forward-Port-Of: odoo/enterprise#73557
### Steps to reproduce: - Install "l10n_cl_edi_pos" - Create a new company with the Chilian localization - Do not add a VAT number - Go to POS, create an order and validate - The date is not displayed on the ticket ### Cause: The localization is moving the date from the bottom of the receipt to the header but the conditions are not the same: - If the country of the company is Chile then date is removed from the bottom - If the company has a Chilian VAT the date is shown in the header
Original PR description
### Steps to reproduce: - Install "l10n_cl_edi_pos" - Create a new company with the Chilian localization - Do not add a VAT number - Go to POS, create an order and validate - The date is not displayed on the ticket ### Cause: The localization is moving the date from the bottom of the receipt to the header but the conditions are not the same: - If the country of the company is Chile then date is removed from the bottom - If the company has a Chilian VAT the date is shown in the header So there is a case where none of the conditions are True and the date does not show. ### Solution: Add a condition on the VAT to delete the date from the bottom. opw-4330252 Forward-Port-Of: odoo/enterprise#74245
In studio, click on Edit Menu in the main navbar. Add a menu or edit the name of a menu. Click Confirm Before this commit, the hierarchical list of the menu editor was not updated. This was due to the fact that studio's dialog service is altered to allow it to have the specific studio sub environment It is that way since 2ae63d9a43ba973d905232105201d88e423a8245 As a consequence, the "menu changed" event triggerd by the menu service on the main environment's bus was not forwarded to to studi
Original PR description
In studio, click on Edit Menu in the main navbar. Add a menu or edit the name of a menu. Click Confirm Before this commit, the hierarchical list of the menu editor was not updated. This was due to the fact that studio's dialog service is altered to allow it to have the specific studio sub environment It is that way since 2ae63d9a43ba973d905232105201d88e423a8245 As a consequence, the "menu changed" event triggerd by the menu service on the main environment's bus was not forwarded to to studio's env's bus. After this commit, the hierarchical list is updated correctly task-4001101 Forward-Port-Of: odoo/enterprise#74354
Steps to reproduce: - Install both hr_contract_salary and l10n_hk_Hr_payroll - Try to review a contract in recruitment Current behaviour: - Exception raised Expected behaviour: - No exception raised Explanation: - Internet allowance is based on employee actual work days. However, for candidate who hasn't join the company, they won't have any work days. Therefore the salary internet rules prorata_rate will be divided by zero, and raised exceptions. X-original-commit: f9e7
Original PR description
Steps to reproduce: - Install both hr_contract_salary and l10n_hk_Hr_payroll - Try to review a contract in recruitment Current behaviour: - Exception raised Expected behaviour: - No exception raised Explanation: - Internet allowance is based on employee actual work days. However, for candidate who hasn't join the company, they won't have any work days. Therefore the salary internet rules prorata_rate will be divided by zero, and raised exceptions. X-original-commit: f9e7d39 Forward-Port-Of: odoo/enterprise#73630
### Steps to reproduce the issue: 1. Create an Invoice with "ODOO_BUG" as payment reference 2. Create a Bank Transaction with the same amount and customer as the Invoice and "ODOO_BUG" as Label 3. The Transaction and the Invoice are automatically matched 4. Create an Invoice with "ODOO BUG" as payment reference 5. Create a Bank Transaction with the same amount and customer as the Invoice and "ODOO BUG" as label 6. The Transaction and the Invoice are not automatically matched ### Expla
Original PR description
### Steps to reproduce the issue: 1. Create an Invoice with "ODOO_BUG" as payment reference 2. Create a Bank Transaction with the same amount and customer as the Invoice and "ODOO_BUG" as Label 3.…
### Steps to reproduce the issue: 1. Create an Invoice with "ODOO_BUG" as payment reference 2. Create a Bank Transaction with the same amount and customer as the Invoice and "ODOO_BUG" as Label 3. The Transaction and the Invoice are automatically matched 4. Create an Invoice with "ODOO BUG" as payment reference 5. Create a Bank Transaction with the same amount and customer as the Invoice and "ODOO BUG" as label 6. The Transaction and the Invoice are not automatically matched ### Explanation: When evaluating `st_line_text_values` in `_get_invoice_matching_st_line_tokens`, the values are split at every whitespace. When trying to find `account.move.line` that match the tokens resulting from the operations, every `name`, `move_id.name` or `move_id.ref` with a whitespace in it will not be recognized due to the whitespaces being removed from the `account.bank.statement.line` side. ### Fix reasoning: From a business perspective, no Invoice/Payment/Bill reference should have a space in it bar some already covered exceptions. To avoid performance heavy queries, the text value will simply be added to `exact_tokens` and treated as such, allowing for an automatical reconciliation between an `account.move.line` and an `account.bank.statement.line` if their refs match perfectly. opw-4114296 Forward-Port-Of: odoo/enterprise#71431
### Steps to reproduce the issue: 1. Activate Mexican Localization 2. With a Mexican Company, create an Invoice and add a Product with a valid UNSPSC code 3. On the Invoice Line, set Price to 1030.17 and add a 3% Discount 4. Confirm then Send & Print (with CFDI checked) 5. In the generated XML, the following values are off: - In node "Comprobante, SubTotal="1030.16" Descuento="30.90" - In node "Concepto", ValorUnitario="1030.16" Importe="1030.16" Descuento="30.90" - Expecte
Original PR description
### Steps to reproduce the issue: 1. Activate Mexican Localization 2. With a Mexican Company, create an Invoice and add a Product with a valid UNSPSC code 3. On the Invoice Line, set Price to 1030.17…
### Steps to reproduce the issue:
1. Activate Mexican Localization
2. With a Mexican Company, create an Invoice and add a Product with a valid UNSPSC code
3. On the Invoice Line, set Price to 1030.17 and add a 3% Discount
4. Confirm then Send & Print (with CFDI checked)
5. In the generated XML, the following values are off:
- In node "Comprobante, SubTotal="1030.16" Descuento="30.90"
- In node "Concepto", ValorUnitario="1030.16" Importe="1030.16" Descuento="30.90"
- Expected are 1030.17 and 30.91
### Explanation:
During the calculation of the values for the CFDI, `gross_price_subtotal_before_discount` is calculated using `price_subtotal` in every case where `discount` is not 100%. This is due to other values affecting `price_subtotal` (e.g.: taxes with `price_include=True`), in which case calculating a value related to `price_subtotal` with `price_unit` would give the wrong result.
This calculation method causes rounding issues such as above because `price_subtotal` is rounded before calculating `gross_price_subtotal_before_discount`.
### Fix reasoning:
We need to account for any value that could affect `price_subtotal` and make it different from `price_unit * quantity` except for `discount`, which will be included when comparing both values.
The case `discount == 100.0` is covered by this new condition as well, since `discount_factor` would equal to 0 and `price_subtotal` too.
opw-4183556
Forward-Port-Of: odoo/enterprise#72593Issue ----- With helpdesk_fsm installed, uninstall helpdesk_fsm or any module that will trigger its uninstallation (e.g. helpdesk): Error: ``` in fields.py: fields = records.pool.field_computed[self] KeyError: 'helpdesk.team.fsm_project_id' ``` Cause ----- Issue since 1da1467115726263e5cdc50354b4413f8bb7ca7d and the addition of `use_fsm` as a dependency of `_compute_fsm_project_id` When we uninstall any helpdesk module, we set to False the associated fields of all helpdesk team
Original PR description
Issue ----- With helpdesk_fsm installed, uninstall helpdesk_fsm or any module that will trigger its uninstallation (e.g. helpdesk): Error: ``` in fields.py: fields = records.pool.field_computed[self]…
Issue ----- With helpdesk_fsm installed, uninstall helpdesk_fsm or any module that will trigger its uninstallation (e.g. helpdesk): Error: ``` in fields.py: fields = records.pool.field_computed[self] KeyError: 'helpdesk.team.fsm_project_id' ``` Cause ----- Issue since 1da1467115726263e5cdc50354b4413f8bb7ca7d and the addition of `use_fsm` as a dependency of `_compute_fsm_project_id` When we uninstall any helpdesk module, we set to False the associated fields of all helpdesk teams (mapped in `_get_field_modules`) for all uninstalled modules. https://github.com/odoo/enterprise/blob/9fba5f841c3c0710eb0cce00263bf914dac03dc6/helpdesk/models/ir_module.py#L13-L16 The change of `use_fsm` means `fsm_project_id` is marked as a field to be recomputed. This happens at some point during a `flush_all`, but after the field has been deleted in DB and a new registry has been loaded without that field. Change ----- Force a recomputation by flushing the records. opw-4338172 opw-4339801 Forward-Port-Of: odoo/enterprise#74255
Steps to reproduce ================== - Install crm,web_studio - Enable leads - Go to CRM > Configuration > Sales Team - Open the first record - Uncheck Pipeline and Leads - Go to CRM > Sales > Teams - Open studio => Undefined graph model for Sales Team: Pre-Sales Cause of the issue ================== The window action uses the following domain `[["use_opportunities", "=", true]]` It is not used from within studio. opw-4285413 Forward-Port-Of: odoo/enterprise#74397 Forwar
Original PR description
Steps to reproduce ================== - Install crm,web_studio - Enable leads - Go to CRM > Configuration > Sales Team - Open the first record - Uncheck Pipeline and Leads - Go to CRM > Sales > Teams - Open studio => Undefined graph model for Sales Team: Pre-Sales Cause of the issue ================== The window action uses the following domain `[["use_opportunities", "=", true]]` It is not used from within studio. opw-4285413 Forward-Port-Of: odoo/enterprise#74397 Forward-Port-Of: odoo/enterprise#74091
6 changes
Resolved issues and error corrections
This update ensures that address formatting for Mexico (MX) within the Odoo Enterprise system aligns with the community version. Previously, there was a discrepancy in how MX addresses were handled, and this change corrects that to maintain consistent data and reporting. This improves data accuracy and simplifies processes for users in Mexico.
Original PR description
Update enterprise formatting override for MX addresses to be consistent with community, see PR: https://github.com/odoo/odoo/pull/186926 Forward-Port-Of: odoo/enterprise#74503
This update corrects a misleading description in the module's documentation. Previously, it stated that posting invoices automatically generated payments, a feature removed in Odoo 13. The change ensures the module description accurately reflects the current functionality, avoiding confusion for users.
Original PR description
The module description of `account_sepa_direct_debit` in the manifest states that posting an invoice will automatically generate a payment. Actually that feature was dropped in Odoo 13 with commit e3d390c4455c620793c481874b4503fa91bb6125 but the `__manifest__.py` was not updated at that time. This makes the situation uncomfortable where a feature not present in the code is still advertised in the module description. This commit updates the description of the module in the manifest. Forward-Port-Of: odoo/enterprise#73380
This update corrects a technical issue where a specific product view was incorrectly prioritized, leading to inaccurate search results and potential problems with inventory reporting. By adjusting the view's priority, we've ensured that product searches are more accurate and reliable, improving data consistency.
Original PR description
Currently the view has the default priority and become the main search view for product despite being specific to industry_fsm_sale. It creates issues in inventory at date view where the filters doesn't exist due to this.
A bug in a test was causing nightly builds to fail. The fix ensures the test correctly identifies items by their unique ID, rather than relying on a related request ID. This resolves an instability issue and guarantees consistent test results.
Original PR description
In the test I added in 16ad0830fd71d4dbf719471c8f303372da3f7e09, the id should be the one of the item and not the request. The test only works if the request and item have the same id, breaking nightly runbot builds.
This update fixes an issue where images in welcome email templates were excessively large, causing layout problems. The changes ensure images are appropriately sized, improving the visual presentation of these emails. Additionally, the source paths for these templates have been corrected.
Original PR description
Apply [this fix] to templates introduced with [this commit]. The purpose is to prevent images that are the only child of their parent from taking too much space. Furthermore, fix the src path for some of these templates. [this fix]: https://github.com/odoo/odoo/commit/d5297a75f50022b406b226ebf4c300f4bd033c3d [this commit]: https://github.com/odoo/enterprise/commit/fd98660e352512e0b74d91958707687978154833 task-4178640
This update corrects a technical issue preventing service invoices from correctly passing a validation check. The reason field, which was incorrectly required, has been removed from the process for service invoices. This ensures smoother invoice generation and avoids disruptions for users.
Original PR description
Oversight of odoo/enterprise#73209. Service invoices don't use the reason field at all (hidden in view) and thus will always fail the constraint. To fix it, disable the constraint for service invoices. opw-4354637