Monday, August 23, 2021
26 changes · master
New functionality added to Odoo
Point of Sale receipts for UAE-based companies now show the government-required VAT label instead of the generic Total Taxes wording. This helps businesses meet local receipt requirements and gives customers clearer tax information.
Original PR description
Description of the issue/feature this PR addresses: Replace `Total Taxes` string on pos receipt with `VAT` as per government regulations in UAE when the company is based in UAE. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
This update improves the Helpdesk coupon form by making coupon codes easier to copy. Users can copy the code directly from the field, reducing manual selection errors and saving time in day-to-day support workflows.
Original PR description
The purpose of this commit is to make generic UX improvements in helpdesk. So in this commit following changes are made: Coupon form view: - copy to clipboard widget used for 'Code' field **TaskID: 2578147** -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
This fix helps purchase-related stock records reuse existing system information when recalculating linked fields. It avoids an expensive lookup, improving performance during purchase and stock updates without changing user-facing workflows.
Original PR description
Adding this non-stored Many2many fields allows ORM to use cache in `_modified_triggers` and skip costly search: ``` records |= model.search([(key.name, 'in', real_records.ids)], order='id') ``` --- opw-2507143 similar update in accounting: #73884 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
Code cleanup and technical improvements
This update renames internal labels and variables in the Sales configuration and payment flow to make the code easier to understand and maintain. There is no expected change to day-to-day user behavior, but it helps future updates be safer and faster.
Original PR description
task-2612085
Miscellaneous changes
Issue: With a custom tax computation that depends on the quantity, when the price of the item is 0, when changing the quantity, the taxes are not changed Steps to reproduce : 1) Install Accounting, and account_tax_python 2) Accounting > Configuration > Accounting > Taxes : create a task : Tax Computation: Python Code Python code : `result = quantity * 0.3` 3) Accounting > Customer Invoices > New Invoice 4) Add a line with a product, unit price = 0, quantity = 2 5) Change
Original PR description
Issue: With a custom tax computation that depends on the quantity, when the price of the item is 0, when changing the quantity, the taxes are not changed Steps to reproduce : 1) Install Accounting, and account_tax_python 2) Accounting > Configuration > Accounting > Taxes : create a task : Tax Computation: Python Code Python code : `result = quantity * 0.3` 3) Accounting > Customer Invoices > New Invoice 4) Add a line with a product, unit price = 0, quantity = 2 5) Change the quantity, the tax does not change Why is that a bug: When the price is 0, changing the quantity doesn't affect the price so the onchange is not triggered even though the line changed opw-2559200 Forward-Port-Of: odoo/odoo#75086
The accounting lock date wording has been updated so users better understand what the date affects. This reduces confusion because the previous “Invoice / Bills lock date” label suggested a narrower scope than its actual behavior.
Original PR description
The current "Invoice / Bills lock date" is doing more than just locking invoice or bills. Change the labels accordingly to avoid it being misleading.
SEPA Direct Debit payment setup now records that refunds are supported. This helps businesses handle refund capabilities more clearly and consistently in payment configuration.
Original PR description
COM: https://github.com/odoo/odoo/pull/70881 UPGRADE: https://github.com/odoo/upgrade/pull/2689 task-2527891
Spreadsheet cells now show the first digits of numbers when the full value does not fit. This makes shortened numerical values easier to understand at a glance and reduces confusion when reviewing documents.
Original PR description
[IMP] renderer: display first digits of cropped numbers
When a numerical value is cropped, its first digits are the most
relevant to display.
This commit ensures that we align the text to the left when it's length
overflows from the cell width.Corrects how the web mock server reads and displays certain dates, including quarter-based dates and ISO week-year formats. This helps keep automated web tests accurate and prevents date-related test failures after the date library migration.
Original PR description
On 00e3cb74c44565b2106dba6befac2b6f8512eede the migration of the code to parse and formate dates on the mock server from moment to luxon was done. Two issues were introduced on that commit: Parsing a date displayed on quarter wasn't possible; And the ISO week year wasn't used to format the date, but it was used to parse the date, for symmetry's sake, now the ISO week year is used on both.
Email marketing reports now group and filter results using the correct field. This helps users see more accurate campaign reporting and avoids misleading analysis when reviewing mailing performance.
Original PR description
Oversight of odoo/odoo@f16dbbcaecb7d46aefd3451eab2082316e8b0eec
This update fixes a date-related issue in the HR Appraisal test suite that could cause failures on certain days of the month. It helps keep automated checks stable without changing employee appraisal functionality.
Original PR description
2021-08-23 - 6 months + 6 days = 2021-03-01
duration_after_recruitment = 6
-> domain computed
```
'&',
('create_date', '>', '2021-01-31'),
('create_date', '<=', '2021-02-28')
```This update aligns several business apps with a shared change that improves how activity types are referenced and accessed. It helps keep reminders, approvals, documents, subscriptions, and other workflows working consistently after the underlying platform update.
Original PR description
Enterprise part of odoo/odoo#74981
The referral app’s progress bar styling has been narrowed so it only applies where intended. This prevents the shared progress layout from accidentally changing the appearance of unrelated screens, improving visual consistency across the system.
Original PR description
This commit fixes the hr_referral scss by conditioning the style applied on the progress class to its own use cases. Indeed, the progress class is a global class and adding rules to it may break other layouts. Task-2567591
Helpdesk tickets now hide SLA-related fields when SLA tracking is turned off. This keeps ticket screens cleaner and prevents users from seeing irrelevant service-level information.
Original PR description
task - 2579066
Step to follow - Trigger the Print > Invoices action - An error is displayed but the PDF is still attached Cause of the issue > The PDF is generated before the error Solution > Show an error earlier opw-2625480 Forward-Port-Of: odoo/odoo#75329
Original PR description
Step to follow - Trigger the Print > Invoices action - An error is displayed but the PDF is still attached Cause of the issue > The PDF is generated before the error Solution > Show an error earlier opw-2625480 Forward-Port-Of: odoo/odoo#75329
Purpose of this commit to fix access right error while user try to open sale order when he has no acces right of timesheet. So, In this commit improve code for timesheet_total_duration compute method to directly compute timesheet_total_duration from unit_amount of timesheets without any access right. TaskId: 2514517 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 an
Original PR description
Purpose of this commit to fix access right error while user try to open sale order when he has no acces right of timesheet. So, In this commit improve code for timesheet_total_duration compute method to directly compute timesheet_total_duration from unit_amount of timesheets without any access right. TaskId: 2514517 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#75252
When called with a `srt` as readgroup parameter we get a traceback. Example: `read_group([('partner_id', 'in', self.ids)], 'partner_id', 'partner_id')` TB: ``` Traceback (most recent call last): File "/home/odoo/src/odoo/14.0/odoo/tools/safe_eval.py", line 330, in safe_eval return unsafe_eval(c, globals_dict, locals_dict) File "", line 2, in <module> File "/home/odoo/src/odoo/14.0/odoo/addons/base/models/ir_attachment.py", line 420, in read_group if any('(' in field f
Original PR description
When called with a `srt` as readgroup parameter we get a traceback.
Example:
`read_group([('partner_id', 'in', self.ids)], 'partner_id', 'partner_id')`
TB:
```
Traceback (most recent call last):
File "/home/odoo/src/odoo/14.0/odoo/tools/safe_eval.py", line 330, in safe_eval
return unsafe_eval(c, globals_dict, locals_dict)
File "", line 2, in <module>
File "/home/odoo/src/odoo/14.0/odoo/addons/base/models/ir_attachment.py", line 420, in read_group
if any('(' in field for field in fields + groupby):
TypeError: can only concatenate list (not "str") to list
```
Observed on the upgrade request 22627.
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#75404Before this commit, with some animations (e.g. Bounce In-Left) the overlay of the animated element or the overlay of selected element inside it no longer reappeared after the animation. 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#75384
Original PR description
Before this commit, with some animations (e.g. Bounce In-Left) the overlay of the animated element or the overlay of selected element inside it no longer reappeared after the animation. 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#75384
For some reason _logger.info with exc_info=True inside a recursive function generates RecursionErrors, presumably because the logger uses recursion itself to generate the stack trace that is logged. A simple solution would be to remove exc_info=True, but I've decided to move the log out of the delete function and simply call it once per uninstall process with all undeletable IDs, so it's kind of a fix + optimization. Example before this patch: https://runbot.odoo.com/runbot/build/9554
Original PR description
For some reason _logger.info with exc_info=True inside a recursive function generates RecursionErrors, presumably because the logger uses recursion itself to generate the stack trace that is logged. A simple solution would be to remove exc_info=True, but I've decided to move the log out of the delete function and simply call it once per uninstall process with all undeletable IDs, so it's kind of a fix + optimization. Example before this patch: https://runbot.odoo.com/runbot/build/9554306 (see full logs and grep RecursionError) Example after this patch: https://runbot.odoo.com/runbot/build/9204177 (no error) NB: The runbot kills individual sub builds after they reach a certain amount of time, however it's normal for a full enterprise install to take longer than 10-11min if one uninstalls a core module (which means uninstalling a lot of other modules that depend on it) Forward-Port-Of: odoo/odoo#75422
Since a partner of the type private is created when the partner is created at message post (see _message_post_after_hook), most of the hr.applicant are linked to a partner_id of type private And recruitment officer may not have the access to private address, those user can get an access error while opening a form view of an hr.applicant due to get_suggested_recipients called. They are already able to see the email address and the name of the applicant directly on the applicant form we
Original PR description
Since a partner of the type private is created when the partner is created at message post (see _message_post_after_hook), most of the hr.applicant are linked to a partner_id of type private And recruitment officer may not have the access to private address, those user can get an access error while opening a form view of an hr.applicant due to get_suggested_recipients called. They are already able to see the email address and the name of the applicant directly on the applicant form we can consider they should be able to call get_suggested_recipients Solution: read the partner with sudo -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#75282
To replicate an issue: Install website. Have multiple companies. Set company A for the website. Check the company B from the multi-company widget. Now create appraisal for employee (that belongs to B company). Ask Feedback for the employee. Click on the 'Feedback Survey' and we get - Appraisal multi-company - restriction. After this fix, we won't get the same issue task - 2528209 Forward-Port-Of: odoo/enterprise#19919
Original PR description
To replicate an issue: Install website. Have multiple companies. Set company A for the website. Check the company B from the multi-company widget. Now create appraisal for employee (that belongs to B company). Ask Feedback for the employee. Click on the 'Feedback Survey' and we get - Appraisal multi-company - restriction. After this fix, we won't get the same issue task - 2528209 Forward-Port-Of: odoo/enterprise#19919
Forward-Port-Of: odoo/enterprise#20391
Original PR description
Forward-Port-Of: odoo/enterprise#20391
Before this update the popover was not visible at all. After this update, the popover is propvery located, but its arrow is located on wrong side. So, the solution is not complete, though make the feature usable: ``` +------------------+ | X signature | +------------------+ | | | | | | +------------------------+
Original PR description
Before this update the popover was not visible at all. After this update, the popover is propvery located, but its arrow is located on wrong side. So, the solution is not complete, though make the…
Before this update the popover was not visible at all.
After this update, the popover is propvery located, but its arrow is located on
wrong side. So, the solution is not complete, though make the feature usable:
```
+------------------+
| X signature |
+------------------+
| |
| |
| | +------------------------+
| | | |
The arrow-> < Filled by| | Signature |
| | | |
| [Customer] | +------------------------+
| |
| +---------+|
| | Confirm ||
| +---------+|
+------------------+
```
---
opw-2557668

Forward-Port-Of: odoo/enterprise#20221Before this commit: Create a task, unselect the worksheet template which is set by default. The worksheet template is automatically set again instead of being unselected. After this commit: Currently, due to the `write` call the `display_project_id` will update, and due to display_project_id, the `project_id` will be going to update and hence call the `_compute_worksheet_template_id` method as it depends on project_id. And because of all these processes, the worksheet template aga
Original PR description
Before this commit: Create a task, unselect the worksheet template which is set by default. The worksheet template is automatically set again instead of being unselected. After this commit: Currently, due to the `write` call the `display_project_id` will update, and due to display_project_id, the `project_id` will be going to update and hence call the `_compute_worksheet_template_id` method as it depends on project_id. And because of all these processes, the worksheet template again take values from compute method Applied the 'update' method instead of 'write' to update the respective record values. Hence the worksheet template will be remain unselected. Task-2585869 Forward-Port-Of: odoo/enterprise#20355
Currently there is a traceback when adding a filter, selecting a field matching and then a related model. From a functional point of vue it makes no sense to choose a field match before the related model. Therefore this commit will hide the field matching part when no related model is selected. task-id: 2362089 Forward-Port-Of: odoo/enterprise#20347 Forward-Port-Of: odoo/enterprise#18770
Original PR description
Currently there is a traceback when adding a filter, selecting a field matching and then a related model. From a functional point of vue it makes no sense to choose a field match before the related model. Therefore this commit will hide the field matching part when no related model is selected. task-id: 2362089 Forward-Port-Of: odoo/enterprise#20347 Forward-Port-Of: odoo/enterprise#18770
Missing the `alert` class creates an unwanted margin inside the form view. Task-ID-2607982 Forward-Port-Of: odoo/enterprise#20321
Original PR description
Missing the `alert` class creates an unwanted margin inside the form view. Task-ID-2607982 Forward-Port-Of: odoo/enterprise#20321