Thursday, December 10, 2020
35 changes · master
Enhancements to existing features
Users can now turn Google Calendar and Outlook calendar synchronization on or off independently without uninstalling modules. This gives businesses more control over calendar integrations while keeping the option to restart synchronization later.
Original PR description
Description of the issue/feature this PR addresses: Give more flexibility to the users by allowing them to stop the synchronization with Google/Outlook calendar. Current behavior before PR: Only way to stop the active synchronization with Google/Outlook calendar is to uninstall both modules. Desired behavior after PR is merged: Add a "toggle" button that allow to turn on/off the synchronization with Google/ Outlook calendar independently (i.e. possible to turn off Google sync. while leaving Outlook sync. active). (PS for the review: the source codes for Outlook and Google are almost identical, except for the Calendar Popovers and the tests for the new stop/restart feature). Task ID: 2330246 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change updates the website and email content editing tools so they better track and apply changes made inside editable pages. It should make editing snippets, forms, menus, and rich text content more reliable, with fewer formatting or synchronization issues across browsers.
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
This updates Odoo's master branch version label to 14.2 alpha 1. It helps teams and users clearly identify the next development milestone, with no expected impact on day-to-day business workflows.
Discuss notifications now use a calmer informational style instead of a warning style. This makes routine messaging prompts feel less alarming and improves the overall user experience in Odoo Discuss.
Original PR description
**PURPOSE** Discuss notification needs to be changed for better UI. **SPECIFICATION** Improving design of discuss notification by using bg-info instead of bg-warning. **LINKS** PR https://github.com/odoo/odoo/pull/55542 Task-2308799
Subscription templates now use clearer wording by describing invoice creation as posting rather than sending. The duplicate “send and try to charge” option was removed because it behaved much like sending after successful payment and could create confusing extra emails, especially for SEPA Direct Debit customers.
Original PR description
Purpose & Specifications 1) Wrong name for selections: "send" should be modify by "post". When Odoo creates an invoice, it is not send but "posted". 2) Remove "send & try to charge": the behavior of this option is similar to "Send after successful payment" LINKS PR: #10942 Task-id: 2201199
The Documents app now presents tags and sharing screens more cleanly, especially in list views and the Share & Emails area. Share links are no longer created just by opening the share action, reducing unnecessary links and keeping shared document management tidier.
Original PR description
Change the list view widget as KanbanFieldMany2ManyTags looks weird with the list view in the "All" folder. Add various cosmetic changes to Share & Emails form/list view. Prevent the Share button to immediately create a share link. This avoid creating useless links each time the user clicks on the Share button. Change some tests as the behavior of create_share has been updated. Task ID: 2329424
Payroll users can now access a dedicated Time Off to Approve menu under Work Entries. This makes it easier to identify leave requests that still need approval and must be included in payslip processing.
Original PR description
The purpose of this task is to add a new menu "Time Off to Approve" in Payroll that will display the leaves that have to be approved. In this commit a menu "Time Off to Approve" is added in the Work Entries, that display the leaves that have to be approved and have to be reported in payslip. **TaskID:2388746**
Resolved issues and error corrections
Coupon discounts on sales orders are now correctly reflected when creating invoices. This prevents customers from being billed without the promised discount when coupon products use delivered-quantity invoicing settings.
Original PR description
Master/13.4 Behaviour: SO to Invoice -> coupon discount does not reflect in Invoice 13.0 Behaviour: SO to Invoice -> Coupon discount reflect perfectly. LINKS: PR - #63062 TaskID - 2303244
Miscellaneous changes
Despite being part of the requirement.txt, xlrd apparently was still optional-ish, and absent from some environments like the iotbox. Restore this by only monkeypatching xlrd if it's actually present. Forward-Port-Of: odoo/odoo#63025
Original PR description
Despite being part of the requirement.txt, xlrd apparently was still optional-ish, and absent from some environments like the iotbox. Restore this by only monkeypatching xlrd if it's actually present. Forward-Port-Of: odoo/odoo#63025
This fix makes it possible to delete custom website snippets again after the delete action was being blocked by the editor's drag-and-drop behavior. It also adds an automated website editor test to help prevent the same issue from returning.
Original PR description
This commit is a manual forward port of #62555. The tour test needed to be adapted because the navigation flow is slightly different: upon custom snippet creation, the editor page used to be saved and reloaded in 14.0 but this is not the case anymore. Before this commit the deletion of custom snippets failed because the button click event got intercepted by the drag'n'drop mechanism. The currentTarget of the event was used in an asynchronous call where it had already been replaced by the jQuery's event bubbling mechanism when invoking the other handler. After this commit the deletion of custom snippets works again and a test tour is introduced to make sure it does not get broken again task-2405854 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
Users can now mark an activity as done and schedule the next one from the chatter without losing unsaved changes they made in the form. This reduces accidental data loss and makes activity follow-up smoother during record editing.
Original PR description
PURPOSE The changes in the form which are done in an edit mode are erased while the user marks activity as done and schedule a new one in chatter. SPECIFICATIONS The changes done in an edit mode will remain the same while the user marks activity as done and schedule a new one in chatter. LINKS PR https://github.com/odoo/odoo/pull/48434 Task-2160474 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures that deleting delivery-related sale order records properly returns the expected completion result. It helps maintain reliable behavior for processes that depend on knowing whether the deletion succeeded.
Original PR description
Description of the issue/feature this PR addresses: Litle fix @mart-e -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
In commit ab76c421c27 the Dozens unit of measure was moved to demo data. Unfortunately, this data is used in enterprise module product_unspc in a post init hook. As a consequence, when installing this module without demo data, the initialization crashes. With this commit, the Dozens uom is moved back to regular data. Forward-Port-Of: odoo/odoo#63114
Original PR description
In commit ab76c421c27 the Dozens unit of measure was moved to demo data. Unfortunately, this data is used in enterprise module product_unspc in a post init hook. As a consequence, when installing this module without demo data, the initialization crashes. With this commit, the Dozens uom is moved back to regular data. Forward-Port-Of: odoo/odoo#63114
- Open a POS session - In the same POS order, add the following order lines: **Product** | **Quantity** | **Price** Product A | 1 | $ 1.00 Product A | -1 | $ 2.00 Product B | 1 | $ 5.00 - The order has a total of $ 4.00 - Pay and validate order - Go to Point of Sale > Reporting > Orders and switch to pivot view The order has a total of 5.00 This is due to the fact that products, for which the sum of quantities is equa
Original PR description
- Open a POS session - In the same POS order, add the following order lines: **Product** | **Quantity** | **Price** Product A | 1 | $ 1.00 Product A | -1 | $ 2.00 Product B | 1 | $ 5.00 - The order…
- Open a POS session
- In the same POS order, add the following order lines:
**Product** | **Quantity** | **Price**
Product A | 1 | $ 1.00
Product A | -1 | $ 2.00
Product B | 1 | $ 5.00
- The order has a total of $ 4.00
- Pay and validate order
- Go to Point of Sale > Reporting > Orders and switch to pivot view
The order has a total of 5.00
This is due to the fact that products, for which the sum of quantities is equal
to 0, are not retrieved by the SQL request.
(i.e. Sum of quantities for Product A = 1 - 1 = 0)
This is caused by the HAVING section that is there to prevent a division by 0
when computing average_price, which depends on the sum of quantities of the product.
The solution is to remove the HAVING section and to set average_price to NULL
when the sum of quantities for a product is equal to 0.
opw-2369023
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#63107task-2411756 Forward-Port-Of: odoo/odoo#62861
Original PR description
task-2411756 Forward-Port-Of: odoo/odoo#62861
This avoid text flickering when a multiline channel name is hovered in the discuss sidebar. task-2274991 Forward-Port-Of: odoo/odoo#63084
Original PR description
This avoid text flickering when a multiline channel name is hovered in the discuss sidebar. task-2274991 Forward-Port-Of: odoo/odoo#63084
Currently, when we update the Quantity from the 'Update quantity' button on a variant formview the product_id is not set due to reset of the context for product template. so in this commit, set the default product_id on update quantity wizard when open through the product form view and also keep default behaviour when called from product template. TaskID: 2387310 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#6310
Original PR description
Currently, when we update the Quantity from the 'Update quantity' button on a variant formview the product_id is not set due to reset of the context for product template. so in this commit, set the default product_id on update quantity wizard when open through the product form view and also keep default behaviour when called from product template. TaskID: 2387310 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#63109 Forward-Port-Of: odoo/odoo#62234
Before this commit, the theme colors did not update dynamic svg images due to an inversion between key and value in the code. 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#63137
Original PR description
Before this commit, the theme colors did not update dynamic svg images due to an inversion between key and value in the code. 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#63137
AFIP currency rates goes up to 6 digits. When invoicing exportation of services, AFIP requires to invoice on the exactly same rate. Without this change it was not possible for some currencies with 6 digits as CHF one. The change takes effect without needing of updating module 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/submi
Original PR description
AFIP currency rates goes up to 6 digits. When invoicing exportation of services, AFIP requires to invoice on the exactly same rate. Without this change it was not possible for some currencies with 6 digits as CHF one. The change takes effect without needing of updating module 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#62845
One can leave the currency_id empty and that causes Traceback error Task - 2409942 Forward-Port-Of: odoo/odoo#62648
Original PR description
One can leave the currency_id empty and that causes Traceback error Task - 2409942 Forward-Port-Of: odoo/odoo#62648
Unlinking it could be problematic if the synchronization is activated with google or microsoft, as this action is prevented to avoid multiple synchronization of the same event. 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#63135
Original PR description
Unlinking it could be problematic if the synchronization is activated with google or microsoft, as this action is prevented to avoid multiple synchronization of the same event. 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#63135
task-2391170 Forward-Port-Of: odoo/odoo#63142 Forward-Port-Of: odoo/odoo#62981
Original PR description
task-2391170 Forward-Port-Of: odoo/odoo#63142 Forward-Port-Of: odoo/odoo#62981
Before this commit, removing attachments that are being uploaded could lead to a traceback if the removed attachment was still awaiting for the upload of another attachment. part of task-2363522 Forward-Port-Of: odoo/odoo#61376
Original PR description
Before this commit, removing attachments that are being uploaded could lead to a traceback if the removed attachment was still awaiting for the upload of another attachment. part of task-2363522 Forward-Port-Of: odoo/odoo#61376
**Description of the issue/feature this PR addresses:** If you have a move line which was having tag_ids before and you apply a new tax which has no values defined and result in an empty list, the assignment does not work on a x2m field, so we do offer the proper notation for such a use case. **Current behavior before PR:** The already set `tag_ids` are not changed if the other tax_id does not have tags at all. **Desired behavior after PR is merged:** The `tag_ids` are removed if th
Original PR description
**Description of the issue/feature this PR addresses:** If you have a move line which was having tag_ids before and you apply a new tax which has no values defined and result in an empty list, the assignment does not work on a x2m field, so we do offer the proper notation for such a use case. **Current behavior before PR:** The already set `tag_ids` are not changed if the other tax_id does not have tags at all. **Desired behavior after PR is merged:** The `tag_ids` are removed if the the new retrieved tags based on valid `tax_ids` Info: @wt-io-it -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#63010 Forward-Port-Of: odoo/odoo#62934
**Description of the issue/feature this PR addresses:** - install `hr_expense` - create a product with `can_be_expensed = True` and `purchase_ok = False` Issue the field `supplier_taxes_id` is not visible (because inside Purchase page, this page is invisible when `purchase_ok = False`). With this PR the field `supplier_taxes_id` is visible in the `general_information` only if can_be_expensed = True` and `purchase_ok = False` @oco-odoo -- I confirm I have signed the CLA and read
Original PR description
**Description of the issue/feature this PR addresses:** - install `hr_expense` - create a product with `can_be_expensed = True` and `purchase_ok = False` Issue the field `supplier_taxes_id` is not visible (because inside Purchase page, this page is invisible when `purchase_ok = False`). With this PR the field `supplier_taxes_id` is visible in the `general_information` only if can_be_expensed = True` and `purchase_ok = False` @oco-odoo -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#63066
Before this commit, attempting to delete attachments multiple times could result in errors, especially on slow networks. This commit fixes this issue. task-2363522 Forward-Port-Of: odoo/odoo#61017
Original PR description
Before this commit, attempting to delete attachments multiple times could result in errors, especially on slow networks. This commit fixes this issue. task-2363522 Forward-Port-Of: odoo/odoo#61017
Currently when creating a calendar.event with google sync switched on and without adding another attendee, the event is immediatly removed from the calendar view. This is because the user_id is filtered out of the attendee_ids before sending the values to google calendar. Then, at the next sync, google response attendees list does not contain the user_id so Odoo turns that into a [(3, id)] command. Thus, the corresponding event disappear from the current calendar view even though it is sti
Original PR description
Currently when creating a calendar.event with google sync switched on and without adding another attendee, the event is immediatly removed from the calendar view. This is because the user_id is…
Currently when creating a calendar.event with google sync switched on and without adding another attendee, the event is immediatly removed from the calendar view. This is because the user_id is filtered out of the attendee_ids before sending the values to google calendar. Then, at the next sync, google response attendees list does not contain the user_id so Odoo turns that into a [(3, id)] command. Thus, the corresponding event disappear from the current calendar view even though it is still in the DB. This fix is essentially the same as the one implemented in the microsoft_calendar addons available from 14.0 onwards. It adds the calendar owner if the event organizer is not null. This way, even though the owner is not sent as an attendee, it is not removed after google's response. 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#63167
Thanks to Layline Tech for the update and cleaning out 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#63148
Original PR description
Thanks to Layline Tech for the update and cleaning out 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#63148
Before this commit, the background-position was not removed from a shape when it was re-flipped to its original orientation. introduced in #61114 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#63173
Original PR description
Before this commit, the background-position was not removed from a shape when it was re-flipped to its original orientation. introduced in #61114 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#63173
PURPOSE Improve Mobile UI of Appraisal SPECIFICATIONS Goals Form Appraisal Form If using the Status button => Error: Uncaught Error: Please use show on visible elements Traceback: Error: Please use show on visible elements at Tooltip.show at Tooltip.$.fn.tooltip.Constructor.show LINKS: PR: #14998 Task-Id: 2348528 Forward-Port-Of: odoo/enterprise#14998
Original PR description
PURPOSE
Improve Mobile UI of Appraisal
SPECIFICATIONS
Goals Form
Appraisal Form
If using the Status button => Error:
Uncaught Error: Please use show on visible elements
Traceback:
Error: Please use show on visible elements
at Tooltip.show
at Tooltip.$.fn.tooltip.Constructor.show
LINKS:
PR: #14998
Task-Id: 2348528
Forward-Port-Of: odoo/enterprise#14998Forward-Port-Of: odoo/enterprise#15166 Forward-Port-Of: odoo/enterprise#15159
Original PR description
Forward-Port-Of: odoo/enterprise#15166 Forward-Port-Of: odoo/enterprise#15159
In a project, create two tasks with the same name, and create a timesheet entry for each of those tasks. Then go the the Timesheet app: it never loads itself. The issue came from the template: there is a t-foreach using the row's label as t-key. So, if two tasks have the same name, their rows have the same keys. Moreover, n the case of this specific view, each row has sub Components (widget="timesheet_uom"). The following happened when Owl tried to render the grid: - render the firs
Original PR description
In a project, create two tasks with the same name, and create a timesheet entry for each of those tasks. Then go the the Timesheet app: it never loads itself. The issue came from the template: there is a t-foreach using the row's label as t-key. So, if two tasks have the same name, their rows have the same keys. Moreover, n the case of this specific view, each row has sub Components (widget="timesheet_uom"). The following happened when Owl tried to render the grid: - render the first row and instantiate sub components - render the second row (with same t-key), destroy the previously instantiated components and re-instantiate them - wait forever for the first row (and its destroyed components) to finish. Task 2413371 Forward-Port-Of: odoo/enterprise#15179
Problem ------- Stage in recruitement process can have a reward of 0 point but you still want to see them as done in the recruitement process so referrer can see the complete status of there referree application Right now if a stage reward 0 point, you will never see it as done in the referral dashboard Solution -------- Consider a stage done as long as a hr.referral.point exist for this applicant and this stage even if it's 0 point Forward-Port-Of: odoo/enterprise#15201
Original PR description
Problem ------- Stage in recruitement process can have a reward of 0 point but you still want to see them as done in the recruitement process so referrer can see the complete status of there referree application Right now if a stage reward 0 point, you will never see it as done in the referral dashboard Solution -------- Consider a stage done as long as a hr.referral.point exist for this applicant and this stage even if it's 0 point Forward-Port-Of: odoo/enterprise#15201
Move chatter at the bottom of the inspector to match the other apps. Open Action dropdown items in fullscreen because more mobile-friendly. Zoom out pdf preview in "Split" Action, otherwise pdf unreadable. Add some cosmetic changes Forward-Port-Of: odoo/enterprise#14921
Original PR description
Move chatter at the bottom of the inspector to match the other apps. Open Action dropdown items in fullscreen because more mobile-friendly. Zoom out pdf preview in "Split" Action, otherwise pdf unreadable. Add some cosmetic changes Forward-Port-Of: odoo/enterprise#14921
Use the generic way to convert the report options to query. Also, it's safer since _query_get is managing the access rights. task: 2365656 Forward-Port-Of: odoo/enterprise#15142 Forward-Port-Of: odoo/enterprise#14290
Original PR description
Use the generic way to convert the report options to query. Also, it's safer since _query_get is managing the access rights. task: 2365656 Forward-Port-Of: odoo/enterprise#15142 Forward-Port-Of: odoo/enterprise#14290