Friday, May 5, 2023
44 changes · master
Enhancements to existing features
The mail module’s automated tests now use a shared command system instead of hardcoded instructions. This makes the tests easier to maintain and reduces the risk of unreliable test behavior, helping support smoother future updates.
Original PR description
Using hardcoded ORM commands in tests is cumbersome and not reliable. This commit introduces the same system as the one used on the server.
This update adds missing internal checks for spreadsheet and manufacturing overview screens so invalid configuration is caught earlier. It helps make these views more reliable for users without changing day-to-day workflows.
Original PR description
Task: [3297417](https://www.odoo.com/web#id=3297417&cids=1&model=project.task&view_type=form) 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
Favorite buttons across Knowledge views now use one shared styling approach. This reduces duplication and helps keep the user experience consistent when favoriting articles in different parts of the app.
Original PR description
Purpose: - Currently, the toggle favorite buttons in the different knowledge views have the same style, but through different classes. This commit makes sure that we only use one class for these buttons, to remove redundancy and to make sure that these buttons keep the same style. Task-3284518
Spreadsheet-related components now include additional validation to ensure they receive the expected information before use. This reduces the risk of hidden configuration issues and helps keep spreadsheet features more stable for users.
Original PR description
Task: [3297417](https://www.odoo.com/web#id=3297417&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
The appointment interface now hides the lead count when there are no related leads and prevents users from creating unrelated opportunities from that shortcut. The appointment booking email template description was clarified so users understand it notifies followers of the appointment type, not every person who books.
Original PR description
Purpose ======= Improve UI in appointment and appointment crm Specifications =========== - Hide the appointment type lead count stat button when the count is equal to 0. - Remove the possibility to create opportunities from the appointment type stat button as one should not be able to, and especially since they won't be linked to the type anyway. - Reword the appointment booked template description because the template will not be sent to all people who book the appointment but to all followers of the appointment type when an appointment is booked. Task-3280602
The CRM Enterprise pipeline reporting list now uses the updated reporting view from CRM. This removes operational buttons that were not needed in reporting, making the view simpler and more focused for users reviewing pipeline data.
Original PR description
Change the pipeline reporting tree view by the new one created in crm which removes some unnecessary operational buttons from the reporting view. See: https://github.com/odoo/odoo/pull/115326 Task-3204763
Resolved issues and error corrections
Creating a project task without a title now shows a clear notification instead of a technical validation error. Task assignment emails are also formatted correctly so the subject and message body are easier to read.
Original PR description
- In the quick create view, do not enter a value in the Task Title field and try to create a task, a validation error is showing instead of a toast notification highlighting that a required field is not set. - In your inbox, when you are assigned to a task, you receive mail from the project. In that mail, the mail subject and body are displayed in one line. In this PR, display_name field is set as a required field, meaning that if the field is left empty, a notification will appear in the form of a toast message instead of a validation error. The mail template's 'assignee_name' field currently has a 'span' tag, which may cause inline subject and body issues. To prevent this, it is recommended to use a 'div' tag instead.
Code cleanup and technical improvements
The mail message layout was simplified to reduce duplicated code between viewing and editing messages, making it easier to maintain. It also corrects small visual issues so message editing and option menus behave more consistently for users.
Original PR description
Simplify template so there are less code duplication between editing state and non-editing state. Also fixes following small style issues: - missing opacity-25 when editing message of others - expanded options of message come on top of jump present alert
Miscellaneous changes
The pdf viewer sometimes displays the sidebar when we open the pdf Solution: Add `pagemode=none` to the url when opening a pdf in attachments opw-3193516 Forward-Port-Of: odoo/odoo#120490 Forward-Port-Of: odoo/odoo#120330 https://github.com/odoo/enterprise/pull/40746
Original PR description
The pdf viewer sometimes displays the sidebar when we open the pdf Solution: Add `pagemode=none` to the url when opening a pdf in attachments opw-3193516 Forward-Port-Of: odoo/odoo#120490 Forward-Port-Of: odoo/odoo#120330 https://github.com/odoo/enterprise/pull/40746
The project app now only shows the Sales Order button for a task when that task has its own linked sales order line. This prevents users from seeing a misleading sales order link after it has been removed from the task.
Original PR description
[[FIX] project: fix sale order stat button in project](https://github.com/odoo/odoo/pull/118305/commits/e76acba91c2a8d8ba63bdffef0d6ff051ef5a07e)
Steps:
install sale_project
set SOL on project
set SOL on task and remove it
Issue:
when we set SOL on task SO stat button is visible but when we remove SOL from
task SO stat button is visible
Cause:
compute of SO was tasking SO from task SOL but when there is no SOL on the task
it is taking SO from Project SOL
Fix:
make SO related to SOL from the task because SO stat button should be visible
according to task SOL
task-3251672Fixed an issue where the up and down arrow keys did not move correctly between lines when writing multi-line messages. This also prevents accidental editing of the last message unless the message box is empty, making message composition more predictable.
Original PR description
Before this commit, when composer had some text content in multi-line, arrow up/down was not jumping to previous/next line. This happens because the navigable list is active even when not shown, and was preventing all keydown events. This commit fixes the issue by limiting handling of keydown events of navigable list to when it is shown. Also fixes a bug where the quick edit of last message was triggered when composer text was non-empty with ArrowUp. This should only be triggered when the composer text input is empty.
This update adjusts accounting-related tests so they correctly handle default currencies on bank and cash journals. It helps keep reconciliation, cash flow, and SEPA payment checks reliable after the journal currency behavior change.
Original PR description
Task 2834678 Adding a default currency on bank and cash journals breaks reconciliation tests. This PR fixes the tests by adjusting currency_id.
Odoo Studio now correctly shows available fields when setting the default grouping for Kanban views. This lets users configure Kanban organization from the sidebar as expected, avoiding confusion and failed setup changes.
Original PR description
Before this commit: In the Kanban view sidebar editor, the default group by would not show any choices. After this commit: The default group by options shows the proper field choices and choosing one updates the view. Task Id: 3274711
The mail and live chat code has been reorganized so discussion channel command logic sits with the Discuss-related components. This is an internal cleanup that should make future maintenance easier without changing the user experience.
Original PR description
Part of task-3265211
Spreadsheet pivot tables, lists, and charts now manage their temporary data connections in the user interface layer instead of the shared document core. This keeps document data cleaner, reduces unnecessary internal mapping, and helps avoid user-specific data details being stored or exchanged where they do not belong.
Original PR description
Before this commit, the pivot's dataSources were managed by the core plugin Pivot/ListCorePlugin. This didn't make sense since dataSources aren't core data: they are neither exported nor imported…
Before this commit, the pivot's dataSources were managed by the core plugin Pivot/ListCorePlugin. This didn't make sense since dataSources aren't core data: they are neither exported nor imported they can be different for each user (their ids were generated via uuidv4 at import) managing them required to handle local command in the core plugin Moved the dataSources management to the UI plugin Pivot/ListUIPlugin and moved the relevant getters inside this plugin. Changed the ids of the dataSources to be the same as the pivot's id + a prefix, to avoid having to maintain a mapping pivot/listId <=> dataSourceId . This commit also removes the dataSourceId from the INSERT_PIVOT/LIST command, which have no place here since this is a core command and the dataSources are now a pure UI concept. This is slighly more tricky for pivots than for lists, because the datasource need to be loaded before the INSERT_PIVOT command to fetch the table structure. The component dispatching the command need to make sure it creates a dataSource with the id given by the getter getPivotDataSourceId, or else the dataSource will be loaded twice. Task: [3293491](https://www.odoo.com/web#id=3293491&menu_id=4720&cids=1&action=333&active_id=2328&model=project.task&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Spreadsheet pivot tables and lists now keep temporary data source details in the user interface layer instead of the shared spreadsheet core. This reduces unnecessary internal complexity and helps keep collaboration and imports more consistent without changing expected end-user features.
Original PR description
Before this commit, the pivot's dataSources were managed by the core plugin `Pivot/ListCorePlugin`. This didn't make sense since dataSources aren't core data: - they are neither exported nor imported…
Before this commit, the pivot's dataSources were managed by the core plugin `Pivot/ListCorePlugin`. This didn't make sense since dataSources aren't core data: - they are neither exported nor imported - they can be different for each user (their ids were generated via uuidv4 at import) - managing them required to handle local command in the core plugin Moved the dataSources management to the UI plugin `Pivot/ListUIPlugin` and moved the relevant getters inside this plugin. Changed the ids of the dataSources to be the same as the pivot's id + a prefix, to avoid having to maintain a mapping `pivot/listId` <=> `dataSourceId` . This commit also removes the dataSourceId from the `INSERT_PIVOT/LIST` command, which have no place here since this is a core command and the dataSources are now a pure UI concept. This is slighly more tricky for pivots than for lists, because the datasource need to be loaded before the `INSERT_PIVOT` command to fetch the table structure. The component dispatching the command need to make sure it creates a dataSource with the id given by the getter `getPivotDataSourceId`, or else the dataSource will be loaded twice. Task: [3293491](https://www.odoo.com/web#id=3293491&menu_id=4720&cids=1&action=333&active_id=2328&model=project.task&view_type=form)
Several Point of Sale-related modules were updated to use the latest shared asset bundle naming from the core Odoo platform. This keeps these apps aligned with underlying platform changes and helps ensure their screens, integrations, and tests continue loading the right resources.
Original PR description
pos*: l10n_de_pos_cert, l10n_de_pos_res_cert, l10n_mx_edi_pos, pos_hr_mobile, pos_iot, pos_l10n_se, pos_preparation_display, pos_restaurant_iot, pos_settle_due Linked to: odoo/odoo#120070
Portal shows all Sale Orders available for current user. For example, salesman can see his sales. If such a user can download digital files via product form in backend, it makes sense to let user download them via SO page on portal. However, it wasn't the case because /my/download requires product be purchased by current user [1]. Fix it by checking read access first. STEPS * in backend create SO with digital product (customer must be different from current user) * create invoice and regi
Original PR description
Portal shows all Sale Orders available for current user. For example, salesman can see his sales. If such a user can download digital files via product form in backend, it makes sense to let user…
Portal shows all Sale Orders available for current user. For example, salesman can see his sales. If such a user can download digital files via product form in backend, it makes sense to let user download them via SO page on portal. However, it wasn't the case because /my/download requires product be purchased by current user [1]. Fix it by checking read access first. STEPS * in backend create SO with digital product (customer must be different from current user) * create invoice and register a payment * navigate to portal (without using customer's token), * open SO, click download on digital product [1]: https://github.com/odoo/odoo/blob/1a24477fab4dd323cf94c010321d8942fb2c1a01/addons/website_sale_digital/models/account_invoice.py#L14-L22 opw-3144600 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#120580 Forward-Port-Of: odoo/odoo#112639
Adapting the field faq to the new sanitize api of 16.0 Forward-Port-Of: odoo/odoo#119369
Original PR description
Adapting the field faq to the new sanitize api of 16.0 Forward-Port-Of: odoo/odoo#119369
before this commit: after #109858 The method `update_field_translations` won't directly call the `write` As a result, when changing the translation of fields from translation dialog, the orm cache won't be cleared, and translations won't be updated in views even after refresh the page after this commit: when uesrs translate fields and refresh the page, the new translation can be updated in new views opw-3267024 Description of the issue/feature this PR addresses: Current behavior b
Original PR description
before this commit: after #109858 The method `update_field_translations` won't directly call the `write` As a result, when changing the translation of fields from translation dialog, the orm cache won't be cleared, and translations won't be updated in views even after refresh the page after this commit: when uesrs translate fields and refresh the page, the new translation can be updated in new views opw-3267024 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#120493 Forward-Port-Of: odoo/odoo#118924
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#119586
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#119586
Steps to reproduce ================== - Install Time Off - With Mitchell Admin, set notifications to "Handle in Odoo" - With Marc Demo, create a few Holidays requests - Switch back to Mitchell Admin - Open enough chat windows from the menu in the navbar so that it fills the entire window When there is no place left, we get this error ``` Cannot read properties of undefined (reading 'localMessageUnreadCounter') ``` Cause of the issue ================== Threads related to ti
Original PR description
Steps to reproduce ================== - Install Time Off - With Mitchell Admin, set notifications to "Handle in Odoo" - With Marc Demo, create a few Holidays requests - Switch back to Mitchell Admin - Open enough chat windows from the menu in the navbar so that it fills the entire window When there is no place left, we get this error ``` Cannot read properties of undefined (reading 'localMessageUnreadCounter') ``` Cause of the issue ================== Threads related to time off have no channel opw-3204260 Forward-Port-Of: odoo/odoo#120418
The activity view is an aggregation view, meaning that we show all the activities with no limit of records. Steps to reproduce: There is no easy way to reproduce the bug, the database should be populated with more than 80 records in a model and have an activity planned for the 81th record. Current Behaviour: The Activity view loads all the activities without limit and so the activity for the 81th record. The problem is that the 81th record does not have been loaded due to the default lim
Original PR description
The activity view is an aggregation view, meaning that we show all the activities with no limit of records. Steps to reproduce: There is no easy way to reproduce the bug, the database should be populated with more than 80 records in a model and have an activity planned for the 81th record. Current Behaviour: The Activity view loads all the activities without limit and so the activity for the 81th record. The problem is that the 81th record does not have been loaded due to the default limit of the RelationaLModel. Therefore the activity view crash because it cannot fetch the missing record for a loaded activity. Expected Behaviour: The activity view loads all the activities but also loads all the records so it can render them. Forward-Port-Of: odoo/odoo#120623
Issue: A user has write access rights to modify his own attendances. However, he can modify the `employee_id` field. This can cause attendances to be moved to other employees. opw-3280850 Forward-Port-Of: odoo/odoo#120540 Forward-Port-Of: odoo/odoo#120410
Original PR description
Issue: A user has write access rights to modify his own attendances. However, he can modify the `employee_id` field. This can cause attendances to be moved to other employees. opw-3280850 Forward-Port-Of: odoo/odoo#120540 Forward-Port-Of: odoo/odoo#120410
When settling a sale.order from the pos app, it's possible that the sale.order have different partners assigned to it (partner_id, partner_shipping_id, partner_invoice_id). After this commit, we are now properly assigning these partners to the generated invoice. Additionally, this commit makes the settling of sale.order more robust by avoiding issue on having multiple incompatible sale.orders in a pos.order (more than 2 sale.orders and their partners are not the same). After this commit,
Original PR description
When settling a sale.order from the pos app, it's possible that the sale.order have different partners assigned to it (partner_id, partner_shipping_id, partner_invoice_id). After this commit, we are…
When settling a sale.order from the pos app, it's possible that the sale.order have different partners assigned to it (partner_id, partner_shipping_id, partner_invoice_id). After this commit, we are now properly assigning these partners to the generated invoice. Additionally, this commit makes the settling of sale.order more robust by avoiding issue on having multiple incompatible sale.orders in a pos.order (more than 2 sale.orders and their partners are not the same). After this commit, we are only reusing the current pos.order as container of the new sale.order to settle if the sale.order is compatible to the current pos.order. Basically, we now only allow adding new sale order to the current order if the partner_id, partner_invoice_id and partner_shipping_id of the new sale.order are the same to the current pos.order's linked sale.order. In other words, if the new sale.order to settle is incompatible to the current pos.order, we create a new pos.order to settle that sale.order. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#120575 Forward-Port-Of: odoo/odoo#118492
Previously, a user could link his own expenses to a expense sheet of someone else. This would not be allowed upon creation but was allowed when updating the values of the expense. This commit add a simple check at the beginning of the write() Forward-Port-Of: odoo/odoo#120610 Forward-Port-Of: odoo/odoo#120008
Original PR description
Previously, a user could link his own expenses to a expense sheet of someone else. This would not be allowed upon creation but was allowed when updating the values of the expense. This commit add a simple check at the beginning of the write() Forward-Port-Of: odoo/odoo#120610 Forward-Port-Of: odoo/odoo#120008
l10n_in_edi: Before this commit : In Accounting settings the documentation link no longer works. After this commit : In Accounting settings the documentation link is updated and works. l10n_id_edi_ewaybill: Before this commit : In Accounting settings the documentation link no longer works. After this commit : In Accounting settings the documentation link is updated and works. task-3247082 Forward-Port-Of: odoo/odoo#119453 Forward-Port-Of: odoo/odoo#117096
Original PR description
l10n_in_edi: Before this commit : In Accounting settings the documentation link no longer works. After this commit : In Accounting settings the documentation link is updated and works. l10n_id_edi_ewaybill: Before this commit : In Accounting settings the documentation link no longer works. After this commit : In Accounting settings the documentation link is updated and works. task-3247082 Forward-Port-Of: odoo/odoo#119453 Forward-Port-Of: odoo/odoo#117096
Before PR: --- Rounding is not considered in the JSON data in total invoice value. After PR: --- Rounding is considered in the total invoice value in JSON data. Task id: 3276310 Forward-Port-Of: odoo/odoo#118904
Original PR description
Before PR: --- Rounding is not considered in the JSON data in total invoice value. After PR: --- Rounding is considered in the total invoice value in JSON data. Task id: 3276310 Forward-Port-Of: odoo/odoo#118904
In this commit, when user has created a transporter from the invoice view and if it's forget to enter GSTIN Then we throws error to set GSTIN in transporter transporter always have GSTIN, without having GSTIN any one is not allowed to transport goods in India. task - 3262215 Forward-Port-Of: odoo/odoo#117658
Original PR description
In this commit, when user has created a transporter from the invoice view and if it's forget to enter GSTIN Then we throws error to set GSTIN in transporter transporter always have GSTIN, without having GSTIN any one is not allowed to transport goods in India. task - 3262215 Forward-Port-Of: odoo/odoo#117658
- ensure `test_module_operations` exits with a non-zero status on failure, as the current makes it a lot less convenient to notice uninstall / reinstall errors (especially with lots of warnings crowding the logs) - allow uninstalling without reinstalling, so it's easier to inspect db state after uninstall - improve CLI (add subcommands support) - improve logger configuration (and silence the very noisy ones which mostly exist for post-mortem analysis) Forward-Port-Of: odoo/odoo#119848 Forwar
Original PR description
- ensure `test_module_operations` exits with a non-zero status on failure, as the current makes it a lot less convenient to notice uninstall / reinstall errors (especially with lots of warnings crowding the logs) - allow uninstalling without reinstalling, so it's easier to inspect db state after uninstall - improve CLI (add subcommands support) - improve logger configuration (and silence the very noisy ones which mostly exist for post-mortem analysis) Forward-Port-Of: odoo/odoo#119848 Forward-Port-Of: odoo/odoo#118332
Steps to reproduce ================== - Open a product form view - Enter .5 in the Cost field It is parsed as 5 but it should be 0.5 Cause of the issue ================== When trying to strip the currency symbol from the input, the leading decimal separator was also removed Solution ======== Adapt the regex by adding the decimal separator in the list of characters to not exclude opw-3270039 Forward-Port-Of: odoo/odoo#119651
Original PR description
Steps to reproduce ================== - Open a product form view - Enter .5 in the Cost field It is parsed as 5 but it should be 0.5 Cause of the issue ================== When trying to strip the currency symbol from the input, the leading decimal separator was also removed Solution ======== Adapt the regex by adding the decimal separator in the list of characters to not exclude opw-3270039 Forward-Port-Of: odoo/odoo#119651
The documentation PR https://github.com/odoo/documentation/pull/4315/ adds a new doc page about cookies bars. This commit adds a link in the Website settings, next to the cookies bar feature. Forward-Port-Of: odoo/odoo#120688 Forward-Port-Of: odoo/odoo#120639
Original PR description
The documentation PR https://github.com/odoo/documentation/pull/4315/ adds a new doc page about cookies bars. This commit adds a link in the Website settings, next to the cookies bar feature. Forward-Port-Of: odoo/odoo#120688 Forward-Port-Of: odoo/odoo#120639
Currently `report.stock.quantity` has a field defined in it called `move_ids`: `move_ids = fields.One2many('stock.move',readonly=True)` This virtual field has no corresponding inverse field so when performing a search_read on the model, it fails in fields.py when trying to do: `inverse_field = comodel._fields[inverse]` In addition, this field is apparently not used anywhere in the source code and not queried in the SQL View. This means the model can never be search_read by default.
Original PR description
Currently `report.stock.quantity` has a field defined in it called `move_ids`:
`move_ids = fields.One2many('stock.move',readonly=True)`
This virtual field has no corresponding inverse field so when performing a search_read on the model, it fails
in fields.py when trying to do: `inverse_field = comodel._fields[inverse]`
In addition, this field is apparently not used anywhere in the source code and not queried in the SQL View.
This means the model can never be search_read by default.
Since this field is never used, it isn't stored, and the model is `_auto = False`, removing it won't break any database.
Forward-Port-Of: odoo/odoo#120048All to display more information on smaller screens by reducing the padding and margin of the report lines, as well as by removing the sheet completely. [opw-3251730](https://www.odoo.com/web#id=3251730&model=project.task) Forward-Port-Of: odoo/enterprise#40193
Original PR description
All to display more information on smaller screens by reducing the padding and margin of the report lines, as well as by removing the sheet completely. [opw-3251730](https://www.odoo.com/web#id=3251730&model=project.task) Forward-Port-Of: odoo/enterprise#40193
Purpose ======= If the document URL is not a valid URL (random text) we will still offer to the user the possibility to open it. Task-3283452 Forward-Port-Of: odoo/enterprise#40343
Original PR description
Purpose ======= If the document URL is not a valid URL (random text) we will still offer to the user the possibility to open it. Task-3283452 Forward-Port-Of: odoo/enterprise#40343
Before this commit ================== GSTR-2B sync creates a file in the attachment and the file name was not set correctly. After this commit ================== Set the "%s" placeholder value, now the file name is set correctly. task_id: 3276322 Forward-Port-Of: odoo/enterprise#40036
Original PR description
Before this commit ================== GSTR-2B sync creates a file in the attachment and the file name was not set correctly. After this commit ================== Set the "%s" placeholder value, now the file name is set correctly. task_id: 3276322 Forward-Port-Of: odoo/enterprise#40036
Before this commit, if the receiver contact does not have a phone number but has a mobile number, we get a validation error. It would be easier for the user, to fallback on mobile number if there was no phone number. opw-3275070 Forward-Port-Of: odoo/enterprise#40645
Original PR description
Before this commit, if the receiver contact does not have a phone number but has a mobile number, we get a validation error. It would be easier for the user, to fallback on mobile number if there was no phone number. opw-3275070 Forward-Port-Of: odoo/enterprise#40645
Purpose: - Currently, the star icon of the toggle_favorite button in the knowledge list views is green, while it is yellow in every other list view. This is because we do not use the `boolean_favorite_field` field in knowledge but a button with an action so that users can add to or remove from their favorites articles for which they only have read access. This commit adds scss style to make the star yellow in knowledge's list views (search and trashed). Task-3284518 Forward-Port-Of: odo
Original PR description
Purpose: - Currently, the star icon of the toggle_favorite button in the knowledge list views is green, while it is yellow in every other list view. This is because we do not use the `boolean_favorite_field` field in knowledge but a button with an action so that users can add to or remove from their favorites articles for which they only have read access. This commit adds scss style to make the star yellow in knowledge's list views (search and trashed). Task-3284518 Forward-Port-Of: odoo/enterprise#40164
An error occurs because in domain instead of id they receive the record set. steps to produce this error: 1) create a new subscription with recurring products and confirm that. 2) create invoice of that particular subscription with x% of amount. 3) goto "field service" app and open products from smart button. applying these changes will resolve this issue. sentry traceback: ``` InvalidTextRepresentation: invalid input syntax for type integer: "product.product(17,)" LINE 4: ...t"
Original PR description
An error occurs because in domain instead of id they receive the record set. steps to produce this error: 1) create a new subscription with recurring products and confirm that. 2) create invoice of…
An error occurs because in domain instead of id they receive the record set.
steps to produce this error:
1) create a new subscription with recurring products and confirm that.
2) create invoice of that particular subscription with x% of amount.
3) goto "field service" app and open products from smart button.
applying these changes will resolve this issue.
sentry traceback:
```
InvalidTextRepresentation: invalid input syntax for type integer: "product.product(17,)"
LINE 4: ...t"."id" IS NULL)) AND (("product_product"."id" != 'product.p...
^
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 517, in search_panel_select_range
domain_image = self._search_panel_field_image(field_name,
File "addons/web/models/models.py", line 260, in _search_panel_field_image
model_domain_image = self._search_panel_domain_image(field_name, model_domain,
File "addons/web/models/models.py", line 304, in _search_panel_domain_image
groups = self.read_group(domain, [field_name], [field_name], limit=limit)
File "odoo/models.py", line 2225, in read_group
result = self._read_group_raw(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby, lazy=lazy)
File "odoo/models.py", line 2356, in _read_group_raw
self._cr.execute(query, where_clause_params)
File "odoo/sql_db.py", line 311, in execute
res = self._obj.execute(query, params)
```
sentry-4051814674
Forward-Port-Of: odoo/enterprise#40748## Description This PR fixes an issue where a traceback occurs while creating a new Amazon account in the sale_amazon module. ### See ```IndexError: list index out of range File "odoo/http.py", line 2119, in __call__ response = request._serve_db() File "odoo/http.py", line 1702, 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 1729, in _serve_ir
Original PR description
## Description This PR fixes an issue where a traceback occurs while creating a new Amazon account in the sale_amazon module. ### See ```IndexError: list index out of range File "odoo/http.py", line…
## Description
This PR fixes an issue where a traceback occurs while creating a new Amazon
account in the sale_amazon module.
### See
```IndexError: list index out of range
File "odoo/http.py", line 2119, in __call__
response = request._serve_db()
File "odoo/http.py", line 1702, 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 1729, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1926, 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 719, 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 459, in call_kw
result = _call_kw_model_create(method, model, args, kwargs)
File "odoo/api.py", line 439, in _call_kw_model_create
result = method(recs, *args, **kwargs)
File "<decorator-gen-444>", line 2, in create
File "odoo/api.py", line 409, in _model_create_multi
return create(self, [arg])
File "home/odoo/src/enterprise/saas-16.2/sale_amazon/models/amazon_account.py", line 225, in create
'location_id': parent_location_data[0]['view_location_id'][0],
```
## Steps to Reproduce
- Install the `sale_amazon` module
- Create a new company and switch to it
- In the Sale app, go to Configuration, and then to the Connectors section.
- Click on Amazon Accounts.
- Click on "New", fill in the required information, and click on "Save".
- A traceback will appear.
## Cause
The traceback occurs because the "company" value is not present in the "vals"
dictionary. This is because we cannot access read-only fields during the create
method.
## Solution
To fix this issue, we added `force_save` to the company_id field.
This ensures that the "company" value is available and the traceback is avoided.
sentry-4108896286
###
Forward-Port-Of: odoo/enterprise#40349*: documents The pdf viewer sometimes displays the sidebar when we open the pdf Solution: Add pagemode=none to the url when opening a pdf in attachments opw-3193516 Closes https://github.com/odoo/odoo/pull/120530
Original PR description
*: documents The pdf viewer sometimes displays the sidebar when we open the pdf Solution: Add pagemode=none to the url when opening a pdf in attachments opw-3193516 Closes https://github.com/odoo/odoo/pull/120530
Before this PR, too many lookup on the currency rate table were performed. We chose to adopt a similar strategy than sale_report in sale module. We create a dedicated table containing the currency rates to avoid reading res_currency and res_currency_rate for each currency. This strategy does not rely on the currency-rate stored on the sale.order and therefore avoid multiple currency conversion corresponding to different rates (currency_rate is saved at sale.order confirmation). t
Original PR description
Before this PR, too many lookup on the currency rate table were performed. We chose to adopt a similar strategy than sale_report in sale module. We create a dedicated table containing the currency rates to avoid reading res_currency and res_currency_rate for each currency. This strategy does not rely on the currency-rate stored on the sale.order and therefore avoid multiple currency conversion corresponding to different rates (currency_rate is saved at sale.order confirmation). taskid: 3247318 Forward-Port-Of: odoo/enterprise#38710
task-3289145 Forward-Port-Of: odoo/enterprise#40710 Forward-Port-Of: odoo/enterprise#40658
Original PR description
task-3289145 Forward-Port-Of: odoo/enterprise#40710 Forward-Port-Of: odoo/enterprise#40658
## Current behaviour On a brand new helpdesk ticket with no assignees, when we add an user to follow the ticket with an email, there is a link "Assign to me" that is supposed to assign the newly following user as the assignee of the ticket. This link is dead, returning a 404. ## Expected behaviour Either correct the link, or remove it from the email header. ## Steps to reproduce - Install Helpdesk - Create a ticket, with no assignees - Add a new follower to the task with Send Email
Original PR description
## Current behaviour On a brand new helpdesk ticket with no assignees, when we add an user to follow the ticket with an email, there is a link "Assign to me" that is supposed to assign the newly…
## Current behaviour On a brand new helpdesk ticket with no assignees, when we add an user to follow the ticket with an email, there is a link "Assign to me" that is supposed to assign the newly following user as the assignee of the ticket. This link is dead, returning a 404. ## Expected behaviour Either correct the link, or remove it from the email header. ## Steps to reproduce - Install Helpdesk - Create a ticket, with no assignees - Add a new follower to the task with Send Email checked. - Check the outgoing email, and click on the link "Assign to me". - 404 response ## Reason for the problem The route which we were using for this `/mail/assign` doesn't exist anymore since version 15. This was an intended design change, to remove noice. The user can click on "View Helpdesk Ticket" and assign himself on there. ## Fix Remove the "Assign to me" link from the email header. Same as in PR #119821. ## Affected versions - 15.0 - saas-15.2 - 16.0 - saas-16.1 - saas-16.2 - master --- opw-3245935 Forward-Port-Of: odoo/enterprise#40708 Forward-Port-Of: odoo/enterprise#40425