Thursday, October 5, 2023
35 changes · master
Enhancements to existing features
This update brings the spreadsheet component up to a newer version with improvements to data validation, conditional formatting, chart tooltips, and row management. It also fixes several usability and reliability issues, including performance with large sheets, read-only filter controls, find-and-replace behavior, and copy/paste handling across sheets.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/c46de914 [REL] 16.5.0-alpha.9 https://github.com/odoo/o-spreadsheet/commit/1438e657 [FIX] side panels: fix link button…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/c46de914 [REL] 16.5.0-alpha.9 https://github.com/odoo/o-spreadsheet/commit/1438e657 [FIX] side panels: fix link button style Task: / https://github.com/odoo/o-spreadsheet/commit/f66c9ab4 [FIX] components: fix some button styles Task: / https://github.com/odoo/o-spreadsheet/commit/62718580 [IMP] CF: reorder preview list with drag and drop Task: 3504521 https://github.com/odoo/o-spreadsheet/commit/d214df23 [REF] CF: split side panel into multiple components Task: 3504521 https://github.com/odoo/o-spreadsheet/commit/f954de50 [IMP] PieChart: percentage visualization for tooltip https://github.com/odoo/o-spreadsheet/commit/6bc519e0 [IMP] SidePanel: remove unused css rule https://github.com/odoo/o-spreadsheet/commit/6b9927b6 [MOV] side panel: rename `SidePanelErrors` to `ValidationMessages` https://github.com/odoo/o-spreadsheet/commit/adcda849 [IMP] grid: add specific # of rows at the end of sheet https://github.com/odoo/o-spreadsheet/commit/c8289169 [FIX] sheetview: performance issue for too many rows/cols Task: / https://github.com/odoo/o-spreadsheet/commit/36d3a47e [IMP] spreadsheet: Add Data Validation feature Task: 3422042 https://github.com/odoo/o-spreadsheet/commit/d701460b [REF] filter: create GridCellIcon component Task: 3422042 https://github.com/odoo/o-spreadsheet/commit/953ad1d2 [MOV] error_tooltip: add dedicated test file Task: 3422042 https://github.com/odoo/o-spreadsheet/commit/d61cbee2 [IMP] edition: add CANCEL_EDITION command Task: 3422042 https://github.com/odoo/o-spreadsheet/commit/aad55661 [FIX] Find & Replace: Clear search debounce at unmount Task: / https://github.com/odoo/o-spreadsheet/commit/f91bf8b6 [IMP] SelectionInput: remove useless ternary expression Task: / https://github.com/odoo/o-spreadsheet/commit/a5be6827 [IMP] SelectionInput: add missing release on selectionProcessor Task: / https://github.com/odoo/o-spreadsheet/commit/f94eed58 [FIX] filters: hide sort buttons in readonly mode Task: 3475613 https://github.com/odoo/o-spreadsheet/commit/02436b16 [FIX] locale: string dates in CF aren't (un)localized Task: 3481670 https://github.com/odoo/o-spreadsheet/commit/f7b9b9a5 [FIX] clipboard: cut/paste filter table in another sheet Task: 3498592 https://github.com/odoo/o-spreadsheet/commit/0c8782bd [IMP] EventStream: Observers register only once Task: 3142006 https://github.com/odoo/o-spreadsheet/commit/e008fe2b [FIX] test: undeterministic test in spreadsheet.test.ts https://github.com/odoo/o-spreadsheet/commit/f2cd5abf [REV] find & replace: shorten the debounce on find search Task: 3510813 https://github.com/odoo/o-spreadsheet/commit/549142d4 [FIX] Find&Replace: purge duplicated handler Task: /
A new option is available in form view debug mode to show all raw field data for the current record in JSON format. This helps support and technical teams inspect record details more quickly when troubleshooting or validating data.
Original PR description
This commit introduces a new debug menu item in form view that allows to read all the raw fields data of the current record in JSON format. task-3509462
Survey creators can now show a question when respondents choose any of several specified answers across different earlier questions. This makes conditional survey flows easier to build and supports more complex branching without duplicating questions.
Original PR description
This PR removes the `triggering_question_id` field and changes the `triggering_answer_id` field from Many2one to Many2many from `survey_question` model, Allowing users to list multiple answers that could trigger a question from multiple questions and multiple answers. for example, there are 3 questions all having 4 options A, B, C, and D. we will have put conditions on Question 3, conditions are if the user selects: Question 1: Answer A or Question 1: Answer C or Question 2: Answer D then, we will display Question 3. taskID-2937533
This update standardizes dropdown, popover, and select-style menus across Odoo so they behave more consistently. Users should see smoother keyboard navigation, more reliable closing behavior, and fewer visual layering issues in areas such as mail, calendars, imports, dashboards, manufacturing, and reporting views.
Original PR description
We currently have too many different implementation of the same concern: an input with a dropdown/popover/select menu that can be customized, display a list of elements, let the user navigate with the keyboard, can be closed with escape, can be closed with an outside click. Also, the current navigation systems does not handle inputs properly. This commit addresses that by doing multiple things: - It tries to improve the Dropdown component with a cleaner props API while keeping its ease of use. - The navigation has been improved to support inputs and better customization. Project task: [3266145](https://www.odoo.com/mail/view?model=project.task&res_id=3266145&access_token=7a09516e-1a2d-4970-a909-0f5099588055) Enterprise PR: https://github.com/odoo/enterprise/pull/42041
Live chat reporting has been enhanced to provide clearer statistics for channels and operators. This helps teams better understand chat activity and operator performance so they can monitor service quality and make staffing decisions.
Original PR description
task-3471332
Time Off reports are easier to use with better default views and filters. Employee reporting now opens in a list view focused on the current year, while type-based reporting now starts with a graph view and clearer filters for time off and allocations.
Original PR description
Before this PR if we go to the Time off and go to reporting in that select the to employee there are graph , calendar, pivot views and there are two default filter active employee , Employee > Type . And After that when we go to to type there are list, pivot view and by default there are 4 filter to the list view of the to type and in list view there is button. Improvements : To Employee : Add the List view and make it default. And make Current year by default. To Type : Add the graph view and make it default. Made changes in the filter add Time off Allocations in that filter. Remove that button and use action method to the record. task-3389174
The Discuss app now responds more naturally to the Escape key. Users can close the channel selector and quickly return focus to the message composer, making conversations faster and easier to navigate by keyboard.
Original PR description
This PR introduce multiple usage of the escape key: - Channel selector can now be closed using the escape key - Using the escape key will focus the composer automatically Task-3456518
This update appears to adjust how canceled projects and tasks are handled or displayed in the Project app. It helps users better identify or manage canceled work, reducing confusion in day-to-day project tracking.
Event barcode and QR code check-in features are now included directly in the standard Events app instead of requiring a separate enterprise module. Organizers can enable them from settings, use QR codes more easily, and benefit from clearer tickets, checkout pages, and confirmation emails.
Original PR description
This PR moves event_barcode module from enterprise to community. It is now integrated directly with the base 'event' module. Using it is optional and activated directly from settings, instead of having to install a new module. This PR also allows organizers to use QR codes without needing a barcode. Some improvements are made in registration flow, notably improving barcode display and usage in checkout process and outgoing emails. Task-3411827 (Move event barcode to community) Task-3470321 (Improve registration flow)
Users can now add people and channel mentions directly in the full chatter composer using @ and #. Mentions are also kept when moving a draft from the small composer to the full composer, making message drafting more consistent and reliable.
Original PR description
Introduce @/#mention function in the full composer of the chatter The mentions should remain consistent between the small and full compose task-3470060 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The survey results page has been redesigned to be cleaner and easier to use, with key survey metrics shown prominently and better controls for filtering, printing, and viewing responses. Users can now hide or show questions, expand all responses when needed, and get printouts that fit better on standard pages.
Original PR description
[IMP] survey: improve results page Purpose ======= Improve the overall look of the page for screen and print media. Display/hide questions, and alternate between pagination and full display of user…
[IMP] survey: improve results page Purpose ======= Improve the overall look of the page for screen and print media. Display/hide questions, and alternate between pagination and full display of user responses. Specifications ============== ### HEADER AND OVERVIEW - remove waste space between Edit Survey button and survey title - remove trophy cup or any icon on the right of the title - put filters on the right of the title - remove background - replace the `Results overview pie chart` by the survey KPI's - add a print button ### QUESTIONS - add a button for each question to toggle their visibility - avoid breaking question into multiple lines, use all space available - change info badges design so they are not mistaken for buttons - remove question type from the info badges ### USER RESPONSES - add a `show all` button per question to display all responses, whitout pager and scrollbar. Users may be able to rollback to pager mode - for each response, push the filter icon to right side of the row - use regular font and color for responses, remove response text from the <a> tag ### PRINT MODE - hide the `webeditor/ back to backend` button - visible questions: display all responses (no pagination or scrollbar) - user responses: hide filter icons - make sure elements like tables are properly cut between pages - resize graphs to ensure they fit into A4 paper page - prevent brand message to disappear or to float over other elements task-3424235 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The map view list now hides records that do not have location data instead of showing them as dimmed entries. This makes map-based lists cleaner and helps users focus only on records that can actually be displayed on the map.
Original PR description
This commit changes The map view so that it will only show located records in the list and hide non located ones instead of displaying them with text muted class. task-3379997
Bank journals can now choose the newer SEPA Direct Debit format for incoming payment files. This helps businesses stay compatible with upcoming bank and country requirements, including support in Belgium and the Netherlands.
Original PR description
Problem --------- A new version of the SEPA Direct Debit Schema (Pain 008.001.08) is available and will soon be usable in some countries. In Belgium for example, it will be supported by ISABEL soon, and is already published in the Netherlands. Objective --------- Add the new schema and allow the user to select which version to use. Solution --------- 1. In Bank Journal configuration, tab Incoming Payments, add a configuration section where the user can select what version of SEPA Direct Debit he wants to use. Done through a selection field. 2. Implement the SEPA Direct Debit 008.001.08 format and allow the xml export of that schema. task-3440881
This update standardizes dropdown and popover menus used across Odoo, making them more consistent and easier to navigate with the keyboard. Users should see more reliable menu behavior in areas such as accounting reports, consolidation filters, intrastat filters, and pivot views.
Original PR description
We currently have too many different implementation of the same concern: an input with a dropdown/popover/select menu that can be customized, display a list of elements, let the user navigate with the keyboard, can be closed with escape, can be closed with a outside click. Also, the current navigation systems does not handle inputs properly. This commit addresses that by doing multiple things: - It tries to improve the Dropdown component with a cleaner props API while keeping its ease of use. - The navigation has been improved to support inputs and better customization. Project task: [3266145](https://www.odoo.com/mail/view?model=project.task&res_id=3266145&access_token=7a09516e-1a2d-4970-a909-0f5099588055) Community PR: https://github.com/odoo/odoo/pull/119389
Knowledge macros can now work with more eligible HTML fields while keeping existing preferred fields first. The update also better respects field visibility and read-only rules, excludes settings pages from Knowledge access, and simplifies macro error messages.
Original PR description
- Keep the existing priority list for html fields - Allow any other field that is using the `html` widget to be considered (discard others like `mass_mailing_html`). - Evaluate the invisible and readonly modifiers of the `xmlDoc` field instance on top of the modifiers of the Record instance (they are not always consistent). task-3501211
The Twitter social integration was cleaned up after its API migration, removing unused code and improving maintainability. Users also get clearer feed previews, refreshed stream views after adding a stream, and quoted tweets displayed more completely in comment dialogs.
Original PR description
Purpose ======= In c85cf25f58202504aa1366156cce3905369dfe67 , we migrated to the new Twitter API. Because we did the changes in stable, we couldn't clean as we wanted. This commit cleans the social_twitter module and removes unused methods. Task-3492787
Resolved issues and error corrections
This fixes Odoo's automated clickbot testing so it correctly applies all filters in views after changes introduced by the new Milk theme. It helps ensure automated interface checks cover filtered views properly, reducing the risk of missed issues.
Original PR description
Since the new milk theme, the clickbot for click everywhere, didn't set the filters on the views. Now, the clickbot set all the filters on the views. task-id 3535596
Features or functions removed from Odoo
This change reverts a previously added product information popup for self-ordering and related product fields because the shared ecommerce content was not suitable for POS use. It prevents styling and display problems caused by website-only content being shown in POS or backend screens, while separate follow-up work will create a better POS-specific solution.
Original PR description
Code cleanup and technical improvements
This update removes outdated delivery-related code from the online shop checkout flow. It does not change how customers select delivery options, but helps keep the checkout code simpler and easier to maintain.
Original PR description
Remove unused: - `keep_carrier` from the kwargs of `_check_carrier_quotation` - `carrier_id` from the kwargs of the '/shop/payment' route
Miscellaneous changes
This issue occurs when a customer imports or uploads a file, and that file contains an image that is attached to the URL as text or HTML. then, The error would be generated. Stack Trace:- 'UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x7f0fc9e08db0> File "addons/base_import/models/base_import.py", line 1258, in _import_image_by_url image = Image.open(io.BytesIO(content)) File "PIL/Image.py", line 3008, in open raise UnidentifiedImageError('
Original PR description
This issue occurs when a customer imports or uploads a file, and that file
contains an image that is attached to the URL as text or HTML. then,
The error would be generated.
Stack Trace:-
'UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x7f0fc9e08db0>
File "addons/base_import/models/base_import.py", line 1258, in _import_image_by_url
image = Image.open(io.BytesIO(content))
File "PIL/Image.py", line 3008, in open
raise UnidentifiedImageError('
Step to Produce:-
- import CSV file (Ex.'product.product' model)
> that CSV file must have one URL Image(In that URL has content of text or
Html form)
- Click On the 'Test' Button.
Applying these changes will resolve this issue.
sentry-4046190590
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#136762
Forward-Port-Of: odoo/odoo#119499This fixes the automatic setup so the Avalara tax integration is installed for Canadian accounting, not Brazilian accounting. It helps ensure companies get the correct tax localization support for their country and avoids enabling the wrong tax integration.
Original PR description
Small issue in 70329177713. `account_avatax` supports the US and Canada. `l10n_br_avatax` supports Brazil. Introduced in https://github.com/odoo/odoo/pull/136490.
This fixes an issue where notification author names could appear in Firefox when they should be hidden. The change improves consistency across browsers and helps keep notification displays clean and as intended.
Original PR description
The author name of every notification is displayed when the `o_hide_author` class is not set. In order to do so, the css rule uses the `:has` pseudo-class. This is an issue since firefox does not support it. This PR removes the usage of this pseudo-class.
This fixes an issue that could prevent uploading multiple files through web requests, including website forms. The change restores expected upload behavior and adds support for a broader request format, reducing errors for users submitting files.
Original PR description
Since [1] an error was thrown when giving multiple files to http.post. This commit reverts changes in the function but the function now also allows to give a FormData instead of pojo. [1]: https://github.com/odoo/odoo/pull/136271
The website editor now makes drop areas more transparent so page content remains easier to read while editing. It also keeps read-only selection outlines visible, preventing layout confusion when selecting areas such as headers or footers.
Original PR description
=== ISSUE 1 === Since the introduction of the new dropzone design, the dropzones weren't transparent enough and the inline content behind them wasn't readable. This PR adapts the layout of dropzones to make the content behind them more readable. === ISSUE 2 === Prior to this PR, read-only handles were hidden, which created a layout issue (eg. the header was no longer highlighted when we clicked on it). This PR adapts read-only handles to make them visible by using a border around the selected element. task-3537616 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Calendar status filters now rely on the existing color styling instead of generating invalid color values. This keeps labels such as sales orders and quotations visually consistent and avoids confusing display issues in the calendar view.
Original PR description
Problem : From the sales order, if we go to the calendar view, it shows status like "sales order", "quotation",... when we check the style in the console, span style has nonsensical values for background-color and border-color. Ex : style="background-color:state; border-color:state;" Correction : The styles are already applied by t-att-class="getFilterColor(filter)" used on the div.o_calendar_filter_item. Then the utilisation of t-att-style is no more useful. taskId : 3512867
An unstable performance test in Australian payroll accounting was removed because it was blocking unrelated changes during automated validation. This reduces false alarms in the release process without changing payroll features or user workflows.
Original PR description
This test broke the l10n_staging in mergebot: https://runbot.odoo.com/runbot/build/51896700 The best thing is to remove it as it might give false positives on future l10n just before the freeze. It failed for PR https://github.com/odoo/odoo/pull/136164 which has nothing to do with payroll. Just adding a boolean on an account_move in l10n_es...
This reverts commit 3b9401c35423574b57f1081f9c80bd149d79d76b. It shouldn't have been merged in the first place. The PR was `r-` but it seems like the mergebot bugged and still merged it because there…
This reverts commit 3b9401c35423574b57f1081f9c80bd149d79d76b. It shouldn't have been merged in the first place. The PR was `r-` but it seems like the mergebot bugged and still merged it because there was an occurence of `r+` in the sentence which asked robodoo to `r-`. > robodoo r- just to be sure, since there was a random r+ not [...] Rationale of the revert: - Bad field name: - "ecommerce" in product module - "ecommerce" but used in POS - Arguably very low value to share the field -> This field is used in ecommerce to add info exactly between the price and the name of a product. There is low chance that you want to share that exact information with the POS. - Technically, it couldn't work. What you design in website builder on the product page is related to website assets JS and CSS, which are not loaded neither in the backend and neither in the POS. It was leading to multiple critical issues, mainly: - Losing the whole style of the content (CSS) - Breaking completly the snippets (visually and design wise) (CSS/JS) - Not even show (JS is in charge of showing the content eg) Note that the same issues were already existing in that field in the backend (it's shown in the product form view). The ecommerce team was looking for a solution to make it work, but it's impossible as to work, it would need the website / frontend assets, which can't be loaded in the backend / POS. The cancel of this PR was validated with PO of POS and ecommerce following those explanation, which they weren't aware of. Apart from this revert, further PR will be done to: 1. Remove the field from the product form view (ecommerce app) 2. Create a new field for POS Revert of https://github.com/odoo/odoo/pull/136906 task-3524272
This update standardizes how Odoo's frontend code references a shared interface library, replacing direct global access with explicit imports. It reduces maintenance risk and helps developers catch mistakes earlier, with no expected change for end users.
Original PR description
Before this commit, owl was in the linter's accepted global variables.
This allowed direct access to owl global object.
For instance, to use xml from owl, you could do :
`const { xml } = owl;`
or you could use it directly:
`owl.xml`
Now, owl is not accepted on linter's global variables anymore, so to
import xml, now you need to use a proper import:
`import { xml } from "@odoo/owl";`
task-id 3498859Barcode check-in functionality for events has been moved into the standard Events app available in the community edition. This makes event attendee scanning more broadly available and simplifies the product structure by removing it as a separate enterprise-only component.
Original PR description
event_barcode is moved to community and integrated directly into event module task-3411827
This internal cleanup updates many Odoo Enterprise modules to use the approved way of referencing Owl web framework features. It helps keep the codebase consistent and easier to maintain, with no expected functional change for users.
Original PR description
Before this commit, owl was in the linter's accepted global variables.
This allowed direct access to owl global object.
For instance, to use xml from owl, you could do :
`const { xml } = owl;`
or you could use it directly:
`owl.xml`
Now, owl is not accepted on linter's global variables anymore, so to
import xml, now you need to use a proper import:
`import { xml } from "@odoo/owl";`
task-id 3498859As a visitor (non logged-in user), go to the forum and attempt to up vote a message. You get a notification asking you to login first but that notifications is literally: > Oh no! Please \<a href="/web/login">sign in\</a> to vote Instead of > Oh no! Please [sign in](/web/login) to vote With a link on "sign in". Using the Markup strings (i.e. Markup`` as opposed to the function Markup()), all parameters injected via placeholders (${}) are html-escaped unless the parameter is Markup
Original PR description
As a visitor (non logged-in user), go to the forum and attempt to up vote a message. You get a notification asking you to login first but that notifications is literally: > Oh no! Please \<a…
As a visitor (non logged-in user), go to the forum and attempt to up vote a message. You get a notification asking you to login first but that notifications is literally:
> Oh no! Please \<a href="/web/login">sign in\</a> to vote
Instead of
> Oh no! Please [sign in](/web/login) to vote
With a link on "sign in".
Using the Markup strings (i.e. Markup`` as opposed to the function Markup()), all parameters injected via placeholders (${}) are html-escaped unless the parameter is Markup too.
We could had applied to following diff:
```diff
-Markup`<p>${sprintf(_t('Oh no! Please <a href="%s">sign in</a> to vote'), "/web/login")}</p>`
+Markup`<p>${Markup(sprintf(_t('Oh no! Please <a href="%s">sign in</a> to vote'), "/web/login"))}</p>`
```
But this would had miss the opportunity to simplify the expression, injecting "/web/login" via sprintf has no real benefit.
task-3520200
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#136502**[IMP] project_sale_expense: change bad tests flows** Previous test flow: - Re-invoice a multi-currency expense with a product having a cost with a unit_amount override Expected test flow: - Re-invoice a multi-currency expense with a product having no cost and a total_amount override In the past it was feasible (but wrong) in the back-end to set a product with price in a multi-currency expense. Setting an expense amount through the unit_amount is also not reflecti
Original PR description
**[IMP] project_sale_expense: change bad tests flows** Previous test flow: - Re-invoice a multi-currency expense with a product having a cost with a unit_amount override Expected test flow: -…
**[IMP] project_sale_expense: change bad tests flows**
Previous test flow:
- Re-invoice a multi-currency expense
with a product having a cost with
a unit_amount override
Expected test flow:
- Re-invoice a multi-currency expense with a product
having no cost and a total_amount override
In the past it was feasible (but wrong) in the
back-end to set a product with price in a
multi-currency expense.
Setting an expense amount through the unit_amount is
also not reflecting the actual flow
**[FIX] hr_expense: Fix currency_rate handling**
The desired flow of currency rate in expense is as followed:
- (default) Use Odoo currency rate
- Allow the user to set a custom rate (to include fees)
when changing the total amount in company currency
- Revert to the default behaviour when the currency is changed
or the amount in foreign currency is changed
This aims to fix how currency rate is computed and overridden
- Reorganize all currency rate computation, so
it doesn't revert to Odoo rate at every compute call
- Deals with a bug where a total_amount_currency changed just
before calling "action_submit_expenses" would not trigger the
computation of unit_amount
- Force save when changing currency on expense form view
to prevent a bug where the first modification of
total_amount_company would be canceled (due to the new
behaviour of currency rate computation)
- Removes unit_amount_display from views as it should be
removed in master anyway and is deprecated since 16.0
task-3476569
Forward-Port-Of: odoo/odoo#134356Before this task, lots of mails were sent after updating or deleting recurrent event in 'All events' or 'This and future events' update type. This was happening because updating these recurrent events was triggering patch calls event by event, when they should be handled in batch. Since Outlook Calendar recurrences are not updated anymore (from Odoo to Outlook), we were able to update directly the 'calendar' module. After this commit, updating or deleting recurrent events should trigger at mo
Original PR description
Before this task, lots of mails were sent after updating or deleting recurrent event in 'All events' or 'This and future events' update type. This was happening because updating these recurrent events was triggering patch calls event by event, when they should be handled in batch. Since Outlook Calendar recurrences are not updated anymore (from Odoo to Outlook), we were able to update directly the 'calendar' module. After this commit, updating or deleting recurrent events should trigger at most two mails for Google users. Deleting multiple recurrent events is now more efficient and straightforward. Task-id: 3163695 Forward-Port-Of: odoo/odoo#113238
Steps to reproduce the bug: - Activate 2 currencies (assume EUR and USD, conversion rate: 0.65 EUR = 1 USD) - Create new product “P1”: - Purchase tab: - add two vendors: - Vendor_USD, currency = USD, price = 100 - Vendor_EUR, currency = EUR, price = 80 - Create PO: - vendor = vendor_EUR, - Currency = Eur - Add P1, Unit price should be 80 - Alternative tab > Create alternative > Vendor = Vendor_EUR - Compare product lines Issue: The line with price = 100 US
Original PR description
Steps to reproduce the bug:
- Activate 2 currencies (assume EUR and USD, conversion rate: 0.65 EUR = 1 USD)
- Create new product “P1”:
- Purchase tab:
- add two vendors:
- Vendor_USD, currency = USD, price = 100
- Vendor_EUR, currency = EUR, price = 80
- Create PO:
- vendor = vendor_EUR,
- Currency = Eur
- Add P1, Unit price should be 80
- Alternative tab > Create alternative > Vendor = Vendor_EUR
- Compare product lines Issue: The line with price = 100 USD is highlighted as being the cheapest option, but if we apply conversion rules, 80 EUR = 123,07 USD > 100 USD.
Solution:
Convert prices in company currency before comparing.
opw-3378253
Forward-Port-Of: odoo/odoo#135037before this commit, if the user doesn't have access to sales application and if tries to open the product form view, access error is shown on rental.pricing model scenario: * create or edit a product and set rental pricing * now login with a user having no access in sales * open product form * access error  after this commit, no access error wont be shown
Original PR description
before this commit, if the user doesn't have access to sales application and if tries to open the product form view, access error is shown on rental.pricing model scenario: * create or edit a product and set rental pricing * now login with a user having no access in sales * open product form * access error  after this commit, no access error wont be shown to users on opening the product form. Forward-Port-Of: odoo/enterprise#48322 Forward-Port-Of: odoo/enterprise#47492
Steps to reproduce: - Open "Project" app - Click on Studio - Click on edit menu button - Select a menu and drag and drop it to the root menu app (e.g Project) => a traceback occurs This error occurs because we don't have a root menu for the app menu to avoid this error, if no menu are found, we use the root menu app as root Forward-Port-Of: odoo/enterprise#47697
Original PR description
Steps to reproduce: - Open "Project" app - Click on Studio - Click on edit menu button - Select a menu and drag and drop it to the root menu app (e.g Project) => a traceback occurs This error occurs because we don't have a root menu for the app menu to avoid this error, if no menu are found, we use the root menu app as root Forward-Port-Of: odoo/enterprise#47697