Thursday, April 25, 2024
30 changes · saas-17.1
Enhancements to existing features
This update enhances how Odoo handles Peppol documents by allowing other modules to save them to alternative locations instead of just a journal. This increased flexibility improves integration capabilities and data management for Peppol-related processes.
Original PR description
Currently we are able to receive Peppol documents in a specific journal. This change allows other modules to hook into the saving process of new Peppol documents to save them somewhere else than directly in a journal. [task-3519604](https://www.odoo.com/web#id=3519604&model=project.task&view_type=form) Related to https://github.com/odoo/enterprise/pull/57018 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
The Point of Sale product configurator now avoids showing the same attribute value more than once. This makes product selection clearer for cashiers and reduces the chance of choosing the wrong option during checkout.
Original PR description
Before this commit: =================== product configurator in the point of sale displays duplicate attribute values. After this commit: =================== with this commit, POS product configurator no longer displays duplicate attribute values. task - 3851020
Miscellaneous changes
### Steps to Reproduce 1. Install `sale_management` and `account_edi`. 2. Create a user with admin access in sales but no rights in accounting. 3. Log in as the new user. 4. Navigate to a Sales Order that has been invoiced and attempt to view its invoice via the 'Invoices' stat button. Expected Behavior: The user should be able to view the invoice. Actual Behavior: An access error is encountered when attempting to view the invoice. ### Cause The access error arises due to restr
Original PR description
### Steps to Reproduce 1. Install `sale_management` and `account_edi`. 2. Create a user with admin access in sales but no rights in accounting. 3. Log in as the new user. 4. Navigate to a Sales Order that has been invoiced and attempt to view its invoice via the 'Invoices' stat button. Expected Behavior: The user should be able to view the invoice. Actual Behavior: An access error is encountered when attempting to view the invoice. ### Cause The access error arises due to restricted permissions for `account.edi.format` and `account.edi.document`. Prior to commit 604a47ead80eb8a07102a978f364d82776f69da3, all users had access to these models. However, this commit restricted access solely to users with the `account.group_account_readonly` role, as part of a broader security enhancement to minimize unnecessary access by portal users. opw-3858685 Forward-Port-Of: odoo/odoo#163329
The mail app now avoids counting the same inbox notification twice. This keeps the unread/action counter accurate, reducing confusion for users checking messages that need attention.
Original PR description
This code is a duplicate of the mail.message/inbox notification (https://github.com/odoo/odoo/blob/saas-17.1/addons/mail/static/src/core/web/mail_core_web_service.js#L43) resulting in the counter being incremented twice.
This commit fixes an issue where the `sale_last_order_id` was not being set in the session when the extra info step was added to the checkout process. This caused an error during the validation of event payment in `shop_payment_validate`. Steps to reproduce the issue: 1. Install `website_event_sale` and set up a payment provider. 2. Add the extra info step to the checkout in the website. 3. Register for a paid event from the website. 4. Proceed to pay the order, which would previously res
Original PR description
This commit fixes an issue where the `sale_last_order_id` was not being set in the session when the extra info step was added to the checkout process. This caused an error during the validation of event payment in `shop_payment_validate`. Steps to reproduce the issue: 1. Install `website_event_sale` and set up a payment provider. 2. Add the extra info step to the checkout in the website. 3. Register for a paid event from the website. 4. Proceed to pay the order, which would previously result in an error. opw-3864873 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162657
Steps to reproduce: - Activate "Analytic Accounting" in Accounting settings - Switch to a mobile view - Go to any view where there is the analytic distribution widget (e.g. expense form) - Try to configure the analytic distribution Issue: When an analytic account is selected, it is not taken into account. Cause: In mobile view, a modal is opened with a kanban view to select the analytic account. Any click on this modal is closing the analytic distribution widget. opw-3734050
Original PR description
Steps to reproduce: - Activate "Analytic Accounting" in Accounting settings - Switch to a mobile view - Go to any view where there is the analytic distribution widget (e.g. expense form) - Try to configure the analytic distribution Issue: When an analytic account is selected, it is not taken into account. Cause: In mobile view, a modal is opened with a kanban view to select the analytic account. Any click on this modal is closing the analytic distribution widget. opw-3734050 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162092
Steps to reproduce: - Create a product with 2 vendors - Click replenish on the product page and select the second vendor - The PO is created for the first vendor Bug: the replenishment will create a move which will create/edit a PO the selected supplier is discarded Fix: set the partner on the procurement group to keep track of it note: 'supplierinfo_name' no longer used, will be removed in master related test ("test_procure_not_default_partner") is now irrelevant opw-3776680
Original PR description
Steps to reproduce:
- Create a product with 2 vendors
- Click replenish on the product page and select the second vendor
- The PO is created for the first vendor
Bug:
the replenishment will create a move which will create/edit a PO the selected supplier is discarded
Fix:
set the partner on the procurement group to keep track of it
note:
'supplierinfo_name' no longer used, will be removed in master related test ("test_procure_not_default_partner") is now irrelevant
opw-3776680
Forward-Port-Of: odoo/odoo#161974Commit [1] improved the drag and drop to also consider elements having a mobile order. As a follow-up, this commit adds a tour testing the drag and drop flow when moving mobile ordered columns. [1]: https://github.com/odoo/odoo/commit/7b27385dba36c2e741d96e76ad5d847d09f2b084 task-3744643 related to opw-3697962 Forward-Port-Of: odoo/odoo#161440
Original PR description
Commit [1] improved the drag and drop to also consider elements having a mobile order. As a follow-up, this commit adds a tour testing the drag and drop flow when moving mobile ordered columns. [1]: https://github.com/odoo/odoo/commit/7b27385dba36c2e741d96e76ad5d847d09f2b084 task-3744643 related to opw-3697962 Forward-Port-Of: odoo/odoo#161440
Use an ir.config_parameters to set the period for the stock quantity report to ease customization. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163017
Original PR description
Use an ir.config_parameters to set the period for the stock quantity report to ease customization. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163017
This traceback arises when the user tries to remove the `start date` Steps to produce 1. Install `resource` 2. Open `Settings/Technical/resource/Resource Time Off` 3. Create a new record and remove the `start date` Error: ```AttributeError: 'bool' object has no attribute 'tzinfo' File "odoo/http.py", line 2251, in __call__ response = request._serve_db() File "odoo/http.py", line 1826, in _serve_db return self._transactioning(_serve_ir_http, readonly=ro) File "odoo
Original PR description
This traceback arises when the user tries to remove the `start date` Steps to produce 1. Install `resource` 2. Open `Settings/Technical/resource/Resource Time Off` 3. Create a new record and remove…
This traceback arises when the user tries to remove the `start date`
Steps to produce
1. Install `resource`
2. Open `Settings/Technical/resource/Resource Time Off`
3. Create a new record and remove the `start date`
Error:
```AttributeError: 'bool' object has no attribute 'tzinfo'
File "odoo/http.py", line 2251, in __call__
response = request._serve_db()
File "odoo/http.py", line 1826, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1847, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1824, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1832, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2057, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 222, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 740, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 34, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 30, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/web/models/models.py", line 1073, in onchange
todo = [
File "addons/web/models/models.py", line 1076, in <listcomp>
if field_name not in done and snapshot0.has_changed(field_name)
File "addons/web/models/models.py", line 1189, in has_changed
return self[field_name] != self.record[field_name]
File "odoo/models.py", line 6664, in __getitem__
return self._fields[key].__get__(self, self.env.registry[self._name])
File "odoo/fields.py", line 1138, in __get__
self.recompute(record)
File "odoo/fields.py", line 1353, in recompute
apply_except_missing(self.compute_value, recs)
File "odoo/fields.py", line 1326, in apply_except_missing
func(records)
File "odoo/fields.py", line 1375, in compute_value
records._compute_field_value(self)
File "odoo/models.py", line 4982, in _compute_field_value
fields.determine(field.compute, self)
File "odoo/fields.py", line 102, in determine
return needle(*args)
File "addons/resource/models/resource_calendar_leaves.py", line 58, in _compute_date_to
date_to_tz = user_tz.localize(leave.date_from) + relativedelta(hour=23, minute=59, second=59)
File "pytz/tzinfo.py", line 317, in localize
if dt.tzinfo is not None:
```
when the user tries to remove the start date, an error will be produced because _compute_date_to seems to be computing the date_to based on the date_from field. when removing the `date_from` from calculations on empty or none
which leads to traceback from here
https://github.com/odoo/odoo/blob/322e7ea19b7c069fdb92d3b86e5615c55489ca21/addons/resource/models/resource_calendar_leaves.py#L54-L59
This PR solves the above issue by computing `date_to` for records that have
`date_from`. Apart from that, this PR also removes `# -*- coding: utf-8 -*-`
from the first line of the modified file.
sentry-4983497879
Forward-Port-Of: odoo/odoo#163136
Forward-Port-Of: odoo/odoo#154555Current behavior: If you make a sale of a product that use a taxe not included in the price. Then go in order analysis in PoS, the total price of the product will not include the taxes. Steps to reproduce: - Create a tax of 15% that is not included in price - Create a product with 10$ price and add this tax to it. (Total price including tax should be 11.5$) - Sell it in the PoS and close the session - Go in PoS > Reporting > Order. Open the pivot view and check the total price for the pr
Original PR description
Current behavior: If you make a sale of a product that use a taxe not included in the price. Then go in order analysis in PoS, the total price of the product will not include the taxes. Steps to reproduce: - Create a tax of 15% that is not included in price - Create a product with 10$ price and add this tax to it. (Total price including tax should be 11.5$) - Sell it in the PoS and close the session - Go in PoS > Reporting > Order. Open the pivot view and check the total price for the product - The total is 10$ instad of 11.5$ opw-3817535 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162984 Forward-Port-Of: odoo/odoo#162883
The `test_update_workcenter_adapt_finish_date` test was not consistent when the db was installed without demo data. The test was failing because the working hours were not the same and so the duration was different. To fix this we adjust the starting time of the work order so that it last exactly 30 minutes, and is not impacted by the working hours. runbot error : https://runbot.odoo.com/web#id=61595&cids=1&menu_id=405&action=573&model=runbot.build.error&view_type=form --- I confirm I hav
Original PR description
The `test_update_workcenter_adapt_finish_date` test was not consistent when the db was installed without demo data. The test was failing because the working hours were not the same and so the duration was different. To fix this we adjust the starting time of the work order so that it last exactly 30 minutes, and is not impacted by the working hours. runbot error : https://runbot.odoo.com/web#id=61595&cids=1&menu_id=405&action=573&model=runbot.build.error&view_type=form --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162074
**Steps to reproduce:** 1- Install Accounting, Fleet modules 2- Create a bill in accounting with a different currency than the company's default, and add a line with a chosen vehicle_id. 3- Go to the chosen vehicle in Fleet module 4- Navigate to the service created for this bill **Current behavior before PR:** If we create a bill for a vehicle using a different currency than the company's default. The fleet service that will be created will be having the company's currency but the va
Original PR description
**Steps to reproduce:** 1- Install Accounting, Fleet modules 2- Create a bill in accounting with a different currency than the company's default, and add a line with a chosen vehicle_id. 3- Go to the chosen vehicle in Fleet module 4- Navigate to the service created for this bill **Current behavior before PR:** If we create a bill for a vehicle using a different currency than the company's default. The fleet service that will be created will be having the company's currency but the value will be the amount in the currency used in the bill **Desired behavior after PR is merged:** We now create the fleet service using the value in debit not the unit price or the price subtotal. opw-3734743 Forward-Port-Of: odoo/odoo#155632
When the Manufacturing Order 'qty_produced' is different from the 'product_qty' (we produced more or less than expected), then unbuild order had the wrong quantity for the finished product, and if 'mo_id.qty_produced > mo_id.product_qty', then an extra confirmed move was generated upon the validation of the unbuild order. --- FYI: note that in `mrp_unbuild.py` at line 245, there is almost the same function, and the factor uses `qty_produced` instead of `product_qty`, so this PR mostly sync
Original PR description
When the Manufacturing Order 'qty_produced' is different from the 'product_qty' (we produced more or less than expected), then unbuild order had the wrong quantity for the finished product, and if 'mo_id.qty_produced > mo_id.product_qty', then an extra confirmed move was generated upon the validation of the unbuild order. --- FYI: note that in `mrp_unbuild.py` at line 245, there is almost the same function, and the factor uses `qty_produced` instead of `product_qty`, so this PR mostly synchronize the logic. --- OPW-3860612 Forward-Port-Of: odoo/odoo#163096
Some people want to manage the subcontractor stock the same way than a classic stock. It will then impact the on hand value but it's the behavior they want. I keep the constraint on internal location since it will impact valuation. 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#163177
Original PR description
Some people want to manage the subcontractor stock the same way than a classic stock. It will then impact the on hand value but it's the behavior they want. I keep the constraint on internal location since it will impact valuation. 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#163177
When a DB is duplicated, it's going through the neutralize process which is helpful to clean stuff that will be messing around with the duplicated DB. The CDN should actually be part of that. Since a CDN url is bound to a domain, when you copy the database (and most likely run it on its own different domain), it just won't properly work. Indeed, if you setup a CDN X for domain A and then copy a DB to domain B, this will happen: - You access website B - You try to load an img, which is us
Original PR description
When a DB is duplicated, it's going through the neutralize process which is helpful to clean stuff that will be messing around with the duplicated DB. The CDN should actually be part of that. Since a…
When a DB is duplicated, it's going through the neutralize process which is helpful to clean stuff that will be messing around with the duplicated DB. The CDN should actually be part of that. Since a CDN url is bound to a domain, when you copy the database (and most likely run it on its own different domain), it just won't properly work. Indeed, if you setup a CDN X for domain A and then copy a DB to domain B, this will happen: - You access website B - You try to load an img, which is using CDN X URL - CDN X URL is fetching the ressource on DB A instead of DB B, which might or might not exist (an image will likely share the same path so it might work, but for assets url it might not if the bundle url has changed) In the event of the assets having changed, they will never be loaded and the duplicated DB won't be loading properly. The only workaround in this case is to switch to debug mode to bypass the post processing and so the CDN url transform. Useful commits: - Introduction of neutralize https://github.com/odoo/odoo/pull/67825 - Conversion of neutralize from ORM calls to raw SQL https://github.com/odoo/odoo/commit/e5dbded9bb363351feff7ca8a56c7f8a6860f492 opw-3880102 Forward-Port-Of: odoo/odoo#163109
### Adjust disabled input colors (*1) 1. Maintain border consistency of frontend inputs : Prior to this PR, `form-select` borders overlapped the background color, which is not the case with `form-control`. This is because `form-control` uses the `background-clip` property. As we're using a semi-transparent border on frontend inputs, this creates a color issue: when a `form-select` input is disabled, the border color is darker than that of the `form-control`. This PR adapts the `background-c
Original PR description
### Adjust disabled input colors (*1) 1. Maintain border consistency of frontend inputs : Prior to this PR, `form-select` borders overlapped the background color, which is not the case with…
### Adjust disabled input colors (*1) 1. Maintain border consistency of frontend inputs : Prior to this PR, `form-select` borders overlapped the background color, which is not the case with `form-control`. This is because `form-control` uses the `background-clip` property. As we're using a semi-transparent border on frontend inputs, this creates a color issue: when a `form-select` input is disabled, the border color is darker than that of the `form-control`. This PR adapts the `background-clip` on `form-select` input to maintain color consistency between inputs. 2. Make disabled inputs more recognizable : Prior to this PR, disabled inputs were not sufficiently distinct from regular inputs, especially `website_sale` inputs which had a gray background. **Steps to reproduce:** - Make sure your instance has`website_sale_renting` installed. - Go to the Shop page. - Look for a product with a rental period (eg. Printer). - Click on Add to cart, this will disable the rental period input. - -> The gray search bar and the disabled input have almost the same style This PR adapts the style of disabled inputs in the frontend to make them more recognizable. --- ### Adjust dropdown caret color (*2) Prior to this PR, dropdown inputs had a color issue in frontend: the caret color of `form-select` was dark regardless of the input's background and didn't provide enough contrast when we defined a dark background on the page. **Steps to reproduce:** - Go to the Contact page. - Click on Edit. - Click on Theme tab. - Replace the fourth color with a dark one (ex. black). - Click on the form in the page. - Add a field. - Select the new field and choose the "Selection" type. - Click on Save. - -> The dropdown caret is not enough visible. --- ### Adjust `form-check-input` colors (*3) This PR adjusts the caret color to make sure that this will be always visible. Prior to this PR, checkboxes, radios and switch inputs had a color issue in frontend: as the inner element (eg. check mark) was always white if the user changed the primary color to a bright one, the inputs were no longer readable. **Steps to reproduce:** - Go to the Contact page. - Click on Edit. - Click on Theme tab. - Replace the primary color with a bright one (ex. light gray). - Click on the form in the page. - Add a field. - Select the new field and choose the "Radio Buttons" or " Checkbox" type. - Click on Save. - Check the checkbox or the radio button. - -> The check mark or the dot is not visible enough. This PR adjusts the colors to ensure that these inputs will always be visible. --- ### Adjust `form-range` track color (*4) Prior to this PR, the `form-range` track color used the light color. This created a color inconsistency with the rest of the UI when we changed the third color. **Steps to reproduce:** - Go to the Shop page. - Click on Edit. - Click on the page and make sure "Price Filter" is active in the Web Editor. - Go to Theme tab. - Change color-3 (light) to another one (eg. red). This PR adjusts the color to maintain consistency with the rest of UI elements --- ### Adjust custom dropdown caret (*5) Prior to this PR, the custom dropdown caret in the `website_sale` sidebar didn't handle the "multiple" attribute, unlike the default dropdown. If we decided to add a "multiple" attribute to this element, the caret remained displayed, which created a design issue. This PR adapts the caret of this dropdown so that it works correctly when this attribute is defined. --- task-3702675 --- | (*1) | Before | After | | -- | - | - | | Portal |  |  | | Website (light bg) |  |  | | Website (dark bg) |  |  | | (*2) | Before | After | | -- | - | - | | Adjust dropdown caret color |  |  | | (*3) | Before | After | | -- | - | - | | Adjust `form-check-input` colors |  |  | | (*4) | Before | After | | -- | - | - | | Adjust `form-range` track color |  |  | | (*5) | Before | After | | -- | - | - | | Adjust custom dropdown caret |  |  | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150886
Usecase to reproduce: - Product wiht a real time valuation - Product with invoice on delivered quantity - Create a SO for 5 units and 1000$ each - Do a full downpayment of 100% of quotation - Deliver 3 out of 5 units and create a backorder - Create an invoice - Validate the invoice Expected behavior: The cogs entries are there Current behavior: No cogs It only happens with partial downpayment. When the downpayment amount equals the quotation amount. An invoice is created instea
Original PR description
Usecase to reproduce: - Product wiht a real time valuation - Product with invoice on delivered quantity - Create a SO for 5 units and 1000$ each - Do a full downpayment of 100% of quotation - Deliver…
Usecase to reproduce: - Product wiht a real time valuation - Product with invoice on delivered quantity - Create a SO for 5 units and 1000$ each - Do a full downpayment of 100% of quotation - Deliver 3 out of 5 units and create a backorder - Create an invoice - Validate the invoice Expected behavior: The cogs entries are there Current behavior: No cogs It only happens with partial downpayment. When the downpayment amount equals the quotation amount. An invoice is created instead of a credit note and the process works correctly. It happens because it creates a credit note with a negative quantity to invoice so the system doesn't understand it has to create the cogs at that point. 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#161768 Forward-Port-Of: odoo/odoo#161098
### Steps to reproduce: - Install **POS** app. - Go to **POS** settings and enable: - Is a Bar/Restaurant - Tips > Add tip after payment - Open a POS session -if first time, add a floor and a table- - Add a product - Click on **payment** - Choose a payment method - Click on **Close Tab** - The print popup is shown twice in a row with an empty receipt. ### Investigation: Investigation: - Inside the `TipReceipt` template, the `total` is not shown as the class lacks a gette
Original PR description
### Steps to reproduce:
- Install **POS** app.
- Go to **POS** settings and enable:
- Is a Bar/Restaurant
- Tips > Add tip after payment
- Open a POS session -if first time, add a floor and a table-
- Add a product
- Click on **payment**
- Choose a payment method
- Click on **Close Tab**
- The print popup is shown twice in a row with an empty receipt.
### Investigation:
Investigation:
- Inside the `TipReceipt` template, the `total` is not shown as the class lacks a getter for it https://github.com/odoo/odoo/blob/1d49034782e3ff0e4384bad4e927a895e2a97839/addons/pos_restaurant/static/src/app/tip_receipt/tip_receipt.xml#L13-L16
- Also when there is no printer, we won't fallback to the web printer as it's annoying to the cashier.
opw-3836549
Forward-Port-Of: odoo/odoo#161056Steps to reproduce: - - Create an SO with an SOL and save the record. **The `qty_delivered` of that SOL will be null in the DB.** Cause of the issue: - Since the `qty_delivered` field is computed, the default value is set in the DB comes from the `_compute_qty_delivered` method at record creation. However, no default value is set here when the `qty_delivered_method` is not `'analytic'`. ### Note: In 15.0, a default value was set because of these lines: https://github.com/odoo/od
Original PR description
Steps to reproduce: - - Create an SO with an SOL and save the record. **The `qty_delivered` of that SOL will be null in the DB.** Cause of the issue: - Since the `qty_delivered` field is computed, the default value is set in the DB comes from the `_compute_qty_delivered` method at record creation. However, no default value is set here when the `qty_delivered_method` is not `'analytic'`. ### Note: In 15.0, a default value was set because of these lines: https://github.com/odoo/odoo/blob/313418804ae5cb6a786488ffc174b8eebffb796e/addons/sale/models/sale_order_line.py#L350-L353 These were removed by this commit de4911a. opw-3771589 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156917
Single value graph were not shown in cumulated graph. This is due to unshift happening before the accumulator, leading to `undefined + X = NaN` for the value. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162247
Original PR description
Single value graph were not shown in cumulated graph. This is due to unshift happening before the accumulator, leading to `undefined + X = NaN` for the value. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162247
build-error: 55926 Forward-Port-Of: odoo/odoo#163107
Original PR description
build-error: 55926 Forward-Port-Of: odoo/odoo#163107
issue generated during upgrade. when it's try to find journal with journal_data['code'] and translated_code, wil get two journal, and that will raise exception as signtone error there are two journal with 1. INV code 2. FAC code as translated code so will get two journal and got traceback ``` select name,id, code from account_journal where id in (12,13); name | id | code ------------------------------------------------
Original PR description
issue generated during upgrade. when it's try to find journal with journal_data['code'] and translated_code, wil get two journal, and that will raise exception as signtone error there are two journal…
issue generated during upgrade.
when it's try to find journal with journal_data['code'] and translated_code, wil get two journal,
and that will raise exception as signtone error
there are two journal with 1. INV code
2. FAC code as translated code so will get two journal and got traceback
```
select name,id, code from account_journal where id in (12,13);
name | id | code
----------------------------------------------------------------------+----+------
{"en_US": "Factures clients", "fr_BE": "Factures clients"} | 12 | FAC
{"en_US": "Factures fournisseurs", "fr_BE": "Factures fournisseurs"} | 13 | INV
(2 rows)
File "/tmp/tmpwqzy2fx8/migrations/account/saas~16.2.1.2/end-migrate.py", line 50, in migrate
ChartTemplate._pre_reload_data(company, template_data, data)
File "/home/odoo/src/odoo/17.0/addons/account/models/chart_template.py", line 264, in _pre_reload_data
self.env['ir.model.data']._update_xmlids([{
File "/home/odoo/src/odoo/17.0/odoo/addons/base/models/ir_model.py", line 2270, in _update_xmlids
rows.add((prefix, suffix, record._name, record.id, noupdate))
File "/home/odoo/src/odoo/17.0/odoo/fields.py", line 5142, in __get__
raise ValueError("Expected singleton: %s" % record)
ValueError: Expected singleton: account.journal(12, 13)
```
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#163022
Forward-Port-Of: odoo/odoo#162388**Steps to reproduce:** 1- Install Accounting, Fleet modules 2- Create a bill in accounting with a different currency than the company's default, and add a line with a chosen vehicle_id. 3- Go to the chosen vehicle in Fleet module 4- Navigate to the service created for this bill **Current behavior before PR:** If we create a bill for a vehicle using a different currency than the company's default. The fleet service that will be created will be having the company's currency but the va
Original PR description
**Steps to reproduce:** 1- Install Accounting, Fleet modules 2- Create a bill in accounting with a different currency than the company's default, and add a line with a chosen vehicle_id. 3- Go to the chosen vehicle in Fleet module 4- Navigate to the service created for this bill **Current behavior before PR:** If we create a bill for a vehicle using a different currency than the company's default. The fleet service that will be created will be having the company's currency but the value will be the amount in the currency used in the bill **Desired behavior after PR is merged:** We now create the fleet service using the value in debit not the unit price or the price subtotal. opw-3734743 Forward-Port-Of: odoo/enterprise#57639
Steps to reproduce: 1. Configure Sendcloud shipping with pick-up location 2. Go to website, use the shipping method and select a pick-up location 3. Go to the backend, confirm the sale order and validate the delivery 4. Get Error from Sendcloud that the `house_number` is required If we check the delivery address, we see that the house number is not taken into account when creating a new partner, and the address is incomplete. This commit adds the house number to the `street` field of t
Original PR description
Steps to reproduce: 1. Configure Sendcloud shipping with pick-up location 2. Go to website, use the shipping method and select a pick-up location 3. Go to the backend, confirm the sale order and validate the delivery 4. Get Error from Sendcloud that the `house_number` is required If we check the delivery address, we see that the house number is not taken into account when creating a new partner, and the address is incomplete. This commit adds the house number to the `street` field of the address to have a complete address. opw-3864382 Forward-Port-Of: odoo/enterprise#61290
Sources: https://www.socialsecurity.be/employer/instructions/dmfa/fr/latest/intermediates#bonus-a-l-emploi-plafonds-apres-l-augmentation-du-rmmmg-et-la-scission-du-calcul-29-03-2024 https://www.ucm.be/actualites/le-bonus-lemploi-renforce-au-1er-avril-2024#:~:text=Qu'est-ce%20que%20le,salaire%20net%20effectif%20est%20augment%C3%A9 Forward-Port-Of: odoo/enterprise#61358
Original PR description
Sources: https://www.socialsecurity.be/employer/instructions/dmfa/fr/latest/intermediates#bonus-a-l-emploi-plafonds-apres-l-augmentation-du-rmmmg-et-la-scission-du-calcul-29-03-2024 https://www.ucm.be/actualites/le-bonus-lemploi-renforce-au-1er-avril-2024#:~:text=Qu'est-ce%20que%20le,salaire%20net%20effectif%20est%20augment%C3%A9 Forward-Port-Of: odoo/enterprise#61358
Since the wrong module set on the maintenance worksheets, this would lead to issues when trying to uninstall the maintenance module, as it wouldn't find every models to uninstall. This ended up leaving some entries in the database after the module was removed. runbot-57422 Forward-Port-Of: odoo/enterprise#61355
Original PR description
Since the wrong module set on the maintenance worksheets, this would lead to issues when trying to uninstall the maintenance module, as it wouldn't find every models to uninstall. This ended up leaving some entries in the database after the module was removed. runbot-57422 Forward-Port-Of: odoo/enterprise#61355
https://www.socialsecurity.be/employer/instructions/dmfa/fr/latest/instructions/special_contributions/other_specialcontributions/asbestosfunds.html Forward-Port-Of: odoo/enterprise#61135
Original PR description
https://www.socialsecurity.be/employer/instructions/dmfa/fr/latest/instructions/special_contributions/other_specialcontributions/asbestosfunds.html Forward-Port-Of: odoo/enterprise#61135
# Issue: The query for constructing the aged_payable accounting report takes too long to load. # Analysis: When a database has lots of companies, it's likely to have a huge number of rows in the account_partial_reconcile table. Currently, the entire account_partial_reconcile table is being iterated in the report generation, only to be filtered out later on in the query. This superfluous computation is extremely inefficient and it could be easily avoided by correctly using LATERAL JOIN s
Original PR description
# Issue: The query for constructing the aged_payable accounting report takes too long to load. # Analysis: When a database has lots of companies, it's likely to have a huge number of rows in the…
# Issue: The query for constructing the aged_payable accounting report takes too long to load. # Analysis: When a database has lots of companies, it's likely to have a huge number of rows in the account_partial_reconcile table. Currently, the entire account_partial_reconcile table is being iterated in the report generation, only to be filtered out later on in the query. This superfluous computation is extremely inefficient and it could be easily avoided by correctly using LATERAL JOIN syntax to make use of the filters applied later on.  # Fix: Use the correct condition inside the lateral join to filter on account_move_lines that are already filtered later on. # Benchmark: ### Report loading time | # account partial reconcile lines | # account move lines | Company size | Before | After | | --- | ------ | ------ | ------| ----- | | 588503 | 2339215 | Large | 15m+ (timeout) | ~14.02s | | 5761 | 27635 | Medium | 15m+ (timeout) | ~3s | | 11 | 1513 | Small | 7.69 | ~1.6s | #### Total number of account partial reconcile: 3279438 #### Total number of account move lines: 10688953 # Related ticket: opw-3819017 Forward-Port-Of: odoo/enterprise#61036
Steps to Reproduce: - Install Timesheets app - Navigate to All timesheets from the header menu - Click on kanban view Issue: - Timer is present in the All timesheets Kanban view Causes: - Timer is present in the All timesheet kanban view because this view is inherited in my time sheets. Solution: - Using the context that is only used in MyTimeSheet Action window to hide the timer header (my_timesheet_display_timer) task-3741260 Forward-Port-Of: odoo/enterprise#61349 Fo
Original PR description
Steps to Reproduce: - Install Timesheets app - Navigate to All timesheets from the header menu - Click on kanban view Issue: - Timer is present in the All timesheets Kanban view Causes: - Timer is present in the All timesheet kanban view because this view is inherited in my time sheets. Solution: - Using the context that is only used in MyTimeSheet Action window to hide the timer header (my_timesheet_display_timer) task-3741260 Forward-Port-Of: odoo/enterprise#61349 Forward-Port-Of: odoo/enterprise#56581