Daily updates from Odoo
Navigate
Branch
Thursday, February 27, 2025
34 changes
1 change
Miscellaneous changes
Currently, a traceback is occurring when the user tries to create an exchange return without giving the origin value in picking. To reproduce this issue: 1) Install `purchase_stock` 2) Create a stock picking with operation type as `receipts` and don't give the `origin` value 3) Add a product in operation that contains vendor records in the product 4) `Validate` the product and click the `return` button to open a wizard 5) Update the qty to return and click the `Return for Exchange
Original PR description
Currently, a traceback is occurring when the user tries to create an exchange return without giving the origin value in picking. To reproduce this issue: 1) Install `purchase_stock` 2) Create a stock…
Currently, a traceback is occurring when the user tries to create an exchange return without giving the origin value in picking. To reproduce this issue: 1) Install `purchase_stock` 2) Create a stock picking with operation type as `receipts` and don't give the `origin` value 3) Add a product in operation that contains vendor records in the product 4) `Validate` the product and click the `return` button to open a wizard 5) Update the qty to return and click the `Return for Exchange` button Error:- ``` TypeError: sequence item 0: expected str instance, bool found ``` This traceback occurs from the line below because we are getting the origin value as False from the procurements. https://github.com/odoo/odoo/blob/949ed6f30f539dd787594511751bda0e714a5409/addons/purchase_stock/models/stock_rule.py#L119 The origin value of this procurement is directly taken from the origin value of picking. The above traceback occurs because the user didn't provide the origin value in picking. We can resolve this issue by providing a fallback value of an empty string if there is no origin in picking. sentry-6316652948 Forward-Port-Of: odoo/odoo#198724
2 changes
Miscellaneous changes
The cogwheel dropdown menu is unwanted and only contains the 'Export All' button, which is disabled with an attribute. This commit extends the existing base tree view for this specific use to avoid interfering with other views that use/extend it. Task ID: [4471980](https://www.odoo.com/odoo/project/966/tasks/4471980) Forward-Port-Of: odoo/odoo#193987
Original PR description
The cogwheel dropdown menu is unwanted and only contains the 'Export All' button, which is disabled with an attribute. This commit extends the existing base tree view for this specific use to avoid interfering with other views that use/extend it. Task ID: [4471980](https://www.odoo.com/odoo/project/966/tasks/4471980) Forward-Port-Of: odoo/odoo#193987
We add the variable msg_id and references to the test mail template MAIL_EML_ATTACHMENT to allow to use it as a response to another mail. We also add "subject" to allow to use test-related subject. Task-3707821 Forward-Port-Of: odoo/odoo#154332
Original PR description
We add the variable msg_id and references to the test mail template MAIL_EML_ATTACHMENT to allow to use it as a response to another mail. We also add "subject" to allow to use test-related subject. Task-3707821 Forward-Port-Of: odoo/odoo#154332
31 changes
Security fixes and vulnerability patches
IoT communications now include a security signature on selected protected requests, helping confirm that messages have not been altered or forged. This improves trust and safety for IoT long-polling interactions without changing the everyday user workflow.
Original PR description
We implemented a signature check on routes we want to protect: we now sign requests' urls and payloads for these routes using a hmac time-based signature. Those routes are decorated by `@route.protect`. Community PR: [https://github.com/odoo/odoo/pull/178919](https://github.com/odoo/odoo/pull/178919) Task: 3082226
Enhancements to existing features
Purchase orders now use a single confirmed status instead of splitting confirmed orders between two similar statuses. This reduces confusion in purchasing workflows and makes budget, commission, and dashboard reporting easier to interpret.
Original PR description
Before this commit: ------------------ The 'done' state in purchase orders was inconsistently used, causing confusion and adding unnecessary complexity. Both 'purchase' and 'done' states were required to distinguish confirmed POs, despite minimal differences. After this commit: ------------------ The 'done' state is removed, and the 'purchase' state alone now represents confirmed POs. This simplifies workflows and reduces ambiguity. task-4328798
Appointment scheduling now warns users when selected resources or people are already occupied by another event. This helps teams avoid double-bookings directly from the Gantt view and uses shared calendar availability information for more consistent conflict checks.
Original PR description
**[IMP] appointment{_hr}: use 'unavailable_partner_ids' to warn]**
Previously we used 'on_leave_partner_ids' to show a warning of a conflicting event
with users
This PR adapt the unavailable_partner_ids which is defined in the calendar module
to warn the user about conflicting events.
**[IMP] appointment: warning on already booked resource**
Warn the user when booking resources from the gantt view,
if other events already occupied those resources.
Task-3997545This update adds behind-the-scenes typing information for IoT and preparation display services. It helps developers work faster and more reliably through improved editor suggestions, with no direct change for end users.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/199372 This commit adds typing information for IoT and pos_preparation_display services, to enable editor auto-completion.
The French FEC import process now keeps duplicate-entry handling within the FEC import feature itself. This reduces unnecessary impact on broader accounting setup areas, making the change more focused and easier to maintain.
Original PR description
This commit, along with an equivalent community commit, keep the ignore duplicates logic exclusive to FEC import module. Previously, the logic was touching the chart template in account module, and it was also touching the ORM, which was unnecessary. task-4556286
This update simplifies internal test setup around mail and marketing automation so modules rely on lighter shared tools instead of heavier sample data. It also prevents database commits during tests, improving reliability and supporting future performance and scalability work.
Original PR description
Move tools in mail tool class. That way modules don't have to depend on the MailCommon class, just the lower one MailCase without demo and data setup. Lessen usage of MailCommon When possible, use a lower class like MailCase that holds tools and helpers but does not propagate setup data. While browsing through test classes, remove useless setup. Task-4605118: [marketing_automation] Unbordelize test classes Prepares Task-4224152: [marketing_automation] Performance / Scalability
Resolved issues and error corrections
The bank statement extraction tests now explicitly activate EUR before validating documents. This prevents failures in environments where EUR is not already enabled, making validation checks more reliable across setups.
Original PR description
If EUR is not active, `check_all_status` fails (because `AccountMove._post` fails). Before #80180, EUR was implicitly enabled by the multi-company setup of MailCommon: it creates a company with the currency EUR, and `ResCompany.create` automatically activates the company currency. Since the dependency on `MailCommon` was removed from `TestBankStatementExtractProcess`. This is not visible on the runbot, because it always installs l10n_be which automatically enables EUR.
This fixes an issue where VoIP activity filtering could miss the user information needed to show the current user's activities correctly. The change restores that user detail for VoIP so call-related tasks remain accurate and visible to the right person.
Original PR description
After fff2083, by default we don't provide the user_id of mail.activity for Store. However, in voip, we need user_id to filter activities for current user: https://github.com/odoo/enterprise/blob/60137cdea6412278ce9b94852926f09d61e9cb38/voip/static/src/softphone/softphone_model.js#L38 To fix, add this field in _to_store_defaults for voip.
Updates automated checks that were failing after a change to the date and time selector introduced a separate time picker. This helps keep scheduling, field service, knowledge, Gantt, and rental purchase flows reliable without changing normal user functionality.
Original PR description
This commit fixes some tours that were failing due to the addition of a new TimePicker in the datetime picker.
Belgian individual account reports now split payroll lines by their related payroll structure. This helps payroll teams review and reconcile employee payroll details more clearly when multiple structures are involved.
This fixes how India GST reporting identifies company records in multi-company or branch setups. It avoids using a parent company’s credentials for a child company that may have its own independent credentials, reducing the risk of incorrect GST report access or filing context.
Original PR description
In this commit we are partially reverting the company_domain changes because using `child_of`, is not the best option here. Due to it risks the using the credentials of the parent company for the child company records where a child can have an independent credentials The change was introduced because the in India, we can have same PAN entity with multi-company or branches where we wanted to make sure, that any child company does not have the record in that case. But described above as said it is not the best option to do.
Kenya payroll now uses the revised PAYE rules effective 27 December 2024. This helps ensure employee tax calculations and related payroll accounting reflect the latest legal requirements.
Original PR description
Problem ---------- Amendments to PAYE computation from 27 Dec 2024 Objective ---------- Correct the Kenya Payroll computation with the new rules from the 27 Dec 2024 Solution ---------- Adapt rules and parameters task-4457038
Features or functions removed from Odoo
An obsolete link between timesheets and planning slots was removed from the Project Timesheet Forecast module. This cleanup reduces unused complexity without changing day-to-day functionality for users.
Original PR description
Before this commit, the slot_id field defined timesheet model is no longer used since the merge of #31996 This commit removes that field since it is deprecated. task-4600102
Code cleanup and technical improvements
Payroll-related time off types and work entry types have been moved into the shared community layer so localized payroll features can access them more consistently. This reduces the need for extra connector modules while preserving country-specific restrictions where needed.
Original PR description
…community To make l10n time off types and work entry types available, the data records were moved in community. As those models allow a restriction on the country those record were defined in standard to avoid multiplying bridge modules.
Miscellaneous changes
There is no reason to not reset the payment exception state if an invoice is in draft and the subscription has not to be paid before the invoice. Also reset the next payment date on reset of the order/subscription and also make it eligible to be invoiced via cron. **Reproduction/Rationale**: - Have a scenario where the invoice of a subscription is proposed to be posted manually instead of automatically posting it - The order might be to be signed but not marked to be paid for acceptanc
Original PR description
There is no reason to not reset the payment exception state if an invoice is in draft and the subscription has not to be paid before the invoice. Also reset the next payment date on reset of the…
There is no reason to not reset the payment exception state if an invoice is in draft and the subscription has not to be paid before the invoice. Also reset the next payment date on reset of the order/subscription and also make it eligible to be invoiced via cron. **Reproduction/Rationale**: - Have a scenario where the invoice of a subscription is proposed to be posted manually instead of automatically posting it - The order might be to be signed but not marked to be paid for acceptance - Therefore the signature will confirm the order and the subscription will be invoiced via cron later - The draft is, as stated, not a failure but the wanted behavior in this scenario and no payment exception is possible because there is no payment related and created on confirmation. As the approach is to automatically put the order into a payment exception it is very important to catch ALL the scenarios where it needs to be removed. (this approach should be reconsidered in master IMO as it is a trap and rabbit hole) Info: @wt-io-it Forward-Port-Of: odoo/enterprise#80083 Forward-Port-Of: odoo/enterprise#79391
…2025 Forward-Port-Of: odoo/enterprise#80170 Forward-Port-Of: odoo/enterprise#80030
Original PR description
…2025 Forward-Port-Of: odoo/enterprise#80170 Forward-Port-Of: odoo/enterprise#80030
this follows commit 0f9d262fb1de2ea4355fc3a6f6d0152e67ccd37e which forgot a few things to enable drag/dropping for fields that are in the view but because of their automatic addition by ir.ui.view when the field is used in an expression. opw-4578365 Forward-Port-Of: odoo/enterprise#80157
Original PR description
this follows commit 0f9d262fb1de2ea4355fc3a6f6d0152e67ccd37e which forgot a few things to enable drag/dropping for fields that are in the view but because of their automatic addition by ir.ui.view when the field is used in an expression. opw-4578365 Forward-Port-Of: odoo/enterprise#80157
…cies Add a boolean field on hr.contract via studio. Then remove that field from the model. That last operation crashes because _compute_final_yearly_costs has a dynamic depends on it which take many fields of the model. While we don't want to exclude every custom fields (starting with "x_") to continue to allow sufficient extension points we do exclude studio fields specifically, because those are not meant to be used in a complex compute method. After this commit, there is no crash
Original PR description
…cies Add a boolean field on hr.contract via studio. Then remove that field from the model. That last operation crashes because _compute_final_yearly_costs has a dynamic depends on it which take many fields of the model. While we don't want to exclude every custom fields (starting with "x_") to continue to allow sufficient extension points we do exclude studio fields specifically, because those are not meant to be used in a complex compute method. After this commit, there is no crash opw-4503855 Forward-Port-Of: odoo/enterprise#78963
A previous commit[^1] disabled the rollback of the subtests. This was leading to the creation of multiple times the same data inside of the same sub transaction, raising a constraint on the company name, which should be unique. runbot-135304 [^1]: 8f50521be74d0cf858beea3b0aeb59760264ac4d Forward-Port-Of: odoo/enterprise#80224
Original PR description
A previous commit[^1] disabled the rollback of the subtests. This was leading to the creation of multiple times the same data inside of the same sub transaction, raising a constraint on the company name, which should be unique. runbot-135304 [^1]: 8f50521be74d0cf858beea3b0aeb59760264ac4d Forward-Port-Of: odoo/enterprise#80224
This commit fixes the pill resize tests by waiting for the right badge text to appear before releasing the handles. The tests previously failed intermittently because the badge text was incorrect, as it didn't have enough time to process all drag action events before being checked. This should be a more surefire way to get rid of the indeterminism than in https://github.com/odoo/enterprise/pull/79847/commits/91aa56d5adc635a3c7ae92d9533024b0ee87fcfa Forward-Port-Of: odoo/enterprise#80254
Original PR description
This commit fixes the pill resize tests by waiting for the right badge text to appear before releasing the handles. The tests previously failed intermittently because the badge text was incorrect, as it didn't have enough time to process all drag action events before being checked. This should be a more surefire way to get rid of the indeterminism than in https://github.com/odoo/enterprise/pull/79847/commits/91aa56d5adc635a3c7ae92d9533024b0ee87fcfa Forward-Port-Of: odoo/enterprise#80254
The aim of this commit is to prevent the CRON `account_account.auto_reconcile_bank_statement_line` to fail due a deadlock. Notes: We spotted a lot of deadlock in or lock due to that CRON. We saw that it could rollback the write on a lot of row at the same time and could prevent the cron to call itself for the next execution. Traceback: (VALUES where removed for readability, there were 100 of them) ``` 2025-01-27 12:00:39,276 3822296 ERROR openerp odoo.sql_db: bad query: b'UPDATE "accoun
Original PR description
The aim of this commit is to prevent the CRON `account_account.auto_reconcile_bank_statement_line` to fail due a deadlock. Notes: We spotted a lot of deadlock in or lock due to that CRON. We saw that…
The aim of this commit is to prevent the CRON `account_account.auto_reconcile_bank_statement_line` to fail due a deadlock.
Notes:
We spotted a lot of deadlock in or lock due to that CRON. We saw that it could rollback the write on a lot of row at the same time and could prevent the cron to call itself for the next execution.
Traceback: (VALUES where removed for readability, there were 100 of them)
```
2025-01-27 12:00:39,276 3822296 ERROR openerp odoo.sql_db: bad query: b'UPDATE "account_bank_statement_line"
SET "cron_last_check" = "__tmp"."cron_last_check"::timestamp, "write_date" = "__tmp"."write_date"::timestamp, "write_uid" = "__tmp"."write_uid"::int4
FROM (VALUES (...), (...), (...), (...), ) AS "__tmp"("id", "cron_last_check", "write_date", "write_uid")
WHERE "account_bank_statement_line"."id" = "__tmp"."id"'
ERROR: deadlock detected
DETAIL: Process 934692 waits for ShareLock on transaction 2414965881; blocked by process 932819.
Process 932819 waits for ShareLock on transaction 2414966299; blocked by process 934692.
HINT: See server log for query details.
CONTEXT: while updating tuple (10685,6) in relation "account_bank_statement_line"
2025-01-27 12:00:39,277 3822296 ERROR openerp odoo.addons.base.models.ir_cron: Job 'Try to reconcile automatically your statement lines' (297) server action #4952 failed
Traceback (most recent call last):
File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/ir_cron.py", line 572, in _callback
self.env.flush_all()
File "/home/odoo/src/odoo/18.0/odoo/api.py", line 833, in flush_all
self[model_name].flush_model()
File "/home/odoo/src/odoo/18.0/odoo/models.py", line 6707, in flush_model
self._flush(fnames)
File "/home/odoo/src/odoo/18.0/odoo/models.py", line 6784, in _flush
model.browse(some_ids)._write_multi(vals_list)
File "/home/odoo/src/odoo/18.0/odoo/models.py", line 4881, in _write_multi
self.env.execute_query(SQL(
File "/home/odoo/src/odoo/18.0/odoo/api.py", line 962, in execute_query
self.cr.execute(query)
File "/home/odoo/src/odoo/18.0/odoo/sql_db.py", line 373, in execute
res = self._obj.execute(query, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.DeadlockDetected: deadlock detected
DETAIL: Process 934692 waits for ShareLock on transaction 2414965881; blocked by process 932819.
Process 932819 waits for ShareLock on transaction 2414966299; blocked by process 934692.
HINT: See server log for query details.
CONTEXT: while updating tuple (10685,6) in relation "account_bank_statement_line"
```
task-id: 4393854
Forward-Port-Of: odoo/enterprise#80059A recent change (https://github.com/odoo/enterprise/pull/75203) removed the field `mobile` on the `res.partner` model, however the demo data in `l10n_ch_hr_payroll_account` was not fully adapted, leading to error and failure to load demo data. This commit changes the field `mobile` to `phone` to avoid the issue. Runbot Error: https://runbot.odoo.com/odoo/action-573/114995 Forward-Port-Of: odoo/enterprise#80118
Original PR description
A recent change (https://github.com/odoo/enterprise/pull/75203) removed the field `mobile` on the `res.partner` model, however the demo data in `l10n_ch_hr_payroll_account` was not fully adapted, leading to error and failure to load demo data. This commit changes the field `mobile` to `phone` to avoid the issue. Runbot Error: https://runbot.odoo.com/odoo/action-573/114995 Forward-Port-Of: odoo/enterprise#80118
As we support two more states (Alabama and Colorado), this commit adapts the W2 report to include information about those two states. task-4557365 Forward-Port-Of: odoo/enterprise#79684
Original PR description
As we support two more states (Alabama and Colorado), this commit adapts the W2 report to include information about those two states. task-4557365 Forward-Port-Of: odoo/enterprise#79684
taskid: 4471762 Forward-Port-Of: odoo/enterprise#80150
Original PR description
taskid: 4471762 Forward-Port-Of: odoo/enterprise#80150
First commit adjusts the Gantt time display badges to omit hours when the precision is too low for them to be relevant. Second commit fixes an issue where badges displayed incorrect dates when selecting cells. The dates were shifted one sub-column to the left. Forward-Port-Of: odoo/enterprise#80206
Original PR description
First commit adjusts the Gantt time display badges to omit hours when the precision is too low for them to be relevant. Second commit fixes an issue where badges displayed incorrect dates when selecting cells. The dates were shifted one sub-column to the left. Forward-Port-Of: odoo/enterprise#80206
Forward-Port-Of: odoo/enterprise#75261
Original PR description
Forward-Port-Of: odoo/enterprise#75261
An error occurs when the system tries to access single values from multiple records at [1]. Link [1]: https://github.com/odoo/enterprise/blob/71747a21cb5c68a8ab151434f85c822f30649aad/stock_barcode/models/res_config_settings.py#L14-L15 Traceback On Sentry: ``` ValueError: too many values to unpack (expected 1) File "odoo/orm/models.py", line 6073, in ensure_one _id, = self._ids ValueError: Expected singleton: res.config.settings(52, 53) File "odoo/http.py", line 2420, in __c
Original PR description
An error occurs when the system tries to access single values from multiple records at [1]. Link [1]:…
An error occurs when the system tries to access single values from multiple records at [1].
Link [1]: https://github.com/odoo/enterprise/blob/71747a21cb5c68a8ab151434f85c822f30649aad/stock_barcode/models/res_config_settings.py#L14-L15
Traceback On Sentry:
```
ValueError: too many values to unpack (expected 1)
File "odoo/orm/models.py", line 6073, in ensure_one
_id, = self._ids
ValueError: Expected singleton: res.config.settings(52, 53)
File "odoo/http.py", line 2420, in __call__
response = request._serve_db()
File "odoo/http.py", line 1946, in _serve_db
return self._transactioning(
File "odoo/http.py", line 2010, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 137, in retrying
result = func()
File "odoo/http.py", line 1977, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2228, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 335, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 741, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 31, in call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/service/model.py", line 62, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "odoo/orm/models.py", line 3611, in read
return self._read_format(fnames=fields, load=load)
File "odoo/orm/models.py", line 3841, in _read_format
vals[name] = convert(record[name], record, use_display_name)
File "odoo/orm/models.py", line 6880, in __getitem__
return self._fields[key].__get__(self)
File "odoo/orm/fields.py", line 1428, in __get__
self.compute_value(recs)
File "odoo/orm/fields.py", line 1594, in compute_value
records._compute_field_value(self)
File "odoo/orm/models.py", line 5055, in _compute_field_value
determine(field.compute, self)
File "odoo/orm/fields.py", line 70, in determine
return needle(*args)
File "home/odoo/src/enterprise/saas-18.1/stock_barcode/models/res_config_settings.py", line 32, in _compute_show_barcode_nomenclature
self.show_barcode_nomenclature = self.module_stock_barcode and self.env['barcode.nomenclature'].search_count([]) > 1
File "odoo/orm/fields.py", line 1369, in __get__
record.ensure_one()
File "odoo/orm/models.py", line 6076, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
To resolve this issue, Use an iteration(for loop) to iterate records one by one.
Sentry-6296116940
Forward-Port-Of: odoo/enterprise#79320Currently, the error message occurs when failed to fetch the account metrics. ``` Error Message: Failed to fetch the account (2) metrics: '{\n \'title\': \'Unauthorized\',\n \'type\': \'about:.. ``` This error message occurs when fetching social stream posts and refreshing statistics, so replace a logger error message with a logger warning message at [1], [2] to prevent more error logs in a terminal. link [1]: https://github.com/odoo/enterprise/blob/6e581b9dbf0c141e212f1641fc9cb37a05
Original PR description
Currently, the error message occurs when failed to fetch the account metrics.
```
Error Message: Failed to fetch the account (2) metrics: '{\n \'title\':
\'Unauthorized\',\n \'type\': \'about:..
```
This error message occurs when fetching social stream posts and refreshing statistics, so replace a logger error message with a logger warning message at [1], [2] to prevent more error logs in a terminal.
link [1]: https://github.com/odoo/enterprise/blob/6e581b9dbf0c141e212f1641fc9cb37a05140cff/social_twitter/models/social_live_post.py#L48
link [2]: https://github.com/odoo/enterprise/blob/af2db721417794ccda73ab83da388a782c94a911/social_twitter/models/social_stream.py#L91
sentry-4536687715
Forward-Port-Of: odoo/enterprise#64432Issue ----- Attachments are linked to `document.document` with a (`res_model`) and `res_field` By default, searching on `ir.attachment` filters out attachments tied to binary fields (ref.1), by adding `['res_field', '=', False]` to the domain preventing such documents from appearing in searches. Solution -------- This commit skips the filter on `res_field` Steps to Reproduce ------------------- 1. Install `documents` and `accountant` modules. 2. Enable Files Centralization for Ac
Original PR description
Issue ----- Attachments are linked to `document.document` with a (`res_model`) and `res_field` By default, searching on `ir.attachment` filters out attachments tied to binary fields (ref.1), by adding `['res_field', '=', False]` to the domain preventing such documents from appearing in searches. Solution -------- This commit skips the filter on `res_field` Steps to Reproduce ------------------- 1. Install `documents` and `accountant` modules. 2. Enable Files Centralization for Accounting and add Customer Invoices to its Journals. 3. Create an invoice → Confirm → Print → Download. 4. Click on the related document. Bug:The PDF cannot be searched by its indexed content. (ref. 1) ---- 1bb61c970ed63eabe3821d21f3ed6f99c4b16daa [ADD] fields: add option to store binary fields into attachments opw-4267371 Forward-Port-Of: odoo/enterprise#79540 Forward-Port-Of: odoo/enterprise#75051
Starting from January 6th, 2025, USPS _silently_ migrated to a new developer portal (devloper`s`.usps.com instead of developer.usps.com). See: https://developer.usps.com/getting-started. The new portal also introduces new base URL for their endpoints (See: https://developers.usps.com/sites/default/files/2024-10/USPS%20API%20Cloud%20Enrollment.pdf). Users who registered after this date didn't manage to use Odoo shipping connector for USPS since it used the old endpoints. This commit updat
Original PR description
Starting from January 6th, 2025, USPS _silently_ migrated to a new developer portal (devloper`s`.usps.com instead of developer.usps.com). See: https://developer.usps.com/getting-started. The new portal also introduces new base URL for their endpoints (See: https://developers.usps.com/sites/default/files/2024-10/USPS%20API%20Cloud%20Enrollment.pdf). Users who registered after this date didn't manage to use Odoo shipping connector for USPS since it used the old endpoints. This commit updates the used endpoints so that it's compatible with the new portal. opw-4576028 Forward-Port-Of: odoo/enterprise#80152
Problem Before this commit, if the customer deletes the rental location they would be blocked from creating a rental order as it is necessary for replenishment rules. The issue becomes critical because, once deleted, the rental location cannot be set to the company functionally given the field is not present in the view. Solution To fix this, this commit adds Rental Settings making the rental_loc_id field visible in the res_company view, allowing customers to select their desired rental
Original PR description
Problem Before this commit, if the customer deletes the rental location they would be blocked from creating a rental order as it is necessary for replenishment rules. The issue becomes critical because, once deleted, the rental location cannot be set to the company functionally given the field is not present in the view. Solution To fix this, this commit adds Rental Settings making the rental_loc_id field visible in the res_company view, allowing customers to select their desired rental location and resolve the issue independently. - opw-3973957 - opw-4488182 - opw-4545985 Forward-Port-Of: odoo/enterprise#80140 Forward-Port-Of: odoo/enterprise#79785