Friday, May 15, 2020
20 changes · master
Enhancements to existing features
The IoT Box can now recognize and support new connected devices through configurable interfaces instead of requiring direct changes to core device-detection files. This makes upgrades easier for partners and improves support for specialized devices such as barcode scanners by letting more specific drivers take priority.
Original PR description
### Support devices on new interfaces without having to modify `driver.py` Until now, to detect new types of devices on the IoT Box, we had to modify driver.py. If partners wanted to connect a new…
### Support devices on new interfaces without having to modify `driver.py` Until now, to detect new types of devices on the IoT Box, we had to modify driver.py. If partners wanted to connect a new type of device, they had to modify directly the files on the Box, meaning that after each new build they had to re-apply all their modifications. We remove the loops that detected the connected devices and replace them by `Interfaces`. All interfaces will be loaded from the connected Odoo instance with the corresponding drivers. ### Support new devices by extending existing ones Previously, we tested the `supported` methods of all drivers sequentially in alphabetical order of file names. If you wanted to extend a driver, the `supported` method of your driver could never be tested if the one of its parent was tested first. We've now added a priority order to drivers so that by default the extending driver will always be tested before the extended driver. You can still do something similar to what `is_tested_last` did by manually setting the priority of a driver to 0. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Analytic default settings are now included directly in Accounting, HR expenses, and Purchase instead of requiring separate add-on modules. This reduces setup steps after enabling analytics and makes related workflows available without extra manual installation.
Original PR description
Merge account_analytic_default into account Merge account_analytic_default_hr_expense into hr Merge account_analytic_default_purchase into purchase Prevent having to manually install default modules after activating analytics Task: 2182900
This update makes Odoo forums easier to browse, manage, and participate in by improving forum lists, post labels, voting, sharing, and backend administration screens. It also improves gamification rank visibility and profile ranking pages so users and administrators can better understand participation and progress.
Original PR description
Improve ranking display Improve backend view Fix share popup displayed on invalid post Fix ranking search Fix Upvote allow when already downvote Allow to edit FAQ (karma out of accordion) Add list view mode on forum index Add last_post / Number of post on forum index ... task-2201708
The color picker used in website and editor screens has been streamlined into a smaller, more consistent palette. Users get clearer color previews, simpler reset behavior, and more consistent interactions when editing text, backgrounds, and snippets.
Original PR description
-- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Payment journal entries now receive a fallback label when no payment communication is provided. This improves report readability and avoids issues when users manually review or edit journal entries that require a label.
Original PR description
The label of the journal items generated for a payment is the communication. However, this field is not required leading to journal items with an empty label. This doesn't lead to a good usability when opening the reports or when trying to edit manually the journal entry because the label is required on the form view. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Generated master passwords in the web database manager now use lowercase characters instead of all caps. This makes the passwords easier to read and enter while keeping the database setup flow unchanged.
Original PR description
No more shouting master passwords Following feedback from @antonylesuisse
The IoT Box can now detect devices through flexible interfaces loaded from Odoo, reducing the need for manual changes on each box. This makes it easier for partners to support new or customized devices and helps preserve those integrations across future updates.
Original PR description
### Support devices on new interfaces without having to modify `driver.py` Until now, to detect new types of devices on the IoT Box, we had to modify driver.py. If partners wanted to connect a new…
### Support devices on new interfaces without having to modify `driver.py` Until now, to detect new types of devices on the IoT Box, we had to modify driver.py. If partners wanted to connect a new type of device, they had to modify directly the files on the Box, meaning that after each new build they had to re-apply all their modifications. We remove the loops that detected the connected devices and replace them by `Interfaces`. All interfaces will be loaded from the connected Odoo instance with the corresponding drivers. ### Support new devices by extending existing ones Previously, we tested the `supported` methods of all drivers sequentially in alphabetical order of file names. If you wanted to extend a driver, the `supported` method of your driver could never be tested if the one of its parent was tested first. We've now added a priority order to drivers so that by default the extending driver will always be tested before the extended driver. You can still do something similar to what `is_tested_last` did by manually setting the priority of a driver to 0.
Approval-related icons now use a softer grey color instead of black. This creates a more consistent, less visually heavy look across approval and purchase approval screens without changing functionality.
Original PR description
Change the default icons color to #8f8f8f instead of black. TaskID: 2254763
The reporting editor in Web Studio was updated to stay compatible with a shared color selection component. This is an internal adjustment that helps keep customization tools working consistently without changing the user workflow.
Original PR description
Adapt imports after moving colorpicker dialog logic to a widget task-2195313
Customers using SEPA direct debit now see clearer wording when their payment is pending. The email button changes from “Sign & pay” to “View quote,” and the portal message explains that the request has been received and is being processed, reducing confusion and unnecessary follow-up.
Original PR description
PURPOSE
When you buy something on e-commerce with a differed payment (SEPA or wire transfer), you receive an email saying that payment is pending and you can reach your quote by clicking on a link.
But:
> On the email template, label of this button is "sign & pay" (which is unlogical because it's already paid)
> On the portal, "yellow sign" says "your payment request has been received. Waiting for bank approval" isn't clear enough
SPECIFICATION
Modify
> "Sign & pay" >> "View quote" ( https://cutt.ly/MtiENzQ )
> "Your payment ... " >> Your payment request has been received & we are processing it. You don't have to do nothing more. ( https://cutt.ly/ztiRqxP )
LINKS
PR: #9820
TaskID: 2210990Resolved issues and error corrections
This change restores previously removed legacy components to maintain backward compatibility. It helps existing customizations or integrations that still depend on those older interfaces continue working without disruption.
Original PR description
To ensure backward compatibility, stuff removed by ab4000fb3 have been restored. Task: 2234749
Miscellaneous changes
Purpose ======= Currently a custom override of Cleaner.allow_element() exists in tools to allow object tags for SVG images. This was due to the first prototype of website builder and its first implementation of image and svg management. This is not necessary anymore as using the tag is sufficient. We can safely clean code in the cleaner, allowing to speedup its performances. As it is used in most html fields and email parsing each unnecessary code removed is time gainged. Task 22
Original PR description
Purpose ======= Currently a custom override of Cleaner.allow_element() exists in tools to allow object tags for SVG images. This was due to the first prototype of website builder and its first implementation of image and svg management. This is not necessary anymore as using the tag is sufficient. We can safely clean code in the cleaner, allowing to speedup its performances. As it is used in most html fields and email parsing each unnecessary code removed is time gainged. Task 2215228 Forward-Port-Of: odoo/odoo#51279
Followup of https://github.com/odoo/odoo/pull/50982/commits Courtesy of https://github.com/sswapnesh In a multi-company environment `self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)` could be wrong while `employee_id`represents correct employee based on company. https://github.com/odoo/odoo/blob/fb17af76d791488c69eb3829376940b32998d374/addons/hr/models/res_users.py#L13 Making behavior Similar to https://github.com/odoo/odoo/blob/fb17af76d791488c69eb3829376940
Original PR description
Followup of https://github.com/odoo/odoo/pull/50982/commits
Courtesy of https://github.com/sswapnesh
In a multi-company environment `self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)` could be wrong while `employee_id`represents correct employee based on company.
https://github.com/odoo/odoo/blob/fb17af76d791488c69eb3829376940b32998d374/addons/hr/models/res_users.py#L13
Making behavior Similar to https://github.com/odoo/odoo/blob/fb17af76d791488c69eb3829376940b32998d374/addons/hr_expense/models/hr_expense.py#L663
TaskID: 2254687
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#51225
Forward-Port-Of: odoo/odoo#51175-Configure alias on sales team; -Send email, opportunity is created for sales team; -Enable leads on CRM settings and enable leads for sales team; -Send email to alias, lead is created for sales team; -Disable leads in CRM settings; -Send email to sales team alias; Before this commit a lead is created even those these have been disabled in CRM settings and you cannot access this menu anymore. Now, an opportunity is created for sales team. opw-2244379 Forward-Port-Of: odoo/odoo#50
Original PR description
-Configure alias on sales team; -Send email, opportunity is created for sales team; -Enable leads on CRM settings and enable leads for sales team; -Send email to alias, lead is created for sales team; -Disable leads in CRM settings; -Send email to sales team alias; Before this commit a lead is created even those these have been disabled in CRM settings and you cannot access this menu anymore. Now, an opportunity is created for sales team. opw-2244379 Forward-Port-Of: odoo/odoo#50731
Purpose ======= Update Lead Probability CRON is currently running in a single transaction and is locking lead table for too long. This task aim to improve the performance of the cron by: - reducing the number of update (instead of updating one by one the leads, update all lead with same value to update) - Making it multi-transactional (to avoid locking table during the whole process) Spec ==== - compute probability and automated probability values with only 2 decimals (ne
Original PR description
Purpose ======= Update Lead Probability CRON is currently running in a single transaction and is locking lead table for too long. This task aim to improve the performance of the cron by: - reducing the number of update (instead of updating one by one the leads, update all lead with same value to update) - Making it multi-transactional (to avoid locking table during the whole process) Spec ==== - compute probability and automated probability values with only 2 decimals (needed to compare new and old probability + to avoid too many values in the group by probability) - Group the leads to update by Probability value (rounded by 2 decimals) Note : This commit doesn't change the field definition to avoid migration. - Update leads by batch of limited number (=step), to avoid transaction to take too long. After each batch execution, commit to unlock the table before continuing with next batch. Task ID: 2224677 Forward-Port-Of: odoo/odoo#48623
Fixes #29694 Close #47204 Fix #37554 Before this commit, There was Traceback on calling this method w/o any inventories as variable `res` was not declared but Returned or Calling this methord over RPC will raise TypeError as this method does not returns amything. In this commit, We return True at original `post_inventory` method and Declare `res` to prevent undefined variable. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after
Original PR description
Fixes #29694 Close #47204 Fix #37554 Before this commit, There was Traceback on calling this method w/o any inventories as variable `res` was not declared but Returned or Calling this methord over RPC will raise TypeError as this method does not returns amything. In this commit, We return True at original `post_inventory` method and Declare `res` to prevent undefined variable. 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#51252 Forward-Port-Of: odoo/odoo#48733
The model account.setup.bank.manual.config (menu "Add a Brank Account") was with the group account.group_account_user ("Show Full Accounting Features"). Since 65530dfd6a04, transient models have ACL and are not accessible if the user does not belong in the group. The account.setup.bank.manual.config model is triggered via the server action account.action_new_bank_setting instead of a classical menu. It's also displayed in an onboarding step of account. Because of this, the group must b
Original PR description
The model account.setup.bank.manual.config (menu "Add a Brank
Account") was with the group account.group_account_user ("Show Full
Accounting Features").
Since 65530dfd6a04, transient models have ACL and are not accessible
if the user does not belong in the group.
The account.setup.bank.manual.config model is triggered via the server
action account.action_new_bank_setting instead of a classical
menu. It's also displayed in an onboarding step of account.
Because of this, the group must be relaxed (and not just adding a
group of a view/action)
In saas-13.2, 65530dfd6a04 made simply the wizard appears in readonly
but in saas-13.4, since 56a8c9e4311d24, trying to display a model on
which we do not have access produces and access rights error.
Forward-Port-Of: odoo/odoo#51312### Issue - Install Studio, Employee & Employee Presence Control - Employees > Studio > Search view - Add a field in Group by Error while view validation ### Cause Studio adds a "studio-view-group-ids" while the view is validated and the RNG validation fails because of this. ### Solution Do not add the attribute if we are validating views. Issue discovered while fw-porting #10031 Forward-Port-Of: odoo/enterprise#10280
Original PR description
### Issue - Install Studio, Employee & Employee Presence Control - Employees > Studio > Search view - Add a field in Group by Error while view validation ### Cause Studio adds a "studio-view-group-ids" while the view is validated and the RNG validation fails because of this. ### Solution Do not add the attribute if we are validating views. Issue discovered while fw-porting #10031 Forward-Port-Of: odoo/enterprise#10280
Issue - Install "l10n_cl_reports" module - Go to Accounting->Reporting->Balance Tributario (8 columnas) Traceback raised. Cause The sql query is executing with wrong param value for account_move.state (as 'am.state') ; it should be a tuple. Solution Wrap state value(s) in tuple. opw-2251600 Forward-Port-Of: odoo/enterprise#10598
Original PR description
Issue - Install "l10n_cl_reports" module - Go to Accounting->Reporting->Balance Tributario (8 columnas) Traceback raised. Cause The sql query is executing with wrong param value for account_move.state (as 'am.state') ; it should be a tuple. Solution Wrap state value(s) in tuple. opw-2251600 Forward-Port-Of: odoo/enterprise#10598
Followup of https://github.com/odoo/odoo/pull/50982/commits Courtesy of https://github.com/sswapnesh In a multi-company environment `self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)` could be wrong while `employee_id`represents correct employee based on company. https://github.com/odoo/odoo/blob/fb17af76d791488c69eb3829376940b32998d374/addons/hr/models/res_users.py#L13 Making behavior Similar to https://github.com/odoo/odoo/blob/fb17af76d791488c69eb3829376940
Original PR description
Followup of https://github.com/odoo/odoo/pull/50982/commits
Courtesy of https://github.com/sswapnesh
In a multi-company environment `self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)` could be wrong while `employee_id`represents correct employee based on company.
https://github.com/odoo/odoo/blob/fb17af76d791488c69eb3829376940b32998d374/addons/hr/models/res_users.py#L13
Making behavior Similar to https://github.com/odoo/odoo/blob/fb17af76d791488c69eb3829376940b32998d374/addons/hr_expense/models/hr_expense.py#L663
TaskID: 2254687
Forward-Port-Of: odoo/enterprise#10592
Forward-Port-Of: odoo/enterprise#10567