Daily updates from Odoo
Navigate
Branch
Thursday, June 20, 2024
51 changes
20 changes
Resolved issues and error corrections
Fixed an issue where optional products suggested during mobile self-order checkout appeared unavailable even when they should be orderable. This ensures restaurant customers can add related products from the mobile menu when product availability rules allow them.
Original PR description
To reproduce the bug follow the instructions: - Have pos and sales app installed - Go to pos app setting and enable is a Restorant setting - Back to the dashboard you should have a new shop called…
To reproduce the bug follow the instructions:
- Have pos and sales app installed
- Go to pos app setting and enable is a Restorant setting
- Back to the dashboard you should have a new shop called Restorant
- Go to the products from and create a product ('pencil' for instance), make it available in pos and in self-order and assign to it a category
- Add another product ('paper') with the same options in pos side and assign to it the same category, then add the first product ('pencil') to its optional product in sales section
- Back to pos dashboard open a sessing in Restorant shop then go back again to the dashboard
- Click on the tree dots on the top right of the Restorant shop block and click on the mobile view
- Create a new order adding 'paper' to the command then go to checkout
Now the optional product 'pencil' should be shown but it's unavailable.
A feature was added in Odoo 17.1 and newer for the availibility of the product on the point of sale app. It filter the product based on the availability hours of its categories. This brought changes to ProductCard component witch (you can check product_list_page) in pos_self_order modul for that. The thing is that these change wasn't made is pos_self_order_sale modul witch made the product always shown as unavailable.
### **opw-3977238**This update fixes a problem that could prevent the Odoo web client from reloading correctly in the iOS app. It improves reliability for users accessing Odoo on iPhones or iPads, reducing disruptions during mobile use.
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
Closing a live chat window while the chatbot is still processing no longer triggers an error. This makes the chat experience more reliable for users and avoids unnecessary system error reports.
Original PR description
When bot is processing steps and you close the `chatwindow` it throws error as the thread has been deleted so it won't be able to process next steps. This PR fixes the issue by adding necessary checks. Runbot Issue:-[64922](https://runbot.odoo.com/web/#id=64922&view_type=form&model=runbot.build.error&menu_id=405&cids=1) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixed an issue where creating a sales lead from website live chat could crash when the visitor was logged in as a portal user. This helps ensure live chat conversations can be converted into leads reliably, preventing missed follow-up opportunities.
Original PR description
opw-3858298
Miscellaneous changes
**Steps to reproduce:** - Install Sale and Project modules - Create a project with 1 or 2 stages - Create more than 1 task in this project - Assign those tasks to a Sale order - Go to this sale order and click on tasks smart button **Current behavior before PR:** When clicking on the task smart button in a sale order you will see lots of stages that are not associated with the shown tasks' project. This is happening because the value assigned to default_project_id in the context is
Original PR description
**Steps to reproduce:** - Install Sale and Project modules - Create a project with 1 or 2 stages - Create more than 1 task in this project - Assign those tasks to a Sale order - Go to this sale order and click on tasks smart button **Current behavior before PR:** When clicking on the task smart button in a sale order you will see lots of stages that are not associated with the shown tasks' project. This is happening because the value assigned to default_project_id in the context is False. https://github.com/odoo/odoo/blob/saas-16.4/addons/sale_project/models/sale_order.py#L166 **Desired behavior after PR is merged:** We are now just showing the stages associated with the shown tasks' project by assigning those tasks' project id to the default_project_id value in context. opw-3929012 Forward-Port-Of: odoo/odoo#169684 Forward-Port-Of: odoo/odoo#168035
During a fw-port, an error was made and the "or" became an "and". This fixes it, to hide the tab if the move is not from a polish company. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168502
Original PR description
During a fw-port, an error was made and the "or" became an "and". This fixes it, to hide the tab if the move is not from a polish company. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168502
The issue: When creating an invoice from multiple sale orders, each invoice line is going to be linked to the appropriate sale order line from each sale order, which will cause a singleton traceback when trying to access the is_downpayment field Expected behavior: to confirm the invoice Current Behavior: Singleton traceback opw-3878327 Forward-Port-Of: odoo/odoo#167064 Forward-Port-Of: odoo/odoo#163766
Original PR description
The issue: When creating an invoice from multiple sale orders, each invoice line is going to be linked to the appropriate sale order line from each sale order, which will cause a singleton traceback when trying to access the is_downpayment field Expected behavior: to confirm the invoice Current Behavior: Singleton traceback opw-3878327 Forward-Port-Of: odoo/odoo#167064 Forward-Port-Of: odoo/odoo#163766
When demo data is loaded by user from UI, the same records are created as is done with loading demo data, ideally they should have same attributes but loading through python function doesn't result in same because noupdate flag is not set. And when ORM tries to remove these records it ends up causing an error. similar:https://github.com/odoo/odoo/pull/162080 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: ---
Original PR description
When demo data is loaded by user from UI, the same records are created as is done with loading demo data, ideally they should have same attributes but loading through python function doesn't result in same because noupdate flag is not set. And when ORM tries to remove these records it ends up causing an error. similar:https://github.com/odoo/odoo/pull/162080 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#168726
Before commit: When creating an expense through an email alias, it can sometimes have no product_id set. This usually causes a clean error message to pop up, but here there was a traceback due to the use of product_uom_id.rounding before we get to show the error message After commit: The traceback is solved and the correct error message is shown opw-3921278 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165552
Original PR description
Before commit: When creating an expense through an email alias, it can sometimes have no product_id set. This usually causes a clean error message to pop up, but here there was a traceback due to the use of product_uom_id.rounding before we get to show the error message After commit: The traceback is solved and the correct error message is shown opw-3921278 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165552
Currently, a traceback occurs when the user changes the type of a product. Steps to reproduce:- 1) Install sale, POS 2) Create a confirmed sale order with a product 2) Now change the product type for the above created `SO` product Error:- ``` TypeError: 'NoneType' object does not support item assignment ``` In the [1] commit there is no return type, So it by default returns None. Because of no return type, the value of `res` would be `None` at [2]. It leads to a traceback wh
Original PR description
Currently, a traceback occurs when the user changes the type of a product. Steps to reproduce:- 1) Install sale, POS 2) Create a confirmed sale order with a product 2) Now change the product type for the above created `SO` product Error:- ``` TypeError: 'NoneType' object does not support item assignment ``` In the [1] commit there is no return type, So it by default returns None. Because of no return type, the value of `res` would be `None` at [2]. It leads to a traceback when assigning a value to `res`, which is a `NoneType` at [3]. [1] https://github.com/odoo/odoo/commit/d9c5d163f251f59829b00decae94044941ee44e4 [2] https://github.com/odoo/odoo/blob/a142a51faa8ab8cce9c9ae4a14e15646c2118f5e/addons/sale/models/product_template.py#L95 [3] https://github.com/odoo/odoo/blob/a142a51faa8ab8cce9c9ae4a14e15646c2118f5e/addons/sale/models/product_template.py#L97 sentry-5488262774 Forward-Port-Of: odoo/odoo#169376
The certificate issuer name in the Factura-e XML needs to be formatted in a very specific way. Else it fails the validators of the Basque Region in Spain. This commit changes the format to be the same as in module l10n_es_edi_tbai . task-3990176 Forward-Port-Of: odoo/odoo#169609
Original PR description
The certificate issuer name in the Factura-e XML needs to be formatted in a very specific way. Else it fails the validators of the Basque Region in Spain. This commit changes the format to be the same as in module l10n_es_edi_tbai . task-3990176 Forward-Port-Of: odoo/odoo#169609
Current behavior: When the restaurant is opened and "Self Ordering" is set to "QR menu", the banner "We're currently closed." is shown. Steps to reproduce: - Install "Point of Sale" app and "pos_restaurant" module - Start a restaurant session and go to the backend - In the settings, set "Self Ordering" to "QR menu" and save - Click on "Preview Web interface" - Problem: The banner is shown Solutions: Display the banner if the session is not opened rather than when we have a token (in
Original PR description
Current behavior: When the restaurant is opened and "Self Ordering" is set to "QR menu", the banner "We're currently closed." is shown. Steps to reproduce: - Install "Point of Sale" app and "pos_restaurant" module - Start a restaurant session and go to the backend - In the settings, set "Self Ordering" to "QR menu" and save - Click on "Preview Web interface" - Problem: The banner is shown Solutions: Display the banner if the session is not opened rather than when we have a token (in mode "QR menu", there is no token) opw-3854839 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169618
The tour is not actually ran in this version, and is blocked before in other versions. We should fix it in an other PR. This typo causes a check on available steps to fail in master. runbot-68355 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169973 Forward-Port-Of: odoo/odoo#169646
Original PR description
The tour is not actually ran in this version, and is blocked before in other versions. We should fix it in an other PR. This typo causes a check on available steps to fail in master. runbot-68355 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169973 Forward-Port-Of: odoo/odoo#169646
Credit notes shoudn't make the down payment reference disappear from the matching down payment SO line. opw-3904918 See #168418 for further details Forward-Port-Of: odoo/odoo#169859 Forward-Port-Of: odoo/odoo#169779
Original PR description
Credit notes shoudn't make the down payment reference disappear from the matching down payment SO line. opw-3904918 See #168418 for further details Forward-Port-Of: odoo/odoo#169859 Forward-Port-Of: odoo/odoo#169779
Before this PR: When loggin into a company, it would simply add the new company in the list of the currently selected/active companies, this made it harder to use or stay in single-company mode. After this PR: Logging into a company will now switch companies if we are in single-company mode, essentially making the user stay in single-company mode. The user can still toggle companies to enter multi-company mode. *This behaviour got lost when adding the branches system in the company s
Original PR description
Before this PR: When loggin into a company, it would simply add the new company in the list of the currently selected/active companies, this made it harder to use or stay in single-company mode. After this PR: Logging into a company will now switch companies if we are in single-company mode, essentially making the user stay in single-company mode. The user can still toggle companies to enter multi-company mode. *This behaviour got lost when adding the branches system in the company service.* Task ID: 3927141 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169716 Forward-Port-Of: odoo/odoo#165227
This commit import payment_token file in __init__ which was missed by [1] PR to properly execute it's code and do not return any token for express checkout. [1]: https://github.com/odoo/odoo/pull/107788 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#169942
Original PR description
This commit import payment_token file in __init__ which was missed by [1] PR to properly execute it's code and do not return any token for express checkout. [1]: https://github.com/odoo/odoo/pull/107788 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#169942
Versions -------- - 15.0+ Steps ----- 1. Go to Sale / Configuration / Units of Measure Categories; 2. go to Working Time; 3. set rounding precision of Hours to 1.0; 4. create a SO, selling 10 hours of timesheeted service; 5. click confirm; 6. add 9.1 hours to a timesheet for the SO. Issue ----- The sale order line displays 9 hours delivered, while a smart button displays 10 hours recorded. Cause ----- The smart button displays the value of the `timesheet_total_duration` fie
Original PR description
Versions -------- - 15.0+ Steps ----- 1. Go to Sale / Configuration / Units of Measure Categories; 2. go to Working Time; 3. set rounding precision of Hours to 1.0; 4. create a SO, selling 10 hours…
Versions -------- - 15.0+ Steps ----- 1. Go to Sale / Configuration / Units of Measure Categories; 2. go to Working Time; 3. set rounding precision of Hours to 1.0; 4. create a SO, selling 10 hours of timesheeted service; 5. click confirm; 6. add 9.1 hours to a timesheet for the SO. Issue ----- The sale order line displays 9 hours delivered, while a smart button displays 10 hours recorded. Cause ----- The smart button displays the value of the `timesheet_total_duration` field, this field gets computed with `_compute_quantity` method of `uom.uom`, which defaults to the `UP` rounding method: https://github.com/odoo/odoo/blob/b724fbcf6f348ed7a9109a325d366be69c052d1c/addons/uom/models/uom_uom.py#L216 In contrast, the SOL displays the result of `_get_delivered_quantity_by_analytic`, which uses the same `uom.uom` method, but with the `HALF-UP` rounding method: https://github.com/odoo/odoo/blob/b724fbcf6f348ed7a9109a325d366be69c052d1c/addons/sale/models/sale_order_line.py#L387 Solution -------- Modify the `_compute_timesheet_total_duration` methods of `account.move` and `sale.order` to use the same rounding method as the `_get_delivered_quantity_by_analytic` method. opw-3949986 Forward-Port-Of: odoo/odoo#169900 Forward-Port-Of: odoo/odoo#167607
Before this commit, the restricted editor would see the "Edit" button regardless of the current language. This led to unpredictable results: no editable content, editing the source, or editing the translation. Now, we display the correct buttons for translating and editing. Previously, if you edited a blog in French while your website's default language was English, it would overwrite the French source instead of translating it. Now, it correctly translates the content. X-original-commi
Original PR description
Before this commit, the restricted editor would see the "Edit" button regardless of the current language. This led to unpredictable results: no editable content, editing the source, or editing the translation. Now, we display the correct buttons for translating and editing. Previously, if you edited a blog in French while your website's default language was English, it would overwrite the French source instead of translating it. Now, it correctly translates the content. X-original-commit: 1bcc0733c9af52c6cf38b12f24ff6ed96314bec4 Forward-Port-Of: odoo/odoo#170109
Use case: - LOT A 20 units in stock - LOT B 20 units in stock - Do an outgoing picking for 10 units - Reserve - Remove the `stock.move.line` - Add a new line of B Current behavior: Line is prefilled for 20 units Expected: Line only takes the 10 units missing It's due to commit [1] enforcing the computation on the origin move and not the current situation [1] commit 383d4eb98ba4bfbcb384b3d1ee27393da00226e7 Description of the issue/feature this PR addresses: Current beha
Original PR description
Use case: - LOT A 20 units in stock - LOT B 20 units in stock - Do an outgoing picking for 10 units - Reserve - Remove the `stock.move.line` - Add a new line of B Current behavior: Line is prefilled for 20 units Expected: Line only takes the 10 units missing It's due to commit [1] enforcing the computation on the origin move and not the current situation [1] commit 383d4eb98ba4bfbcb384b3d1ee27393da00226e7 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#168162
The live chat uses cookies to save data about the ongoing conversation, such as the thread name. When this information contains non-ASCII characters, the behavior of the cookie is not consistent across browsers. Safari does not store it properly, and trying to parse it later on results in a crash. Until version 17 ([1]), the fix relied on encoding the data using the `encodeURIComponent` method. However, cookie size is limited to 4096 bytes, and this limit can be reached. Starting with v
Original PR description
The live chat uses cookies to save data about the ongoing conversation, such as the thread name. When this information contains non-ASCII characters, the behavior of the cookie is not consistent across browsers. Safari does not store it properly, and trying to parse it later on results in a crash. Until version 17 ([1]), the fix relied on encoding the data using the `encodeURIComponent` method. However, cookie size is limited to 4096 bytes, and this limit can be reached. Starting with version 17.3, the live chat does not use cookies anymore ([2]). This PR backports this behavior to fix the issue. opw-3968341 [1]: https://github.com/odoo/odoo/pull/168524 [2]: https://github.com/odoo/odoo/pull/167495 Forward-Port-Of: odoo/odoo#169395
13 changes
Enhancements to existing features
This update refreshes the app icons used in Knowledge and spreadsheet-related actions so they look more consistent across Odoo. Users will see clearer, more standardized visual cues when navigating these areas.
Original PR description
### `spreadsheet_edition`: add UI app icon Based on the introduction of the app icon for `spreadsheet`, this PR adds an UI icon for spreadsheet related actions. ### `knowledge`: normalize UI app icon…
### `spreadsheet_edition`: add UI app icon Based on the introduction of the app icon for `spreadsheet`, this PR adds an UI icon for spreadsheet related actions. ### `knowledge`: normalize UI app icon Mirror changes applied in community, [odoo/#163328](https://github.com/odoo/odoo/pull/163328). task-3884720 Requires: - https://github.com/odoo/odoo/pull/163328 --- | Before | After | |--------|--------| | <img width="233" alt="Capture d’écran 2024-05-30 à 11 46 06" src="https://github.com/odoo/enterprise/assets/80679690/d28f7070-94ef-4c6e-8a17-da535c0865f5"> | <img width="238" alt="Capture d’écran 2024-04-26 à 08 49 46" src="https://github.com/odoo/enterprise/assets/80679690/ccfce39d-84cc-43f9-82b9-1f2fc2341a6b"> | |  |  |
Belgian salary package forms now require notes when employees select hospital or ambulatory insurance for a spouse or other family beneficiaries. This helps payroll teams collect the identities needed to process these insurance benefits correctly and avoid incomplete benefit requests.
Original PR description
With this commit, hospital and ambulatory insurance notes are now required when the respective options are selected. This is not implemented in a generic way, as it is only needed for Belgian payroll and salary benefits (as opposed to personal information) usually have sensible default values. In addition, the insurance fields are currently already handled with custom javascript. task-3866298
The appraisal screen buttons have been reordered so the most important actions appear first. This makes the workflow clearer and helps users find primary actions more quickly.
Original PR description
reorder the buttons to put the ones that can be primary in first positions task-3987601
Empty views now show helpful guidance directly from the view display area, making it easier for users to understand when there are no records and how to get started. Knowledge embedded views also benefit from this guidance, improving the first-use experience when content has not yet been added.
Original PR description
This PR will move the no-content helper from the view controllers to the view renderers and add a `o_empty` class on the renderer container when the no-content helper is shown allowing people to define new css rules. task-3381729
Salary attachment reports now include every configured attachment type instead of only three predefined categories. This gives payroll teams a more complete view and reduces the need for manual follow-up when custom or additional attachment types are used.
Original PR description
After this commit, salary attachment reports will list all available salary attachment types and not the 3 hard coded ones that were previously available task-3943424
Spreadsheet users now see distinct options for stacked and non-stacked Odoo charts in the chart side panel. This makes chart selection clearer and helps users choose the right visualization more easily.
Original PR description
This commit create distinct types for stacked/non stacked odoo charts in the side panel. Task: 3978202
The Bill of Materials overview now loads key information first instead of calculating every stock detail upfront. This makes the report much faster to open for complex products with many nested components, while detailed data is still available when users expand sections.
Original PR description
The BoM overview report loading time could be very long due to a lot of recursive function calls (mainly stock related). These calls could be limited to the information we want to display on the…
The BoM overview report loading time could be very long due to a lot of recursive function calls (mainly stock related). These calls could be limited to the information we want to display on the report (basically the first layer of the bom), making the loading of the BoM overview lazy. However, we still need to compute the price of the bom and components/sub-boms, so loading the BoM overview will still go through all of them, but will not take the stock part of the components/sub-boms into account, which was the most time-consuming part of the loading. Time gain speaking, this pr will loose some time when unfolding all at once because it will recompute every bom data, but the time lost is significally lower than the time gained at loading if the bom has a lot of sub-boms. Displaying the time gained does not really make sense as it greatly depends on the number of components/bom and the depth of the boms but we can almost approximate the loading time to the time to load the components of the first BoM. task-id: 3422605 community: https://github.com/odoo/odoo/pull/165635
Resolved issues and error corrections
Payroll payment reports created through the batch process no longer fail with an error. Generated reports now complete properly with the expected file name and extension, helping payroll teams avoid interruptions during payment preparation.
Original PR description
Steps: 1) Install the payroll module. 2) Create the payment report using the batch process. 3) A traceback will be generated. 4) The Generated Report does not have a proper name and extension. Cause: The issue occurs when a string is passed in the browse method. Fix: You don't need to call the browse method because we already have invalid employees. Task - 3953657
This fixes an issue where product image previews could fail to display in the barcode inventory workflow after an underlying image component changed. A test was added to help ensure barcode users continue to see images as expected during inventory operations.
Original PR description
[1] did change the `ImageField` template, making the extend of this field in `stock_barcode` (`ImagePreviewField`) erroneous because the xpath in the template doesn't exist anymore. This commit fix this and adds a test to be sure the image field will be displayed as expected. [1] https://github.com/odoo/odoo/pull/167751
Features or functions removed from Odoo
The spreadsheet pivot workflow no longer includes the old dialog for inserting selected static pivot cells. This removes an obsolete option now replaced by spillable pivots, simplifying the interface and reducing confusion for users.
Original PR description
The feature to reinsert specific pivot cells became obsolete with the new spillable pivots and ability to refer to spillable pivot cells[^1]. [^1]: https://github.com/odoo/o-spreadsheet/commit/6c4a8e756
Code cleanup and technical improvements
Knowledge-specific editing commands are now separated from the standard editor, keeping the general editing experience simpler across Odoo. Knowledge articles still keep their dedicated commands, while other areas avoid seeing options that only apply to Knowledge.
Original PR description
This PR will refactor the codebase of Knowledge to avoid including in the global wysiwyg instance all blocks that are specific to Knowledge (i.e: the /clipboard, /file, /toc commands) and/or that depend on an article (i.e: the /kanban, /list, /card, /index commands). By doing that, we will avoid cluttering the global wysiwyg instance with functions, options, powerbox entries that are specific to Knowledge. This PR will use the following fields: - `knowledge_html_field`: This field will contain all commands that are specific to Knowledge and that do not depend on an article. People can easily use that field in their modules to enable the Knowledge commands. - `knowledge_article_html_field`: This field will contain all commands that are specific to Knowledge and that depend on an article. Those commands assume that the current record is a record of type `knowledge.article`: Those commands should hence not be used on another model and outside of Knowledge. task-3072864
Miscellaneous changes
Current behavior: --- When looking at an appointment availability, slots are missing (ie: 11pm-12am) Steps to reproduce: --- 1. Install website_appointment 2. Go to Appointment 3. Select/Create a resource appointment 4. Make sure resources use the default calendar 5. In schedule, change 'To' to midnight (00:00) 6. Click on 'Go to Website' 7. Select the next day 8. Should be available until midnight 9. => slots missing Cause of the issue: --- When computing unavailabilities wi
Original PR description
Current behavior: --- When looking at an appointment availability, slots are missing (ie: 11pm-12am) Steps to reproduce: --- 1. Install website_appointment 2. Go to Appointment 3. Select/Create a…
Current behavior: --- When looking at an appointment availability, slots are missing (ie: 11pm-12am) Steps to reproduce: --- 1. Install website_appointment 2. Go to Appointment 3. Select/Create a resource appointment 4. Make sure resources use the default calendar 5. In schedule, change 'To' to midnight (00:00) 6. Click on 'Go to Website' 7. Select the next day 8. Should be available until midnight 9. => slots missing Cause of the issue: --- When computing unavailabilities with _unavailable_intervals_batch, it takes all available slots: 12am-11:59am, 12pm-11:59pm then finds intervals between slots: 11:59am-12pm 11:59pm-12am These 1-minute intervals invalidate their respective slot => the slots 11am-12pm and 11pm-12am will show as unavailable Fix: --- Don't consider intervals that are one minute or less as unavailable Community PR: https://github.com/odoo/odoo/pull/163213 opw-3861561 Forward-Port-Of: odoo/enterprise#64949 Forward-Port-Of: odoo/enterprise#61403
[IMP] documents_account: Add selection of journal in Document Action 'import bank statement' Backport of: https://github.com/odoo/enterprise/pull/46482/commits/d2a95d7ffa3ef2976172ed17eaf93056ea0f8c6c For now we didn't chose the bank journal because we assume that only coda file where push like this, and in the coda file we can find in which journal to send it. But Coda is limited to BE and lot of user import CSV file for bank. Add the selection of the journal (not mandatory) for Docume
Original PR description
[IMP] documents_account: Add selection of journal in Document Action 'import bank statement' Backport of: https://github.com/odoo/enterprise/pull/46482/commits/d2a95d7ffa3ef2976172ed17eaf93056ea0f8c6c For now we didn't chose the bank journal because we assume that only coda file where push like this, and in the coda file we can find in which journal to send it. But Coda is limited to BE and lot of user import CSV file for bank. Add the selection of the journal (not mandatory) for Document action, and inject CSV in the journal selected. If no journal selected inject the CSV in the first one of the list. If it's a coda file, keep as now and don't take care of the journal selected. Task-3932055 Forward-Port-Of: odoo/enterprise#64997 Forward-Port-Of: odoo/enterprise#62752
18 changes
Enhancements to existing features
This update improves the performance of the shop floor display by loading only the manufacturing orders relevant to the workcenters currently visible on screen, and by limiting the total number of orders loaded at once. This prevents the system from becoming slow when dealing with large numbers of manufacturing orders.
Original PR description
Only load relevant MOs based on the workcenters that are shown in the view and reintroduce a limit to the amount of MOs that can be loaded simultaneously into the view. task-3895017
This update adds support for currency exchange rates from Sveriges Riksbank, Sweden's central bank. Users can now automatically fetch and update currency rates from this additional source, providing more reliable and localized currency data for Swedish operations.
Original PR description
Added support for currency_rate from the world oldest central bank, Sveriges Riksbank.
Resolved issues and error corrections
Fixed a bug in the Field Service Management module where the system would fail when trying to clean up empty folders that contained empty subfolders. The system now properly checks all nested folders before attempting removal, preventing errors during the initialization process.
Original PR description
Previous implementation checked if a folder was empty before removing it. However, it didn't take into account cases where one folder is empty but there are non-empty subfolders inside. Removing the parent folder triggered an error. The new implementation recursively checks the subfolders to ensure their emptiness before trying to remove the parent folder. Forward-Port-Of: odoo/enterprise#62184 Forward-Port-Of: odoo/enterprise#61649
This update speeds up the confirmation process for newsletter subscribers by changing the demo campaign's trigger timing from 1 hour to instant (0 hours). Subscribers will now receive their double opt-in confirmation message immediately upon signup instead of waiting an hour, improving the user experience.
Original PR description
This PR update the Demo Campaign Double Opt-in's Trigger Value to 0 Hour, so that subscribers of a newsletter get a close-to instant confirmation instead of an hour later. Task-3976448
This fix corrects an issue where recurring products sold through Point of Sale were not properly updating their invoiced quantities on the original sales order. When a sale order with a recurring product was processed through the Point of Sale system, the invoiced quantity would incorrectly remain at zero. The fix ensures that Point of Sale transactions are now properly linked and counted when calculating invoiced quantities for subscription products.
Original PR description
When settling a sale order with recurring product, the qty invoiced is not correctly update on the sale order. Steps to reproduce: ------------------- * Install Point of Sale and Sale Subscription * Create a recurring product A * Create a sale order with the product A and select any subscription plan * Open a PoS session, settle the order, validate it and invoice it * Go back to the sale order > Observation: The invoiced quantity is still 0 Why the fix: ------------ Before this fix the `_get_subscription_qty_invoiced` method was not considering the pos_order_lines linked to the order_lines. It was happening because here https://github.com/odoo/enterprise/blob/77c76fecda9b63e2fc17431a4cd3623650f93724/sale_subscription/models/sale_order_line.py#L189-L196 The order lines with recurring product where not considered in the normal invoiced quantity computation. opw-3992577
This fix corrects how nil-rated tax items are categorized in India's GSTR1 tax report. Previously, these items were incorrectly counted in both their category table and the nil-rated table. Now they appear only in their appropriate category, ensuring accurate tax reporting for invoices, credit notes, and special economic zone transactions.
Original PR description
Current behavior in gstr1 report: - For invoices and credit notes, if there are nil rated tax grid journal items then these tax lines are considered in both GSTR summary tables i.e self category (b2b/b2c) table and nil category table. After fix: - Now, the journal items are considered for their respective GSTR summary tables only. - For, `special economic zone` the nil-rated journal items are considered in their category i.e b2b/b2cs/b2cl, not in the nil summary table. task-3866787 Forward-Port-Of: odoo/enterprise#61433
This fix corrects how organization numbers are sent to Sweden's payment compliance device (blackbox). The system now removes the dash from organization numbers (converting XXXXXX-XXXX to XXXXXXXX) since the device only accepts numeric values. This ensures proper communication with the Swedish tax compliance system.
Original PR description
When sending the organisation number to the sweden blackbox, we only accept numbers. At the moment, the organisation number in the company should be: XXXXXX-XXXX. So we have to remove the dash in order to be able to send the number to the device.
This fix ensures that the Studio upsell button appears consistently in the optional columns dropdown across all list views, including account invoices and other views where it was previously unavailable. The issue was resolved by properly positioning the web_enterprise extension in the inheritance hierarchy to load immediately after the base list renderer component.
Original PR description
…ter its parent web_enterprise modifies the js template for the list_renderer by introducing an upsell point for Studio in the optional columns dropdown. That inheritance spec was not at any particular place in the inheritance hierarchy. On some views (e.g. account invoices) this feature was not available. This commit fixes the issue by manually forcing the extension in web_enterprise to go just after list_renderer.xml from the web module. After this commit, the upsell feature is available on the views that did not have it before. Forward-Port-Of: odoo/enterprise#64875 Forward-Port-Of: odoo/enterprise#64776
This fix resolves a system error that occurred when users with no timezone selected tried to add a leave in the Appointments module. The error prevented users from completing this action and has now been corrected to handle empty timezone settings properly.
Original PR description
When timezone of user is empty and the user clicks on Add a Leave button, a traceback will appear. Steps to reproduce the error: - Open Profile > Preferences > Select empty in timezone > Save -…
When timezone of user is empty and the user clicks on Add a Leave button,
a traceback will appear.
Steps to reproduce the error:
- Open Profile > Preferences > Select empty in timezone > Save
- Install 'Appointments'
- Go to Appointments > Schedule > Resource Bookings > Add a Leave
Traceback:
```
AttributeError: 'bool' object has no attribute 'upper'
File "odoo/http.py", line 2254, in __call__
response = request._serve_db()
File "odoo/http.py", line 1829, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1849, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1827, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1834, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2059, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 740, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 38, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/web/models/models.py", line 871, in onchange
defaults = self.default_get(missing_names)
File "odoo/models.py", line 1524, in default_get
defaults[name] = field.default(self)
File "home/odoo/src/enterprise/saas-17.2/appointment/wizard/appointment_manage_leaves.py", line 20, in <lambda>
leave_start_dt = fields.Datetime('Start Date', required=True, default=lambda self: self._default_time(0, 0))
File "home/odoo/src/enterprise/saas-17.2/appointment/wizard/appointment_manage_leaves.py", line 14, in _default_time
user_timezone = pytz.timezone(self.env.user.tz or self.env.context.get('tz', 'utc'))
File "odoo/tools/_monkeypatches_pytz.py", line 129, in timezone
return original_pytz_timezone(name)
File "__init__.py", line 183, in timezone
if zone.upper() == 'UTC':
```
https://github.com/odoo/enterprise/blob/7640860f415028d2d516a2df5e4bc26d9d6dd3b4/appointment/wizard/appointment_manage_leaves.py#L14 When the user selects an empty timezone, tz will be False.
So, It will lead to the above traceback.
sentry-5443573507
Forward-Port-Of: odoo/enterprise#63858Fixed an issue where the Taxes Applied table in the Journal Report PDF export was too narrow, causing numbers to wrap and become difficult to read. The table layout has been adjusted to provide more space for displaying tax information clearly.
Original PR description
In accounting, when exporting journal report to pdf, the Taxes Applied table size is limited thus forcing long number to wrap. Steps to reproduce: 1.go to Accounting > Reporting > Audit Reports > Journal Report 2.click on Pdf button 3.the "Taxes Applied" table will be spanning accross 2 column of the parent table leading to wrapped values Cause: "Taxes Applied" and "Tax Grid" are sharing the same row to render 2 different table and there is not enough room especially if the numbers are long. Solution: Up the colspan for "Taxes Applied" to 3, not the ideal solution if each column are diplayed and filled with long numbers but it is stable friendly. + this issue is fixed in 17.3 opw-3959560
This update fixes a bug in the Swiss payroll tax rate import wizard that was preventing it from working correctly. The fix ensures that tax rates can be properly imported into the payroll system, which is essential for accurate salary calculations and compliance with Swiss tax regulations.
Fixed an issue in the Barcode app where the "Add Quantity" button was incorrectly displaying "+1" for products with quantities less than 1 unit (such as 0.5). The fix ensures the button now displays the actual quantity increment, making inventory operations more accurate when handling fractional quantities.
Original PR description
## Issue: - For an inventory operation, if a product quantity is less than 1 (eg. 0.5), the "+" button in the Barcode app will display "+1" instead of "+ 0.5". ## Steps To Reproduce: - In Inventory, create a transfer (Receipts) with a product where the quantity is 0.5 and "Mark As Todo". - In the Barcode app, go to that operation and notice that the "Add Quantity" button shows "+1" instead of "+0.5". ## Solution: - I modified the `getIncrementQuantity` function to change the minimum quantity from 1 to 0. This ensures that for product quantities less than 1, the "+" button in the Barcode app will display the correct increment. OPW-3880380 Forward-Port-Of: odoo/enterprise#64812 Forward-Port-Of: odoo/enterprise#62770
This update reverts a previous change to the documents module that was causing unintended side effects. The original modification is no longer needed since the related change it depended on has been removed. This fix ensures documents are properly saved to the correct attachment without unexpected behavior.
Original PR description
reverts [1] as [2] was reverted and it is no longer needed. As some side effects were noticed and there may be more too subtle to find during manual tour testing. task-3983664 1: a187b096ceca1e0335f86f23469894c11f9b983b 2: e6c55e1683d679efd12e7d1cfca85b736fcbea01 Forward-Port-Of: odoo/enterprise#64937 Forward-Port-Of: odoo/enterprise#64478
This update corrects how the certificate issuer information is handled in the Ecuador electronic invoicing system. The fix ensures that digital certificate data is properly processed when issuing electronic documents, improving the reliability of Ecuador-specific tax compliance features.
This fix corrects how equity capital values are renamed in Austrian tax reports when comparing different years. Previously, the system would incorrectly apply naming conventions across multiple comparison periods, causing issues when the current year showed positive equity but prior years showed negative equity. Now the renaming logic only applies to the current report year, ensuring accurate and consistent tax reporting.
Original PR description
Resolve issue when having a positive equity capital in the chosen report year and having a negative equity capital in the latest comparison period. Info: @wt-io-it
The bank reconciliation widget has been updated to properly handle One-to-Many fields when the model is extended. Previously, attempting to use One-to-Many fields would cause errors during data operations. This fix ensures the widget can now correctly process these field types, making it more flexible for customizations and extensions.
Original PR description
The bank_rec_widget is missing the handling of **One2many** field . When extending the model if a One2many field is used a error is thrown because the appended operation on the **line_ids** field of the model **bank.rec.widget** is wrong.
This fix expands dashboard editing permissions to allow dashboard managers to add pivot tables, a capability that was previously restricted to administrators only. This change improves workflow efficiency by enabling designated managers to customize dashboards without requiring full admin access.
Original PR description
Before this commit only admin can add pivot in dashbord. <img width="680" alt="image" src="https://github.com/odoo/enterprise/assets/16716992/a301451f-1bf1-42f7-81fa-d93ab9223d05">
This fix expands dashboard editing permissions to allow dashboard managers to add pivot tables, a capability that was previously restricted to administrators only. This change improves workflow efficiency by enabling designated managers to customize dashboards without requiring full admin access.
Original PR description
Before this commit only admin can add pivot in dashbord.