Wednesday, February 7, 2024
47 changes · saas-17.1
Resolved issues and error corrections
The Web Studio icon picker now filters its icon list more accurately, so users no longer see icons that appear blank or cannot be applied correctly. This prevents confusion when choosing icons and keeps the available options reliable.
Original PR description
This commit is a fix for the FontAwesomeIconSelector component. The regex being used didn't consider some added icons (using other font-family), or alterations of existing ones. Such selectors ".fa.fa-tiktok:before" were matching, resulting in icons being present from the list. But those icons cannot be used properly as a FontAwesome icon, since they may use another font-family, or alter the content value described from the scss. Now, only icons with selectors matching ".fa-[xxx]:before" are found, and the list no longer display invisible icons.
Miscellaneous changes
According to https://docs.python.org/3.7/library/xmlrpc.client.html > When passing strings, characters special to XML such as <, >, and & will be automatically escaped. However, it’s the caller’s responsibility to ensure that the string is free of characters that aren’t allowed in XML, such as the control characters with ASCII values between 0 and 31 (except, of course, tab, newline and carriage return); failing to do this will result in an XML-RPC request that isn’t well-formed XML. **ste
Original PR description
According to https://docs.python.org/3.7/library/xmlrpc.client.html > When passing strings, characters special to XML such as <, >, and & will be automatically escaped. However, it’s the caller’s…
According to https://docs.python.org/3.7/library/xmlrpc.client.html > When passing strings, characters special to XML such as <, >, and & will be automatically escaped. However, it’s the caller’s responsibility to ensure that the string is free of characters that aren’t allowed in XML, such as the control characters with ASCII values between 0 and 31 (except, of course, tab, newline and carriage return); failing to do this will result in an XML-RPC request that isn’t well-formed XML. **steps to reproduce:** - create a product with an ASCII control character in its name (ex: \x03) - read the product name using XMLRPC **before this commit:** - client can't parse the response, an error is raised `xml.parsers.expat.ExpatError: not well-formed (invalid token) ` **after this commit:** - we make sure the string is free of those characters opw-3617458 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152942 Forward-Port-Of: odoo/odoo#145577
[FIX] web: SelectMenu issues The 1st commit fixes the style applied to the o_select_menu_sticky elements. Since the fix from commit (1), the text cursor is shown when hovering those elements. This was without considering the fact that this class is mainly used to display elements on top of other elements of the component. This includes usages with the bottomArea slot, that can be used with a DropdownItem. Because of the changes from the commit previously named, the focused color was no l
Original PR description
[FIX] web: SelectMenu issues The 1st commit fixes the style applied to the o_select_menu_sticky elements. Since the fix from commit (1), the text cursor is shown when hovering those elements. This…
[FIX] web: SelectMenu issues The 1st commit fixes the style applied to the o_select_menu_sticky elements. Since the fix from commit (1), the text cursor is shown when hovering those elements. This was without considering the fact that this class is mainly used to display elements on top of other elements of the component. This includes usages with the bottomArea slot, that can be used with a DropdownItem. Because of the changes from the commit previously named, the focused color was no longer applied, and it was showing the wrong cursor when hovering. The 2nd commit fixes an issue caused by the way we use onInput props in Knowledge to fetch articles depending the current search value. Since we start from an empty string in the input again, it make no sense to display the choices previously fetched with a search value no longer displayed in the UI. The only way to display the correct items is to update the input value, then put an empty search to fetch accordingly. This is clearly an issue, when the onInput props is used to fetch the content of the SelectMenu, depending of the search value. The UI obviously display an empty search, and filter accordingly, but without having called the fetching of the items corresponding to the empty search value. A test was added as well to assert SelectMenu can be used for this purpose without forgetting to call onInput again when clearing the search value. Forward-Port-Of: odoo/odoo#152820
Steps to reproduce: - Install `crm` module (for test purpose) - Create a new lead - Set an email address, phone number, company name and contact name - Save the lead - In the chatter, send a mail (with the default recipient checked) Issue: - The partner has only the email address set (also set as name). - The `contact name` on the lead is updated with the partner name (who is the email address). Cause: When sending a mail with the default recipient checke
Original PR description
Steps to reproduce:
- Install `crm` module (for test purpose)
- Create a new lead
- Set an email address, phone number, company name and contact name
- Save the lead
- In the chatter, send a mail (with the default recipient checked)
Issue:
- The partner has only the email address set (also set as name).
- The `contact name` on the lead is updated with the partner name
(who is the email address).
Cause:
When sending a mail with the default recipient checked, the partner
is created based only on the email address (therefore, name is same as
email), and when assigning the new partner on the lead, the
`contact name` is updated with the partner name (who is the email
address).
Solution:
Alter the route `/mail/partner/from_email` and `/mail/message/post`
so it can take or manage additional values for the creation of the
partner.
opw-3512045
Forward-Port-Of: odoo/odoo#152780
Forward-Port-Of: odoo/odoo#136967Description of the issue/feature this PR addresses: Support out invoices with taxes of type "retención": - Do not take into account "retención" type taxes in the sum of the total price of the invoice lines, these taxes are of retention types and are declared in RetencionSoportada XML node. - Add amount_retention in invoice values and change template_invoice_factura to activate RetencionSoportada xml node. Current behavior before PR: Invoices with "retención" type taxes are not decla
Original PR description
Description of the issue/feature this PR addresses: Support out invoices with taxes of type "retención": - Do not take into account "retención" type taxes in the sum of the total price of the invoice lines, these taxes are of retention types and are declared in RetencionSoportada XML node. - Add amount_retention in invoice values and change template_invoice_factura to activate RetencionSoportada xml node. Current behavior before PR: Invoices with "retención" type taxes are not declared correctly, validation errors in the response of the tax agency. Desired behavior after PR is merged: Invoices with "retención" type taxes are declared correctly and accepted with no validation errors in the response of the tax agency. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152302
Since #135113, calls to /im_livechat/get_session can become very expensive on large databases with a long history of livechat sessions. Operators who have thousands of past livechat sessions (channels) can cause the SQL query in get_operator() to take multiple seconds. When the livechat is set to auto-popup and there are lots of visitors, this can become very significant. This patch changes two aspects: - introduce a CTE for the RTC session part, in order to avoid a JOIN cardinality explo
Original PR description
Since #135113, calls to /im_livechat/get_session can become very expensive on large databases with a long history of livechat sessions. Operators who have thousands of past livechat sessions…
Since #135113, calls to /im_livechat/get_session can become very expensive on large databases with a long history of livechat sessions. Operators who have thousands of past livechat sessions (channels) can cause the SQL query in get_operator() to take multiple seconds. When the livechat is set to auto-popup and there are lots of visitors, this can become very significant. This patch changes two aspects: - introduce a CTE for the RTC session part, in order to avoid a JOIN cardinality explosion between livechat channels and channel_members - we only care about channel membership for a RTC session AFAICT - restrict the selection of livechat channels created **within the last 24h**, considering that we only care about messages sent in the last 30 minutes anyway The second part may change the result ordering in the presence of old channels (>24h) with recent messages - but that is rather unlikely, and an operator will be selected anyway. This change makes a huge difference on a database with 300k livechat channels and 1 million `discuss_channel_member` records, from several seconds to >50ms. The results are identical or extremely similar in most cases, and the database only needs to look at a few hundred records instead of millions. Forward-Port-Of: odoo/odoo#150968
Addresses the pixelation of tag images by adjusting their size in the backend to 200x200. This change resolves the issue of images being resized from 50x50 to 60x20 in the frontend, which caused pixelation, ensuring improved image quality. task-3607604 Forward-Port-Of: odoo/odoo#144724
Original PR description
Addresses the pixelation of tag images by adjusting their size in the backend to 200x200. This change resolves the issue of images being resized from 50x50 to 60x20 in the frontend, which caused pixelation, ensuring improved image quality. task-3607604 Forward-Port-Of: odoo/odoo#144724
Before this commit: After commit f7147b36da0b3963e5bafb09cb585f130dcbfcf0 on changing partner gst treatment, it makes GST treatment on posted invoice False After this commit: It resolves the issue due to commit f7147b36da0b3963e5bafb09cb585f130dcbfcf0 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:
Original PR description
Before this commit: After commit f7147b36da0b3963e5bafb09cb585f130dcbfcf0 on changing partner gst treatment, it makes GST treatment on posted invoice False After this commit: It resolves the issue due to commit f7147b36da0b3963e5bafb09cb585f130dcbfcf0 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#152997
Restrict collaborator portals to: - Change unallowed fields on subtasks - Create/Update/Delete tags. They can only link, unlink tags to tasks. task-3698146 Forward-Port-Of: odoo/odoo#152992 Forward-Port-Of: odoo/odoo#152686
Original PR description
Restrict collaborator portals to: - Change unallowed fields on subtasks - Create/Update/Delete tags. They can only link, unlink tags to tasks. task-3698146 Forward-Port-Of: odoo/odoo#152992 Forward-Port-Of: odoo/odoo#152686
The border color of 'color' filter attribute on /shop page corresponds to the color od the body which makes it difficult for users to see the color they selected. task-3584558 Forward-Port-Of: odoo/odoo#141461
Original PR description
The border color of 'color' filter attribute on /shop page corresponds to the color od the body which makes it difficult for users to see the color they selected. task-3584558 Forward-Port-Of: odoo/odoo#141461
There are multiple types of Identification Numbers in Romania and if you invoice to a natural person, you are also required to send an electronic invoice. Thus, we will add a check to allow the two TIN numbers that needs to be correct. Example of valid tax number 'RO1234567897 or 'xyyzzaabbxxxx' or '9000xxxxxxxx'. -Tin1: For xyyzzaabbxxxx, 'x' can be any number, 'y' is the two last digit of a year (in the range 00…99), 'a' is a month, b is a day of the month, the number 8 and 9 are Co
Original PR description
There are multiple types of Identification Numbers in Romania and if you invoice to a natural person, you are also required to send an electronic invoice. Thus, we will add a check to allow the two…
There are multiple types of Identification Numbers in Romania and if you invoice to a natural person, you are also required to send an electronic invoice. Thus, we will add a check to allow the two TIN numbers that needs to be correct. Example of valid tax number 'RO1234567897 or 'xyyzzaabbxxxx' or '9000xxxxxxxx'. -Tin1: For xyyzzaabbxxxx, 'x' can be any number, 'y' is the two last digit of a year (in the range 00…99), 'a' is a month, b is a day of the month, the number 8 and 9 are Country or district code -Tin2: 9000xxxxxxxx, start with 9000 and then is filled by number (range 0 to 9) Also stdum also checks the CUI or CIF (Romanian company identifier). So a number like '123456897' will pass. This commit will remove some test that are not relevant anymore since we can't apply a vat number that don't follow the legal convention. task: 3716671 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152649
Steps to Reproduce =================== 1. Create an event (e.g. starting at 9:00 AM) 2. People arrive early and attempt to scan a badge at 7:30 AM --> An error occurs: "Not part of an ongoing event" Technical Reason ================= -> Before this commit we were considering both date and time due to this is_ongoing was set as false. -> So to support early entrance we removed the old condition and added a new condition. After this PR ================= It will let you scan b
Original PR description
Steps to Reproduce =================== 1. Create an event (e.g. starting at 9:00 AM) 2. People arrive early and attempt to scan a badge at 7:30 AM --> An error occurs: "Not part of an ongoing event" Technical Reason ================= -> Before this commit we were considering both date and time due to this is_ongoing was set as false. -> So to support early entrance we removed the old condition and added a new condition. After this PR ================= It will let you scan badges and verify attendees as long as the event is not finished. Task-3596660 X-original-commit: https://github.com/odoo-dev/enterprise/commit/3a2e4f123f1b3ff2eb1c444d14891eddd7e7ebac Forward-Port-Of: odoo/odoo#151703
You should be able to create analytic plans with analytic group. But currently, you need Access Right's group. We should put a sudo there. 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#151328
Original PR description
You should be able to create analytic plans with analytic group. But currently, you need Access Right's group. We should put a sudo there. 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#151328
[FIX] payment_mercado_pago: handle mercado pago no body responses Issue: When using a mercado pago invalid access token with extra tabs, we get 403 response from mercado pago without a body which raises and exception while handling this exception we fail to parse the response as it has no body. line causing the issue: https://github.com/odoo/odoo/blob/9764e6f7fe39a10f3b04e1764110d8c274d0431a/addons/payment_mercado_pago/models/payment_provider.py#L70 Steps to reproduce: 1- Enable mercado
Original PR description
[FIX] payment_mercado_pago: handle mercado pago no body responses Issue: When using a mercado pago invalid access token with extra tabs, we get 403 response from mercado pago without a body which…
[FIX] payment_mercado_pago: handle mercado pago no body responses Issue: When using a mercado pago invalid access token with extra tabs, we get 403 response from mercado pago without a body which raises and exception while handling this exception we fail to parse the response as it has no body. line causing the issue: https://github.com/odoo/odoo/blob/9764e6f7fe39a10f3b04e1764110d8c274d0431a/addons/payment_mercado_pago/models/payment_provider.py#L70 Steps to reproduce: 1- Enable mercado pago as a payment provider 2- Set a valid access token for mercado pago with extra tabs 3- Go to website 4- Fill the cart 5- Checkout with the cart using mercado pago 6- You see error message of unhandled json parsing error Solution: We should wrap parsing the response in a try statement to handle the responses without body opw-3654133 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#152858 Forward-Port-Of: odoo/odoo#152102
**Before this commit:** When creating a nested checklist within another checklist and subsequently changing the direction of the parent list, the direction of the parent element would reverse alongside the pseudo element. However, in the case of nested checklists, only the content's direction would change, while the pseudo element's direction remained unaffected. **Afte this commit:** When altering the direction of the parent checklist's content, both the content itself and the associat
Original PR description
**Before this commit:** When creating a nested checklist within another checklist and subsequently changing the direction of the parent list, the direction of the parent element would reverse alongside the pseudo element. However, in the case of nested checklists, only the content's direction would change, while the pseudo element's direction remained unaffected. **Afte this commit:** When altering the direction of the parent checklist's content, both the content itself and the associated pseudo element's direction is changed alongwith the nested checklist. **task-3461806** Forward-Port-Of: odoo/odoo#152486 Forward-Port-Of: odoo/odoo#131853
Avoid specific changes of l10n_in invoice report to affect other countries. OPW-2504287 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151408 Forward-Port-Of: odoo/odoo#151289
Original PR description
Avoid specific changes of l10n_in invoice report to affect other countries. OPW-2504287 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151408 Forward-Port-Of: odoo/odoo#151289
Before this commit, printing a receipt would result in an additional empty page being printed. This not only wasted paper but also caused issues. The problem was related to the notification element on the print page. By removing this element, the issue has been resolved. opw-3706233 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152731
Original PR description
Before this commit, printing a receipt would result in an additional empty page being printed. This not only wasted paper but also caused issues. The problem was related to the notification element on the print page. By removing this element, the issue has been resolved. opw-3706233 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152731
This change hides the price range by default. It can be activated via the website editor if needed. task-3235068 Forward-Port-Of: odoo/odoo#140277
Original PR description
This change hides the price range by default. It can be activated via the website editor if needed. task-3235068 Forward-Port-Of: odoo/odoo#140277
Steps to reproduce ================== 1. Go to the slides website. 2. Open any course. 3. Click on 'add a review' or 'edit review'. 4. Attach any files. -> Files appear misaligned. After this PR ================= They will be perfectly aligned. Task-3624281 Forward-Port-Of: odoo/odoo#152443
Original PR description
Steps to reproduce ================== 1. Go to the slides website. 2. Open any course. 3. Click on 'add a review' or 'edit review'. 4. Attach any files. -> Files appear misaligned. After this PR ================= They will be perfectly aligned. Task-3624281 Forward-Port-Of: odoo/odoo#152443
The total amount is computed by adding the order amount and the delivery amount. The order amount was provided as a string, and the computation didn't convert it to a number before adding it to the delivery amount. As a result, the amounts were concatenated instead of added, yielding an incorrect result. opw-3614909 opw-3664682 Forward-Port-Of: odoo/odoo#152416
Original PR description
The total amount is computed by adding the order amount and the delivery amount. The order amount was provided as a string, and the computation didn't convert it to a number before adding it to the delivery amount. As a result, the amounts were concatenated instead of added, yielding an incorrect result. opw-3614909 opw-3664682 Forward-Port-Of: odoo/odoo#152416
The express checkout button is handled by Stripe, so we have no control over it. Upon inspecting Stripe's code, it looks like the button simply fills the available width. The button just above Stripe's button ("Sign In"/"Process Checkout") sets the available width, so if it's narrower, Stripe's button gets truncated. This PR sets a minimum width on the container around Stripe's button. This seems to work for different screen sizes and locales. The problem with this fix is that it could break
Original PR description
The express checkout button is handled by Stripe, so we have no control over it. Upon inspecting Stripe's code, it looks like the button simply fills the available width. The button just above Stripe's button ("Sign In"/"Process Checkout") sets the available width, so if it's narrower, Stripe's button gets truncated.
This PR sets a minimum width on the container around Stripe's button. This seems to work for different screen sizes and locales. The problem with this fix is that it could break if Stripe's button content gets wider. Unfortunately, since the button is displayed in an iframe, there's no better fix AFAIK.
opw-3430099
Forward-Port-Of: odoo/odoo#152244The iot build fails following the installation of the new linux-image-6.1.0-rpi8-* packages The base image is recent enough to skip the upgrade during the build The "apt upgrade" command is therefore removed from the build 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#152828
Original PR description
The iot build fails following the installation of the new linux-image-6.1.0-rpi8-* packages The base image is recent enough to skip the upgrade during the build The "apt upgrade" command is therefore removed from the build 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#152828
When filtering column had too much attributes, scrollbar would appear. Scrollbar was deleted but ability to scroll is left. task-3609062 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152769 Forward-Port-Of: odoo/odoo#145934
Original PR description
When filtering column had too much attributes, scrollbar would appear. Scrollbar was deleted but ability to scroll is left. task-3609062 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152769 Forward-Port-Of: odoo/odoo#145934
When user gives wrong domain in any account report of report line and tries to access the same report similar error is generated. Steps to Produce: - Install 'Accounting' - Go to Accounting > Configuration > Accounting Reports - Open any account report and click on add a line - Now add a line in the report line - Create an expression select 'Computation Engine' as Odoo Domain. - In Formula add this domain [('code', '!=like', '620.%')] - And add Sub-Formula as 'sum' - Save the expressi
Original PR description
When user gives wrong domain in any account report of report line and tries to access the same report similar error is generated. Steps to Produce: - Install 'Accounting' - Go to Accounting >…
When user gives wrong domain in any account report of report line and tries to access the same report similar error is generated.
Steps to Produce:
- Install 'Accounting'
- Go to Accounting > Configuration > Accounting Reports
- Open any account report and click on add a line
- Now add a line in the report line
- Create an expression select 'Computation Engine' as Odoo Domain.
- In Formula add this domain [('code', '!=like', '620.%')]
- And add Sub-Formula as 'sum'
- Save the expression and also the report
- Go to Reporting and select the above report
Traceback will be generated
See similar traceback:-
```
ValueError: Invalid leaf ('code', '!=like', '620.%')
File "odoo/http.py", line 2123, in __call__
response = request._serve_db()
File "odoo/http.py", line 1699, 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 1726, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1927, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 190, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 716, 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 "home/odoo/src/enterprise/saas-16.3/account_reports/models/account_report.py", line 3713, in get_report_information
all_column_groups_expression_totals = self._compute_expression_totals_for_each_column_group(self.line_ids.expression_ids, options)
File "home/odoo/src/enterprise/saas-16.3/account_reports/models/account_report.py", line 2138, in _compute_expression_totals_for_each_column_group
current_group_expression_totals = self._compute_expression_totals_for_single_column_group(
File "home/odoo/src/enterprise/saas-16.3/account_reports/models/account_report.py", line 2266, in _compute_expression_totals_for_single_column_group
formula_results = self._compute_formula_batch(column_group_options, engine, date_scope, formulas_dict, current_groupby, next_groupby, offset=offset, limit=limit)
File "home/odoo/src/enterprise/saas-16.3/account_reports/models/account_report.py", line 2546, in _compute_formula_batch
return getattr(self, engine_function_name)(
File "home/odoo/src/enterprise/saas-16.3/account_reports/models/account_report.py", line 2662, in _compute_formula_batch_with_engine_domain
tables, where_clause, where_params = self._query_get(options, date_scope, domain=line_domain)
File "home/odoo/src/enterprise/saas-16.3/account_reports/models/account_analytic_report.py", line 173, in _query_get
tables, where_clause, where_params = super(AccountReport, context_self)._query_get(options, date_scope, domain)
File "home/odoo/src/enterprise/saas-16.3/account_reports/models/account_report.py", line 1469, in _query_get
query = self.env['account.move.line']._where_calc(domain)
File "home/odoo/src/enterprise/saas-16.3/account_reports/models/account_analytic_report.py", line 259, in _where_calc
query = super()._where_calc(domain, active_test)
File "odoo/models.py", line 4695, in _where_calc
return expression.expression(domain, self).query
File "odoo/osv/expression.py", line 777, in __init__
self.parse()
File "odoo/osv/expression.py", line 1083, in parse
push(leaf, comodel, coalias)
File "odoo/osv/expression.py", line 931, in push
check_leaf(leaf, internal)
File "odoo/osv/expression.py", line 726, in check_leaf
raise ValueError("Invalid leaf %s" % str(element))
```
ValueError: Invalid leaf ('code', '!=like', '620.%')
When user applies invalid values in domain or invalid domain format it leads to the traceback because of this line:
https://github.com/odoo/enterprise/blob/16.0/account_reports/models/account_report.py#L1510
sentry-4358342635,4909338331
Forward-Port-Of: odoo/odoo#151744
Forward-Port-Of: odoo/odoo#130981The generated facturae files do not pass the FACe platform checks. The platform itself didn't give us any useful information. A feedback from the Spanish government said though: > We detected inconsistencies with the field `<ds:DigestValue>` from the tag `<xades: SignaturePolicyIdentifier>` Although not explicitly mentioned, we should apparently use SHA1 for the digest value of the Signature Policy instead of SHA256. opw-3673349 opw-3716276 --- I confirm I have signed the CLA and rea
Original PR description
The generated facturae files do not pass the FACe platform checks. The platform itself didn't give us any useful information. A feedback from the Spanish government said though: > We detected inconsistencies with the field `<ds:DigestValue>` from the tag `<xades: SignaturePolicyIdentifier>` Although not explicitly mentioned, we should apparently use SHA1 for the digest value of the Signature Policy instead of SHA256. opw-3673349 opw-3716276 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152309
**Current behavior:** Creating an additional company then creating an attendance kiosk link for it will not display this company's logo. --- **Expected behavior:** The kiosk page displays the logo for whichever company is actively selected when the link is generated --- **Steps to reproduce:** 1. Create a second company, set the logo to anything besides the default/fallback image 2. In the HR Attendance application settings, generate a kiosk link then paste & go in an incognito
Original PR description
**Current behavior:** Creating an additional company then creating an attendance kiosk link for it will not display this company's logo. --- **Expected behavior:** The kiosk page displays the logo…
**Current behavior:** Creating an additional company then creating an attendance kiosk link for it will not display this company's logo. --- **Expected behavior:** The kiosk page displays the logo for whichever company is actively selected when the link is generated --- **Steps to reproduce:** 1. Create a second company, set the logo to anything besides the default/fallback image 2. In the HR Attendance application settings, generate a kiosk link then paste & go in an incognito window 3. Observe the logo image displayed above the bar code is the default/fallback image --- **Cause of the issue:** The route being used to get the company's logo does not work for companies which are not the first/default one generated with the database. An accessibility check fails due to some information about the user's access rights not being available with the request. --- **Fix:** Use an alternative route which can properly access the logo image file of the company that is active when the kiosk link is generated. --- opw-3672577 Forward-Port-Of: odoo/odoo#150628
Before this commit, the date was being considered in UTC instead of the time zone of the current user. This is problematic in LATAM, where the time zone is negative. Forward-Port-Of: odoo/odoo#150956 Forward-Port-Of: odoo/odoo#149971
Original PR description
Before this commit, the date was being considered in UTC instead of the time zone of the current user. This is problematic in LATAM, where the time zone is negative. Forward-Port-Of: odoo/odoo#150956 Forward-Port-Of: odoo/odoo#149971
Commit [1] moved (almost all of) the code of formatFloat from views/fields/formatters.js to core/utils/numbers, to make it accessible in the frontend. A formatFloat function was kept in formatters.js to handle the false case, which makes no sense in number utils, but is useful for fields. However, a lot of imports have been updated to use the numbers.js instead of formatters.js (i.e. they no longer benefit from the support of false), whereas they are actually formatting field values, so they sho
Original PR description
Commit [1] moved (almost all of) the code of formatFloat from views/fields/formatters.js to core/utils/numbers, to make it accessible in the frontend. A formatFloat function was kept in formatters.js…
Commit [1] moved (almost all of) the code of formatFloat from views/fields/formatters.js to core/utils/numbers, to make it accessible in the frontend. A formatFloat function was kept in formatters.js to handle the false case, which makes no sense in number utils, but is useful for fields. However, a lot of imports have been updated to use the numbers.js instead of formatters.js (i.e. they no longer benefit from the support of false), whereas they are actually formatting field values, so they should have kept using the formatFloat from formatters.js This commit adapts the places where the formatFloat to use must come from formatters.js, not numbers.js. [1] https://github.com/odoo/odoo/commit/054ca0a19aaf297f420a1b478b93ae26f1b943b8 task 3722043 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#152810
Before this PR, users were unable to successfully revert the 'done' status of slides. Technical Reason: In this commit https://github.com/odoo/odoo/commit/f956e83c744bd9c970d3f16ce1cb3cff8bba2f6b, the transition from qweb.render to the Owl render engine (renderToElement) was done. This caused a problem when trying to undo the 'done' status of slides. The issue was that using 'true' as a boolean in Owl turned it into an empty string. This fix solves the problem by making sure we use '0' or '1
Original PR description
Before this PR, users were unable to successfully revert the 'done' status of slides. Technical Reason: In this commit https://github.com/odoo/odoo/commit/f956e83c744bd9c970d3f16ce1cb3cff8bba2f6b, the transition from qweb.render to the Owl render engine (renderToElement) was done. This caused a problem when trying to undo the 'done' status of slides. The issue was that using 'true' as a boolean in Owl turned it into an empty string. This fix solves the problem by making sure we use '0' or '1' as boolean values in Owl. After this PR, user can revert slides 'done' status. **Task**-3667904 Forward-Port-Of: odoo/odoo#151006
Current behavior: --- If a customer has no email set, creating an invoice for that customer and clicking on send and print will not generate a snailmail for the invoice, even if, the checkbox (checkbox_send_by_post) is True. Expected behavior: --- A snailmail should be sent to the customer. Steps to reproduce: --- Create a customer invoice for a customer without email > print and send > check "By Post" > send and print. Cause of the issue: --- The action action_send_and_print
Original PR description
Current behavior: --- If a customer has no email set, creating an invoice for that customer and clicking on send and print will not generate a snailmail for the invoice, even if, the checkbox…
Current behavior: --- If a customer has no email set, creating an invoice for that customer and clicking on send and print will not generate a snailmail for the invoice, even if, the checkbox (checkbox_send_by_post) is True. Expected behavior: --- A snailmail should be sent to the customer. Steps to reproduce: --- Create a customer invoice for a customer without email > print and send > check "By Post" > send and print. Cause of the issue: --- The action action_send_and_print defined in account_move_send.py filters the moves that trigger a mail creation in the var "success". This variable filters out all moves without a partner_id.email. This makes perfect sense for emails but not for snailmails. However, creations of both types of mails are triggered by the method "_hook_if_success" taking "success" as one of its argument. Fix: --- To allow snailmail creations and correctly trigger email creation, we filter the moves with a partner email after the method "_hook_if_success" and only for email creation, not for snailmails. opw-3668487 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152506 Forward-Port-Of: odoo/odoo#149553
The compatibility was broken in a couple of points, clients are required to update the `l10n_it_edi` or cannot send invoices to the Italian EDI. Updating the module fixes the errors. (View changes and the warning_message will not be used anymore) These two errors may appear: ``` [...] File "/home/odoo/work/odoo/odoo/fields.py", line 1216, in __get__ raise ValueError(f"Compute method failed to assign {missing_recs}.{self.name}") ValueError: Compute method failed to assign account.
Original PR description
The compatibility was broken in a couple of points, clients are required to update the `l10n_it_edi` or cannot send invoices to the Italian EDI. Updating the module fixes the errors. (View changes…
The compatibility was broken in a couple of points, clients are required to update the `l10n_it_edi` or cannot send invoices to the Italian EDI. Updating the module fixes the errors. (View changes and the warning_message will not be used anymore)
These two errors may appear:
```
[...]
File "/home/odoo/work/odoo/odoo/fields.py", line 1216, in __get__
raise ValueError(f"Compute method failed to assign {missing_recs}.{self.name}")
ValueError: Compute method failed to assign account.move.send(<NewId 0x7ff2da360eb0>,).l10n_it_edi_warning_message
[...]
File "/home/odoo/work/odoo/addons/l10n_it_edi/wizard/account_move_send.py", line 57, in _compute_l10n_it_edi_warning_message
action = error_data['action']
~~~~~~~~~~^^^^^^^^^^
KeyError: 'action'
```
Credit goes to @salvorapi for his first analysis.
Original broken PR: odoo/odoo#142596
- Missing default

- Action being mandatory in the `warning_message` field

Forward-Port-Of: odoo/odoo#152824The table linked to analytic items can be pretty huge, and searching by account needs to be fast. For instance, this index can be used when deleting an account because of the foreign keys. Forward-Port-Of: odoo/odoo#151366
Original PR description
The table linked to analytic items can be pretty huge, and searching by account needs to be fast. For instance, this index can be used when deleting an account because of the foreign keys. Forward-Port-Of: odoo/odoo#151366
On a big database, the search for journal entries is basically not usable. This is because there is a missing index on the reference, as well as a complex OR generated by the clause `('move_id.partner_id', 'ilike', self)`. This commit will of course add the index, but will also remove the clause because it is almost always possible to find the journal entry via the partner by using the right filter instead, and since it is not really an easy to discover "feature" it is most likely not even u
Original PR description
On a big database, the search for journal entries is basically not usable.
This is because there is a missing index on the reference, as well as a complex OR generated by the clause `('move_id.partner_id', 'ilike', self)`.
This commit will of course add the index, but will also remove the clause because it is almost always possible to find the journal entry via the partner by using the right filter instead, and since it is not really an easy to discover "feature" it is most likely not even used.
On the test database, queries went from over 2 minutes to less than 1 second.
Forward-Port-Of: odoo/odoo#151222The cumulated balance has been removed from the standard view [^1] Since then it has been broken by a series of refactors of the ORM, making it impossible to add the field back to the view. [^2] This commit is fixing this, keeping the field hidden by default, but can still be added via Studio or other means. [task-3703749](https://www.odoo.com/web#id=3703749&model=project.task) [^1]: https://github.com/odoo/odoo/commit/652292a4788f6aca978ed97682577024ba53d7d0 [^2]: https://github.com/
Original PR description
The cumulated balance has been removed from the standard view [^1] Since then it has been broken by a series of refactors of the ORM, making it impossible to add the field back to the view. [^2] This commit is fixing this, keeping the field hidden by default, but can still be added via Studio or other means. [task-3703749](https://www.odoo.com/web#id=3703749&model=project.task) [^1]: https://github.com/odoo/odoo/commit/652292a4788f6aca978ed97682577024ba53d7d0 [^2]: https://github.com/odoo/odoo/commit/7d2baaa0c726a7b0dd4fe7226862f960c9c59b73 https://github.com/odoo/odoo/commit/2a121a32a2c7a20163daba94ca7b621a6877a23e Forward-Port-Of: odoo/odoo#151208
This shouldn't change anything regarding SEO, but is worth a try. It will also impact the link suggestion when creating a link in the editor, but having pages listed first also have sense there, or at least it won't be worst. The idea for the SEO part is that if the sitemap order (if too long) would have some impact as crawlers might have a limited crawling budget for your website and it will only crawl the first pages it finds. Are those "first pages" impacted by the sitemap order? It'
Original PR description
This shouldn't change anything regarding SEO, but is worth a try. It will also impact the link suggestion when creating a link in the editor, but having pages listed first also have sense there, or…
This shouldn't change anything regarding SEO, but is worth a try. It will also impact the link suggestion when creating a link in the editor, but having pages listed first also have sense there, or at least it won't be worst. The idea for the SEO part is that if the sitemap order (if too long) would have some impact as crawlers might have a limited crawling budget for your website and it will only crawl the first pages it finds. Are those "first pages" impacted by the sitemap order? It's almost sure it's not, as Google definitely knows how to crawl on its own, and is even probably ignoring the sitemap most of the time. Also, pages: - Are probably always important content since you created manually a page to write something, while (some) controllers might just be content you care less about. Pages are probably always important while we can't say that for controllers. - Should be fewer in number than controllers most of the time - Have a lastmod set, as opposed to controllers For all those reasons, this commit reverse the pages vs controllers order in the sitemap. This is coming from our prod where some pages are yet not indexed while they have been published months ago. Forward-Port-Of: odoo/odoo#152350
**Issue Description**: Users encounter a misleading confirmation page when a payment is canceled or fails in version 17.0 and higher of our website. Specifically, upon a payment error, users are directed to /payment/status with an error message. However, selecting the "Skip" button redirects them to a confirmation page titled "Thank you for your order", suggesting successful payment. This misleading information can lead to confusion, especially since it results in the card being cleared for pub
Original PR description
**Issue Description**: Users encounter a misleading confirmation page when a payment is canceled or fails in version 17.0 and higher of our website. Specifically, upon a payment error, users are…
**Issue Description**: Users encounter a misleading confirmation page when a payment is canceled or fails in version 17.0 and higher of our website. Specifically, upon a payment error, users are directed to /payment/status with an error message. However, selecting the "Skip" button redirects them to a confirmation page titled "Thank you for your order", suggesting successful payment. This misleading information can lead to confusion, especially since it results in the card being cleared for public users despite non-receipt of payment. **Steps to Reproduce**: 1. Navigate to the 'Shop' section of the website, add a product to the cart, and proceed to checkout. 2. Click the "Pay with demo". 3. Select "Canceled" as the Payment Status and then "Pay". 3. Click the "Skip" button during the payment process. 4. Observe redirection to a confirmation page with the title "Thank you for your order", implying successful transaction. **Proposed Solution**: This issue, present in versions 17.0 and later, is due to a modification in the <template id="confirmation">, where the "Thank you for your order" title is now displayed regardless of the payment state. To resolve this, we propose introducing a conditional check to display this title only when the payment state is "done", ensuring accurate representation of the transaction status. opw-3688785 Forward-Port-Of: odoo/odoo#151304
Steps to reproduce the bug: - Enter edit mode. - Click on the "Theme" tab in the options panel. - Click on "Add a Google Font" in the "Font Family" select. - Paste the address of a font page in the input. - Disable the "Serve font from Google servers" toggle. - Save the dialog. - After the reload, click on the "Theme" tab. - Open the "Font Family" select. - Click on the "Remove" button for the recently added font. - Confirm your choice to close the dialog. - After the reload, click
Original PR description
Steps to reproduce the bug: - Enter edit mode. - Click on the "Theme" tab in the options panel. - Click on "Add a Google Font" in the "Font Family" select. - Paste the address of a font page in the…
Steps to reproduce the bug: - Enter edit mode. - Click on the "Theme" tab in the options panel. - Click on "Add a Google Font" in the "Font Family" select. - Paste the address of a font page in the input. - Disable the "Serve font from Google servers" toggle. - Save the dialog. - After the reload, click on the "Theme" tab. - Open the "Font Family" select. - Click on the "Remove" button for the recently added font. - Confirm your choice to close the dialog. - After the reload, click on the "Theme" tab. - Open the "Font Family" select. - Bug: the font has not been removed. This bug appeared with commit [1]. With the transition to the Owl render engine, the 'true' value passed as a parameter in the 'delete_google_font_btn' template, defining whether a font is local, wasn't being set as the attribute value in the template. In this Owl context, 'true' indicates the attribute's presence, not its value. To address this, we replaced the boolean 'true' with the string '"true"' to ensure the parameter value is correctly passed to the template. [1]: https://github.com/odoo/odoo/commit/f956e83c744bd9c970d3f16ce1cb3cff8bba2f6b task-3714768 Forward-Port-Of: odoo/odoo#152715
Now the user can scan the QR code on e-invoiced vendor bills, which allows user the following functionalities: -create a new vendor bill and also will create the partner if not found with help of the data received from qr code and partner autocomplete Functional Steps: - install l10n_in_qr_code_bill_scan - Go to Account app > Vendors > Bills - Go to tree/kanban view - Click on Scan button - Scan E-invoice QR Code task-3626437 Forward-Port-Of: odoo/enterprise#54899
Original PR description
Now the user can scan the QR code on e-invoiced vendor bills, which allows user the following functionalities: -create a new vendor bill and also will create the partner if not found with help of the data received from qr code and partner autocomplete Functional Steps: - install l10n_in_qr_code_bill_scan - Go to Account app > Vendors > Bills - Go to tree/kanban view - Click on Scan button - Scan E-invoice QR Code task-3626437 Forward-Port-Of: odoo/enterprise#54899
runbot ticket: 56443 Forward-Port-Of: odoo/enterprise#55720 Forward-Port-Of: odoo/enterprise#55406
Original PR description
runbot ticket: 56443 Forward-Port-Of: odoo/enterprise#55720 Forward-Port-Of: odoo/enterprise#55406
For whatever reason, groupby didn't do its job. Anyway, it is more readable to groupby using a dict i/o itertools.groupby. task-3582248 Forward-Port-Of: odoo/enterprise#50159
Original PR description
For whatever reason, groupby didn't do its job. Anyway, it is more readable to groupby using a dict i/o itertools.groupby. task-3582248 Forward-Port-Of: odoo/enterprise#50159
### Steps to reproduce - Install **Payroll** app - Create two companies each belonging to different countries, for example: - Company A in US - Company B in AE - In **Company A**, create a salary structure with a salary rule that belong to Company A -US- - Using **Company A**, In the payroll app, Go to > **Reporting** > **Payroll** and click on the **MEASURES** dropdown button, U can see the newly created salary rule. Try clicking on it. Everything works fine. - Now switch to **Company
Original PR description
### Steps to reproduce - Install **Payroll** app - Create two companies each belonging to different countries, for example: - Company A in US - Company B in AE - In **Company A**, create a salary…
### Steps to reproduce - Install **Payroll** app - Create two companies each belonging to different countries, for example: - Company A in US - Company B in AE - In **Company A**, create a salary structure with a salary rule that belong to Company A -US- - Using **Company A**, In the payroll app, Go to > **Reporting** > **Payroll** and click on the **MEASURES** dropdown button, U can see the newly created salary rule. Try clicking on it. Everything works fine. - Now switch to **Company B**, create a salary structure with a salary rule that belong to **Company B** -AE- - Using **Company B**, In the payroll app, Go to > **Reporting** > **Payroll** and click on the MEASURES dropdown button, U can see the newly created salary rule. Try clicking on it. a DB error occurs. ### Investigation - When we create a new salary rule, we `_generate_payroll_report_fields()` https://github.com/odoo/enterprise/blob/b9adb690d7fd38c66a787377967a856b9678ffd1/hr_payroll/models/hr_salary_rule.py#L195 - Which `init()` the payroll report, creating a new DB view. However only the current company rules are fetched removing the other companies rules from the view as the old one is dropped https://github.com/odoo/enterprise/blob/b9adb690d7fd38c66a787377967a856b9678ffd1/hr_payroll/report/hr_payroll_report.py#L145 ### Discuss I think a better approach would be to construct a new view each time you open the payroll report, meaning to `init()` the report each time we go into https://github.com/odoo/enterprise/blob/b9adb690d7fd38c66a787377967a856b9678ffd1/hr_payroll/report/hr_payroll_report.py#L157-L165 but I think it's not a good idea to drop a view and create another each time also! opw-3675598 Forward-Port-Of: odoo/enterprise#55759 Forward-Port-Of: odoo/enterprise#55606
It generates a lot of urls that will return 403 since it is restricted by country. Forward-Port-Of: odoo/enterprise#55928
Original PR description
It generates a lot of urls that will return 403 since it is restricted by country. Forward-Port-Of: odoo/enterprise#55928
The cards in the ecological report weren't translated due to the strings being defined in t-values. This is switched so that they will now be correctly exported to the .pot file + translated. Additionally cleaned up some of the incorrect English for a better UX. More terms could be improved/fixed as well, but they do not affect the users as much + are already translated so changing them was avoided in stable. - Carbon => "carbon emissions": this or CO_2 are used when referring to re
Original PR description
The cards in the ecological report weren't translated due to the strings being defined in t-values. This is switched so that they will now be correctly exported to the .pot file + translated.…
The cards in the ecological report weren't translated due to the strings being defined in t-values. This is switched so that they will now be correctly exported to the .pot file + translated.
Additionally cleaned up some of the incorrect English for a better UX. More terms could be improved/fixed as well, but they do not affect the users as much + are already translated so changing them was avoided in stable.
- Carbon => "carbon emissions": this or CO_2 are used when referring
to reducing pollution due to burning fuel. "carbon" on its own implies
the element, whereas adding "emissions" to the end of it implies CO_2
(emissions), because English ¯\_(ツ)_/¯
- sparred => saved/reduced: sparred is both spelled wrong (i.e. should be spared) and incorrect to use in this case
- like => that's: "like" doesn't make sense to use in this case and is confusing to read. "That's" indicates how much the user is saving/reducing/etc. "Approximately" or "about" also would have worked, but are less friendly sounding
Forward-Port-Of: odoo/enterprise#55894
Forward-Port-Of: odoo/enterprise#54685Commit [1] moved (almost all of) the code of formatFloat from views/fields/formatters.js to core/utils/numbers, to make it accessible in the frontend. A formatFloat function was kept in formatters.js to handle the false case, which makes no sense in number utils, but is useful for fields. However, a lot of imports have been updated to use the numbers.js instead of formatters.js (i.e. they no longer benefit from the support of false), whereas they are actually formatting field values, so they sho
Original PR description
Commit [1] moved (almost all of) the code of formatFloat from views/fields/formatters.js to core/utils/numbers, to make it accessible in the frontend. A formatFloat function was kept in formatters.js to handle the false case, which makes no sense in number utils, but is useful for fields. However, a lot of imports have been updated to use the numbers.js instead of formatters.js (i.e. they no longer benefit from the support of false), whereas they are actually formatting field values, so they should have kept using the formatFloat from formatters.js This commit adapts the places where the formatFloat to use must come from formatters.js, not numbers.js. [1] https://github.com/odoo/odoo/commit/054ca0a19aaf297f420a1b478b93ae26f1b943b8 task 3722043 Forward-Port-Of: odoo/enterprise#55919
Steps to reproduce: ------------------- - install hr_payroll and hr_holidays; - create an employee; - create a contract for this employee (since 1st January for example); - create and approve a sick time off for this employee (for a day in January); - create a payslip for this employee (the payslip has two "worked days"); - confirm the payslip; - go to Reporting / Payroll and group by employee; - click on the employee's line to display the list view. Issue: ------ There are two rec
Original PR description
Steps to reproduce: ------------------- - install hr_payroll and hr_holidays; - create an employee; - create a contract for this employee (since 1st January for example); - create and approve a sick…
Steps to reproduce:
-------------------
- install hr_payroll and hr_holidays;
- create an employee;
- create a contract for this employee (since 1st January for example);
- create and approve a sick time off for this employee (for a day in January);
- create a payslip for this employee (the payslip has two "worked days");
- confirm the payslip;
- go to Reporting / Payroll and group by employee;
- click on the employee's line to display the list view.
Issue:
------
There are two records.
This can be explained by saying that this is a record by worked days type. However, if we click on it, we see that the detail is the same for both records.
Cause:
------
The query which generates the virtual table `hr_payroll_report` will give as `id`, the value of the `id` which corresponds to the payslip.
```sql
SELECT
p.id as id,
wd.id as wdid,
wd.name
FROM
(SELECT * FROM hr_payslip WHERE state IN ('done', 'paid')) p
left join hr_payslip_worked_days wd on (wd.payslip_id = p.id)
```
The result of this query will be two records:
```
id | wdid | name
----+------+------------
1 | 2 | Unpaid
1 | 3 | Attendance
```
When we want to obtain the details of the record, we will perform a read on the `hr.payroll.report` model for an `id` equal to 1 for both records, i.e. we will retrieve the same values.
Solution:
---------
Forcing the id to be unique.
Add a field indicating the type to avoid confusion.
Note:
In the list view, it is possible to group by "Payslip Name" to avoid confusion.
Note 2:
It is a band-aid fix that helps us understand what is going on in the report, but it needs to be redesigned to redirect us directly to payslip records and not records corresponding to worked days (and avoid aggregation problems).
opw-3686692
Forward-Port-Of: odoo/enterprise#55882
Forward-Port-Of: odoo/enterprise#55629Before this commit: - The `documents_tour` progresses as desired but is stuck during the final few steps. - The `documents_account_tour` has the same issue but additionally has a misplaced prompt to select the first image `mail.png` having the `inbox` tag. - The `o_FileViewer` class is incorrect. Issue: - The classes inside the trigger are missing/incorrect. - After we process the initial set of pages, the prompt to select the last remaining page is missing. After this commit: - Rect
Original PR description
Before this commit: - The `documents_tour` progresses as desired but is stuck during the final few steps. - The `documents_account_tour` has the same issue but additionally has a misplaced prompt to select the first image `mail.png` having the `inbox` tag. - The `o_FileViewer` class is incorrect. Issue: - The classes inside the trigger are missing/incorrect. - After we process the initial set of pages, the prompt to select the last remaining page is missing. After this commit: - Rectified the classes and added an extra step to select the remaining page and then process the tour. - Updated the `o_FileViewer` to `o-FileViewer`. task-3537521 Forward-Port-Of: odoo/enterprise#54935 Forward-Port-Of: odoo/enterprise#49027
As seen in the nightly build https://runbot.odoo.com/runbot/build/57728091 There is an issue with the demo data where a hr employee record is trying to be set in a res.partner field. Also, one test is setting accounting stuff while this module isn't dependent on any account modules. Forward-Port-Of: odoo/enterprise#55932
Original PR description
As seen in the nightly build https://runbot.odoo.com/runbot/build/57728091 There is an issue with the demo data where a hr employee record is trying to be set in a res.partner field. Also, one test is setting accounting stuff while this module isn't dependent on any account modules. Forward-Port-Of: odoo/enterprise#55932