Saturday, January 11, 2025
29 changes · saas-18.1
Resolved issues and error corrections
This change fixes an internal Point of Sale issue where receipt screen code depended on restaurant-specific functionality. The same behavior remains available through the proper existing extension, reducing runbot errors without changing the user experience.
Original PR description
A method declared in restaurant was used in point_of_sale module which is causing an error in runbot. This commit removes the function from point_of_sale module. The behavior is kept via a pre-existing override.
Typing into the Google address autocomplete field now marks the record as changed, so users are prompted to save and their edits are not silently ignored. This improves reliability when entering or adjusting addresses with autocomplete.
Original PR description
…ing in it Before this commit, when typing in the field, the change did not make the record dirty. After this commit it does. opw-4464355 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
A duplicated internal identifier in the base security rules was corrected so one rule no longer overwrites another. This helps ensure the intended access settings are applied reliably without changing day-to-day workflows.
Original PR description
The rule introduced shared the same xmlid as the one above, overriding the value.
This fixes internal test expectations after an upstream change altered how many database queries are expected. The change helps keep automated checks reliable without changing business workflows or user-facing behavior.
Original PR description
enterprise version of odoo/odoo#193052 odoo/odoo@a4a87c2 overrode an existing external id. odoo/oddo@824a641 adapted the query counts without this rule
Miscellaneous changes
This commit adds a missing skip_readonly_check context from the changes to add readonly check in https://github.com/odoo/odoo/commit/b5d94f5563641adfd93bf431c139bc2b78d67beb Steps to reproduce: - create a statement line - edit the partner of the liquidity line using the accounting items list view - -> UserError: You cannot modify the following readonly fields on a posted move opw-4453940 Forward-Port-Of: odoo/odoo#193289
Original PR description
This commit adds a missing skip_readonly_check context from the changes to add readonly check in https://github.com/odoo/odoo/commit/b5d94f5563641adfd93bf431c139bc2b78d67beb Steps to reproduce: - create a statement line - edit the partner of the liquidity line using the accounting items list view - -> UserError: You cannot modify the following readonly fields on a posted move opw-4453940 Forward-Port-Of: odoo/odoo#193289
Add a check on MP callback when paying. Verify if the pending payment line exist before processing the callback. Same as: - https://github.com/odoo/odoo/pull/186580 - https://github.com/odoo/odoo/pull/190735 opw-4349957 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193029
Original PR description
Add a check on MP callback when paying. Verify if the pending payment line exist before processing the callback. Same as: - https://github.com/odoo/odoo/pull/186580 - https://github.com/odoo/odoo/pull/190735 opw-4349957 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193029
Since [1], we force the garbage collector to run between each hoot test suite. However, since chrome 124, this no longer seemed to produce the desirable effect. Indeed, memory graphs of the test suites were no longer predictable. The garbage collector seemed to work differently from a build to another, even with the same code. This is probably due to this change [2] in chrome, coming with version 124. Hopefully, the commit message gave us a hint on a way to fix our issue. [1] https://githu
Original PR description
Since [1], we force the garbage collector to run between each hoot test suite. However, since chrome 124, this no longer seemed to produce the desirable effect. Indeed, memory graphs of the test suites were no longer predictable. The garbage collector seemed to work differently from a build to another, even with the same code. This is probably due to this change [2] in chrome, coming with version 124. Hopefully, the commit message gave us a hint on a way to fix our issue. [1] https://github.com/odoo/odoo/commit/a3ef39dae4a7cd6c96f14958744ac8d8bd2064c9 [2] https://chromium.googlesource.com/chromium/src/+/ae7269f134ede59c815b22c1fd042b26bab96b7a 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#193283
This commit add order edi test cases to check imported sale order from purchase order have all the details properly filled out to ensure everything is working. task-4206350 Forward-Port-Of: odoo/odoo#188775
Original PR description
This commit add order edi test cases to check imported sale order from purchase order have all the details properly filled out to ensure everything is working. task-4206350 Forward-Port-Of: odoo/odoo#188775
Versions -------- - 17.0+ Steps ----- 1. Download a VoIP provider like Skype or Linphone to open tel:* urls; 2. use a browser that supports this (FireFox works for me, but Chrome doesn't); 3. with Studio, edit the Sales Order form to add the customer phone; 4. create a new Sales Order with one order line; 5. save the form; 6. add a second line; 7. click on the phone number to start the VoIP app; 8. save the Sales Order form. Issue ----- The 2nd line is duplicated. Cause --
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Download a VoIP provider like Skype or Linphone to open tel:* urls; 2. use a browser that supports this (FireFox works for me, but Chrome doesn't); 3. with Studio, edit the Sales Order form to add the customer phone; 4. create a new Sales Order with one order line; 5. save the form; 6. add a second line; 7. click on the phone number to start the VoIP app; 8. save the Sales Order form. Issue ----- The 2nd line is duplicated. Cause ----- Starting VoIP initiates an "urgent" web save, saving the first time. Usually this only happens when leaving the page, so it doesn't clear the changes to be saved. In this scenario however, we remain on the page, and the changes are saved again when clicking the save button. Solution -------- Clear the saved changes if the urgent save succeeded. opw-4308954 Forward-Port-Of: odoo/odoo#192989 Forward-Port-Of: odoo/odoo#192517
**Current behavior before PR:** prior to this PR fa-plane icon does not displayed after user comes online/offline/away while on leave without any reload. **Desired behavior after PR is merged:** now fa-plane icon is displayed with respective color of im_status without any reload task-4237384 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193210 Forward-Port-Of: odoo/odoo#184471
Original PR description
**Current behavior before PR:** prior to this PR fa-plane icon does not displayed after user comes online/offline/away while on leave without any reload. **Desired behavior after PR is merged:** now fa-plane icon is displayed with respective color of im_status without any reload task-4237384 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193210 Forward-Port-Of: odoo/odoo#184471
Before this commit: When a user duplicates a server action, the new action retains the exact same name as the original. After this commit: Duplicated server actions are assigned a name with the suffix "(copy)" to differentiate them from the original action. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190383
Original PR description
Before this commit: When a user duplicates a server action, the new action retains the exact same name as the original. After this commit: Duplicated server actions are assigned a name with the suffix "(copy)" to differentiate them from the original action. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190383
Three commits are included in this PR. - One adds a base module for all Nilvera modules - One adds a module to handle sending and receiving E-Invoices and E-Archives to and from Nilvera. - One adds general improvements to UBL. task-3952234 Forward-Port-Of: odoo/odoo#192196 Forward-Port-Of: odoo/odoo#180283
Original PR description
Three commits are included in this PR. - One adds a base module for all Nilvera modules - One adds a module to handle sending and receiving E-Invoices and E-Archives to and from Nilvera. - One adds general improvements to UBL. task-3952234 Forward-Port-Of: odoo/odoo#192196 Forward-Port-Of: odoo/odoo#180283
Before this commit, if the order was set to be served at a table, the assigned stand number was not sent to the server because the draft order was sent to the server before opening the stand number page. opw-4457394 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192874
Original PR description
Before this commit, if the order was set to be served at a table, the assigned stand number was not sent to the server because the draft order was sent to the server before opening the stand number page. opw-4457394 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192874
Steps to reproduce: 1. Create a task, and a subtask 3. Open the subtask 4. From the gear icon, click "Convert to Task/Sub-Task" 5. Remove the parent task and click "Convert Task" 6. Go to the project dashboard > the subtask is not shown. Why? The above reproducing steps lead to the subtask having the `display_in_project` stored as `False`, hence it's not visible on the dashboard page. This is because `_compute_project_id` interrupted the computation flow of `display_in_project` by a cal
Original PR description
Steps to reproduce: 1. Create a task, and a subtask 3. Open the subtask 4. From the gear icon, click "Convert to Task/Sub-Task" 5. Remove the parent task and click "Convert Task" 6. Go to the project dashboard > the subtask is not shown. Why? The above reproducing steps lead to the subtask having the `display_in_project` stored as `False`, hence it's not visible on the dashboard page. This is because `_compute_project_id` interrupted the computation flow of `display_in_project` by a call to `remove_to_compute` [1]. Fix: In the `write` method, explicitly set `display_in_project` to `True` if the parent_id has been removed. [1]: https://github.com/odoo/odoo/blob/9dec8329523d4966243c6491e7e556e643af6cdf/addons/project/models/project_task.py#L337 opw-4384222 Forward-Port-Of: odoo/odoo#191530
**Specifications:** When the domain is specified, helper in crm helper should display an extra line, which explains that any email sent to alias@domain will create a lead. **Technical reason:** A code was added in `crm.lead` which checks for the company, but in data file company was already specified as `False`. Hence, the missing line. **After this PR:** If the custom email domain is set, crm helper will display an extra line. Task-4377574 Forward-Port-Of: odoo/odoo#190936
Original PR description
**Specifications:** When the domain is specified, helper in crm helper should display an extra line, which explains that any email sent to alias@domain will create a lead. **Technical reason:** A code was added in `crm.lead` which checks for the company, but in data file company was already specified as `False`. Hence, the missing line. **After this PR:** If the custom email domain is set, crm helper will display an extra line. Task-4377574 Forward-Port-Of: odoo/odoo#190936
Before this commit, if a discuss channel was provided a new sfu channel, users that were already in a call on that old sfu channel would stay there instead of moving to the new one. This commit also adds an icon if a rtc session is missing an expected `audioStream` so that it becomes easier to notice if a partial connectivity issue arises. Forward-Port-Of: odoo/odoo#193111
Original PR description
Before this commit, if a discuss channel was provided a new sfu channel, users that were already in a call on that old sfu channel would stay there instead of moving to the new one. This commit also adds an icon if a rtc session is missing an expected `audioStream` so that it becomes easier to notice if a partial connectivity issue arises. Forward-Port-Of: odoo/odoo#193111
User of a branch company may change accounts configuration product categories, but currently this settings is ignored, as accounts are fetched from the main company instead Steps to reproduce: - Create a branch company - Open a product category [CATEG] (i.e. Office Furniture) and set - 'Inventory valuation': 'Automated' - 'Stock Input Account': [Account] - Assign product category [CATEG] to a product [PROD] - Create a Vendor bill with [PROD] and Save - Check Journal items tab
Original PR description
User of a branch company may change accounts configuration product categories, but currently this settings is ignored, as accounts are fetched from the main company instead Steps to reproduce: -…
User of a branch company may change accounts configuration product categories, but currently this settings is ignored, as accounts are fetched from the main company instead Steps to reproduce: - Create a branch company - Open a product category [CATEG] (i.e. Office Furniture) and set - 'Inventory valuation': 'Automated' - 'Stock Input Account': [Account] - Assign product category [CATEG] to a product [PROD] - Create a Vendor bill with [PROD] and Save - Check Journal items tab Issue: Product line account is not [Account] but it is taken from the main company settings This occurs due to a fix [1] done to have `stock_account` in sync with the base method in `account`. However, the forced company in base method was changed in a refactor [2] [1] https://github.com/odoo/odoo/commit/0b07210fe1f1c451eb648deff74c3ab37c8c09bd [2] https://github.com/odoo/odoo/commit/d8d47f9ff8554f4b39487fd2f13c153c7d6f958d opw-4297203 Forward-Port-Of: odoo/odoo#193087 Forward-Port-Of: odoo/odoo#191349
Update the OWL lib. Release notes: https://github.com/odoo/owl/releases/tag/v2.5.3 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193192
Original PR description
Update the OWL lib. Release notes: https://github.com/odoo/owl/releases/tag/v2.5.3 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193192
Issue 1: Reproduce: 1. Create a shortcut for a folder. 2. Move the shortcut to the trash. 3. Go to the trash and try deleting the shortcut. 4. You get a 'Missing Record' message. Issue 2: While in the trash you cannot open folders, if you had a non-archived shortcut to an archived folder you were able to view its (archived) target content there. Issue 3: Reproduce: 1. Create a shortcut in your drive for a document in "Share with me" 2. Click on the shortcut and from
Original PR description
Issue 1: Reproduce: 1. Create a shortcut for a folder. 2. Move the shortcut to the trash. 3. Go to the trash and try deleting the shortcut. 4. You get a 'Missing Record' message. Issue 2: While in the trash you cannot open folders, if you had a non-archived shortcut to an archived folder you were able to view its (archived) target content there. Issue 3: Reproduce: 1. Create a shortcut in your drive for a document in "Share with me" 2. Click on the shortcut and from the details panel click on the button allowing to jump to the original document (target or source) 3. There is your traceback In fact, the same applies for documents in "My Drive" and "Company" Issue 4: Reproduce: 1. Select a document you are allowed to "Move to trash" 2. Copy its url 3. Send it to the trash 4. Go to the URL 5. You are not getting to the record even though you are allowed to access it. Task-4433373 Forward-Port-Of: odoo/enterprise#76220
Bug === 1. create a folder without company, and access_via_link='view' 2. create a document with a company A, and access_via_link_hidden=False 3. create a member in the folder 4. log-in using that member and disable the company in the interface => The document should be hidden since the company is not enabled, but it still visible Task-4463854 Forward-Port-Of: odoo/enterprise#76825
Original PR description
Bug === 1. create a folder without company, and access_via_link='view' 2. create a document with a company A, and access_via_link_hidden=False 3. create a member in the folder 4. log-in using that member and disable the company in the interface => The document should be hidden since the company is not enabled, but it still visible Task-4463854 Forward-Port-Of: odoo/enterprise#76825
When creating a write-off for multiple multicurrency journal items that where created with the same rate, the reconciliation wizard will recompute the balance of the write-off based on the residual amount of the journal items in invoice currency and the reconciliation rate. Because each journal item applied rounding separately, the resulting amount might differ from the residual amount of the journal items in company currency, which will trigger the creation of an exchange difference entry (f
Original PR description
When creating a write-off for multiple multicurrency journal items that where created with the same rate, the reconciliation wizard will recompute the balance of the write-off based on the residual…
When creating a write-off for multiple multicurrency journal items that where created with the same rate, the reconciliation wizard will recompute the balance of the write-off based on the residual amount of the journal items in invoice currency and the reconciliation rate. Because each journal item applied rounding separately, the resulting amount might differ from the residual amount of the journal items in company currency, which will trigger the creation of an exchange difference entry (for a few cents). This entry is spurious and confusing for the user because the reconciled journal items all shared the same currency and rate and therefore the reconciliation does not correspond to a currency exchange event. After this commit, when computing the residual amount to write-off in the reconciliation wizard, we check whether the journal items used the same rate as the reconciliation rate, and in that case we directly take the residual amount of the journal item in company currency instead of recomputing the residual amount based on the invoice currency amount and the reconciliation rate, thus avoiding rounding errors. task-4247344 Forward-Port-Of: odoo/enterprise#76976 Forward-Port-Of: odoo/enterprise#74570
Before this PR: - The `AccountMove.search` method was called without checking if `invoice_number` was valid. - This could lead to unexpected errors when `invoice_number` was `False`. After this PR: - Added a check to ensure the search is only performed if `invoice_number` is valid. - If `invoice_number` is `False`, it falls back to an empty `AccountMove` recordset. - Ensures smoother iteration over `moves` and prevents unnecessary errors in the GSTR-1 error handling logic. Forward-Port
Original PR description
Before this PR: - The `AccountMove.search` method was called without checking if `invoice_number` was valid. - This could lead to unexpected errors when `invoice_number` was `False`. After this PR: - Added a check to ensure the search is only performed if `invoice_number` is valid. - If `invoice_number` is `False`, it falls back to an empty `AccountMove` recordset. - Ensures smoother iteration over `moves` and prevents unnecessary errors in the GSTR-1 error handling logic. Forward-Port-Of: odoo/enterprise#76870
### Steps to reproduce: - Install "l10n_cl_edi" - Have a contact of company type with an email and a DTE email - Create a contact of individual type with an email and with the company as parent - In Accounting app create an invoice with the individual as customer - Confirm and open the generated XML - The field CorreoRecep is the individual's email but it should be the DTE of the company ### Cause: The order in the `t-esc` first display the emails before DTE emails. Order of priorit
Original PR description
### Steps to reproduce: - Install "l10n_cl_edi" - Have a contact of company type with an email and a DTE email - Create a contact of individual type with an email and with the company as parent - In Accounting app create an invoice with the individual as customer - Confirm and open the generated XML - The field CorreoRecep is the individual's email but it should be the DTE of the company ### Cause: The order in the `t-esc` first display the emails before DTE emails. Order of priority before this commit: partner email > parent partner email > partner DTE email > parent partner DTE email ### Solution: Change the order to display the DTE email if possible: Order of priority after this commit: partner DTE email > parent partner DTE email > partner email > parent partner email opw-4288781 Forward-Port-Of: odoo/enterprise#76600 Forward-Port-Of: odoo/enterprise#75917
Before this commit: Post including long links were not truncated and will extend beyond the kanban card. This happen as the display CSS property is set to `inline` by default due to the <field> tag being transformed into a <span> tag in the HTML. <div> default display is `block` while <span> are `inline`. After this commit: The link truncate as intended with "..." Before:  After:  opw-4446906 Forward-Port-Of: odoo/enterprise#76719
Steps to reproduce: 1.) Create a trial db 18.0 2.) Install website and helpdesk 3.) Create a second company (two companies, one website, may have to delete a website) 4.) Navigate to a Team in 'Helpdesk / Teams' with company B 5.) Enable 'Website Form' 6.) Use 'Go to Website' smart button 7.) We get an access error - Remove multi_website group and add conditional to stat button Forward-Port-Of: odoo/enterprise#76268
Original PR description
Steps to reproduce: 1.) Create a trial db 18.0 2.) Install website and helpdesk 3.) Create a second company (two companies, one website, may have to delete a website) 4.) Navigate to a Team in 'Helpdesk / Teams' with company B 5.) Enable 'Website Form' 6.) Use 'Go to Website' smart button 7.) We get an access error - Remove multi_website group and add conditional to stat button Forward-Port-Of: odoo/enterprise#76268
### Before this PR: - The `Search in Sales Order` and `Sales Order` options were always visible in the Helpdesk ticket portal search bar, regardless of the configuration of the `use_helpdesk_sale_timesheet` field in the Helpdesk Team. - This led to confusion for users who did not utilize sales orders in their helpdesk workflows. ### After this PR: - The `Search in Sales Order` and `Sales Order` options are now only displayed when the `use_helpdesk_sale_timesheet` field is set to true in th
Original PR description
### Before this PR: - The `Search in Sales Order` and `Sales Order` options were always visible in the Helpdesk ticket portal search bar, regardless of the configuration of the `use_helpdesk_sale_timesheet` field in the Helpdesk Team. - This led to confusion for users who did not utilize sales orders in their helpdesk workflows. ### After this PR: - The `Search in Sales Order` and `Sales Order` options are now only displayed when the `use_helpdesk_sale_timesheet` field is set to true in the Helpdesk Team configuration. task-4224818 Forward-Port-Of: odoo/enterprise#76850 Forward-Port-Of: odoo/enterprise#71516
With the changes done to `account.external.tax.mixin` the name of ir.logging is now the module name and not 'Avatax' anymore. So us logs resulted in Avatax US and were not shown by default when opening the window with the window actions. opw-4429151 Forward-Port-Of: odoo/enterprise#76749 Forward-Port-Of: odoo/enterprise#76557
Original PR description
With the changes done to `account.external.tax.mixin` the name of ir.logging is now the module name and not 'Avatax' anymore. So us logs resulted in Avatax US and were not shown by default when opening the window with the window actions. opw-4429151 Forward-Port-Of: odoo/enterprise#76749 Forward-Port-Of: odoo/enterprise#76557
steps: - create an invoice with a customer that has the `ref` set to some value - send this invoice to DIAN -> We get an error back saying the xml is incorrect Solution: Although DIAN accepts eInvoices based on UBL 2.1, it throws an error when it receives an xml file with a cbc:BuyerReference tag. To fix this we now just leave out the tag from the xml file ticket: 4367849 Forward-Port-Of: odoo/enterprise#76548
Original PR description
steps: - create an invoice with a customer that has the `ref` set to some value - send this invoice to DIAN -> We get an error back saying the xml is incorrect Solution: Although DIAN accepts eInvoices based on UBL 2.1, it throws an error when it receives an xml file with a cbc:BuyerReference tag. To fix this we now just leave out the tag from the xml file ticket: 4367849 Forward-Port-Of: odoo/enterprise#76548
Scenario: - Install l10n_pe_edi and switch to "PE Company" - Create a product with "Withhold Percentage" 20% - Create an invoice with operation type "[1001] Operation Subject to Detraction", the created product and USD currency. - Print the invoice as PDF => The "Withholding amount" in the PDF is correctly shown in the company currency, but the currency symbol is the one of the invoice ($) Issue: Amount is always in the company currency, and currency is the invoice currency th
Original PR description
Scenario: - Install l10n_pe_edi and switch to "PE Company" - Create a product with "Withhold Percentage" 20% - Create an invoice with operation type "[1001] Operation Subject to Detraction", the created product and USD currency. - Print the invoice as PDF => The "Withholding amount" in the PDF is correctly shown in the company currency, but the currency symbol is the one of the invoice ($) Issue: Amount is always in the company currency, and currency is the invoice currency that might be different. Fix: currency_id gotten from account.move()._l10n_pe_edi_get_spot is only used in this location where the amount should always be the company currency: so we modify it to be the company currency. opw-4292774 opw-4338728 Forward-Port-Of: odoo/enterprise#76334