Friday, April 10, 2020
28 changes · master
Enhancements to existing features
Fleet vehicle models and individual vehicles can now be categorized by type, such as car or bike. This helps businesses manage mixed fleets more clearly, including salary bike use cases, reporting, and filtering.
Original PR description
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
Marketing teams can now combine multiple UTM campaigns into one while preserving campaign history and reporting continuity. Old campaigns are archived and future tracking links or records are redirected to the kept campaign, reducing clutter without losing statistics.
Original PR description
PURPOSE When a company uses utm and martketing features intensively, campaigns may quickly become a mess. This commit is about creating a wizard to merge campaigns while keeping statistics updated.…
PURPOSE When a company uses utm and martketing features intensively, campaigns may quickly become a mess. This commit is about creating a wizard to merge campaigns while keeping statistics updated. SPECIFICATIONS In the tree view of utm.campaign, we now have a merge wizard that can merge two or more campaigns. In the wizard form, a campaign can be chose to keep as the final one, campaign infomation will be automatically filled in to keep the same as the chosen one. The tag_ids will be the union of all merged campaigns. Users can change If they want. Merged campaigns except the kept one will be archived. To insure we don't lose statistics when customers use the old campaigns. We set a reference in all archived campaigns points to the kept campaigs. In utm.mixin, we check if a incoming campaign is active, and use its reference if not. After the merge, all models(not transient and _auto) with m2o (not related) links to archived campaigns will be automatically redirected to the kept one. Munual redirection can also be done by override methods when special actions are needed. In link.tracker, it requires unique (url, campaign_id, medium_id, source_id). It's possible to create duplicates after merge campaigns, so this model is ignored in automatical redirection. A manual redirection is done with a cleaning process of possible duplicates. Link.tracker.click and link.tracker.code are also redirect to correct link.trakcer after the cleaning. LINKS PR #42087 Task 2146925
Bank and cash statement lines now create accounting entries immediately, making reconciliation clearer and reducing manual follow-up. Payment status, reconciliation reports, and multi-currency handling were simplified and made more reliable for finance teams.
Original PR description
- Create journal entries as soon as bank/cash statement lines are created, temporary booked on a suspense account set on the journal. - Simplify the management of "blue" lines in the reconciliation…
- Create journal entries as soon as bank/cash statement lines are created, temporary booked on a suspense account set on the journal.
- Simplify the management of "blue" lines in the reconciliation widget. A "blue" line is now a journal item using a temporary liquidity account (outstanding payment/receipt accounts, set on the journal).
- Adapt and simplify the bank reconciliation report.
- Remove the bank reconciliation threshold date. The reconciliation report will show the not already reconciled journal entries using a liquidity account and the not already reconciled journal entries using a temporary liquidity account. Without accounting, an account.payment will involve directly the liquidity account and then, will be considered as a statement line directly.
- Remove the post_at bank reconciliation feature. The "paid" state will be set on the invoices only if reconciled with a journal entry involving the journal's liquidity account.
With invoicing, the payment will do that so the "in_payment" state should never be shown up.
With accounting, only the statement lines have the power to move an invoice to the "paid" state.
- Fix various corner cases about the management of multi-currency in bank statement lines.
- Fix the conversion dates in multi-currency: Since the bank/cash is always used on the statement lines, it will use always the real "bank" date instead of the fictive payment one.
- Ensure the 'reconcile' method will raise an error if the involved moves are not posted.
related enterprise PR odoo/enterprise#7019
--task: 2092096
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prBank statement, payment, and reconciliation flows have been streamlined to make accounting work easier and more reliable. The update improves how accountants review payments, reconcile bank transactions, and use related dashboard and form views, reducing manual effort in daily finance operations.
Original PR description
See community commit message for more details. --task: 2092096
Belgian payroll and salary configuration now supports company bike benefits directly on employee contracts. This helps HR teams include bike-related compensation more clearly and consistently when preparing salary packages.
Campaign records that are already linked to marketing automation campaigns can no longer be merged. This helps preserve campaign tracking integrity and prevents accidental changes to active marketing workflows.
The Amazon Sales and eBay Sales apps now have dedicated icons on the application page. This makes the apps easier to recognize and improves the visual consistency of the app catalog.
Original PR description
Add icon for sale_amazon and sale_ebay in application page. Task ID 2208794
Resolved issues and error corrections
The Website Slides course publishing walkthrough has been corrected so it points to the right menu option and no longer expects an unnecessary image confirmation step. A related slide ordering test issue was also fixed, helping keep course management more reliable.
Original PR description
There was 2 problems that caused the Publisher tour to fail: 1. The pointer on the main menu was pointing to a link containg "New Course" as text instead of "Course". 2. After selecting a picture (by clicking on it), the picture is automatically added and so no need to click on add button; had to remove this extra step. Task ID 2228922 See for example https://runbot.odoo.com/runbot/build/1980130 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
### Issue - Install Projects - Change language - Check projects There is a word "X Tasks" which is not translated. ### Cause This is a model attribute which is not translatable. It can have any value "Tasks" is not mandatory. ### Solution Make it translatable **OPW-2233084** -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#49328
Original PR description
### Issue - Install Projects - Change language - Check projects There is a word "X Tasks" which is not translated. ### Cause This is a model attribute which is not translatable. It can have any value "Tasks" is not mandatory. ### Solution Make it translatable **OPW-2233084** -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#49328
The manufacturing order screen now keeps the check availability button visible when materials are partially available. This helps users take the expected action without confusion or extra workarounds.
Original PR description
Before this commit, check availability button was becoming hidden, even if move is partially available on MO. Fixed it. Fixes-2234494 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 fixes failing automated checks for TaxCloud and WinBooks import scenarios. The changes ensure invoices use the right setup and imported accounting data stays tied to the correct company, reducing false failures and improving reliability.
Forward-Port-Of: odoo/odoo#49341
Original PR description
Forward-Port-Of: odoo/odoo#49341
- Create a new survey 'Test Survey'; - Add a section 'S1'; - Add a multiple lines text box question 'Q1'; - Add a section 'S2'; - Add a section 'S3'; - Don't move any of the section or question to avoid changing the sequences, for the moment all the sequences are equal to 10; - Change the survey layout to 'One page per section'; - Save the survey; - Test the survey; - Fill the 'Q1'; - Go to the last page and Submit the survey; - Review your answers. Before this commit, the que
Original PR description
- Create a new survey 'Test Survey';
- Add a section 'S1';
- Add a multiple lines text box question 'Q1';
- Add a section 'S2';
- Add a section 'S3';
- Don't move any of the section or question to avoid changing the
sequences, for the moment all the sequences are equal to 10;
- Change the survey layout to 'One page per section';
- Save the survey;
- Test the survey;
- Fill the 'Q1';
- Go to the last page and Submit the survey;
- Review your answers.
Before this commit, the question is empty, this occurs because the
question page_id is not set, in _compute_page_id, the sequence of the
question should be bigger than the question of the page (in this case
the section).
Now, the _compute_page_id was change to take into account the case when
the question has the same sequence as the page (section).
opw-2222045
Co-authored-by: Nicolas Lempereur <nle@odoo.com>
Forward-Port-Of: odoo/odoo#49342
Forward-Port-Of: odoo/odoo#49315Fix regression introduced with e0ed7b12ca2c355fd1c47566273b7f690b324798 Issue without current commit: When doing `abort` next updates from the bus are only received after the normal timeout, which makes the interface unresponsive to updates during that amount of time. `abort` is for example called during `addChannel`, where it is specifically documented that new updates are to be received immediately. Forward-Port-Of: odoo/odoo#49340
Original PR description
Fix regression introduced with e0ed7b12ca2c355fd1c47566273b7f690b324798 Issue without current commit: When doing `abort` next updates from the bus are only received after the normal timeout, which makes the interface unresponsive to updates during that amount of time. `abort` is for example called during `addChannel`, where it is specifically documented that new updates are to be received immediately. Forward-Port-Of: odoo/odoo#49340
The 'Configure Variant' button doesn't show any relevant information in case of a product variant. It is only useful for a product template. opw-2229881 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#48965
Original PR description
The 'Configure Variant' button doesn't show any relevant information in case of a product variant. It is only useful for a product template. opw-2229881 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#48965
- Create a product P with a Sales Price of 5000 and a Cost of 3000. - Create a bill for 10 units @ 3000, post - Create an invoice for 10 units @ 5000, post - Create a customer credit note for 5 units - Open the Product Margin report The # Purchased is 15 while the # Invoiced in Sale is 10. The query incorrectly sums the invoice lines based on their type. We should group customer invoices with customer refunds, and group vendor bills with vendor refunds. When grouping we should subtra
Original PR description
- Create a product P with a Sales Price of 5000 and a Cost of 3000. - Create a bill for 10 units @ 3000, post - Create an invoice for 10 units @ 5000, post - Create a customer credit note for 5 units - Open the Product Margin report The # Purchased is 15 while the # Invoiced in Sale is 10. The query incorrectly sums the invoice lines based on their type. We should group customer invoices with customer refunds, and group vendor bills with vendor refunds. When grouping we should subtract invoices and refunds. Note that the `avg_unit_price` is not modified since there is no reason to refund a product at a different unit price. opw-2211636 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#49326 Forward-Port-Of: odoo/odoo#49280
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#48910
Original PR description
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#48910
- Go to Inventory > Configuration > Operation Types - In Receipt, activate 'Show Detailed Operations' - Go Inventory > Overview, click on 'Receipts' - Create a picking, and in the 'Operations' tab add 5 units of a product tracked by unique S/N - Click on the + sign - Set the First SN (e.g. TEST001) and Number of SN to 5, then Assign Serial Numbers Nothing appear in the Detailed Operations, and it's impossible to validate the picking. The stock move lines are created, but not li
Original PR description
- Go to Inventory > Configuration > Operation Types - In Receipt, activate 'Show Detailed Operations' - Go Inventory > Overview, click on 'Receipts' - Create a picking, and in the 'Operations' tab add 5 units of a product tracked by unique S/N - Click on the + sign - Set the First SN (e.g. TEST001) and Number of SN to 5, then Assign Serial Numbers Nothing appear in the Detailed Operations, and it's impossible to validate the picking. The stock move lines are created, but not linked with the picking. opw-2230913 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#49339
There was 2 problems that caused the Publisher tour to fail: 1. The pointer on the main menu was pointing to a link containg "New Course" as text instead of "Course". 2. After selecting a picture (by clicking on it), the picture is automatically added and so no need to click on add button; had to remove this extra step. Task ID 2228922 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#49145
Original PR description
There was 2 problems that caused the Publisher tour to fail: 1. The pointer on the main menu was pointing to a link containg "New Course" as text instead of "Course". 2. After selecting a picture (by clicking on it), the picture is automatically added and so no need to click on add button; had to remove this extra step. Task ID 2228922 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#49145
Before this commit, we had an error when writing on account_opening_move_id, fiscalyear_last_day, fiscalyear_last_month on multiple company at once Description of the issue/feature this PR addresses: Impossible to write on multiple company at once on the fields account_opening_move_id, fiscalyear_last_day, fiscalyear_last_months -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#49208
Original PR description
Before this commit, we had an error when writing on account_opening_move_id, fiscalyear_last_day, fiscalyear_last_month on multiple company at once Description of the issue/feature this PR addresses: Impossible to write on multiple company at once on the fields account_opening_move_id, fiscalyear_last_day, fiscalyear_last_months -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#49208
Forward-Port-Of: odoo/odoo#49148 Forward-Port-Of: odoo/odoo#48981
Original PR description
Forward-Port-Of: odoo/odoo#49148 Forward-Port-Of: odoo/odoo#48981
1. Install PoS and Accounting 2. In the PoS setting activate the Invoicing option 3. Sell an item X with Invoice toggle to client Y and pay it 4. Sell the same item X with Invoice toggle to the same client Y with quantity -1 5. Close the PoS session Traceback wil occur when trying to Validate Closing & Post Entries because in '_create_invoice_receivable_lines' already reconciled lines are already filtered out so invoice_receivable_lines is empty opw-2206625 -- I confirm I have s
Original PR description
1. Install PoS and Accounting 2. In the PoS setting activate the Invoicing option 3. Sell an item X with Invoice toggle to client Y and pay it 4. Sell the same item X with Invoice toggle to the same client Y with quantity -1 5. Close the PoS session Traceback wil occur when trying to Validate Closing & Post Entries because in '_create_invoice_receivable_lines' already reconciled lines are already filtered out so invoice_receivable_lines is empty opw-2206625 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#49377
Task-ID: #1997453 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#48926
Original PR description
Task-ID: #1997453 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#48926
The generation of SN is incorrect with the following initial sequence: `BAV023B00001S00001`. Indeed, the sequence generated is: `BAV023B00001S`, `BAV023B00002S`. This occurs because the same digits `00001` appear more than once. opw-2230913 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
Original PR description
The generation of SN is incorrect with the following initial sequence: `BAV023B00001S00001`. Indeed, the sequence generated is: `BAV023B00001S`, `BAV023B00002S`. This occurs because the same digits `00001` appear more than once. opw-2230913 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#49373
1. Install PoS and Accounting 2. In a product category activate the Inventory Valuation automated 3. Sell a quantity 0 of such product via POS Traceback will occur when confirming the sale because the inventory valuation do not handle zero quantity opw-2206625 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#49376
Original PR description
1. Install PoS and Accounting 2. In a product category activate the Inventory Valuation automated 3. Sell a quantity 0 of such product via POS Traceback will occur when confirming the sale because the inventory valuation do not handle zero quantity opw-2206625 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#49376
odoo/odoo#46024 improved the serialisation of arrays being logged (in order to get more relevant data than just `Array(5)`. However, chrome apparently serialises *argument* objects as array-like with a few nits, namely that arguments have non-numeric properties which don't necessarily have a value associated with them. The array formatter / converter assumed all properties had a value, resulting in the process crashing rather dramatically. Filter out non-numeric properties on arrays
Original PR description
odoo/odoo#46024 improved the serialisation of arrays being logged (in order to get more relevant data than just `Array(5)`. However, chrome apparently serialises *argument* objects as array-like with a few nits, namely that arguments have non-numeric properties which don't necessarily have a value associated with them. The array formatter / converter assumed all properties had a value, resulting in the process crashing rather dramatically. Filter out non-numeric properties on arrays. Forward-Port-Of: odoo/odoo#49385
Steps to reproduce: - install timesheet - go to general settings > set documents layout to use 'external_layout_boxed' - go to timesheets > list view > select all > print > timesheet entries Previous behavior: the first line of the report's table is missing a border Current behavior: borders are consistent opw-2230710 Forward-Port-Of: odoo/odoo#49393
Original PR description
Steps to reproduce: - install timesheet - go to general settings > set documents layout to use 'external_layout_boxed' - go to timesheets > list view > select all > print > timesheet entries Previous behavior: the first line of the report's table is missing a border Current behavior: borders are consistent opw-2230710 Forward-Port-Of: odoo/odoo#49393
Try to create a payslip => `ValueError: Expected singleton: hr.contract()` Since e77c9ec the payslip wage is retrieved with the method intented for this purpose. However, this method expects a singleton. Hence if the payslip has no contract defined, it raises an error. Task 2234591 Forward-Port-Of: odoo/enterprise#9803
Original PR description
Try to create a payslip => `ValueError: Expected singleton: hr.contract()` Since e77c9ec the payslip wage is retrieved with the method intented for this purpose. However, this method expects a singleton. Hence if the payslip has no contract defined, it raises an error. Task 2234591 Forward-Port-Of: odoo/enterprise#9803