Tuesday, July 20, 2021
21 changes · master
Enhancements to existing features
Renames confusing menu labels in Fleet and Website so users can more easily distinguish business menus from technical menus. Fleet's "Models" becomes "Vehicle Models", and Website's "Views" becomes "Page Views", including the related action name for consistency.
Original PR description
PURPOSE Right now, some menus having frequently accessed the same name, so it is mixed with technical/../menu while searching with name of the menu. this may cause user confuse. SPECIFICATION in this PR, change the frequent menu name 'Models' to 'Vehicle Models' and 'Views' to 'Page Views'. TaskId: 2595993 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update replaces older raw HTML handling with a safer, clearer way to show trusted formatted content. It reduces the risk of incorrect display or unsafe rendering while keeping rich text, notifications, dialogs, kanban cards, and formatted values working as intended.
Stock operations now generate move lines more efficiently for products tracked by serial number. This reduces repeated processing during large purchase confirmations, improving performance for high-volume inventory workflows.
Original PR description
No need to make the same query 10 k times during line generation STEPS: * create a PO for product tracked by serial, set qty=10000 * confirm the PO --- task-2575448
Field Service administrators can now manage task stages from the Configuration menu, using a list view similar to the Project app. Newly created stages are automatically linked to the Field Service project, making setup and workflow management easier.
Original PR description
Purpose In Configuration menu of Field Service module, add menu "stages" to manage stages in list view like it exists in Project module. SPECIFICATION - Adding the "stages" menu below "project" menu item. - The menu is accessible for Admin user as exists in project module. - All created stage will be automatically added to the "Field service" project. Task-2455754
The planning experience has been refined across calendar, list, kanban, and forecasting views to make schedules easier to read and manage. Users can better understand allocated hours, publish schedules more clearly, and create related tasks with fewer steps.
Original PR description
_*= project_forecast, project_timesheet_forecast The purpose of the commit is to improve the usability and onboarding of the planning app. So in this commit, done the below changes: 1) Calendar view:…
_*= project_forecast, project_timesheet_forecast
The purpose of the commit is to improve the usability and onboarding
of the planning app.
So in this commit, done the below changes:
1) Calendar view:
- the number of hours indicated in the popover should correspond to the number of allocated
hours set on the shift
- indicate the % of the allocated time in brackets next to the number of allocated hours
- use the avatar widget for the employee
- move the note field below the task_id one
- shift without any nameget should have the same height as the other ones
- year mode:
- indicate the start hour of the shift (if it lasts less than 24h)
- crop the nameget if it becomes too long to display on one line
- the color of the role should not overflow
- display non-working days according to the calendar of the current company and global
time off in grey
- the nameget should be "Employee - Project - Task - Role"
2) List view
- reorder the fields.
- when creating a task on the fly, set the project_id set on the shift by default
- the task field should not be clickable
- it should be possible to create a task on the fly (without needing to edit it) if the project_id is set
- add the following actions:
- 'publish & send'
- 'publish'
- use the current 'Planning: new schedule (multiple shifts)' mail template for the
'publish & send' action
- if there is at least 1 shift to publish, display a green toast notification that states
"The shifts have successfully been published (and sent)."
- else, display a red toast notification that states: "There are no shifts to publish (and send)."
3) Kanban view
- move the date above the project_id field
- indicate the number of allocated hours and allocated time % (if =/= 100%) in brackets underneath
the date
- display the color of the role on the left of the card
- burger menu: rename 'edit slot' into 'edit'
4) Gantt view
- Gantt view popover
- the format of the 'effective hours' field should be 00:00
- indicate the allocated time % in brackets next to the number of allocated hours
- display the 'copy previous week' button in primary
TaskID:2502245This update replaces older ways of inserting formatted content with a safer, more consistent approach across accounting, documents, helpdesk, planning, field service, rentals, subscriptions, and related apps. Users should see the same content and guided tour behavior, while the platform becomes easier to maintain and less prone to display issues.
Timesheet reviewers can now create new entries directly from validation grid views, improving day-to-day workflow flexibility. A new option also allows eligible timesheet entries to be marked as invalid again, while protecting entries already tied to posted invoices.
Original PR description
Allow creation on the grid view on the 'to validate' views. Remove the readonly attribute from timesheet grid views to allow for timesheet creation when all timesheet within grid cell have been validated. Add a new action to timesheet entries to invalidate them. This action is not applicable to timesheet entries linked to posted invoices. Task ID: 2577965
Resolved issues and error corrections
This update corrects internal developer documentation for web components so automated documentation tools can read it properly. It also clarifies default notification settings, helping future maintenance without changing how users experience the product.
Original PR description
jsdoc apparently doesn't understand arrow functions to indicate function-valued attributes. Also add some default values in the notifications typedefs.
Miscellaneous changes
**Description of the issue/feature this PR addresses:** Before this commit UserError, ValidationError are not correctly show. **Current behavior before PR:**  **Desired behavior after PR is merged:**  @pimodoo @rhe-odoo -- I confirm I have signed the CLA an
Original PR description
**Description of the issue/feature this PR addresses:** Before this commit UserError, ValidationError are not correctly show. **Current behavior before PR:**  **Desired behavior after PR is merged:**  @pimodoo @rhe-odoo -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#73649
Original PR description
non-owl JS-side of #68072: * deprecates `t-raw` * adds a `t-out` which `t-esc` aliases and which "does the right thing" * introduces a `Markup` function / object which is considered markup-safe by…
non-owl JS-side of #68072: * deprecates `t-raw` * adds a `t-out` which `t-esc` aliases and which "does the right thing" * introduces a `Markup` function / object which is considered markup-safe by t-out (thus left unescaped) - unlike the python version, most of the override hooks (e.g. concatenation, formatting, ...) are not available in JS, we might eventually want to override some of the action methods (e.g. replace) but so far the needs seemed pretty limited - and javascript pretty strongly differentiates between a string (primitive) and a String (object), the latter being what Markup gets - so various constructs which can return a Markup in Python can't really afford to in JS: I tried with QWeb and e.g. jquery *really* does not deal well with non-primitive strings, as a result `_.escape` is shimmed to understand `Markup` objects but will not return markup objects when escaping strings - `sprintf` (the one from web.utils) was updated for Markup-awareness for convenience though - and `Markup` can be used as a template tag, in which case it will automatically escape the substitutions - removed `messageIsHtml` from the non-owl notifications, replaced by the message being a markup object - updated Dialog to work the same way (it did not even have a flag), removed explicit escaping from most of the callsites (only found one where we actually leveraged dialog titles being markup) - modified the kanban view so HTML non-raw values automatically get wrapped in Markup Also moved some formatting from the server to the client, either removing the need to inject markup entirely or making the use of `Markup` much cleaner than just "mark whatever the server returned as safe". There are a few things I'm not entirely sure about e.g. whether even using markup is necessary for `formatMonetary`, doesn't the "unicode" NBSP work fine in HTML? Though we may need to keep `forceString` to ensure something like ascii-compatibility.
Original PR description
See odoo/odoo#70004.
Fixed an issue where clicking display-only buttons on the website visitor form could trigger an error. These visitor status and visit-count buttons are now correctly treated as non-clickable, preventing confusing interruptions for users.
Original PR description
PURPOSE Fix Traceback which occurs when clicking on buttons. SPECIFICATIONS In Visitors form if Connected/Offline or Visits button are clicked traceback occurs. LINKS PR #73813 Task 2593552
Before this commit, for a subcontracted product with reserved available tracked components, if at least one component is recorded but not all, the "Record components" button isn't available anymore. How to reproduce: - Create a product and create a subcontracting BOM for this product; - Add a tracked component for this product; - Add some qty. for the tracked component in the subcontracting loc.; - Create a receipt for the subcontracted product (for demand qty. more than 1) with t
Original PR description
Before this commit, for a subcontracted product with reserved available tracked components, if at least one component is recorded but not all, the "Record components" button isn't available anymore.
How to reproduce:
- Create a product and create a subcontracting BOM for this product;
- Add a tracked component for this product;
- Add some qty. for the tracked component in the subcontracting loc.;
- Create a receipt for the subcontracted product (for demand qty. more than 1) with the subcontractor as partner and confirm it:
=> The "Record components" button should be visible.
- Record a part of the demand qty. then click on "Continue", then on "Discard":
=> The "Record components" button is now hidden.
It's because the button is hidden if all the MO are done or to close (they are) and if all the tracked move lines have a SN/LN (they have as they are reserved).
task-2604728
Forward-Port-Of: odoo/odoo#73780Description of the issue/feature this PR addresses: Currently, the quantity delivered of a sales order line for a dropship product with a kit BoM will never be updated if there is any related move that has been cancelled, for example there are several pickings and one of them has been cancelled. Current behavior before PR: The quantity delivered is not updated in the scenario described above. Desired behavior after PR is merged: The quantity delivered is computed considering the stock move
Original PR description
Description of the issue/feature this PR addresses: Currently, the quantity delivered of a sales order line for a dropship product with a kit BoM will never be updated if there is any related move that has been cancelled, for example there are several pickings and one of them has been cancelled. Current behavior before PR: The quantity delivered is not updated in the scenario described above. Desired behavior after PR is merged: The quantity delivered is computed considering the stock moves that are not cancelled. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#73532 Forward-Port-Of: odoo/odoo#73372
Before this commit, overrided images was not visible if not logged in. How to reproduce ---------------- Install a theme with configurator to have custom image of industries. Log out You have original image instead of industries 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#73863
Original PR description
Before this commit, overrided images was not visible if not logged in. How to reproduce ---------------- Install a theme with configurator to have custom image of industries. Log out You have original image instead of industries 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#73863
In 2018 geoip2 support was added to allow the new database format that are freely available. But for these, only a subset of properties are available. Since Odoo 13 (August 2019), the sign module is using geoip latitude and longitude for logging access to sign module signatures, but this was only working for database using the first version of GeoIP databases. In other use case there would never be any geolocalization recorded. With this change, latitude and longitude are available in the ses
Original PR description
In 2018 geoip2 support was added to allow the new database format that are freely available. But for these, only a subset of properties are available. Since Odoo 13 (August 2019), the sign module is using geoip latitude and longitude for logging access to sign module signatures, but this was only working for database using the first version of GeoIP databases. In other use case there would never be any geolocalization recorded. With this change, latitude and longitude are available in the session if the right module/database is installed. opw-2426323 Forward-Port-Of: odoo/odoo#73973
- Define a [DEMO] prod with tracking by SN and add some SNs - Activate "use existing lot/serial number" on the receipt picking type - Create a purchase order for [DEMO] - Process the receipt in the barcode app: * Scan the product * Scan the SN barcode * Validate User will get an error. It seems that Odoo is trying to create this SN instead of matching the existing one opw-2474347 Description of the issue/feature this PR addresses: Current behavior before PR: Desired
Original PR description
- Define a [DEMO] prod with tracking by SN and add some SNs - Activate "use existing lot/serial number" on the receipt picking type - Create a purchase order for [DEMO] - Process the receipt in the barcode app: * Scan the product * Scan the SN barcode * Validate User will get an error. It seems that Odoo is trying to create this SN instead of matching the existing one opw-2474347 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#70097
After FW-port https://github.com/odoo/odoo/pull/64721 Section for down payment were added multiple times because of a typo 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#73834
Original PR description
After FW-port https://github.com/odoo/odoo/pull/64721 Section for down payment were added multiple times because of a typo 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#73834
Since 14.3, Taxes have a country field. Newly created taxes don't always have the correct country set, thereby making the tax unusable. Issue identified in task 2591541 Forward-Port-Of: odoo/odoo#74038
Original PR description
Since 14.3, Taxes have a country field. Newly created taxes don't always have the correct country set, thereby making the tax unusable. Issue identified in task 2591541 Forward-Port-Of: odoo/odoo#74038
Adding tests for the follwing barcode flow - Define a [DEMO] prod with tracking by SN and add some SNs - Activate "use existing lot/serial number" on the receipt picking type - Create a purchase order for [DEMO] - Process the receipt in the barcode app: * Scan the product * Scan the SN barcode * Validate opw-2474347 Forward-Port-Of: odoo/enterprise#18277
Original PR description
Adding tests for the follwing barcode flow - Define a [DEMO] prod with tracking by SN and add some SNs - Activate "use existing lot/serial number" on the receipt picking type - Create a purchase order for [DEMO] - Process the receipt in the barcode app: * Scan the product * Scan the SN barcode * Validate opw-2474347 Forward-Port-Of: odoo/enterprise#18277
Since a2669c1 sale_amazon single module build was broken in test when validating a picking A first attempt to fix this was made in #19672. Unfortunattely this was not enough since this error was also triggered in other tests and helped to discover that this error wasn't leggit in some case: it should only be triggered if sale_id is linked to an amazon_order_ref but the check was triggered for all picking. The first part of this commit checks that we have an amazon_picking before chec
Original PR description
Since a2669c1 sale_amazon single module build was broken in test when validating a picking A first attempt to fix this was made in #19672. Unfortunattely this was not enough since this error was also triggered in other tests and helped to discover that this error wasn't leggit in some case: it should only be triggered if sale_id is linked to an amazon_order_ref but the check was triggered for all picking. The first part of this commit checks that we have an amazon_picking before checking if the module is installed. The second part checks if we are in a test to avoid to trigger this error on existing tests. This fix is crapy but easier to forwardport. It looks like more of the logic could be put under the `if amazon_pickings:` condition for performance reason but this will target master. Forward-Port-Of: odoo/enterprise#19748 Forward-Port-Of: odoo/enterprise#19735
- Create a Loyalty Program with at least 1 Points Rules applicable to all products - Delete the Loyalty Program just created - Open a POS Session - Set the customer and add a product on the list. Points will be awarded. This occur because: - rules are loaded in POS without taking into account POS settings - rules are not deleted along with the program opw-2560038 Forward-Port-Of: odoo/enterprise#19289 Forward-Port-Of: odoo/enterprise#19265
Original PR description
- Create a Loyalty Program with at least 1 Points Rules applicable to all products - Delete the Loyalty Program just created - Open a POS Session - Set the customer and add a product on the list. Points will be awarded. This occur because: - rules are loaded in POS without taking into account POS settings - rules are not deleted along with the program opw-2560038 Forward-Port-Of: odoo/enterprise#19289 Forward-Port-Of: odoo/enterprise#19265
Before this commit, the tests weren't run. Also, this commit changes the trigger in the test tour because it seems they are outdated. The test `test_receipt_tracked_subcontracted_product` can't pass without the community fix ba2f3cad2c67dd4385b78d3dcadd16c32c641d76 task-2604728 Forward-Port-Of: odoo/enterprise#19686
Original PR description
Before this commit, the tests weren't run. Also, this commit changes the trigger in the test tour because it seems they are outdated. The test `test_receipt_tracked_subcontracted_product` can't pass without the community fix ba2f3cad2c67dd4385b78d3dcadd16c32c641d76 task-2604728 Forward-Port-Of: odoo/enterprise#19686