Tuesday, February 2, 2021
29 changes · master
Enhancements to existing features
This update adds new tips to Odoo digest emails, helping users discover website customization options and timesheet shortcuts. It also adjusts the display order of an existing tip so the guidance appears in a better sequence.
Original PR description
This commits adds a few digest tips and change sequence of one. Task-2341722 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
The contact title field now behaves as a simple selection instead of opening the title setup page when clicked. This reduces accidental navigation and keeps users focused while creating or editing partner contacts.
Original PR description
Avoid users unnecessarily land on the res.title form. so that add a selection widget on res.title form. **TaskId : 2446112** -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Web Studio sidebar now lets users collapse or expand the Existing Fields section, and it starts collapsed by default. This reduces visual clutter and makes it easier for users to focus while editing views, while still keeping existing fields available when needed.
Original PR description
Allow to fold/unfold the existing field section. It should be folded by default. task - 2388008
Fields added to list views in Odoo Studio are now shown by default while remaining optional. This gives users more flexibility because they can hide those fields later without extra configuration.
Original PR description
Currently, initially default selection of optional property drop-down is none, in this commit, set default selection of optional property drop-down to 'show' TaskId: 2393513
A new tip was added to the accounting digest to guide users on registering a firm or finding an accountant. This helps business users discover relevant accounting support directly through existing digest communications.
Original PR description
This commit adds a digest tip to help registering firm or finding an accountant. Task-2341722
The approval rule popover in Studio has been visually improved so its text and button display correctly. This makes approval configuration easier to read and use, reducing confusion for users working with approval rules.
Original PR description
TaskId: 2429710
Resolved issues and error corrections
CRM performance test thresholds were adjusted to match observed peak conditions in the automated testing environment. This helps avoid occasional false test failures without changing CRM features or user workflows.
Original PR description
Some tests sometimes require some more queries to be finished. Task ID-2444908
Code cleanup and technical improvements
This change prepares the website email marketing area for an upcoming update by ensuring a required page view is already available. It helps keep future upgrade and migration checks running smoothly without affecting day-to-day users.
Original PR description
Prepare the merge of [1] which require a view to already be present in master so the migration tests pass. [1]: https://github.com/odoo/odoo/pull/65263
Documentation and clarification updates
This pull request adds i3 Rendszerház Kft. to Odoo's corporate contributor license agreement records. It is an administrative legal documentation update that helps confirm contribution rights and has no impact on product features or user workflows.
Original PR description
Add my name i3 Rendszerház Kft. 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
Miscellaneous changes
This should be a smarter and properly reliable version of #42071: in that, the runner requests a port, closes it, and gives the port to Chrome. However this apparently turns out to be less reliable than hoped for and the port we just released can immediately be picked up by somebody else (the original PR assumed the allocation of ephemeral ports would be random or FIFO but that may not be the case, especially inside containers). This uses the same technique of requesting port 0 so the OS allo
Original PR description
This should be a smarter and properly reliable version of #42071: in that, the runner requests a port, closes it, and gives the port to Chrome. However this apparently turns out to be less reliable…
This should be a smarter and properly reliable version of #42071: in that, the runner requests a port, closes it, and gives the port to Chrome. However this apparently turns out to be less reliable than hoped for and the port we just released can immediately be picked up by somebody else (the original PR assumed the allocation of ephemeral ports would be random or FIFO but that may not be the case, especially inside containers). This uses the same technique of requesting port 0 so the OS allocates one, but it's Chrome requesting & immediately connecting so there should be no race condition possible, and we keep the property that as long as ephemeral ports are available Chrome will be able to open one without conflicts or overlaps. After lots of trying around, @d-fence has won the "how do we retrieve the websocket port once the OS has handed it to chrome": Chrome writes it to a file in the user-data-dir from which we can read it back. Runner-up: @Xavier-Do's "check what ports chrome listens on", it's pretty fast and reliable but probably less future-proof (to the extent that anything can be future-proof when interacting with chrome) as nothing really prevents chrome from adding new servers (and thus listen on new ports) in the future, and also doesn't work on WSL. Jury's award: `--remote-debugging-pipe`, would require a lot of rewrite but could be pretty nice, and would remove the websockets dependency. Anne Frank award: @amigrave's suggestion to use socket activation support (`--remote-debuggin-socket-fd`), it would have worked perfectly *if it had not been removed when pipes support was added*. Red-headed stepchild: reading from Chrome's stderr as the websocket url is printed there, we don't really know how much garbage chrome sends to stderr during tours and we don't want it to block when the pipe becomes full, so we'd need to have either a thread or an other subprocess to continuously read from the pipe, way more complexity. Forward-Port-Of: odoo/odoo#65175 Forward-Port-Of: odoo/odoo#64844
This update restores missing compatibility between calendar reminder processing and SMS-based calendar reminders. It helps ensure scheduled reminder jobs continue to handle calendar notifications correctly when SMS calendar features are installed.
Original PR description
Fine tunning of c8f031ad77, this commit has the missing code compatibility for sms_calendar.
Duplicating a spreadsheet sheet that has no graph now works without causing an error. This improves reliability for users managing documents and spreadsheets, preventing interruptions during routine sheet organization.
Original PR description
Before this fix, duplicating a sheet without graph crashed After this fix it doesn't.
Fixed an issue that prevented quality worksheets from being printed because the report referenced the wrong module name. This restores expected printing behavior for users working with quality control worksheets.
Original PR description
Unable to print for quality worksheet due to the wrong module name in the report modle name. Task 2416671
Usecase to reproduce - Create a KIT with COMP A (15$) COMP B (25$) - Enable Margin on SO - Set the cost on the KIT with compute cost button (40$) - Create a quotation with the KIT (cost is correct 40$) - Confirm the quotation -> Cost is updated to 15$ (first component) It happens because the function to compute the average price doesn't expect a kit and compute everything from the valuation layer of first component opw-2413246 Forward-Port-Of: odoo/odoo#65292
Original PR description
Usecase to reproduce - Create a KIT with COMP A (15$) COMP B (25$) - Enable Margin on SO - Set the cost on the KIT with compute cost button (40$) - Create a quotation with the KIT (cost is correct 40$) - Confirm the quotation -> Cost is updated to 15$ (first component) It happens because the function to compute the average price doesn't expect a kit and compute everything from the valuation layer of first component opw-2413246 Forward-Port-Of: odoo/odoo#65292
Steps: - Install Inventory and Dashboard - Go to Inventory > Reporting > Inventory Report - Click Favorites - Add to my Dashboard is missing - Open the Favorites dropdown again - Click Add to my Dashboard Bug: Error: Could not add filter to dashboard Explanation: This report action window is created dynamically by the server action `action_view_quants`. The `id` isn't present, but it's not needed to display the view. However, in order to create a dashboard item, the `id` of an a
Original PR description
Steps: - Install Inventory and Dashboard - Go to Inventory > Reporting > Inventory Report - Click Favorites - Add to my Dashboard is missing - Open the Favorites dropdown again - Click Add to my…
Steps: - Install Inventory and Dashboard - Go to Inventory > Reporting > Inventory Report - Click Favorites - Add to my Dashboard is missing - Open the Favorites dropdown again - Click Add to my Dashboard Bug: Error: Could not add filter to dashboard Explanation: This report action window is created dynamically by the server action `action_view_quants`. The `id` isn't present, but it's not needed to display the view. However, in order to create a dashboard item, the `id` of an action is required as seen here: https://github.com/odoo/odoo/blob/cfb5e6e82a773fee0342d5e0417bae4efeb7f0bb/addons/board/controllers/main.py#L16 This commit adds the ID of a new simple `ir.actions.act_window`. Reusing `product_template_open_quants` is not possible because, when refreshing the page, the view hasn't got any `active_ids`. The menu item only appears after reopening the Favorites dropdown because the frontend checks if the `id` of the action is present here: https://github.com/odoo/odoo/blob/cfb5e6e82a773fee0342d5e0417bae4efeb7f0bb/addons/board/static/src/js/add_to_board_menu.js#L35-L40 but re-renders it every time the dropdown is closed, no matter what: https://github.com/odoo/odoo/blob/cfb5e6e82a773fee0342d5e0417bae4efeb7f0bb/addons/board/static/src/js/add_to_board_menu.js#L50-L53 This commit also prevents the item from appearing after clicking multiple times on the button. opw:2426986 Forward-Port-Of: odoo/odoo#65302 Forward-Port-Of: odoo/odoo#64816
-- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#65236 Forward-Port-Of: odoo/odoo#63337
Original PR description
-- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#65236 Forward-Port-Of: odoo/odoo#63337
A former constraint made it impossible to import bank statements with lines = 0. The task #2403369 removed that constraint. But the user could no longer reconcile Bank Statement Lines = 0. Drawbacks : - The user is then blocked when setting a lock date. - The bank statement remains endlessly in Status Processing A previous fix made a bank statement line = 0 immediately reconciled. Closes task #2449127. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com
Original PR description
A former constraint made it impossible to import bank statements with lines = 0. The task #2403369 removed that constraint. But the user could no longer reconcile Bank Statement Lines = 0. Drawbacks : - The user is then blocked when setting a lock date. - The bank statement remains endlessly in Status Processing A previous fix made a bank statement line = 0 immediately reconciled. Closes task #2449127. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#65269
Commit [1] improves the focusout case of the Many2One field: if the user typed something in the input that matches some records (i.e. if there are records in the suggestion dropdown), the first one is automatically set. The Many2ManyTags field internally uses a FieldMany2One. However, the same scenario inside a Many2ManyTags crashed. The reason is that we sent the wrong value in this case (an id, instead of an object). [1] https://github.com/odoo/odoo/commit/1d4d2a6 Description of
Original PR description
Commit [1] improves the focusout case of the Many2One field: if the user typed something in the input that matches some records (i.e. if there are records in the suggestion dropdown), the first one is automatically set. The Many2ManyTags field internally uses a FieldMany2One. However, the same scenario inside a Many2ManyTags crashed. The reason is that we sent the wrong value in this case (an id, instead of an object). [1] https://github.com/odoo/odoo/commit/1d4d2a6 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#65351
Commit [1] adds an override of the getFocusableElement of AbstractField in FieldRadio, but this function was already defined. Even though it doesn't crash, this is obviously not something to do. This commit removes the first occurence (which was overriden by the second). [1] https://github.com/odoo/odoo/commit/ebe118fc607391737adc37e18c3278a3d2c87b5e Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --
Original PR description
Commit [1] adds an override of the getFocusableElement of AbstractField in FieldRadio, but this function was already defined. Even though it doesn't crash, this is obviously not something to do. This commit removes the first occurence (which was overriden by the second). [1] https://github.com/odoo/odoo/commit/ebe118fc607391737adc37e18c3278a3d2c87b5e 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#65372
Steps: - Edit the current company (1): - Country: Switzerland - Currency: CHF - Install l10n_ch - Go to Invoicing > Configuration > Bank Accounts - Edit Bank: - Bank Account: create a new one: - Account Holder: (1) - Go to Configuration > Journal - Edit Customer Invoices: - Advanced Settings tab: - Communication Standards: Switzerland - Go to Customers > Customers - Create a new customer (2): - Fill in street, city, zip code and country - Edit (2): - Contacts
Original PR description
Steps: - Edit the current company (1): - Country: Switzerland - Currency: CHF - Install l10n_ch - Go to Invoicing > Configuration > Bank Accounts - Edit Bank: - Bank Account: create a new one: -…
Steps:
- Edit the current company (1):
- Country: Switzerland
- Currency: CHF
- Install l10n_ch
- Go to Invoicing > Configuration > Bank Accounts
- Edit Bank:
- Bank Account: create a new one:
- Account Holder: (1)
- Go to Configuration > Journal
- Edit Customer Invoices:
- Advanced Settings tab:
- Communication Standards: Switzerland
- Go to Customers > Customers
- Create a new customer (2):
- Fill in street, city, zip code and country
- Edit (2):
- Contacts & Addresses tab:
- Add:
- Select Invoice Address
- Contact Name: Keep this field blank
- Go to Customers > Invoices
- Create a new one:
- Customer: "(2), Invoice Address"
- Add a product
- Validate it
- Click Print QR-Bill
Bug:
Traceback here:
https://github.com/odoo/odoo/blob/b76e9ef658bde0178fa1660b6ad27b880e91632a/addons/l10n_ch/models/res_bank.py#L129
TypeError: 'bool' object is not subscriptable
Explanation:
The contact name of an address is optional. When nothing is filled in
that field, it returns `False`, hence the error.
Using the commercial company name ensures a name is put in the invoice,
even if the contact doesn't belong to a company.
opw:2447158
Forward-Port-Of: odoo/odoo#65394
Forward-Port-Of: odoo/odoo#65357As user access the ecommerce and add to cart a free product (0$ total) Checkout and Confirm No email will be sent for confirmation This occur because the confirmation email is normally sent in the transaction callback, which is not created when the amount is 0 opw-2440335 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/subm
Original PR description
As user access the ecommerce and add to cart a free product (0$ total) Checkout and Confirm No email will be sent for confirmation This occur because the confirmation email is normally sent in the transaction callback, which is not created when the amount is 0 opw-2440335 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#65155
-- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#65293 Forward-Port-Of: odoo/odoo#65273
Original PR description
-- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#65293 Forward-Port-Of: odoo/odoo#65273
PURPOSE Smiley box popover in rtl langauge takes full space, it should be displayed with max-width: 200px; SPEC Smiley box popover should be displayed with expected width i.e. max width 200px TASK 2418264 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#63694
Original PR description
PURPOSE Smiley box popover in rtl langauge takes full space, it should be displayed with max-width: 200px; SPEC Smiley box popover should be displayed with expected width i.e. max width 200px TASK 2418264 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#63694
Scenario: - create mass mailing with icons and without title - save and get error "The followign fields are invalid: Subject" - fill subject and save - edit => the icons have disappeared This is because mass mailing widget is using: - a "body_html" field that contains inlined html - a wysiwyg editor to edit field "body_arch" - a textarea containing "body_arch" value to be saved When we save this happens: 1. we save the current value of wysiwyg into textarea 2. wysiwyg con
Original PR description
Scenario: - create mass mailing with icons and without title - save and get error "The followign fields are invalid: Subject" - fill subject and save - edit => the icons have disappeared This is…
Scenario:
- create mass mailing with icons and without title
- save and get error "The followign fields are invalid: Subject"
- fill subject and save
- edit
=> the icons have disappeared
This is because mass mailing widget is using:
- a "body_html" field that contains inlined html
- a wysiwyg editor to edit field "body_arch"
- a textarea containing "body_arch" value to be saved
When we save this happens:
1. we save the current value of wysiwyg into textarea
2. wysiwyg content is inlined (eg. transforming font in image)
3. inlined wysiwyg content is set to "body_html" field
4. if there:
- is no error while saving => body_html and body_arch are saved and
will be used on next edition
- if there is an error the fields are not saved, and we now have an
inlined content on wysiwyg, so next time we save the "body_arch" is
going to be inlined:
=> this for example breaking the icons on edition
Issue discovered when fixing opw-2447756
Forward-Port-Of: odoo/odoo#65208Direct filling new column is dramatically faster than doing it via ORM, which iterates over each row. Test results for updating new related field in 10 records: BEFORE: sql_update_log: 12 sql_from_log: 5 sql_into_log: 0 AFTER: sql_update_log: 1 sql_from_log: 3 sql_into_log: 0 --- task-2449313 opw-2380445 opw-2389376 odoo/enterprise#15910 Forward-Port-Of: odoo/odoo#65421 Forward-Port-Of: odoo/odoo#65232
Original PR description
Direct filling new column is dramatically faster than doing it via ORM, which iterates over each row. Test results for updating new related field in 10 records: BEFORE: sql_update_log: 12 sql_from_log: 5 sql_into_log: 0 AFTER: sql_update_log: 1 sql_from_log: 3 sql_into_log: 0 --- task-2449313 opw-2380445 opw-2389376 odoo/enterprise#15910 Forward-Port-Of: odoo/odoo#65421 Forward-Port-Of: odoo/odoo#65232
Issue - Install "Field Service" app - Create new task - Try to select Planned start/end date and valid Daterange picker is hiding when trying to scroll down to valid selection. Cause The daterange picker is closed when ev.target is not inside the picker, however ev.target always return the document element. Solution Do not hide daterange picker on scrolling if on mobile. Note : It will only apply if scrolling on the daterange picker and will still hide if
Original PR description
Issue - Install "Field Service" app - Create new task - Try to select Planned start/end date and valid Daterange picker is hiding when trying to scroll down to valid selection. Cause The daterange picker is closed when ev.target is not inside the picker, however ev.target always return the document element. Solution Do not hide daterange picker on scrolling if on mobile. Note : It will only apply if scrolling on the daterange picker and will still hide if scrolling outside this last one. opw-2428099 Forward-Port-Of: odoo/odoo#65423 Forward-Port-Of: odoo/odoo#64406
Wasn't very clear, but the state expects 1 line per revenue type, period, BCE number, and not 1 line per payslip. Forward-Port-Of: odoo/enterprise#16075
Original PR description
Wasn't very clear, but the state expects 1 line per revenue type, period, BCE number, and not 1 line per payslip. Forward-Port-Of: odoo/enterprise#16075
Forward-Port-Of: odoo/enterprise#16032
Original PR description
Forward-Port-Of: odoo/enterprise#16032
Forward-Port-Of: odoo/enterprise#16013 Forward-Port-Of: odoo/enterprise#15297
Original PR description
Forward-Port-Of: odoo/enterprise#16013 Forward-Port-Of: odoo/enterprise#15297