Wednesday, June 24, 2020
25 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 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 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
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