Friday, September 29, 2023
53 changes · master
Enhancements to existing features
Product-related project settings now show a building icon next to fields that depend on the selected company. This makes it easier for users working across multiple companies to recognize when a value may vary by company.
Original PR description
This commit improves the visual indication of company dependent fields. add icon of 'fa fa-building' on side of fields label. task-3186717
The web editor now reports whether it successfully restored the user's cursor position after an editing action. This gives Odoo better control over editing behavior and helps reduce cursor-related inconsistencies for users.
Original PR description
By returning the `setSelection` value in the callback returned by the `preserveCursor`, we allow better control for the caller over the fact that the selection was effectively restored or if it failed. task-3383561
The vehicle form now gives more space to the model field, making it easier for users to view and enter longer vehicle model names. This is a small usability improvement for fleet management users.
Original PR description
Improvement: Following this commit the length of model field inside form view of vehicle is expanded. taskID: 3477830
This update switches several backend data summary operations to a more efficient internal method. It should make related screens and calculations more consistent and slightly faster without changing what users see or do.
Original PR description
Since https://github.com/odoo/odoo/pull/110737, it is better to use `_read_group` instead of `read_group` in the backend. In fact, the public method is less efficient (it computes display_name of relational groupby, extra order, ...) and more verbose. This commit replaces these new uses of `read_group` with `_read_group`. https://github.com/odoo/enterprise/pull/47826
This update keeps a Swiss payroll-specific field hidden when users are working with non-Swiss companies. It reduces confusion by only showing country-specific payroll options where they are relevant.
Original PR description
task-3489435
Backend reporting and grouping logic now uses a more efficient internal method across several Odoo Enterprise modules. This should improve consistency and reduce unnecessary processing without changing the user-facing workflow.
Original PR description
Since https://github.com/odoo/odoo/pull/110737, it is better to use `_read_group` instead of `read_group` in the backend. In fact, the public method is less efficient (it computes display_name of relational groupby, extra order, ...) and more verbose. This commit replaces these new uses of `read_group` with `_read_group`. https://github.com/odoo/odoo/pull/136381
Helpdesk administrators now have permission to edit the templates used by their teams. This makes it easier for them to manage standard responses or workflows without needing extra technical support.
Original PR description
Add template editor permissions to helpdesk administrator so they can manage their users' templates Task-2504439
Product and service configuration screens now show a building icon next to fields that depend on the selected company. This makes it easier for users working across multiple companies to recognize which settings may vary by company and avoid confusion.
Original PR description
This commit improves the visual indication of company dependent fields. add icon of 'fa fa-building' on side of fields label. task-3186717
Resolved issues and error corrections
This fixes a problem in Odoo Studio where adding content in the report editor could fail when the editor is embedded in a separate frame. Users should now be able to insert elements more reliably while editing reports, avoiding interruptions in report customization.
Original PR description
When the OdooEditor is mounted in an iframe, creating an element using the top document's `createElement` method produces a different result than creating one with the Editor's document. While the former is an instance of the top document's global `Node`, the latter is not (it is an instance of the iframe's global `Node` instead). This commit fixes an undesired failed comparison using the `instanceof` operator in the editor's "insert" command, due to not using the Editor's document when creating a new element for insertion. task-3521152 CE fw-port PR: https://github.com/odoo/odoo/pull/136597
Code cleanup and technical improvements
This update reorganizes and simplifies the internal handling of Knowledge editor blocks and embedded content. It improves reliability when inserting or refreshing content in collaborative editing, while making future maintenance easier for developers.
Original PR description
This is a refactoring PR which intends to: - Reorganize and rename `Behavior` templates so that it is more clear what purpose a specific template has. There are 3 types of template per `Behavior`: -…
This is a refactoring PR which intends to:
- Reorganize and rename `Behavior` templates so that it is more clear what
purpose a specific template has.
There are 3 types of template per `Behavior`:
- `command` template: it should include nodes that are required by the
`Behaviors engine` to mount a `Behavior` when it is inserted for the first
time (`blueprint`). It is most often rendered by the `wysiwyg` when the
user types a `/command` in the editor and is not rendered by `Owl`.
- `Component` template: used by `Owl` to populate the `anchor` of a `Behavior`
(which is the `parent` node of the `command` template)
- non-protected "content" templates: rendered manually during the lifecycle of
the `Behavior` `Component`. Those are rendered manually without `Owl`,
because they can be altered by the collaboration (since they are
`data-protected="false"`) and `Owl` does not support that the nodes it
rendered be altered by something else than itself (will crash).
- Reorganize the js code of `Behavior` components and the `HtmlField` patch, so
that there is some consistency between them and a foreign reader can better
understand their structure.
- Refactor and rename `updateBehaviors` into `mountBehaviors` because the
function is becoming quite long and complex, and handles some side effects in
a pretty ugly way. Notably:
- add some utils for common/complex use cases
- add a `validator` object to formalize cases where a `Behavior` mounting can
become obsolete
- display warning messages upon `Behavior` `mount` failure only in debug mode
Read more details in each commits.
task-3383561Miscellaneous changes
The efaktur export has rounding issues due to the fact that we need to display both the amount_untaxed and amount_tax rounded to 0 decimals as well as the detail of each line. As the rounding of the sum will most of the time be different to the sum of rounded lines, the government website refuse the resulting file. This fix will try to improve things a bit by: - Avoiding to round the values while we are still manipulating them. - Round the values once when the initial computation is do
Original PR description
The efaktur export has rounding issues due to the fact that we need to display both the amount_untaxed and amount_tax rounded to 0 decimals as well as the detail of each line. As the rounding of the…
The efaktur export has rounding issues due to the fact that we need to display both the amount_untaxed and amount_tax rounded to 0 decimals as well as the detail of each line. As the rounding of the sum will most of the time be different to the sum of rounded lines, the government website refuse the resulting file. This fix will try to improve things a bit by: - Avoiding to round the values while we are still manipulating them. - Round the values once when the initial computation is done for the lines. Once all lines have been computed, we will: - Find the difference, if any, between the rounded amount_untaxed and amount_tax and the line totals and round that too. - Update the first line with enough value in the result with that value in order to correct the total - Finally, round the values for representation to two decimals. If we cannot correct it in a single line, the correction is split in multiple lines. Hopefully, these steps will help ensure that the sum of the lines will be equal to the rounded values of the amount_untaxed and amount_tax and thus be correct. Task id # 3420220 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136231
This change corrects how certain fields are hidden or shown so they no longer conflict with newer validation checks. It helps prevent errors when filtering records in the BACS payment and WhatsApp account areas, without changing business workflows.
Original PR description
Because now (see https://github.com/odoo/odoo/pull/135111), we check the field security groups used by a search domain. The `groups='base.group_multi_company'` on the `allowed_company_ids` field definition is for display only (hide the field if not needed). And then it doesn't make sense to be set on the field itself that enables group field security. Same for `groups='base.group_no_one'` on the `bacs_submission_serial`.
The POS settings now show the Receipt Template field when WhatsApp is enabled. This ensures businesses can select the required template needed to send receipts through WhatsApp.
Original PR description
Before this commit: Navigate to POS settings -> Enable WhatsApp -> Receipt Template. There is currently no way to select the template. After this commit: If the "WhatsApp enabled" option is selected, the Receipt Template field will be displayed and a Receipt Template is required. Task - 3508578
Fee is calculated based on the transaction amount instead of total amount of invoice. opw-3480259 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#136775
Original PR description
Fee is calculated based on the transaction amount instead of total amount of invoice. opw-3480259 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#136775
Steps to reproduce: - Make a payment for an order using any payment method, amount not displayed due to white text on white background Before:  After:  --- I confirm I have signed the CLA and read the PR guidelines at www.odo
Original PR description
Steps to reproduce: - Make a payment for an order using any payment method, amount not displayed due to white text on white background Before:  After:  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136619
Issue: ====== When you have duplicate groupbys with `lazy=False` you will get an error. Steps to reproduce the error: ============================= - Install timesheet - Go to timesheet / reporting / By Employee - Add a groupby by month for one employee - I will show an error. Origin of the issue: ==================== The timesheet component will the send a request for read_group having `['date:month', 'date:month']` so we will have duplicated groupby which will be processed later
Original PR description
Issue: ====== When you have duplicate groupbys with `lazy=False` you will get an error. Steps to reproduce the error: ============================= - Install timesheet - Go to timesheet / reporting / By Employee - Add a groupby by month for one employee - I will show an error. Origin of the issue: ==================== The timesheet component will the send a request for read_group having `['date:month', 'date:month']` so we will have duplicated groupby which will be processed later in `_read_group_format_result` which update the value of `row[group]` for each group so the first group will have the original values which is ok but the second one will have the updated values by the first iteration which will result in error. Solution: ========= I saved the original values for each group in the row so we can use it later and not have a problem. opw-3497803 Forward-Port-Of: odoo/odoo#135143
To reproduce ============ - create sms template and apply it to a module different than `res.partner` for example Tasks - add context action - create a task and select a customer that has a phone number - from action try to send the sms, an error is displayed Problem ======= when computing the receipient info, the partner on the record is not taken into account. opw-3475456 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of:
Original PR description
To reproduce ============ - create sms template and apply it to a module different than `res.partner` for example Tasks - add context action - create a task and select a customer that has a phone number - from action try to send the sms, an error is displayed Problem ======= when computing the receipient info, the partner on the record is not taken into account. opw-3475456 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#134682
Current behavior: When creating an invoice from a POS order, the invoice product is not written in the customers language. Steps to reproduce: - Create a customer that uses French as language - Make sure the user is using English as language - Create a POS order for the customer - Invoice the order and look for the product name - The product name is in English but it should be in French opw-3283743 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submi
Original PR description
Current behavior: When creating an invoice from a POS order, the invoice product is not written in the customers language. Steps to reproduce: - Create a customer that uses French as language - Make sure the user is using English as language - Create a POS order for the customer - Invoice the order and look for the product name - The product name is in English but it should be in French opw-3283743 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136949
Description of the issue/feature this PR addresses: In the case where we have multiple projects, we also want to filter on tasks linked to the SO. Current behavior before PR: The default sale order passed in the context is used to filter by name which results in including tasks where name of the SO contains the name of the SO instead of being equal. Desired behavior after PR is merged: Force filtering on tasks linked to the SO. --- I confirm I have signed the CLA and read the PR gui
Original PR description
Description of the issue/feature this PR addresses: In the case where we have multiple projects, we also want to filter on tasks linked to the SO. Current behavior before PR: The default sale order passed in the context is used to filter by name which results in including tasks where name of the SO contains the name of the SO instead of being equal. Desired behavior after PR is merged: Force filtering on tasks linked to the SO. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136203 Forward-Port-Of: odoo/odoo#135771
This commit makes the rpc call in the `loadImageInfo` method robust to the case where an image src would be an absolute URL, by only considering the relative part of the URL. The images src are generally always relative but commit [1] wrongly put absolute URLs to images in grid mode with the `_reloadLazyImages` method. While this behavior was fixed by commit [2], the images that were saved before this fix was available still have an absolute URL. Hence the need to make `loadImageInfo` robust.
Original PR description
This commit makes the rpc call in the `loadImageInfo` method robust to the case where an image src would be an absolute URL, by only considering the relative part of the URL. The images src are generally always relative but commit [1] wrongly put absolute URLs to images in grid mode with the `_reloadLazyImages` method. While this behavior was fixed by commit [2], the images that were saved before this fix was available still have an absolute URL. Hence the need to make `loadImageInfo` robust. [1]: https://github.com/odoo/odoo/commit/cc406afcea7bf5846233a9f97a4a8ac5f618f3ec [2]: https://github.com/odoo/odoo/commit/3528f2c3f9d3b30266f3421672986d202c724a76 task-3514519 Forward-Port-Of: odoo/odoo#136873 Forward-Port-Of: odoo/odoo#136011
This commit replaces the `.jpg`, `.jpeg` or `.png` extension of uploaded images to `.webp` when the image is converted to webp. task-3460171 Forward-Port-Of: odoo/odoo#136396
Original PR description
This commit replaces the `.jpg`, `.jpeg` or `.png` extension of uploaded images to `.webp` when the image is converted to webp. task-3460171 Forward-Port-Of: odoo/odoo#136396
Description of the issue/feature this PR addresses: fixes an incompatibility bug between website_blog and website_event Current behavior before PR: the website event cover properties cannot be stored or changed if both website_blog and website_event module are installed Desired behavior after PR is merged: the cover properties of an event can be changed again --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#1366
Original PR description
Description of the issue/feature this PR addresses: fixes an incompatibility bug between website_blog and website_event Current behavior before PR: the website event cover properties cannot be stored or changed if both website_blog and website_event module are installed Desired behavior after PR is merged: the cover properties of an event can be changed again --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136601
Issue: ------ Contracts with a "Yearly" recurring cost are not applied every year in the report. Cause: ------ We use truncation to compare dates. The following condition: ```sql date_trunc('month', coy.date) = date_trunc('month', d) ``` can be read as: "When year and month are the same". The `date_trunc` function sets to "zero" the parts of the date we want to truncate. This is why the recurrence only appears for one year. Solution: --------- Use the date comparison p
Original PR description
Issue:
------
Contracts with a "Yearly" recurring cost
are not applied every year in the report.
Cause:
------
We use truncation to compare dates.
The following condition:
```sql
date_trunc('month', coy.date) = date_trunc('month', d)
```
can be read as:
"When year and month are the same".
The `date_trunc` function sets to "zero" the parts of the date we want to truncate.
This is why the recurrence only appears for one year.
Solution:
---------
Use the date comparison provided with postgresql
and use `date_part` function to check the month.
opw-3468253
Forward-Port-Of: odoo/odoo#136154This reverts commit 656d8ace871bf508668cd67927d06c381fcebd9f. The rational was: "If people don't have inventory, they will need a backorder anyway, and it's logical to not display the popup even if the picking type has 'ask' for create backorder". Also for the barcode application in OE we only show the reserved lines, and you could have the message if the picking was not fully reserve. Even if you completed all the lines. So we could have a single flow for backend and frontend. But it's
Original PR description
This reverts commit 656d8ace871bf508668cd67927d06c381fcebd9f. The rational was: "If people don't have inventory, they will need a backorder anyway, and it's logical to not display the popup even if…
This reverts commit 656d8ace871bf508668cd67927d06c381fcebd9f. The rational was: "If people don't have inventory, they will need a backorder anyway, and it's logical to not display the popup even if the picking type has 'ask' for create backorder". Also for the barcode application in OE we only show the reserved lines, and you could have the message if the picking was not fully reserve. Even if you completed all the lines. So we could have a single flow for backend and frontend. But it's difficult for people to understand that the backorder is base on the reservation and not on the initial demand. So we do a step back. On top of it, people usually won't mix flow. So they could totally use the "always create a BO" option on picking type when they use the barcode and "ask" when they use the backend. 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#136567 Forward-Port-Of: odoo/odoo#136313
When user import records of project and if it contains tags in the file, a traceback will appear. Steps to reproduce the error: - Go to project > Favorites > Import records > Upload File - Note: Make sure that file contains tags Traceback: ``` TypeError: unsupported operand type(s) for +=: 'NoneType' and 'list' 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._serv
Original PR description
When user import records of project and if it contains tags in the file, a traceback will appear. Steps to reproduce the error: - Go to project > Favorites > Import records > Upload File - Note: Make…
When user import records of project and if it contains tags in the file,
a traceback will appear.
Steps to reproduce the error:
- Go to project > Favorites > Import records > Upload File
- Note: Make sure that file contains tags
Traceback:
```
TypeError: unsupported operand type(s) for +=: 'NoneType' and 'list'
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 30, in call_kw
return 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 "addons/base_import/models/base_import.py", line 1332, in execute_import
import_result = model.load(import_fields, merged_data)
File "odoo/models.py", line 1279, in load
for id, xid, record, info in converted:
File "odoo/models.py", line 1441, in _convert_records
converted = convert(record, functools.partial(_log, extras, stream.index))
File "odoo/addons/base/models/ir_fields.py", line 118, in fn
converted[field], ws = converters[field](value)
File "odoo/addons/base/models/ir_fields.py", line 637, in _str_to_one2many
writable = convert(exclude_ref_fields(record), log)
File "odoo/addons/base/models/ir_fields.py", line 118, in fn
converted[field], ws = converters[field](value)
File "odoo/addons/base/models/ir_fields.py", line 581, in _str_to_many2many
id, _, ws = self.db_id_for(model, field, subfield, reference)
File "odoo/addons/base/models/ir_fields.py", line 462, in db_id_for
ids = RelatedModel.name_search(name=value, operator='=')
File "odoo/models.py", line 1730, in name_search
ids = self._name_search(name, args, operator, limit=limit, order=self._order)
File "addons/project/models/project_tags.py", line 66, in _name_search
domain += [('name', operator, name)]
```
https://github.com/odoo/odoo/blob/0480005e4498d76fe7a3446693f41500122e41d7/addons/project/models/project.py#L2763 When user import records that contains tags, here args will be None.
So it will lead to above traceback.
sentry-4494554048
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#136907
Forward-Port-Of: odoo/odoo#136374Current behavior: When refunding an order, the lot_id of the original order was not set on the refund order. Steps to reproduce: - Create a product with tracking by lot - Open the POS and add the product to the order - Set a lot on the product - Pay the order - Refund the order - Check the lot on the refund order, there is no lot set opw-3485740 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136808 Forward-Port-
Original PR description
Current behavior: When refunding an order, the lot_id of the original order was not set on the refund order. Steps to reproduce: - Create a product with tracking by lot - Open the POS and add the product to the order - Set a lot on the product - Pay the order - Refund the order - Check the lot on the refund order, there is no lot set opw-3485740 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136808 Forward-Port-Of: odoo/odoo#135056
The module has been deleted, but the i18n directory is still there. This commit removes it. Forward-Port-Of: odoo/odoo#136981
Original PR description
The module has been deleted, but the i18n directory is still there. This commit removes it. Forward-Port-Of: odoo/odoo#136981
Current behavior before PR: -Font size does not get applied to selected cells. -Font style buttons were active when cells are selected. Desired behavior after PR is merged: -Font size can be applied. -The font styles should not all be toggle by default. task-3477490 Forward-Port-Of: odoo/odoo#135519 Forward-Port-Of: odoo/odoo#133188
Original PR description
Current behavior before PR: -Font size does not get applied to selected cells. -Font style buttons were active when cells are selected. Desired behavior after PR is merged: -Font size can be applied. -The font styles should not all be toggle by default. task-3477490 Forward-Port-Of: odoo/odoo#135519 Forward-Port-Of: odoo/odoo#133188
Steps to reproduce: 1. Go to the website 2. Add website languages 3. Drag Table Of Content 4. Select snippet block 5. Go to customize the block 6. Select visibility conditionally - set visible/hide for languages. Before the commit, selecting block visibility conditionally makes only the block is invisible but not the navbar content is invisible due to the absence of the `data-visibility-id` attribute. In this commit, handling conditional visibility of the navbar when the the
Original PR description
Steps to reproduce: 1. Go to the website 2. Add website languages 3. Drag Table Of Content 4. Select snippet block 5. Go to customize the block 6. Select visibility conditionally - set visible/hide for languages. Before the commit, selecting block visibility conditionally makes only the block is invisible but not the navbar content is invisible due to the absence of the `data-visibility-id` attribute. In this commit, handling conditional visibility of the navbar when the the snippet block is invisible. Also, This PR addresses an issue where a scroll bar was appearing on `list-group-item` elements in Bootstrap 4.1.3. The scroll bar was caused by the CSS property `margin-bottom: -1px;`. task-3373943 Forward-Port-Of: odoo/odoo#137005 Forward-Port-Of: odoo/odoo#126705
This fixes flickers in situations where: - close (manually): notify - open (manually): notify - close (from bus) - open (from bus) The final state is correct, but it does one extra close and open. With this fix, it becomes - close (manually): notify - open (manually): notify - (close from bus ignored) - (open from bus ignored) Note: the fix is aimed towards fixing issues within the tab making the manual change, which is the most common use case. Other tabs are not considered v
Original PR description
This fixes flickers in situations where: - close (manually): notify - open (manually): notify - close (from bus) - open (from bus) The final state is correct, but it does one extra close and open. With this fix, it becomes - close (manually): notify - open (manually): notify - (close from bus ignored) - (open from bus ignored) Note: the fix is aimed towards fixing issues within the tab making the manual change, which is the most common use case. Other tabs are not considered visible at the time of the change, making the flicker irrelevant, which is convenient to ignore as fixing it would require more advanced mechanism. runbot-24379 runbot-24994 Back-port of https://github.com/odoo/odoo/pull/136698 Forward-Port-Of: odoo/odoo#136778 Forward-Port-Of: odoo/odoo#136708
We have switched from a config_parameter (all companies rely on the same) to account_edi_proxy_client_user.edi_mode which is company based in saas-16.3 . We forgot to add the company to the domain while searching for existing for test proxy users when changing the field in the res_config_settings. So if it finds a test user "in any company" it still blocks you. See: odoo/odoo#116059 Task link: https://www.odoo.com/web#id=3525461&model=project.task task-35225461 Forward-Port-Of: odoo/o
Original PR description
We have switched from a config_parameter (all companies rely on the same) to account_edi_proxy_client_user.edi_mode which is company based in saas-16.3 . We forgot to add the company to the domain while searching for existing for test proxy users when changing the field in the res_config_settings. So if it finds a test user "in any company" it still blocks you. See: odoo/odoo#116059 Task link: https://www.odoo.com/web#id=3525461&model=project.task task-35225461 Forward-Port-Of: odoo/odoo#136834
Before this commit, when the Wysiwyg was used in a html form (like website_forum), its `savePendingImages` method was not called. This resulted in keeping pasted or dropped images as base-64 encoded sources instead of converting them to attachments. This commit ensures such conversion takes place. task-3499058 Forward-Port-Of: odoo/odoo#135385 Forward-Port-Of: odoo/odoo#134847
Original PR description
Before this commit, when the Wysiwyg was used in a html form (like website_forum), its `savePendingImages` method was not called. This resulted in keeping pasted or dropped images as base-64 encoded sources instead of converting them to attachments. This commit ensures such conversion takes place. task-3499058 Forward-Port-Of: odoo/odoo#135385 Forward-Port-Of: odoo/odoo#134847
**Issue:** Translation missing after upgrade when the customer had any other language except English and he changed the value of field instead of translation. In this commit, avoid deleting the translation by adding source value for the missing languages OPW: 3489453 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-p
Original PR description
**Issue:** Translation missing after upgrade when the customer had any other language except English and he changed the value of field instead of translation. In this commit, avoid deleting the translation by adding source value for the missing languages OPW: 3489453 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#135760
task-3518414 Fixes build error 22850 Fixes build error 22851 Forward-Port-Of: odoo/odoo#137047 Forward-Port-Of: odoo/odoo#136727
Original PR description
task-3518414 Fixes build error 22850 Fixes build error 22851 Forward-Port-Of: odoo/odoo#137047 Forward-Port-Of: odoo/odoo#136727
This commit fix 3 issues with the reservation with use_expiration_date set on the product: 1) -- Discrepancy of available_quantity -- StockMove._update_reserved_quantity() works along StockMove._get_available_quantity() If the with_expiration context is added to one and not the other, the available_quantity sent to the 'update' method will not be correct. 2) -- Can't reserve on imperishable quants -- On the Quant, if expiration_date is False, the reservation will not be possible. Changed
Original PR description
This commit fix 3 issues with the reservation with use_expiration_date set on the product: 1) -- Discrepancy of available_quantity -- StockMove._update_reserved_quantity() works along…
This commit fix 3 issues with the reservation with use_expiration_date set on the product: 1) -- Discrepancy of available_quantity -- StockMove._update_reserved_quantity() works along StockMove._get_available_quantity() If the with_expiration context is added to one and not the other, the available_quantity sent to the 'update' method will not be correct. 2) -- Can't reserve on imperishable quants -- On the Quant, if expiration_date is False, the reservation will not be possible. Changed the domain from `expiration_date >= date` to `expiration is False or expiration_date >= date` 3) -- Expiration Date on untracked products -- On the Product Template form, you can: - set tracking to 'lot' - activate 'Use Expiration Date' - set tracking to 'none' Resulting in the configuration `tracking: 'none', use_expiration_date: True` which is not supported. --- # How to Reproduce - Create a product P, tracked by lot, with use_expiration_date = True - Set quantity on hand to 10 (without lot) - Create a Sale Order for 1 unit of P: Confirm - On the Delivery, 'Check Availability' (if not done automatically) => The Transfer is marked as Ready (aka: at least 1 unit reserved), but nothing is reserved. => If you Unreserve, the product availability is shown as Available, and if your Reserve again, it is shown as 'Not Available' OPW-3434996 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#132703
Complement on 1e3531539959dd0d09c622a1eff74db86464edfa (#112450): alongside the split between forwards and backwards jump we missed that 3.11 has a specialized version of each for the `is None` and `is not None` cases. A use of that was added in standard in 16.5 (#120446) but more generally it makes sense that server actions would support conditional tests against `None`, probably... Forward-Port-Of: odoo/odoo#136943
Original PR description
Complement on 1e3531539959dd0d09c622a1eff74db86464edfa (#112450): alongside the split between forwards and backwards jump we missed that 3.11 has a specialized version of each for the `is None` and `is not None` cases. A use of that was added in standard in 16.5 (#120446) but more generally it makes sense that server actions would support conditional tests against `None`, probably... Forward-Port-Of: odoo/odoo#136943
Steps to reproduce: - In website, paste a URL like "odoo.com" as plain text. The expected result is a transformed link, just like it happens when pasting is done in an html field (ex: project.task description), but a simple text node is inserted instead. The reason for this is that an element created by the iframe document's `createElement` method has in its prototype chain the iframe context's global `Node` constructor, which is a distinct constructor object from the main window's `Node`
Original PR description
Steps to reproduce: - In website, paste a URL like "odoo.com" as plain text. The expected result is a transformed link, just like it happens when pasting is done in an html field (ex: project.task description), but a simple text node is inserted instead. The reason for this is that an element created by the iframe document's `createElement` method has in its prototype chain the iframe context's global `Node` constructor, which is a distinct constructor object from the main window's `Node` constructor. task-3521152 Forward-Port-Of: odoo/odoo#136545 EE PR: https://github.com/odoo/enterprise/pull/48136
Steps to reproduce: - Install PoS and activate Multi Employees per Session (Add atleast 2 employees) - Open a session in the PoS shop and create a new order. - Follow the steps until the ticket screen of the order. - Here change the cashier of the PoS, and see the ticket cashier. We don't want to change the ticket cashier of an order that has already been done, since then the cashier of the order is not going to match the cashier of the ticket. opw-3483405 Forward-Port-Of: odoo/odoo
Original PR description
Steps to reproduce: - Install PoS and activate Multi Employees per Session (Add atleast 2 employees) - Open a session in the PoS shop and create a new order. - Follow the steps until the ticket screen of the order. - Here change the cashier of the PoS, and see the ticket cashier. We don't want to change the ticket cashier of an order that has already been done, since then the cashier of the order is not going to match the cashier of the ticket. opw-3483405 Forward-Port-Of: odoo/odoo#136912 Forward-Port-Of: odoo/odoo#134141
Description of the issue: remaining hour field was visible to all users Desired behavior after PR is merged: remaining hour will only visible to that user who have timesheet access this field will invisible if user doesn't have timesheet access task-3484290 Forward-Port-Of: odoo/odoo#136988 Forward-Port-Of: odoo/odoo#135171
Original PR description
Description of the issue: remaining hour field was visible to all users Desired behavior after PR is merged: remaining hour will only visible to that user who have timesheet access this field will invisible if user doesn't have timesheet access task-3484290 Forward-Port-Of: odoo/odoo#136988 Forward-Port-Of: odoo/odoo#135171
Since [1] when webp support was introduced, pre-converted images (resizes and jpgs) are automatically created so that the images can be used in PDF reports. This only needed to be done for image fields - which can be referenced in reports. This commit limits the pre-conversion of images to images that are set in image fields. [1]: https://github.com/odoo/odoo/commit/0449fe85cb0e1d639a4e1aeba26e90906f79254d task-3510621 Forward-Port-Of: odoo/odoo#136400
Original PR description
Since [1] when webp support was introduced, pre-converted images (resizes and jpgs) are automatically created so that the images can be used in PDF reports. This only needed to be done for image fields - which can be referenced in reports. This commit limits the pre-conversion of images to images that are set in image fields. [1]: https://github.com/odoo/odoo/commit/0449fe85cb0e1d639a4e1aeba26e90906f79254d task-3510621 Forward-Port-Of: odoo/odoo#136400
Before this commit, the conversion of to-do to task is performed through a form view on the project.task record. This view let the user pick a project for the current record. A domain is applied on the project_id field to only let the user select a project from the current selected companies. This commit removes that filter to only rely on the ir.rule of project.project instead. task-3458909 Forward-Port-Of: odoo/odoo#137003 Forward-Port-Of: odoo/odoo#131261
Original PR description
Before this commit, the conversion of to-do to task is performed through a form view on the project.task record. This view let the user pick a project for the current record. A domain is applied on the project_id field to only let the user select a project from the current selected companies. This commit removes that filter to only rely on the ir.rule of project.project instead. task-3458909 Forward-Port-Of: odoo/odoo#137003 Forward-Port-Of: odoo/odoo#131261
This commit fixes the overflow of content title on the fullscreen view of content page and in the breadcrumbs and heading section on without fullscreen view(Exit-Fullscreen) by cropping the title and adding '...' at the end. Task-3384661 Forward-Port-Of: odoo/odoo#137050 Forward-Port-Of: odoo/odoo#128713
Original PR description
This commit fixes the overflow of content title on the fullscreen view of content page and in the breadcrumbs and heading section on without fullscreen view(Exit-Fullscreen) by cropping the title and adding '...' at the end. Task-3384661 Forward-Port-Of: odoo/odoo#137050 Forward-Port-Of: odoo/odoo#128713
When limited product loading is enabled, archived products can still be added to orders by scanning their barcode, because `get_pos_ui_product_product_by_params` loads archived products to prevent errors when refunding orders. This allows adding archived products via barcode even though they are not visible in the POS interface. To prevent this, we exclude archived products from the product_by_barcode when adding products to it. This ensures archived products cannot be added by barcode whe
Original PR description
When limited product loading is enabled, archived products can still be added to orders by scanning their barcode, because `get_pos_ui_product_product_by_params` loads archived products to prevent errors when refunding orders. This allows adding archived products via barcode even though they are not visible in the POS interface. To prevent this, we exclude archived products from the product_by_barcode when adding products to it. This ensures archived products cannot be added by barcode when limited product loading is enabled. opw-3502136 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136769 Forward-Port-Of: odoo/odoo#136166
- Remove tooltip of the project name in project Issue: When creating a project there is a `?` visible when without debug mode. why visible `?' without debug mode- -debug mode is not checked in the from_label component. - Fix project tour When we run the project tour manually, even if we select the assignee, the tour does not move to the next step, so we have clicked the input button manually. task-3302315 Forward-Port-Of: odoo/odoo#121282
Original PR description
- Remove tooltip of the project name in project
Issue:
When creating a project there is a `?` visible when without debug mode.
why visible `?' without debug mode-
-debug mode is not checked in the from_label component.
- Fix project tour
When we run the project tour manually, even if we select the assignee, the tour
does not move to the next step, so we have clicked the input button manually.
task-3302315
Forward-Port-Of: odoo/odoo#121282Steps to reproduce: - Create a transfer with a delivery method. - Add a lot of characters in the tracking reference field. Bug: after saving the field overflows in the view opw-3370813 Forward-Port-Of: odoo/odoo#136705 Forward-Port-Of: odoo/odoo#135941
Original PR description
Steps to reproduce: - Create a transfer with a delivery method. - Add a lot of characters in the tracking reference field. Bug: after saving the field overflows in the view opw-3370813 Forward-Port-Of: odoo/odoo#136705 Forward-Port-Of: odoo/odoo#135941
Currently, milestones planned at the end of a period (week/month/..) are not displayed correctly in the Gantt view. This commit address this problem. Steps ===== (in a browser not in UTC) - install module project_enterprise - Create a task in the Gantt view and a milestone for this task - Set the deadline of the milestone to the last day of the current month Issue ===== The milestone set to the last day of the month is not display in the good period in the Gantt view. It is displaye
Original PR description
Currently, milestones planned at the end of a period (week/month/..) are not displayed correctly in the Gantt view. This commit address this problem. Steps ===== (in a browser not in UTC) - install…
Currently, milestones planned at the end of a period (week/month/..) are not displayed correctly in the Gantt view. This commit address this problem. Steps ===== (in a browser not in UTC) - install module project_enterprise - Create a task in the Gantt view and a milestone for this task - Set the deadline of the milestone to the last day of the current month Issue ===== The milestone set to the last day of the month is not display in the good period in the Gantt view. It is displayed in the first day of the next month. Cause ===== There are two issues here: - The milestone is not display in its actual month: a problem in the loop exploring each column causes the last slot of the period to not be checked for milestones. - The milestone is displayed in the next period: When searching for milestones for the current period, a datetime, converted to UTC is sent to the server. This makes no sense are the milestones deadlines are date and not datetime. When comparing a date to a datetime, the server will just get rid of the time assosiated to the datetime. But this will cause problem when the end of the period in the Gantt is converted to UTC (e.g. July 1st 00:00 can become June 30th 22:00, so a milestone planned on the 30th of June will in that case appears in the July period). Fix === - For the first point, an interation is simply added to the loop. - For the second point, start/end of current Gantt period are first converted to dates before being used to search milestones. task-3412721 Forward-Port-Of: odoo/enterprise#48116 Forward-Port-Of: odoo/enterprise#43674
Clean-up following https://github.com/odoo/enterprise/pull/47340 Forward-Port-Of: odoo/enterprise#48104 Forward-Port-Of: odoo/enterprise#47977
Original PR description
Clean-up following https://github.com/odoo/enterprise/pull/47340 Forward-Port-Of: odoo/enterprise#48104 Forward-Port-Of: odoo/enterprise#47977
When a renewal or an upsell are performed on a subscription sale.order, the partner_invoice_id and partner_shipping_id are not kept when they are different. taskid: 3489393 Forward-Port-Of: odoo/enterprise#47949 Forward-Port-Of: odoo/enterprise#47000
Original PR description
When a renewal or an upsell are performed on a subscription sale.order, the partner_invoice_id and partner_shipping_id are not kept when they are different. taskid: 3489393 Forward-Port-Of: odoo/enterprise#47949 Forward-Port-Of: odoo/enterprise#47000
Before this commit: - planned dates don't fit the user working schedule. After this commit: - bug fixed X-original-commit: https://github.com/odoo/enterprise/commit/0d493df8780a41f76fb9d81a94bbabca7570f5a1 Forward-Port-Of: odoo/enterprise#48129 Forward-Port-Of: odoo/enterprise#46558
Original PR description
Before this commit: - planned dates don't fit the user working schedule. After this commit: - bug fixed X-original-commit: https://github.com/odoo/enterprise/commit/0d493df8780a41f76fb9d81a94bbabca7570f5a1 Forward-Port-Of: odoo/enterprise#48129 Forward-Port-Of: odoo/enterprise#46558
Fix domain to avoid expression warning: ` WARNING openerp odoo.osv.expression: The domain term '('manager_ids', 'in', False)' should use the '=' or '!=' operator.` Forward-Port-Of: odoo/enterprise#48128 Forward-Port-Of: odoo/enterprise#47889
Original PR description
Fix domain to avoid expression warning:
` WARNING openerp odoo.osv.expression: The domain term '('manager_ids', 'in', False)' should use the '=' or '!=' operator.`
Forward-Port-Of: odoo/enterprise#48128
Forward-Port-Of: odoo/enterprise#47889This reverts commit 21666fff23a0eee7534a93937c5c00ee5e77f193. The community fix has been reverted (for functional reason). So we rollback this part too. Forward-Port-Of: odoo/enterprise#47867 Forward-Port-Of: odoo/enterprise#47816
Original PR description
This reverts commit 21666fff23a0eee7534a93937c5c00ee5e77f193. The community fix has been reverted (for functional reason). So we rollback this part too. Forward-Port-Of: odoo/enterprise#47867 Forward-Port-Of: odoo/enterprise#47816
Problem: -------- Fix introduced in 74d4c21d6e26248059e5e678ee74384218abe591 made `form` the default view when opening 360 Feedback. This makes it hard to access past surveys. Solution: --------- Make `kanban` the default again by making it higher priority than `form`. Forward-Port-Of: odoo/enterprise#47905
Original PR description
Problem: -------- Fix introduced in 74d4c21d6e26248059e5e678ee74384218abe591 made `form` the default view when opening 360 Feedback. This makes it hard to access past surveys. Solution: --------- Make `kanban` the default again by making it higher priority than `form`. Forward-Port-Of: odoo/enterprise#47905
Issue: ====== When you have multiple companies and switch from a company to another one where no employee is registered and then access shop floor app will raise an error. Steps to reproduce the error: ============================= - Install Manufacturing - Switch to My Company (chicago) - Try to access Shop floor Origin of the error: ==================== When you connect with the first company the employee_id will be added to the `EMPLOYEES_CONNECTED` session , and when you swi
Original PR description
Issue: ====== When you have multiple companies and switch from a company to another one where no employee is registered and then access shop floor app will raise an error. Steps to reproduce the error: ============================= - Install Manufacturing - Switch to My Company (chicago) - Try to access Shop floor Origin of the error: ==================== When you connect with the first company the employee_id will be added to the `EMPLOYEES_CONNECTED` session , and when you switch to the second company he will stay there and that's why we have the employee from the first company will be in the session and thus raises an error because he is not an employee of this company. Exptected Behavior: =================== - WOs should still show and not be clickable when the user is just a user and not employee. - No WOs should show when there are no employees that can be signed in. opw-3470707 Forward-Port-Of: odoo/enterprise#46415