Friday, August 11, 2023
40 changes · master
Enhancements to existing features
Thai tax reporting has been adjusted to work correctly when state or province names are translated. This helps keep local tax reports reliable for businesses using Odoo in multiple languages.
Original PR description
Goes with odoo/odoo#131368
Resolved issues and error corrections
This fixes an issue where two radio button fields with the same options could interfere with each other, causing a choice in one field to update the other. Each radio field now has its own unique link between the visible label and its input, making forms behave reliably for users.
Original PR description
Before this commit, having two RadioField fields with the same values was going to confuse them. When you click on the second, the first is modified. Why: The id used to link the label to the field's input was mistakenly removed during refactoring. So we're going to put it back, and each radio field will have its own id. 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
Code cleanup and technical improvements
Spreadsheet copies now handle their edit history in a single batch instead of one item at a time, improving efficiency. Access checks for spreadsheet history are also centralized, reducing the risk of mistakes as the feature evolves.
Miscellaneous changes
Ryvr Tech Ltd CLA --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#131620
Original PR description
Ryvr Tech Ltd CLA --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#131620
This fix moves shared invoice export preparation logic into the core accounting module so it remains available when electronic invoicing components are used independently. It helps prevent export-related failures for businesses using UBL/CII electronic invoice formats without the broader EDI module dependency.
Original PR description
The `_prepare_edi_vals_to_export` functions on `account.move` and `account.move.line` must be moved to `account` from `account_edi`. `account_edi_ubl_cii` does not depend on `account_edi` anymore, but still needs them.  ref: odoo/odoo#130836
Opening salary attachments from employee contracts no longer triggers an error message. This helps payroll users access related salary documents smoothly without interruption.
Original PR description
before this commit, traceback was showing while opening salary attachments from contracts.  introduced in : https://github.com/odoo/enterprise/commit/942ff4914c6246a0c21c9cacb3ad6824767c01ee after this commit, no traceback is shown
The Web Studio icon creator test was updated to match recent file upload behavior. This helps keep automated checks reliable and reduces the risk of false test failures during development.
Original PR description
This commit adds the notification service to the icon creator test since it is now used in the file uploader since https://github.com/odoo/odoo/pull/126914/commits/7788c2afcfc58f8f113898ac97f6049168427dd1 Linked to changes in https://github.com/odoo/odoo/pull/126914
The German translation file translates logic in master which leads to traceback when rendering those templates. Steps ===== - Install German language (but keep the db in english) - Create a contact with German as a language - In FSM, go to configuration > stages - Open the stage "New" form view - In the email template field, choose: "Task: Intervention Scheduled" - Create a task with the created contact as customer Issue ===== A traceback appears indicating that the template could
Original PR description
The German translation file translates logic in master which leads to traceback when rendering those templates. Steps ===== - Install German language (but keep the db in english) - Create a contact with German as a language - In FSM, go to configuration > stages - Open the stage "New" form view - In the email template field, choose: "Task: Intervention Scheduled" - Create a task with the created contact as customer Issue ===== A traceback appears indicating that the template could not be rendered. Cause ===== Some template logic has been translated in German in the .po file. Fix === In stable, the modification have been done in the odoo projects on transifex. In master the project is not yet existing. Therefore the modifications have directly been done in the relevant files. task-3447430
The barcode demo PDF has been refreshed so it matches a recent underlying update to the system reference used in the guide. This prevents outdated demo material from being shipped and helps users following the barcode instructions see the correct information.
Original PR description
PR odoo/enterprise#43716 correctly updated the reference for 'web.core' to '"@web/legacy/js/services/core' in the files for generating the barcodes_demo pdf, but missed generating the updated pdf, so this commit fixes that.
The sequence number, if present, was to be valitaded to match the invoice date. However, this legimitately strict constraint would stop saving a draft invoice with an incoherent sequence number, for instance draft invoices or invoices being scanned by the OCR. Added an extra condition deactivating the sequence check unless the action is to post the invoice. task-3451883 Forward-Port-Of: odoo/odoo#130530
Original PR description
The sequence number, if present, was to be valitaded to match the invoice date. However, this legimitately strict constraint would stop saving a draft invoice with an incoherent sequence number, for instance draft invoices or invoices being scanned by the OCR. Added an extra condition deactivating the sequence check unless the action is to post the invoice. task-3451883 Forward-Port-Of: odoo/odoo#130530
This commit fixes an issue causing website's `systrayItems` to don't be styled correctly. It also solves a minor indentation error in the same file.  task-3446638 part of task-3326263 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#130243
Original PR description
This commit fixes an issue causing website's `systrayItems` to don't be styled correctly. It also solves a minor indentation error in the same file.  task-3446638 part of task-3326263 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#130243
Before this commit, for products with attributes that do not create variants but do carry additional costs per value, the discount displayed on the PoS receipt inaccurately represented the price difference based solely on the list price, excluding these additional attribute prices. This commit corrects this issue to ensure that the displayed discount on the PoS receipt and product screen accurately includes any extra price from such attributes. opw-3297713 --- I confirm I have signed th
Original PR description
Before this commit, for products with attributes that do not create variants but do carry additional costs per value, the discount displayed on the PoS receipt inaccurately represented the price difference based solely on the list price, excluding these additional attribute prices. This commit corrects this issue to ensure that the displayed discount on the PoS receipt and product screen accurately includes any extra price from such attributes. opw-3297713 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#131547 Forward-Port-Of: odoo/odoo#121170
The cause of the issue is that `datetimepicker('viewDate')` will return the datetime of today by default event if the user selects nothing, to remedy this, we now check if the user has chosen something before storing the content of the field in `form_values` [opw-3333364](https://www.odoo.com/web#id=3333364&menu_id=4720&cids=1&action=4043&model=project.task&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#
Original PR description
The cause of the issue is that `datetimepicker('viewDate')` will return the datetime of today by default event if the user selects nothing, to remedy this, we now check if the user has chosen something before storing the content of the field in `form_values`
[opw-3333364](https://www.odoo.com/web#id=3333364&menu_id=4720&cids=1&action=4043&model=project.task&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#125299
Forward-Port-Of: odoo/odoo#123704Steps to reproduce: - Install Calendar App - Create any meeting and go into mobile mode. - Click on the meeting that we see in the calendar. We are going to get a traceback since the latest update about the calendar events popovers hasn't taken into account that we don't have the same behavior in mobile, so whenever we try to get the popover element in mobile we are going to get an error, so we check if we got a popover before trying to play with the position of it. opw-3419973 Forwa
Original PR description
Steps to reproduce: - Install Calendar App - Create any meeting and go into mobile mode. - Click on the meeting that we see in the calendar. We are going to get a traceback since the latest update about the calendar events popovers hasn't taken into account that we don't have the same behavior in mobile, so whenever we try to get the popover element in mobile we are going to get an error, so we check if we got a popover before trying to play with the position of it. opw-3419973 Forward-Port-Of: odoo/odoo#130274
**Steps to reproduce the bug:** - Assume the current date is August 1, 2023. - Go to general settings: - set purchase security lead time: 20 days - set manufacturing security lead time: 25 days - Create a storable product “P1” - Routes: Manufacture + buy - Manufacture lead time: 1 day - Create an order point: - preferred route: Manufacture - Quantity to order: 5 - Click on “Order once” **Problem:** A manufacturing order is created, but the "Scheduled D
Original PR description
**Steps to reproduce the bug:** - Assume the current date is August 1, 2023. - Go to general settings: - set purchase security lead time: 20 days - set manufacturing security lead time: 25 days -…
**Steps to reproduce the bug:**
- Assume the current date is August 1, 2023.
- Go to general settings:
- set purchase security lead time: 20 days
- set manufacturing security lead time: 25 days
- Create a storable product “P1”
- Routes: Manufacture + buy
- Manufacture lead time: 1 day
- Create an order point:
- preferred route: Manufacture
- Quantity to order: 5
- Click on “Order once”
**Problem:**
A manufacturing order is created, but the "Scheduled Date" is incorrect. Instead of being set to August 1, 2023, it shows August 7th.
The issue occurs because initially, we calculate the `Lead days date` as follows:
Today's date (August 1st) + manufacturing security lead time (25)
+ Manufacturing Lead Time (1) = August 27th. However, we use the purchase security lead time (20) instead of the manufacturing so 27 - 20 = August 7th
To determine the exact date, we call the function
`_get_date_with_security_lead_days`. In which we try to get the appropriate rule to use. However, in this case, the preferred route of the orderpoint is not passed as a parameter to the function. Therefore, we use the first rule of the first route ("buy"), and we end up using its security lead time.
opw-3439546
Forward-Port-Of: odoo/odoo#130765
Forward-Port-Of: odoo/odoo#130431During the test, the rate are created on UTC timezone. However the test could be run with a different timezone. Since the rate doens't have a name, by default they have the create date name. However due to timezone difference, it could be different day and the newly created rate for the test will be filter out Forward-Port-Of: odoo/odoo#131389
Original PR description
During the test, the rate are created on UTC timezone. However the test could be run with a different timezone. Since the rate doens't have a name, by default they have the create date name. However due to timezone difference, it could be different day and the newly created rate for the test will be filter out Forward-Port-Of: odoo/odoo#131389
Create account 400000 Product Sales and 4000010 Product Sales 2 Create a Journal INV1 with allowed accounts: 400000, 121000, 251000 Create a Journal INV2 with allowed accounts: 400010, 121000, 251000 Create an invoice with INV1, add a line with account 400000, Save Now change the journal in INV2, account on the line to 400010, Save Issue: Action will be blocked because of the failing constraint, which is checked after the move write but before the line write so we have mismatching journal
Original PR description
Create account 400000 Product Sales and 4000010 Product Sales 2 Create a Journal INV1 with allowed accounts: 400000, 121000, 251000 Create a Journal INV2 with allowed accounts: 400010, 121000, 251000 Create an invoice with INV1, add a line with account 400000, Save Now change the journal in INV2, account on the line to 400010, Save Issue: Action will be blocked because of the failing constraint, which is checked after the move write but before the line write so we have mismatching journal and account opw-3274843 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#129215 Forward-Port-Of: odoo/odoo#126777
When user uninstall the module 'stock_dropshipping'. The value 'dropship' for selection field 'Type of Operation' does not get deleted and cause error. From version 14.0 when user uninstall the module 'stock_dropshipping', record does not get deleted. To reproduce the issue in sass-16.2: - Install 'stock_dropshipping' module - Go to 'inventory' module - Go to 'Dropship' and click on 'NEW' - Make sure 'Type of Operation' is 'Dropship' and save - Uninstall 'stock_dropshipping' module
Original PR description
When user uninstall the module 'stock_dropshipping'. The value 'dropship' for selection field 'Type of Operation' does not get deleted and cause error. From version 14.0 when user uninstall the…
When user uninstall the module 'stock_dropshipping'. The value 'dropship' for
selection field 'Type of Operation' does not get deleted and cause error.
From version 14.0 when user uninstall the module 'stock_dropshipping', record
does not get deleted.
To reproduce the issue in sass-16.2:
- Install 'stock_dropshipping' module
- Go to 'inventory' module
- Go to 'Dropship' and click on 'NEW'
- Make sure 'Type of Operation' is 'Dropship' and save
- Uninstall 'stock_dropshipping' module.
- Go to 'Inventory' and click on 'Receipts' and remove all the filters
- Another way--> Create a new 'stock.picking' with 'Operation Type' as 'Dropship'
Error: A traceback appears: 'Wrong value for stock.picking.picking_type_code:
'dropship'
Traceback in sentry-
```
KeyError: 1
File "odoo/api.py", line 958, in get
cache_value = field_cache[record._ids[0]]
CacheMiss: 'stock.picking(1,).picking_type_code'
File "odoo/fields.py", line 1158, in __get__
value = env.cache.get(record, self)
File "odoo/api.py", line 965, in get
raise CacheMiss(record, field)
ValueError: Wrong value for stock.picking.picking_type_code: 'dropship'
File "odoo/http.py", line 2115, in __call__
response = request._serve_db()
File "odoo/http.py", line 1698, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1725, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1922, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 154, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 715, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 28, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 24, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 457, in call_kw
result = _call_kw_model(method, model, args, kwargs)
File "odoo/api.py", line 430, in _call_kw_model
result = method(recs, *args, **kwargs)
File "addons/web/models/models.py", line 54, in web_search_read
records = self.search_read(domain, fields, offset=offset, limit=limit, order=order)
File "odoo/models.py", line 5089, in search_read
return records._read_format(fnames=fields, **read_kwargs)
File "odoo/models.py", line 3181, in _read_format
vals[name] = convert(record[name], record, use_name_get)
File "odoo/models.py", line 5932, in __getitem__
return self._fields[key].__get__(self, type(self))
File "odoo/fields.py", line 1209, in __get__
self.compute_value(recs)
File "odoo/fields.py", line 1368, in compute_value
records._compute_field_value(self)
File "addons/mail/models/mail_thread.py", line 395, in _compute_field_value
return super()._compute_field_value(field)
File "odoo/models.py", line 4302, in _compute_field_value
fields.determine(field.compute, self)
File "odoo/fields.py", line 102, in determine
return needle(records, *args)
File "odoo/fields.py", line 706, in _compute_related
record[self.name] = self._process_related(value[self.related_field.name])
File "odoo/models.py", line 5941, in __setitem__
return self._fields[key].__set__(self, value)
File "odoo/fields.py", line 1300, in __set__
self.write(protected_records, value)
File "odoo/fields.py", line 1124, in write
cache_value = self.convert_to_cache(value, records)
File "odoo/fields.py", line 2704, in convert_to_cache
raise ValueError("Wrong value for %s: %r" % (self, value))
```
Fixed this issue by updating the code of the picking type and archiving it after
uninstallation of module using 'ondelete' function.
sentry-4167898386
Forward-Port-Of: odoo/odoo#121732When user pass the domain value as ['acc_number', 'ilike', ''] . The value of variable 'value' is passed as False and at the time of concatenate with the string traceback will be generated. ``` TypeError: can only concatenate str (not "bool") to str File "odoo/http.py", line 2115, in __call__ response = request._serve_db() File "odoo/http.py", line 1698, in _serve_db return service_model.retrying(self._serve_ir_http, self.env) File "odoo/service/model.py", line 134, in retry
Original PR description
When user pass the domain value as ['acc_number', 'ilike', ''] . The value of variable 'value' is passed as False and at the time of concatenate with the string traceback will be generated. ```…
When user pass the domain value as ['acc_number', 'ilike', ''] . The value of variable 'value' is passed as False and at the time of concatenate with the string traceback will be generated.
```
TypeError: can only concatenate str (not "bool") to str
File "odoo/http.py", line 2115, in __call__
response = request._serve_db()
File "odoo/http.py", line 1698, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1725, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1922, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 154, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 715, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 28, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 24, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 457, in call_kw
result = _call_kw_model(method, model, args, kwargs)
File "odoo/api.py", line 430, in _call_kw_model
result = method(recs, *args, **kwargs)
File "addons/web/models/models.py", line 54, in web_search_read
records = self.search_read(domain, fields, offset=offset, limit=limit, order=order)
File "odoo/models.py", line 5078, in search_read
records = self.search_fetch(domain or [], fields, offset=offset, limit=limit, order=order)
File "odoo/models.py", line 1530, in search_fetch
query = self._search(domain, offset=offset, limit=limit, order=order or self._order)
File "odoo/models.py", line 4759, in _search
query = self._where_calc(domain)
File "odoo/models.py", line 4506, in _where_calc
return expression.expression(domain, self).query
File "odoo/osv/expression.py", line 448, in __init__
self.parse()
File "odoo/osv/expression.py", line 763, in parse
right_ids = comodel.with_context(active_test=False)._search([(path[1], operator, right)])
File "odoo/addons/base/models/res_bank.py", line 134, in _search
domain = [sanitize(item) for item in domain]
File "odoo/addons/base/models/res_bank.py", line 134, in <listcomp>
domain = [sanitize(item) for item in domain]
File "odoo/addons/base/models/res_bank.py", line 130, in sanitize
value = '%' + value + '%'
```
This commit will check the condition if the value of variable 'value' is set or not.
sentry - 4194332917
Forward-Port-Of: odoo/odoo#122101**Steps to reproduce the bug:** - Create a storable product "P1" - Add 2 variants: - Color: Red and Blue - Size: XS and M - Create a Bill of Materials (BoM): - Add any components - Create operation "OP1": - Apply only to: Red XS - Create operation "OP2": - Blocked by "OP1" - Apply to all variants - Create a MO with the variant "P1 (Blue and M)" - Try to confirm the MO **Problem:** a traceback i
Original PR description
**Steps to reproduce the bug:**
- Create a storable product "P1"
- Add 2 variants:
- Color: Red and Blue
- Size: XS and M
- Create a Bill of Materials (BoM):
- Add any components
- Create operation "OP1":
- Apply only to: Red XS
- Create operation "OP2":
- Blocked by "OP1"
- Apply to all variants
- Create a MO with the variant "P1 (Blue and M)"
- Try to confirm the MO
**Problem:**
a traceback is triggered, the issue has been fixed in: https://github.com/odoo/odoo/commit/0f21fde26fa4387d93722092ebf21d294fcfcd4f
**Solution:**
Link only if an operation is blocked by another operation with the same attribute values.
OPW-3329263
Forward-Port-Of: odoo/odoo#129467
Forward-Port-Of: odoo/odoo#125461Steps to reproduce: - Install website_sale - Go to website shop in the frontend - Login, Edit - Click on 3rd or 4th kanban item - Push down Issue: The item goes to the end of the list instead of moving one element to the right/down. Pushing an element down searches for the next element with a higher `website_sequence` and places the current element right after, by switching their sequence values. Normally the logic works fine, but the problem arises when the `website_sale` mod
Original PR description
Steps to reproduce: - Install website_sale - Go to website shop in the frontend - Login, Edit - Click on 3rd or 4th kanban item - Push down Issue: The item goes to the end of the list instead of moving one element to the right/down. Pushing an element down searches for the next element with a higher `website_sequence` and places the current element right after, by switching their sequence values. Normally the logic works fine, but the problem arises when the `website_sale` module is installed, when records with `website_sequence = NULL` are set to the same default value, namely 10000. Then, when an item with `website_sequence = 10000` is pushed down, it will skip many items, before finding one with a higher `website_sequence`. Solution: When updating records with `website_sequence = NULL`, assign an unique sequence to each one. opw-3318867 Forward-Port-Of: odoo/odoo#131032 Forward-Port-Of: odoo/odoo#127982
This PR does not change the current behavior, it makes the creation of a sale.order.line is_delivery hookable. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#130644
Original PR description
This PR does not change the current behavior, it makes the creation of a sale.order.line is_delivery hookable. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#130644
Problem --------- When deleting a tax repartition line, an error occurred. When popping the modified values during deletion, only two values were present in the modified values. Thus, unpacking to 3 variables resulted in an error: `v` did not exist. Objective --------- Make repartition lines deletable again. Solution --------- Instead of popping 3 values for every command, we pop 1 stored as a list. We access the relevant elements using the index when necessary. task-xxxxxxx --
Original PR description
Problem --------- When deleting a tax repartition line, an error occurred. When popping the modified values during deletion, only two values were present in the modified values. Thus, unpacking to 3 variables resulted in an error: `v` did not exist. Objective --------- Make repartition lines deletable again. Solution --------- Instead of popping 3 values for every command, we pop 1 stored as a list. We access the relevant elements using the index when necessary. task-xxxxxxx --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#131716
Before this commit, updating recurring events was troublesome due to an Outlook limitation, which was sending spam to attendees. After this commit, when updating recurring events, it is suggested for users to update recurrences directly in Outlook Calendar to handle this limitation. It is not allowed anymore creating recurrences in Odoo when the sync with Outlook is active (although recurrences created in Outlook are still synchronized in Odoo). Recurrent events that were created before the sy
Original PR description
Before this commit, updating recurring events was troublesome due to an Outlook limitation, which was sending spam to attendees. After this commit, when updating recurring events, it is suggested for users to update recurrences directly in Outlook Calendar to handle this limitation. It is not allowed anymore creating recurrences in Odoo when the sync with Outlook is active (although recurrences created in Outlook are still synchronized in Odoo). Recurrent events that were created before the synchronization start (which are not synced) can still be deleted in Odoo (then a suggestion of recreating them in Outlook is sent). Previous unit tests regarding the synchronization of recurrences from Odoo to Outlook were deactivated. New tests were added asserting the forbiddance of this recurrence creation and update flow. Task-id: 3204905 Forward-Port-Of: odoo/odoo#115253
**Prior to this commit:** When we open the portal view of the project which is project sharing and search in a project, we have two different filters for searching sale orders and sale order items which is unnecessary. Hence we can make the search resourceful by combining both filters just like the working of sale order filter in the Search View of the project. **Post this commit:** Combining both filters under the name sale order to make a seamless search. **Task:** 3391908 Forward-Por
Original PR description
**Prior to this commit:** When we open the portal view of the project which is project sharing and search in a project, we have two different filters for searching sale orders and sale order items which is unnecessary. Hence we can make the search resourceful by combining both filters just like the working of sale order filter in the Search View of the project. **Post this commit:** Combining both filters under the name sale order to make a seamless search. **Task:** 3391908 Forward-Port-Of: odoo/odoo#131560 Forward-Port-Of: odoo/odoo#129540
With an MX company setup Open POS session Create an order without customer, validate Select the paid order, hit invoice Fill customer info and add the required extra mx info (cfdi to public, usage) Confirm Issue: Invoice will have the default values of cfdi to public and usage opw-3423314 Forward-Port-Of: odoo/enterprise#45673 Forward-Port-Of: odoo/enterprise#45298
Original PR description
With an MX company setup Open POS session Create an order without customer, validate Select the paid order, hit invoice Fill customer info and add the required extra mx info (cfdi to public, usage) Confirm Issue: Invoice will have the default values of cfdi to public and usage opw-3423314 Forward-Port-Of: odoo/enterprise#45673 Forward-Port-Of: odoo/enterprise#45298
task-3432610 Forward-Port-Of: odoo/enterprise#44685
Original PR description
task-3432610 Forward-Port-Of: odoo/enterprise#44685
…asset. Problem --------- In V15, we can modify the duration of an asset easily. In V16 we need to disposal it or to stop it and relaunch it to be able to do that. Objective --------- Add the possibility to change the duration of the asset in V16, like it's available in V15. Solution --------- Update the wizard view to display the duration in the modify action. task-3366584 Forward-Port-Of: odoo/enterprise#45116
Original PR description
…asset. Problem --------- In V15, we can modify the duration of an asset easily. In V16 we need to disposal it or to stop it and relaunch it to be able to do that. Objective --------- Add the possibility to change the duration of the asset in V16, like it's available in V15. Solution --------- Update the wizard view to display the duration in the modify action. task-3366584 Forward-Port-Of: odoo/enterprise#45116
The file export for the two pnd csv files works as expected when using their button, but not when using the save wizard. This is because the data is not returned as bytes while it is what is expected by the wizard. Changing it still works while exporting directly but also fixes the issue in the wizard. Also change the file_export_type of the tax report exports so that they have can be more easily identified in the save wizard. Forward-Port-Of: odoo/enterprise#45674
Original PR description
The file export for the two pnd csv files works as expected when using their button, but not when using the save wizard. This is because the data is not returned as bytes while it is what is expected by the wizard. Changing it still works while exporting directly but also fixes the issue in the wizard. Also change the file_export_type of the tax report exports so that they have can be more easily identified in the save wizard. Forward-Port-Of: odoo/enterprise#45674
Issue: ====== When creating a renewal subscription the renewed subscription `end_date` is assigned to today and not the start date of the renewal. Steps to reproduce the error: ============================= - Create a monthly subscription (select any customer and monthly subscription plan for easy setup) - Confirm the subscription , create invoice and confirm it - Renew the subscription order and select recurrence yearly and confirm it - Go back to the renewed subscription : it is loc
Original PR description
Issue: ====== When creating a renewal subscription the renewed subscription `end_date` is assigned to today and not the start date of the renewal. Steps to reproduce the error: ============================= - Create a monthly subscription (select any customer and monthly subscription plan for easy setup) - Confirm the subscription , create invoice and confirm it - Renew the subscription order and select recurrence yearly and confirm it - Go back to the renewed subscription : it is locked and the end date is equal to today Solution: ========= I moved the `end_date` update after the `set_close` , because in `set_close` it updates the `end_date` as today. opw-3420933 Forward-Port-Of: odoo/enterprise#45644 Forward-Port-Of: odoo/enterprise#45035
aparently the rental module increase the number of possible units adding 'hour' as an option. The module don't increase the possible values on the cited method which causes some errors displaying products on the website and/or trigerring the compute method in a record that has hours as unit opw 3341017 Forward-Port-Of: odoo/enterprise#44166 Forward-Port-Of: odoo/enterprise#42058
Original PR description
aparently the rental module increase the number of possible units adding 'hour' as an option. The module don't increase the possible values on the cited method which causes some errors displaying products on the website and/or trigerring the compute method in a record that has hours as unit opw 3341017 Forward-Port-Of: odoo/enterprise#44166 Forward-Port-Of: odoo/enterprise#42058
Steps: - install helpdesk_stock_account - create SO don't create an invoice for this SO - set SO customer in the ticket - refund ticket it shows default SO but doesn't show it in the dropdown Issue: - default SO visible but not visible in the dropdown of the refund wizard Cause: - the domain was not applied by default SO calculation method Fix: - applied domain for calculating default SO task-3162377 Forward-Port-Of: odoo/enterprise#45514 Forward-Port-Of: odoo/enterprise#369
Original PR description
Steps: - install helpdesk_stock_account - create SO don't create an invoice for this SO - set SO customer in the ticket - refund ticket it shows default SO but doesn't show it in the dropdown Issue: - default SO visible but not visible in the dropdown of the refund wizard Cause: - the domain was not applied by default SO calculation method Fix: - applied domain for calculating default SO task-3162377 Forward-Port-Of: odoo/enterprise#45514 Forward-Port-Of: odoo/enterprise#36947
- Go to Dashboard > Configuration > Dashboards > Sales - Click on Add a spreadsheet - Select the demo spreadsheet "Partner Spreadsheet Test" - Confirm => the created dashboard is empty The initial data is not copied to the dashboard. Therefore, if the document has never been updated (no snapshot, no revisions), the dashboard is empty. Forward-Port-Of: odoo/enterprise#45387 Forward-Port-Of: odoo/enterprise#45352
Original PR description
- Go to Dashboard > Configuration > Dashboards > Sales - Click on Add a spreadsheet - Select the demo spreadsheet "Partner Spreadsheet Test" - Confirm => the created dashboard is empty The initial data is not copied to the dashboard. Therefore, if the document has never been updated (no snapshot, no revisions), the dashboard is empty. Forward-Port-Of: odoo/enterprise#45387 Forward-Port-Of: odoo/enterprise#45352
Issue: ====== When you go to partner ledger from the partner form page you will get all the partners Steps to reproduce the error: ============================= - Go to contacts - Go to partner ledger from smart button - You will see all the partners listed Solution: ========= I added 'action.params.options' as default if we don't use the session because they weren't taken into account before. opw-3425692 Forward-Port-Of: odoo/enterprise#45573 Forward-Port-Of: odoo/enterprise#4
Original PR description
Issue: ====== When you go to partner ledger from the partner form page you will get all the partners Steps to reproduce the error: ============================= - Go to contacts - Go to partner ledger from smart button - You will see all the partners listed Solution: ========= I added 'action.params.options' as default if we don't use the session because they weren't taken into account before. opw-3425692 Forward-Port-Of: odoo/enterprise#45573 Forward-Port-Of: odoo/enterprise#45361
https://github.com/odoo/enterprise/pull/37536 introduced the subscription_state field and mistakenly made the payment method button visible for closed subscriptions. This commit hides the button. A subscription can be reopened by making a payment through the payment form. The payment method used is automatically assigned to the subscription, so there is no need to set or manage the payment method while a subscription is still closed. task-3451159 Forward-Port-Of: odoo/enterprise#45119
Original PR description
https://github.com/odoo/enterprise/pull/37536 introduced the subscription_state field and mistakenly made the payment method button visible for closed subscriptions. This commit hides the button. A subscription can be reopened by making a payment through the payment form. The payment method used is automatically assigned to the subscription, so there is no need to set or manage the payment method while a subscription is still closed. task-3451159 Forward-Port-Of: odoo/enterprise#45119
Steps to reproduce ================== - Go to purchase - Open studio - Edit the x2many list subview - Click on the product You're redirected to the product, but it shouldn't happen in studio Cause of the issue ================== Since a specific widget is defined on the field, `canUseFormatter` will return false and thus, the widget will be rendered as a link. Forward-Port-Of: odoo/enterprise#45463 Forward-Port-Of: odoo/enterprise#45156
Original PR description
Steps to reproduce ================== - Go to purchase - Open studio - Edit the x2many list subview - Click on the product You're redirected to the product, but it shouldn't happen in studio Cause of the issue ================== Since a specific widget is defined on the field, `canUseFormatter` will return false and thus, the widget will be rendered as a link. Forward-Port-Of: odoo/enterprise#45463 Forward-Port-Of: odoo/enterprise#45156
To reproduce the issue: 1. Create two kits with defined barcode 2. Barcode > Operations > Receipt, Create 3. Scan both kits 4. Validate Error: an Odoo Servor occurs "TypeError: StockMove.action_explode() takes 1 positional argument but 2 were given" When calling the ORM, we don't provide the SMs' IDs in an array. As a result: https://github.com/odoo/odoo/blob/e902713648bca329e6821859462b2128aad62c09/odoo/api.py#L447 Only the first ID will be stored in `ids`. The next IDs will be c
Original PR description
To reproduce the issue: 1. Create two kits with defined barcode 2. Barcode > Operations > Receipt, Create 3. Scan both kits 4. Validate Error: an Odoo Servor occurs "TypeError: StockMove.action_explode() takes 1 positional argument but 2 were given" When calling the ORM, we don't provide the SMs' IDs in an array. As a result: https://github.com/odoo/odoo/blob/e902713648bca329e6821859462b2128aad62c09/odoo/api.py#L447 Only the first ID will be stored in `ids`. The next IDs will be considered as method arguments. Forward-Port-Of: odoo/enterprise#45575 Forward-Port-Of: odoo/enterprise#45233
This PR combines the fixes in https://github.com/odoo/enterprise/pull/40997, https://github.com/odoo/enterprise/pull/44375 and https://github.com/odoo/enterprise/pull/44483 for version 16 and upward. Steps to reproduce: 1. make a sale order for a product with no taxes 2. open a PoS session, click on Quotation / Order 3. select the sale order, and validate 4. attempt to close the session This will lead in an error in Fiskaly, that blocks closing of the session. The taxes of order line
Original PR description
This PR combines the fixes in https://github.com/odoo/enterprise/pull/40997, https://github.com/odoo/enterprise/pull/44375 and https://github.com/odoo/enterprise/pull/44483 for version 16 and upward.…
This PR combines the fixes in https://github.com/odoo/enterprise/pull/40997, https://github.com/odoo/enterprise/pull/44375 and https://github.com/odoo/enterprise/pull/44483 for version 16 and upward. Steps to reproduce: 1. make a sale order for a product with no taxes 2. open a PoS session, click on Quotation / Order 3. select the sale order, and validate 4. attempt to close the session This will lead in an error in Fiskaly, that blocks closing of the session. The taxes of order lines should be checked before they are imported in the PoS. The original fix (https://github.com/odoo/enterprise/pull/40997) did not consider `add_orderline` method was also used to display old orders in the PoS, so the forward ports were not merged in version 16 up to master (with the exception of saas-16.2). The other fix (https://github.com/odoo/enterprise/pull/44375) made sure that only new orders are checked for taxes. In turn PR https://github.com/odoo/enterprise/pull/44483 made the order state available for the check (see PR description) This PR will add the fix for that issue (https://github.com/odoo/enterprise/pull/44483) to address both bugs simultaneously in version 16 and later. opw-3430698 Forward-Port-Of: odoo/enterprise#45491 Forward-Port-Of: odoo/enterprise#44853
The query to search on nominatim was incorrect, and it appears their API just got a bit less permissive. See https://github.com/osm-search/Nominatim/issues/3134 Task-3460458 Forward-Port-Of: odoo/enterprise#45596 Forward-Port-Of: odoo/enterprise#45570
Original PR description
The query to search on nominatim was incorrect, and it appears their API just got a bit less permissive. See https://github.com/osm-search/Nominatim/issues/3134 Task-3460458 Forward-Port-Of: odoo/enterprise#45596 Forward-Port-Of: odoo/enterprise#45570
'commercial_partner_id' field was removed from the project from saas~16.3; see https://github.com/odoo/odoo/pull/115155/commits/f9bfa1e3d47b6fe492def4fa2f08721ff7c6ca7d. Trace back on sentry ``` AttributeError: 'project.project' object has no attribute 'commercial_partner_id' File "odoo/http.py", line 2134, in __call__ response = request._serve_db() File "odoo/http.py", line 1710, in _serve_db return service_model.retrying(self._serve_ir_http, self.env) File "odoo/service
Original PR description
'commercial_partner_id' field was removed from the project from saas~16.3; see https://github.com/odoo/odoo/pull/115155/commits/f9bfa1e3d47b6fe492def4fa2f08721ff7c6ca7d. Trace back on sentry ```…
'commercial_partner_id' field was removed from the project from saas~16.3; see https://github.com/odoo/odoo/pull/115155/commits/f9bfa1e3d47b6fe492def4fa2f08721ff7c6ca7d.
Trace back on sentry
```
AttributeError: 'project.project' object has no attribute 'commercial_partner_id'
File "odoo/http.py", line 2134, in __call__
response = request._serve_db()
File "odoo/http.py", line 1710, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1737, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1938, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 191, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 717, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 34, in call_button
action = self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 26, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 461, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "odoo/api.py", line 448, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "home/odoo/src/enterprise/saas-16.4/sale_timesheet_enterprise/models/project.py", line 10, in action_profitability_items
action = super().action_profitability_items(section_name, domain, res_id)
File "addons/sale_timesheet/models/project.py", line 304, in action_profitability_items
return super().action_profitability_items(section_name, domain, res_id)
File "home/odoo/src/enterprise/saas-16.4/project_sale_subscription/models/project.py", line 59, in action_profitability_items
return self._get_subscription_action(domain, [res_id] if res_id else [])
File "home/odoo/src/enterprise/saas-16.4/project_sale_subscription/models/project.py", line 38, in _get_subscription_action
if self.commercial_partner_id:
```
This commit adapts the code to the changes in the project.
sentry-4380012864
Forward-Port-Of: odoo/enterprise#45527