Wednesday, June 24, 2020
30 changes · master
Enhancements to existing features
The Fleet app now uses the clearer name “Vehicle Contract” for vehicle contract records. This replaces a longer, confusing label, making the interface easier for users to understand.
Original PR description
before this task The current name of model fleet.vehicle.log.contract is Contract information on a vehicle which is too long and confusing after this task The current name of model fleet.vehicle.log.contract renamed as Vehicle Contract TaskID: 2267547 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update refines several Project app labels, tooltips, menus, and setup options to make project planning and time tracking clearer for users. It also simplifies some forms by moving advanced configuration details to debug mode and improves task time-entry and billing-related guidance.
Original PR description
Description of the issue/feature this PR addresses: - remove the 'need assistance' tag - change the app description in manifest file 'Organize and plan your projects.' - change the description of the…
Description of the issue/feature this PR addresses: - remove the 'need assistance' tag - change the app description in manifest file 'Organize and plan your projects.' - change the description of the pad feature into, 'edit tasks description collaboratively in real time. see each author's text in a distinct color.' - add the following tooltip for the allow_billable field, 'invoice your time and material from tasks.' - add an fa-stopwatch icon in front of the Start & the Stop buttons in task's form view - rename the 'validate time spent' modal into 'confirm time spent ' + increase the size of the description field + this field should not be required - task kanban card: change the burger menu sequence to edit / archive / delete /share / set cover image - add context default_type 'service' for project form from task form and domain for create sale order form form task - changne project overview, 'hours recorded' to 'recorded hours' - in project form view, disable the creation for the portal users field - move the resource_calendar_id field & the 'time scheduling' section title to the debug mode - move the stage description and tooltips to the debug mode from project task type's form view - remove the email alias from the project quickcreate - in project overview, add the zero(0) at number of tasks to the tasks / late tasks / tasks in overtime stat buttons if no records - rename the 'ready for next stage' kanban state into 'ready' 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 update simplifies internal update logic in Sales and Website Slides Survey by using a newer standard mechanism instead of custom overrides. It should reduce maintenance risk while preserving existing behavior, including activity scheduling tied to invoice status.
Original PR description
Task 2186312
This update improves how timesheets behave in project-related workflows, including avoiding misleading warnings when no timesheets are linked. It also streamlines project creation and updates, and improves unit-of-measure handling in multi-company setups.
Original PR description
-- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Purchase receipt dates now follow the warehouse buying route settings instead of defaulting incorrectly on manually created purchase orders. This helps keep receipt alerts and downstream rescheduling behavior aligned with the warehouse's configured process.
Original PR description
before this commit, propagate date on 1st move was assigned with popagate_date of po line. In this, 1st move will be assigned with propagte_date of buy route of warehouse. Task-2209541 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 update makes a small internal adjustment to timesheet task cards so related field service views can customize their display conditions more easily. It does not change day-to-day behavior for users, but helps future customizations and maintenance.
Original PR description
Purpose of the commit is to add the name on condition so it will be inherited easily from the fsm view and able to change the condition easily by inheritance. TaskID: 2253536 Closes: #51979 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The timesheet timer play button now appears in green instead of red. This makes the control feel less alarming and better aligned with the product's enterprise styling.
Original PR description
timesheet_grid.scss: red replaced with enterprise primary color timer_start_component_js: 'red' class was replaced with 'primary-green', this name doesn't exist anywhere in community nor in enterprise and shouldn't cause any conflict
The timesheet helper text now more clearly explains that users can track time spent on projects and tasks, while preserving the mobile app guidance. Helpdesk time entry screens also receive clearer labels, prompts, and button icons, making time recording easier for support teams.
Original PR description
change the helper into: 'Track the time spent on your projects and tasks.' (keep the second part about the mobile app) TaskID: 2232051
Field service users now get a simpler All Tasks view, with less irrelevant task detail shown for field service work. Report sending is clearer because the send option is available from the form and is hidden once a report has already been sent.
Original PR description
Purpose of the is to do the small improvements for the field service app. In this commit done the below changes: - Change the default view of the 'All Tasks' menu to a list view(without group-by) - Hide the remaining hours tag if is_fsm is true - Hide the send report button after it has been sent - Added a "send report" action that opens the current send email modal and only visible by the form view only. TaskID: 2253536 Closes: #10796
Approval request status changes now use Odoo’s standard tracking behavior instead of custom handling. This keeps status history consistent with the rest of the system and reduces maintenance risk without changing the approval workflow for users.
Original PR description
Task 2186312
Resolved issues and error corrections
This fixes documentation page handling so custom metadata, such as SEO descriptions or keywords, can be added correctly per page. It helps improve search visibility and removes duplicated template logic, with no expected impact on regular Odoo users.
Original PR description
The translator defined a `meta` attribute, however: * it was static so couldn't be expanded using the `meta` directive, move to instance attribute, and create an `add_meta` method which adds some…
The translator defined a `meta` attribute, however: * it was static so couldn't be expanded using the `meta` directive, move to instance attribute, and create an `add_meta` method which adds some indentation (for a cleaner HTML output) * the `meta` directive itself was not supported by the translator * turns out HTMLWriter just removes the first to entries of `meta` as "cleanup", which explains why we had to duplicate it in the template - therefore pad the `meta` list and remove entries from template - move front to linktags, that seems more relevant @mart-e seems like it'd be useful for task 2121586 (doc SEO) as then SEO meta tags could be added on a per-document basis [using the meta directive](https://docs.readthedocs.io/en/latest/guides/technical-docs-seo-guide.html#use-meta-tags), though it would also need to be ported to the user documentation. Maybe it's time to work on the Great Unification between the user and technical docs somehow? Not quite sure whether we want to handle this by moving our custom extensions to pypi or submodules or subtrees or something. We'd probably still need to sync both docs to the "doc extensions repository" but it would likely be easier than needing to remember to copy updates from one to the other.
Miscellaneous changes
- Create 3 products A, B1, B2 - Create a BOM for A: Manufacture, 1 unit of B1 - Create another BOM or A: Kit, 1 unit of B2 - Create a MO for A - Click on 'Produce' B2 appears as a 'By-product'. Upon saving, an error occurs because of a rounding set to zero. The issues is coming from the generation of the `move_finished_ids`. Since the product A has a BOM kit, the latter is exploded and added as 'By-product'. We should not try to find phantom BOM for this specific use case.
Original PR description
- Create 3 products A, B1, B2 - Create a BOM for A: Manufacture, 1 unit of B1 - Create another BOM or A: Kit, 1 unit of B2 - Create a MO for A - Click on 'Produce' B2 appears as a 'By-product'. Upon saving, an error occurs because of a rounding set to zero. The issues is coming from the generation of the `move_finished_ids`. Since the product A has a BOM kit, the latter is exploded and added as 'By-product'. We should not try to find phantom BOM for this specific use case. A solution is to add a context key with the list of moves which needs to be skipped. opw-2251423 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#53441
This fixes an unwanted gap between alert messages in the mass mailing screen. The change makes scheduled or in-progress mailing alerts look cleaner and easier to read.
Original PR description
Before this commit there is space between alerts. It's not pretty. It only occur when a mailing is scheduled and mail have already be send (or un progress) task-2275560
Users can now group grid views by multiple fields without triggering an error if the first grouping is still loading. This improves reliability when analyzing data in grid views and prevents interruptions during reporting workflows.
Original PR description
Before this commit, when the user grouped by multiple fields before the first group by was done, they were getting a traceback. TaskID: 2279400
Runtimes on runbot, latest saas-13.3: > odoo.addons.test_lint.tests.test_pylint ran 1 tests in 244.72s, 2 queries this branch: > odoo.addons.test_lint.tests.test_pylint ran 1 tests in 70.34s, 2 queries Forward-Port-Of: odoo/odoo#53545
Original PR description
Runtimes on runbot, latest saas-13.3: > odoo.addons.test_lint.tests.test_pylint ran 1 tests in 244.72s, 2 queries this branch: > odoo.addons.test_lint.tests.test_pylint ran 1 tests in 70.34s, 2 queries Forward-Port-Of: odoo/odoo#53545
task-2272492 Forward-Port-Of: odoo/odoo#53439
Original PR description
task-2272492 Forward-Port-Of: odoo/odoo#53439
task-2278830 Forward-Port-Of: odoo/odoo#53447
Original PR description
task-2278830 Forward-Port-Of: odoo/odoo#53447
We have two providers: - The first with a price of 40, but we have to hire 10 hours - The second with a price of 50, but without a minimum quantity When we confirm the sales order, the order is created to the first supplier (no price is assigned). The ideal solution would be to group quantities by product to better determine the supplier to order from, but I also don't want to complicate this too much ... Another important issue is that the _select_seller method is not being used,
Original PR description
We have two providers: - The first with a price of 40, but we have to hire 10 hours - The second with a price of 50, but without a minimum quantity When we confirm the sales order, the order is…
We have two providers: - The first with a price of 40, but we have to hire 10 hours - The second with a price of 50, but without a minimum quantity When we confirm the sales order, the order is created to the first supplier (no price is assigned). The ideal solution would be to group quantities by product to better determine the supplier to order from, but I also don't want to complicate this too much ... Another important issue is that the _select_seller method is not being used, which can be extended.    @Tecnativa -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#53481 Forward-Port-Of: odoo/odoo#53054
Revision 07631a51858830cf9dd7f06e9c3ac2576efa559b inverts the parent/children relationship of the module categories `module_category_administration` and `module_category_administration_administration`, by swaping the `parent_id`. During an upgrade, e.g. from 12.0 to 13.0, as the `parent_id` node has been removed from the category `module_category_administration` in the data xml file, the field `parent_id` of the category was left untouched, therefore leaving the former parent, creat
Original PR description
Revision 07631a51858830cf9dd7f06e9c3ac2576efa559b inverts the parent/children relationship of the module categories `module_category_administration` and `module_category_administration_administration`, by swaping the `parent_id`. During an upgrade, e.g. from 12.0 to 13.0, as the `parent_id` node has been removed from the category `module_category_administration` in the data xml file, the field `parent_id` of the category was left untouched, therefore leaving the former parent, creating a recursion between the two categories. ```sql select id,name,parent_id from ir_module_category where name ilike 'administration'; id | name | parent_id ----+----------------+----------- 79 | Administration | 78 78 | Administration | 79 ``` Forward-Port-Of: odoo/odoo#53546
Issue remove_accents(input_str) return a string 'False' if the param is a boolean. Solution Return input_str if equal '' or False. opw-2278959 Forward-Port-Of: odoo/odoo#53554 Forward-Port-Of: odoo/odoo#53492
Original PR description
Issue remove_accents(input_str) return a string 'False' if the param is a boolean. Solution Return input_str if equal '' or False. opw-2278959 Forward-Port-Of: odoo/odoo#53554 Forward-Port-Of: odoo/odoo#53492
Current state of things: If the CRM and Sales tours have a sequence of 10 and 20, respectively, only the CRM tour will be active in the app switcher. Unfortunately, going in the Sales app will NOT start its tour. This commit makes sure that each app's tour will start when entering it, even if their tours are prioritized in the app switcher. Task: 2277847 Forward-Port-Of: odoo/odoo#53067
Original PR description
Current state of things: If the CRM and Sales tours have a sequence of 10 and 20, respectively, only the CRM tour will be active in the app switcher. Unfortunately, going in the Sales app will NOT start its tour. This commit makes sure that each app's tour will start when entering it, even if their tours are prioritized in the app switcher. Task: 2277847 Forward-Port-Of: odoo/odoo#53067
We should push the request object on the request stack only in the `__enter__` method, in order to be symmetrical with the `__exit__` method. Forward-Port-Of: odoo/odoo#53592 Forward-Port-Of: odoo/odoo#53574
Original PR description
We should push the request object on the request stack only in the `__enter__` method, in order to be symmetrical with the `__exit__` method. Forward-Port-Of: odoo/odoo#53592 Forward-Port-Of: odoo/odoo#53574
task-2278759 Forward-Port-Of: odoo/odoo#53448
Original PR description
task-2278759 Forward-Port-Of: odoo/odoo#53448
On a re-render, when: - a field is not yet started (still in willStart because of RPC) - then an action is executed we can get a traceback because we try to save the field before it is started and `this.el` is not set. eg. in MRP on a work order: - click on + to get new serial number => page is re-rendered with RPC call to update duration to mrp.workcenter.productivity().search_read to update time counter - click on "Record production" before RPC is finished => traceback because we
Original PR description
On a re-render, when: - a field is not yet started (still in willStart because of RPC) - then an action is executed we can get a traceback because we try to save the field before it is started and `this.el` is not set. eg. in MRP on a work order: - click on + to get new serial number => page is re-rendered with RPC call to update duration to mrp.workcenter.productivity().search_read to update time counter - click on "Record production" before RPC is finished => traceback because we try to save `duration` that is not already started (`this.$el.toggleClass` when `this.$el` is `undefined`) Without change, added test fails with: "Cannot read property 'toggleClass' of undefined" in BasicRenderer.canBeSaved "Expected 6 assertions, but 5 were run" Before saas-11.3 5faec34a3c this.el was always set in `init` so this issue did not happen. opw-2272117 Forward-Port-Of: odoo/odoo#53579 Forward-Port-Of: odoo/odoo#53532
task-2279224 Forward-Port-Of: odoo/enterprise#11395
Original PR description
task-2279224 Forward-Port-Of: odoo/enterprise#11395
Have a product P recognizable by barcode B1 Create a product A recognizable by barcode B2 Add to the current barcode nomenclature an alias B2 -> B1 on top of other rules Create a sale order with delivery of P Go to Barcode>Operations>Delivery Orders. Select the last delivery order and scan B2. A will be recognized and added to the delivery order, despite the alias rule set. This occur because the function that parses the barcode actually return its own input as long as the parsing is
Original PR description
Have a product P recognizable by barcode B1 Create a product A recognizable by barcode B2 Add to the current barcode nomenclature an alias B2 -> B1 on top of other rules Create a sale order with delivery of P Go to Barcode>Operations>Delivery Orders. Select the last delivery order and scan B2. A will be recognized and added to the delivery order, despite the alias rule set. This occur because the function that parses the barcode actually return its own input as long as the parsing is successful. opw-2280064 Forward-Port-Of: odoo/enterprise#11383
Issue Incomming caller ID isn't identified due to '-' inside sanitized phone number. Sample no match: Incomming caller number : 972584082887 Sanitized number in db: +972 58-408-2887 Solution Replace sanitizing format, INTERNATIONAL by E164; it will remove all spaces and '-' like the incomimg number. Voip incomming number must also be in E164 format: https://github.com/odoo/enterprise/blob/cf19dea77c6a6cff4956e5553ff608da1be9137f/voip/static/lib/sip.js#L10587-L10590
Original PR description
Issue Incomming caller ID isn't identified due to '-' inside sanitized phone number. Sample no match: Incomming caller number : 972584082887 Sanitized number in db: +972 58-408-2887 Solution Replace sanitizing format, INTERNATIONAL by E164; it will remove all spaces and '-' like the incomimg number. Voip incomming number must also be in E164 format: https://github.com/odoo/enterprise/blob/cf19dea77c6a6cff4956e5553ff608da1be9137f/voip/static/lib/sip.js#L10587-L10590 opw-2273126 Forward-Port-Of: odoo/enterprise#11379
Issue Accents are not allowed for shipper/recipient contact (Person/Company name and address street/city) on Fedex labels. Ref. Fedex api documentations. http://www.fedex.com/templates/components/apps/wpor/secure/downloads/pdf/97607_DVG_13_0_1_Final.pdf Solution Remove accents. opw-2278959 Forward-Port-Of: odoo/enterprise#11387 Forward-Port-Of: odoo/enterprise#11321
Original PR description
Issue Accents are not allowed for shipper/recipient contact (Person/Company name and address street/city) on Fedex labels. Ref. Fedex api documentations. http://www.fedex.com/templates/components/apps/wpor/secure/downloads/pdf/97607_DVG_13_0_1_Final.pdf Solution Remove accents. opw-2278959 Forward-Port-Of: odoo/enterprise#11387 Forward-Port-Of: odoo/enterprise#11321
Before this commit: The activity and favorite widgets are overlapped for kanban cards of documents. This is happening because the class 'favorite_sign_button' has an absolute position. After this commit: Set initial position for the class 'favorite_sign_button' to avoid the overlapping issue. LINKS PR https://github.com/odoo/enterprise/pull/10657 Task: 2257512 Forward-Port-Of: odoo/enterprise#10657
Original PR description
Before this commit: The activity and favorite widgets are overlapped for kanban cards of documents. This is happening because the class 'favorite_sign_button' has an absolute position. After this commit: Set initial position for the class 'favorite_sign_button' to avoid the overlapping issue. LINKS PR https://github.com/odoo/enterprise/pull/10657 Task: 2257512 Forward-Port-Of: odoo/enterprise#10657
For campaign with a lot of existing record The unicity check prefetch all the field of all the existing record in memory to only read on field for the unique criteria. It may cause memory error for campaign with a lot of record Solution: Avoid prefetching all the field by reading the only field we need. This also speedup that part of the process For 460 000 lead the memory usage change from 2.5 GB to 650MB the process took 65s and now 15s At the end of the process record that do
Original PR description
For campaign with a lot of existing record The unicity check prefetch all the field of all the existing record in memory to only read on field for the unique criteria. It may cause memory error for campaign with a lot of record Solution: Avoid prefetching all the field by reading the only field we need. This also speedup that part of the process For 460 000 lead the memory usage change from 2.5 GB to 650MB the process took 65s and now 15s At the end of the process record that does not match the domain anymore are removed This mean they are move to stage unlinked The first issue: the process spend time to remove participant already removed and it does it one by one. It take a very long time to finish and if the process is restarted it will start over again. Solution: Remove only record not removed yet and remove them 1000 by 1000. It improve the speed by ~1000 times Forward-Port-Of: odoo/enterprise#11282 Forward-Port-Of: odoo/enterprise#11214