Thursday, June 9, 2022
25 changes · master
New functionality added to Odoo
Recruiters can now record and use skills on applicant profiles, making it easier to match candidates to open roles. The update also adds a way to search reserve applicants by skills, degree, tags, and availability, then move suitable candidates into the recruitment pipeline.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
A new automated test verifies that the website handles malformed IPv6-style URLs correctly. This helps prevent regressions in language URL handling and supports more reliable website navigation.
Original PR description
This is a unit test to cover the fix in revision bfdd54e815334dbfd0f65ec6559a711b4973a6eb
Resolved issues and error corrections
This update adjusts the master branch release version so only the minor version increases before the next major release. This reduces confusion for teams preparing upgrade scripts and keeps the release process clearer and more flexible.
Original PR description
Even though the release process changed a bit, it seems that only the MINOR version number should be incremented in the master branch until the next major release. This avoid confusion when writing upgrade scripts, it should work in any case and it leaves more room from process improvement.
Miscellaneous changes
In 64ce5b642 the usage of imagelib was changed to match the one of general fetchmail so the flag sent to IMAP server was (\Seen) and not \Seen which is often accepted but not always. From recent reports, it seems that the method `uid` and `store` may have some difference (base on using message-id rather than UID) so this commit is reverting 64ce5b642 and using the parenthesis around the flag explicitely. opw-2853609 Forward-Port-Of: odoo/odoo#93140
Original PR description
In 64ce5b642 the usage of imagelib was changed to match the one of general fetchmail so the flag sent to IMAP server was (\Seen) and not \Seen which is often accepted but not always. From recent reports, it seems that the method `uid` and `store` may have some difference (base on using message-id rather than UID) so this commit is reverting 64ce5b642 and using the parenthesis around the flag explicitely. opw-2853609 Forward-Port-Of: odoo/odoo#93140
Users can now filter account moves by product, making it easier to find invoices or journal entries tied to specific products. This improves day-to-day accounting searches where product details on move lines are frequently needed.
Original PR description
**Description of the issue/feature this PR addresses:** Searching for the product field of account move lines is something expected to be used frequently. **Current behavior before PR:** Cannot be searched by product in account moves. **Desired behavior after PR is merged:** A search by product can be done in account moves. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Attendance app’s check-in and check-out interface has been visually refreshed and simplified. This improves the employee experience with clearer, more consistent styling while supporting Odoo’s broader interface modernization work.
Original PR description
Part of the overall v16 SCSS optimization/restyle, task-2704984. task-2852148 enterprise: - https://github.com/odoo/enterprise/pull/27333 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Guided tour actions now use the browser's standard event system instead of an older jQuery-only approach. This helps tours interact correctly with newer interface components, improving reliability as the web client continues to modernize.
Original PR description
Previously, the tour action helpers were using jQuery's trigger method. One limitation of that, is that it only calls event listeners that were registered with jQuery itself (see https://learn.jquery.com/events/triggering-event-handlers/) This used to be fine as most of our event listeners used to be added through jQuery. Considering we are now writing more and more parts of the interface in owl, which uses native event listeners, this solution is no longer sufficient. This commit converts all calls to jQuery's trigger method to use HTMLElement.dispatchEvent instead.
Recruitment teams can now choose to display a candidate's CV directly on the application form. This makes it easier for users reviewing applications to see key applicant documents without extra navigation, improving hiring workflow efficiency.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The mobile attendance interface was aligned with recent layout updates made in the main Odoo system. This keeps the employee check-in experience consistent across versions and supports the broader visual refresh for Odoo 16.
Original PR description
Mirror layout changes in community, https://github.com/odoo/odoo/pull/91364. Part of the overall v16 SCSS optimization/restyle, task-2704984. task-2852148 requires: - https://github.com/odoo/odoo/pull/91364.
This fixes an issue where extra controls in inventory and manufacturing reports could disappear or fail to appear after the page was rendered. Users will see the expected buttons and search options consistently in the bill of materials and stock traceability reports.
Original PR description
Since 362f6b6d5bc45b4361414334ad8ea662868d81a6, the control panel of an action can be rendered only the first time the dom is built. Any further rerenders won't do anything. The bom report needs to add some buttons and a searchView. Previously, those widgets was added in the set_html _after_ the first rendering of the controlPanel. This report is an extend of the stock traceability which also adds some buttons. In this case the buttons are rendered correctly because they are added _before_ the controlPanel rendering. This commit makes the extra widgets to be rendered in the control panel generated in a new specific method overridable in the bom report file 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
A Web Studio automated test was updated to match a routing change introduced in the core Odoo platform. This helps keep internal quality checks reliable and reduces the risk of delays caused by false test failures.
Original PR description
Problem: When running the test `drag & drop block "Image"` with the changes of [1], the route used in the mockRPC was not matched [1]: https://github.com/odoo/odoo/pull/82612 Solution: Change the route of the mockRPC opw-2648770 task-2811325
This fixes an issue where completed signed PDFs could fail to generate when electronic invoicing features were installed. It makes the signing workflow more reliable for users completing documents, reducing interruptions during document finalization.
Original PR description
Before this commit, the PDF rendering would crash with the following traceback due to a change of API. It would only appear when account_edi was installed. ``` File…
Before this commit, the PDF rendering would crash with the following traceback due to a change of API.
It would only appear when account_edi was installed.
```
File "/home/dbo/src/enterprise/sign/models/sign_request.py", line 834, in _edit_and_sign
self._sign(signature)
File "/home/dbo/src/enterprise/sign/models/sign_request.py", line 863, in _sign
sign_request._sign()
File "/home/dbo/src/enterprise/sign/models/sign_request.py", line 365, in _sign
self._send_completed_document()
File "/home/dbo/src/enterprise/sign/models/sign_request.py", line 395, in _send_completed_document
self._generate_completed_document()
File "/home/dbo/src/enterprise/sign/models/sign_request.py", line 588, in _generate_completed_document
pdf_content, __ = report_action.with_user(public_user).sudo()._render_qweb_pdf(self.id)
File "/home/dbo/src/odoo/addons/account/models/ir_actions_report.py", line 42, in _render_qweb_pdf
return super()._render_qweb_pdf(res_ids=res_ids, data=data)
File "/home/dbo/src/odoo/odoo/addons/base/models/ir_actions_report.py", line 775, in _render_qweb_pdf
collected_streams = self._render_qweb_pdf_prepare_streams(data, res_ids=res_ids)
File "/home/dbo/src/odoo/addons/account_edi/models/ir_actions_report.py", line 18, in _render_qweb_pdf_prepare_streams
and len(res_ids) == 1 \
TypeError: object of type 'int' has no len()
```
Note: since https://github.com/odoo-dev/odoo/commit/8bdd8cffd02bf34302582cf8a4c6b15583f10729 this commit is not formally needed
anymore but we decive to keep it to presever consistancy and robustness regarding future changes.
taskid: 2849324The aim of this commit is to make `get_lines_in_hierarchy` yielding the lines in the same order even if 2 sequences are the same. task: None PR-community: Forward-Port-Of: odoo/odoo#93061
Original PR description
The aim of this commit is to make `get_lines_in_hierarchy` yielding the lines in the same order even if 2 sequences are the same. task: None PR-community: Forward-Port-Of: odoo/odoo#93061
Forward-Port-Of: odoo/odoo#92394
Original PR description
Forward-Port-Of: odoo/odoo#92394
Changes in rules of session storage for visitors (04e97266) prevented the list of viewed slides to be updated for public viewers, ending in possibly unlimited counts. Fixed by touching the session, small performance improvement "en passant". See Odoo#86015 Task-2878900 Forward-Port-Of: odoo/odoo#93127
Original PR description
Changes in rules of session storage for visitors (04e97266) prevented the list of viewed slides to be updated for public viewers, ending in possibly unlimited counts. Fixed by touching the session, small performance improvement "en passant". See Odoo#86015 Task-2878900 Forward-Port-Of: odoo/odoo#93127
Reproduction: 1. Setting up a database with location in Germany and choose German as the system language 2. Go to Settings->General Settings->Configure document layout, choose DIN5008 3. The word “Invoice” is not translated Fix: translate the title in python file opw-2795031 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#92524 Forward-Port-Of: odoo/odoo#88225
Original PR description
Reproduction: 1. Setting up a database with location in Germany and choose German as the system language 2. Go to Settings->General Settings->Configure document layout, choose DIN5008 3. The word “Invoice” is not translated Fix: translate the title in python file opw-2795031 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#92524 Forward-Port-Of: odoo/odoo#88225
Step to reproduce: - Open 'Sales' - Open a SO - Click on the product link in the OrderLine tree Current Behaviour: - Breadcrumbs are cleared Since https://github.com/odoo/odoo/commit/cefd6ade293e6cfa8ec405f55c6d4d7194f36e7e the onClick is only triggered in form view Behaviour after PR: - Breadcrumbs are not cleared Link are now trigger via another click action '_onLinkClick' and quickEdit does not trigger on URL click opw-2748041 -- I confirm I have signed the CLA and read th
Original PR description
Step to reproduce: - Open 'Sales' - Open a SO - Click on the product link in the OrderLine tree Current Behaviour: - Breadcrumbs are cleared Since https://github.com/odoo/odoo/commit/cefd6ade293e6cfa8ec405f55c6d4d7194f36e7e the onClick is only triggered in form view Behaviour after PR: - Breadcrumbs are not cleared Link are now trigger via another click action '_onLinkClick' and quickEdit does not trigger on URL click opw-2748041 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#84361
When generating an SO, the down payment section is translated into the language of the current user instead of the language of the partner. Step to reproduce the issue: 1) Install the Sales module 2) Install another language (e.g.: French) and change the language of a partner to this language. 3) Create a quotation for the partner which you just changed its language (and confirm it) 4) Create an invoice (down payment) of 50% for example (confirm the invoice) 5) Create another invoice
Original PR description
When generating an SO, the down payment section is translated into the language of the current user instead of the language of the partner. Step to reproduce the issue: 1) Install the Sales module 2)…
When generating an SO, the down payment section is translated into the language of the current user instead of the language of the partner. Step to reproduce the issue: 1) Install the Sales module 2) Install another language (e.g.: French) and change the language of a partner to this language. 3) Create a quotation for the partner which you just changed its language (and confirm it) 4) Create an invoice (down payment) of 50% for example (confirm the invoice) 5) Create another invoice to complete the payment (confirm it too) 6) Go the latest invoice and print it You should see that the "Down Payments" section is kept in English instead of the other language (e.g. French). Solution: The issue is simply that the translation of the concerned term is translated using the lang of the user instead of the lang of the partner. To fix this, we must update the current context to change the lang to the partner language (defaulting to the user language if the partner has no lang). opw-2865865 Forward-Port-Of: odoo/odoo#93163 Forward-Port-Of: odoo/odoo#92942
Since Chrome 94, some element's sizing computation returns a slightly different value (in the order of a fraction of a pixel). Sadly, due to rounding, this difference has an impact on exact sizing assertion. Forward-Port-Of: odoo/odoo#93193 Forward-Port-Of: odoo/odoo#92782
Original PR description
Since Chrome 94, some element's sizing computation returns a slightly different value (in the order of a fraction of a pixel). Sadly, due to rounding, this difference has an impact on exact sizing assertion. Forward-Port-Of: odoo/odoo#93193 Forward-Port-Of: odoo/odoo#92782
Since Chrome 94, some element's sizing computation returns a slightly different value (in the order of a fraction of a pixel). Sadly, due to rounding, this difference has an impact on exact sizing assertion. This Chrome change impacted the "Connectors are displayed behind pills, except on hover" test and more specifically the `document.elementFromPoint" call with arbitrary coordinate (targetting the `o_connector_stroke_hover_ease` path instead of the the actual `o_connector_stroke`.
Original PR description
Since Chrome 94, some element's sizing computation returns a slightly different value (in the order of a fraction of a pixel). Sadly, due to rounding, this difference has an impact on exact sizing assertion. This Chrome change impacted the "Connectors are displayed behind pills, except on hover" test and more specifically the `document.elementFromPoint" call with arbitrary coordinate (targetting the `o_connector_stroke_hover_ease` path instead of the the actual `o_connector_stroke`. This commit fixes it in two ways: - as the "hover" state is global to the whole connector, targetting the `o_connector` makes more sense than an inner element ; adapting the other tests for consistency. - avoiding to use arbitrary coordinates and use position relative to other elements (the `o_gantt_pill` in this case) Forward-Port-Of: odoo/enterprise#28189 Forward-Port-Of: odoo/enterprise#28070
Prior to this commit, the assertQueryCount randomly fails, due to a suspected indeterminate cache invalidation. Due to the indeterminate fails, the tests were deactivated from the runbot. This commit comments the assertQueryCount in order to be able to reactivate the tests as they were also checking business logic. Forward-Port-Of: odoo/enterprise#28159 Forward-Port-Of: odoo/enterprise#28120
Original PR description
Prior to this commit, the assertQueryCount randomly fails, due to a suspected indeterminate cache invalidation. Due to the indeterminate fails, the tests were deactivated from the runbot. This commit comments the assertQueryCount in order to be able to reactivate the tests as they were also checking business logic. Forward-Port-Of: odoo/enterprise#28159 Forward-Port-Of: odoo/enterprise#28120
latam 808 / adhoc 51960 --- When the invoice does not have nro_doc_rec we should inform the value as 0 in order to avoid error when verifying the invoice in AFIP. ### Before: [Old QR link](https://serviciosweb.afip.gob.ar/genericos/comprobantes/cae.aspx?p=eyJ2ZXIiOiAxLCAiZmVjaGEiOiAiMjAyMi0wNS0xNyIsICJjdWl0IjogMjAyMjY1MzQ0OTEsICJwdG9WdGEiOiA0LCAidGlwb0NtcCI6IDYsICJucm9DbXAiOiAyMTUzNSwgImltcG9ydGUiOiAzMjQzLjAsICJtb25lZGEiOiAiUEVTIiwgImN0eiI6IDEuMCwgInRpcG9Db2RBdXQiOiAiRSIsICJjb2RBdXQiOi
Original PR description
latam 808 / adhoc 51960 --- When the invoice does not have nro_doc_rec we should inform the value as 0 in order to avoid error when verifying the invoice in AFIP. ### Before: [Old QR…
latam 808 / adhoc 51960 --- When the invoice does not have nro_doc_rec we should inform the value as 0 in order to avoid error when verifying the invoice in AFIP. ### Before: [Old QR link](https://serviciosweb.afip.gob.ar/genericos/comprobantes/cae.aspx?p=eyJ2ZXIiOiAxLCAiZmVjaGEiOiAiMjAyMi0wNS0xNyIsICJjdWl0IjogMjAyMjY1MzQ0OTEsICJwdG9WdGEiOiA0LCAidGlwb0NtcCI6IDYsICJucm9DbXAiOiAyMTUzNSwgImltcG9ydGUiOiAzMjQzLjAsICJtb25lZGEiOiAiUEVTIiwgImN0eiI6IDEuMCwgInRpcG9Db2RBdXQiOiAiRSIsICJjb2RBdXQiOiA3MjIwMTk3MjM2OTI1NCwgInRpcG9Eb2NSZWMiOiA5OX0=)  |  -- | -- ### After [New QR link](https://www.afip.gob.ar/fe/qr/?p=eyJ2ZXIiOiAxLCAiZmVjaGEiOiAiMjAyMi0wNS0xNyIsICJjdWl0IjogMjAyMjY1MzQ0OTEsICJwdG9WdGEiOiA0LCAidGlwb0NtcCI6IDYsICJucm9DbXAiOiAyMTUzNSwgImltcG9ydGUiOiAzMjQzLjAsICJtb25lZGEiOiAiUEVTIiwgImN0eiI6IDEuMCwgInRpcG9Db2RBdXQiOiAiRSIsICJjb2RBdXQiOiA3MjIwMTk3MjM2OTI1NCwgIm5yb0RvY1JlYyI6IDAuMCwgInRpcG9Eb2NSZWMiOiA5OX0= )  Forward-Port-Of: odoo/enterprise#27665
Enterprise part of odoo/odoo#92394 Forward-Port-Of: odoo/enterprise#27815
Original PR description
Enterprise part of odoo/odoo#92394 Forward-Port-Of: odoo/enterprise#27815
In 64ce5b642 the usage of imagelib was changed to match the one of general fetchmail so the flag sent to IMAP server was (\Seen) and not \Seen which is often accepted but not always. From recent reports, it seems that the method `uid` and `store` may have some difference (base on using message-id rather than UID) so this commit is reverting 64ce5b642 and using the parenthesis around the flag explicitely. opw-2853609 PR note: parallel community PR but for l10n_it_edit https://github
Original PR description
In 64ce5b642 the usage of imagelib was changed to match the one of general fetchmail so the flag sent to IMAP server was (\Seen) and not \Seen which is often accepted but not always. From recent…
In 64ce5b642 the usage of imagelib was changed to match the one of
general fetchmail so the flag sent to IMAP server was (\Seen) and not
\Seen which is often accepted but not always.
From recent reports, it seems that the method `uid` and `store` may have
some difference (base on using message-id rather than UID) so this
commit is reverting 64ce5b642 and using the parenthesis around the flag
explicitely.
opw-2853609
PR note: parallel community PR but for l10n_it_edit https://github.com/odoo/odoo/pull/93140
additional note:
note: the error message gotten in some logs with the store command:
```py
E2022-06-08 Traceback (most recent call last):
E2022-06-08 File "/home/odoo/src/enterprise/l10n_cl_edi/models/fetchmail_server.py", line 74, in fetch_mail
E2022-06-08 imap_server.store(uid, '+FLAGS', '\\Seen')
E2022-06-08 File "/usr/lib/python3.8/imaplib.py", line 842, in store
E2022-06-08 typ, dat = self._simple_command('STORE', message_set, command, flags)
E2022-06-08 File "/usr/lib/python3.8/imaplib.py", line 1205, in _simple_command
E2022-06-08 return self._command_complete(name, self._command(name, *args))
E2022-06-08 File "/usr/lib/python3.8/imaplib.py", line 1030, in _command_complete
E2022-06-08 raise self.error('%s command error: %s %s' % (name, typ, data))
E2022-06-08 imaplib.IMAP4.error: STORE command error: BAD [b'Error in IMAP command STORE: Invalid messageset (0.001 + 0.000 secs).']
```
most reference to this error seems to point to difference in using Message-ID or UID. in my tests using GMAIL I had no difference between the `uid('STORE')` or `store` method, also the imap query log was the same.
Forward-Port-Of: odoo/enterprise#28151The tablet view of a work order will be incorrect if it contains a PDF/Google Slide To reproduce the issue: (Need mrp_workorder. Use demo data) 1. Use a browser that uses the Webkit engine (e.g., "Epiphany Technology Preview" on Linux) 2. Create and confirm a MO with 1 x [FURN_8522] Table Top - A BoM already exists for that product - If you edit the BoM, we can notice that an operation exists and has an attached PDF 3. In the work orders of the MO, open the tablet view of the
Original PR description
The tablet view of a work order will be incorrect if it contains a PDF/Google Slide To reproduce the issue: (Need mrp_workorder. Use demo data) 1. Use a browser that uses the Webkit engine (e.g.,…
The tablet view of a work order will be incorrect if it contains a
PDF/Google Slide
To reproduce the issue:
(Need mrp_workorder. Use demo data)
1. Use a browser that uses the Webkit engine (e.g., "Epiphany Technology
Preview" on Linux)
2. Create and confirm a MO with 1 x [FURN_8522] Table Top
- A BoM already exists for that product
- If you edit the BoM, we can notice that an operation exists and
has an attached PDF
3. In the work orders of the MO, open the tablet view of the operation
Error: The PDF is not displayed
The error only happens with the browsers that use WebKit. In the tablet
mode, we display either the PDF or the Google Slides:
https://github.com/odoo/enterprise/blob/c5ddeaa04f5a042e3137ec3cb1488dd84a2cb27e/mrp_workorder/views/mrp_workorder_views.xml#L255-L259
It will always be one of them, not both. And somehow, it seems that (on
Webkit browsers) when the widgets add the iframe container in the main
container, if one of the iframe doesn't exist, none of them will be
displayed.
OPW-2853487
OPW-2806275
OPW-2761576
Forward-Port-Of: odoo/enterprise#27930