Wednesday, June 28, 2023
54 changes · master
Enhancements to existing features
The server now prepares its list of static assets earlier, reducing repeated work when worker processes start. This improves startup and asset generation performance, helping deployments become ready faster without changing end-user features.
Original PR description
This pr was split in multiple smaller pr: #121159 refactor assets unique computation #121376 refactor assets ormcache After merge of the other pr, this one will only contain the static file cache and in memory glob. Assets pregeneration check (enterprise runbot) Before all changes: js: ~3s css: ~1s After all changes: js: ~0.6s css: ~0.2s
Stock removal strategy names and methods can now be translated. This helps users see these inventory options in their preferred language instead of always in English.
Original PR description
before this commit, name and method field in the product.removal model is not translatable and thus always display values in english after this commit, the field will be translatable and values will be shown based on the user language Original PR: https://github.com/odoo/odoo/pull/98883 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Point of Sale customer list now displays customer details more clearly on small or portrait screens. Instead of information being cut off or pushed outside the screen, the details stack neatly so staff can view customer records more easily on mobile devices.
Original PR description
Prior to this commit, data in the customer list of the POS were partially omitted or lost outside of the screen if the resolution was under 768px and/or in portrait mode. Now, when the screen is under 768px, each data/values in each column for each row are stacked on top of each other. Task-3223287 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Inventory teams can now view lot or serial number properties directly on related stock quantity records. This makes it easier to find and filter inventory based on lot-specific information without switching screens.
Original PR description
Since stock.quant are directly related to their lot/serial, we want to be able to show the lot properties on the related quants. We also want to be able to filter quants based on the properties of their lot/serial. task 3373534 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Live chat session history now shows more useful details, including session duration and visitor country. Users can open conversations directly in Discuss when they are members, making it faster for support teams to review past chats.
Original PR description
This PR improves the livechat session history list view: - Clicking on a session opens the channel in discuss if the user is a member of it. Opens the form view otherwise. - Display duration of the session (last message datetime - first message datetime) - Display country of the visitor part of task-3332872
Vendor bills will now appear ordered by their invoice date instead of the accounting date. This makes bill lists clearer and helps users find and review supplier invoices in a more natural order.
Original PR description
## Description of the issue/feature this PR addresses The vendor bills should be ordered by invoice_date. ## Current behavior before PR The bills are ordered by date. ## Desired behavior after PR is merged The bills will be sorted by their invoice_date resulting in better clarity for the user. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now add mentions when editing an existing message in Odoo Discuss or mail-related conversations. This makes it easier to bring colleagues into a discussion after a message has already been posted, improving collaboration and reducing the need to send follow-up messages.
Original PR description
task-3329714
Vendor bills will now be shown in invoice date order instead of the general date order. This makes bill lists clearer and helps users find documents according to the date shown on the invoice.
Original PR description
## Description of the issue/feature this PR addresses The vendor bills should be ordered by invoice_date. ## Current behavior before PR The bills are ordered by date. ## Desired behavior after PR is merged The bills will be sorted by their invoice_date resulting in better clarity for the user. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The web file viewer no longer requires a close action when it is not needed. This reduces unnecessary setup in document-related screens and helps keep the interface behavior simpler without changing what users see.
Original PR description
Purpose ======= In the documents modules, we don't need to give the close props, and so instead of giving a dummy method, we make it non-required here. Task-3290796
Users with lower karma can now create one pending post in each forum instead of being limited to one pending post across all forums. This makes forum participation easier while keeping moderation controls in place.
Original PR description
This change introduces ability for users (who don't have enough karma) to create one pending post per forum. Previously users could only do it in all of forums. ticket-3354435 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
Live chat channel forms now make it easier for managers to manage channel staffing by allowing them to remove operators directly. The form also shows each operator's online name, helping teams identify the right people more clearly.
Original PR description
This PR improves the livechat channel form view: - managers can remove operators from channel - operator online name is displayed part of task-3332872
Planning users can now split an existing shift directly from the Gantt schedule by hovering over time boundaries and clicking the split tool. This makes it easier to adjust long shifts across hours, days, weeks, or months, with resource availability considered when schedules are grouped by resource.
Original PR description
planning.slot - Gantt view: When using using the Gantt view in Planning, it is in some case necessary to split an existing shift that span across hours/days/weeks/months. There is currently no simple way to do that. This commit introduces a split tool in the Gantt view of planning, allowing to simply cut planning slots. The too is displayed when the user hover a given pill at the junction between hours, days, weeks or months depending on the scale of the Gantt view. Once clicked, the slot is automatically split into to slots finishing and starting at the junction selected. task-3330231
The timesheet timer can now show a helpdesk ticket field when the selected project is linked to Helpdesk, replacing the task field in that flow. This helps users log time directly against the right support ticket while keeping the interface relevant to their access rights.
Original PR description
Currently project, task and description fields are added in timer header component
now we have added helpdesk ticket in this commit.
Flow-
If selected project is linked with the helpdesk, the task will be hidden and the
ticket will be visible.
task-2829389This update replaces an older internal way of building record names with the newer display name approach across many Odoo Enterprise apps. It also helps Odoo know when those names need refreshing, improving search performance and keeping displayed names consistent.
Original PR description
## [IMP] *: convertion of `name_get`. Because `name_get` is now deprecated: - Converts all usage of `name_get` - Overrides of `name_get` are now overrides of `_compute_display_name` ## [IMP] *: add dependencies to `display_name` field The previous commit (community) introduced an optimization to reduce the number of queries and fields fetched when we call `name_search`. But it works much better when the dependencies of `display_name` contain field names used in the calculation (on the same record/model). Then, to improve the performance and the cache coherency, add `depends` and `depends_context` depending on the custom `_compute_display_name`. Add only the first level of dependencies (never traverse relational field) because only these have a positive impact on the previous optimization and the cost is very low (see `modified`). https://github.com/odoo/odoo/pull/122085 https://github.com/odoo/documentation/pull/4639 https://github.com/odoo/upgrade/pull/4780
Customers trying to pay for a subscription will now see a clear message when no payment provider is available. This avoids confusion at checkout and helps explain why payment cannot proceed until payment options are configured.
Original PR description
Add message if the user want to pay but there is no payment provider available. task-id: 3345305
The salary package now better supports showing the detailed cost calculation for company cars. It also removes a default car description that was too company-specific, helping Belgian salary configurators present more neutral and accurate information.
Original PR description
…for the car task - 3302341
This update simplifies subscription sales by removing obsolete fields, pricing details on sales order lines, and unused template color settings. It also moves recurring sale settings to a more reusable template structure, making them available beyond subscriptions, such as for rental flows.
Original PR description
**[IMP] sale_subscription: move_field from sale_subscription to sale** Move some KPI related fields from sale_subscription to sale **[IMP] sale_subscription, sale_temporal: move recurrence on template** Sale order recurrence is added in sale_temporal but only added on the SO template in subscription. This commit aims to move the code to it's rightful place as well as allow sale_renting to use the recurrence on the template too. **[IMP] sale_subscription: remove pricing from SO lines** Remove pricing from so lines as it has become useless. task-id : 3244560
The Documents app now separates the files a user has selected from the files they are previewing or inspecting. This makes document previews more predictable and reduces the chance of losing or unexpectedly changing a user's current selection.
Original PR description
Purpose ======= The current logic of DocumentInspector is super weird. When you want to inspect a document, you need to select it. But you can also inspect a document that is not selected, the current code - save the current selection - select the document we want to preview - when we close the preview, it restores the selection A better way to do it is to have two separate variables to differentiate the selection and the documents previewed. Task-3290796
Payroll processing was adjusted to avoid using a caching approach that was not well suited to this short-lived operation. This should keep payslip creation efficient while reducing unnecessary internal complexity.
Original PR description
This ormcache was added to optimise create_multi. Anyway, an ormcache is well suited for a low number of long time data, not really for a one time use. This is a proposed alternative solution to this cache.
Resolved issues and error corrections
This fixes the Live Chat sidebar so live chat conversations once again show the expected smiley avatar icon. It prevents a small visual inconsistency that could confuse users when identifying live chat channels.
Original PR description
Since [1] the way thread icons are assigned to thread changed. This caused an issue with livechat thread expecting the default icon to be the "smiley avatar" which is not the case anymore. This PR fixes this issue by effectively defaulting to the "smiley avatar". [1]: https://github.com/odoo/odoo/pull/125388 
Features or functions removed from Odoo
Odoo now uses one standard way to generate and retrieve record display names, replacing the older duplicate naming method. This reduces inconsistencies for users and developers, while improving performance in searches and record lookups across many apps.
Miscellaneous changes
Before this commit, if a session be open more than one day, it's won't be possible to close the session with a cash difference. The problem is that when the `ConfirmPopup` be added to the popup the `ClosePosPopup` will be destroyed, and by confirming the "Payments Difference" popup you will get this error: ``` Error: Component is destroyed at ORM.call (.../web/assets/debug/point_of_sale.pos_assets_backend.js:17590:35) (/web/static/src/core/utils/hooks.js:174) at ClosePosPopup.closeSe
Original PR description
Before this commit, if a session be open more than one day, it's won't be possible to close the session with a cash difference. The problem is that when the `ConfirmPopup` be added to the popup the…
Before this commit, if a session be open more than one day, it's won't be possible to close the session with a cash difference. The problem is that when the `ConfirmPopup` be added to the popup the `ClosePosPopup` will be destroyed, and by confirming the "Payments Difference" popup you will get this error:
```
Error: Component is destroyed
at ORM.call (.../web/assets/debug/point_of_sale.pos_assets_backend.js:17590:35) (/web/static/src/core/utils/hooks.js:174)
at ClosePosPopup.closeSession (.../web/assets/debug/point_of_sale.assets.js:9443:49) (/point_of_sale/static/src/js/Popups/ClosePosPopup.js:124)
at ClosePosPopup.confirm (.../web/assets/debug/point_of_sale.assets.js:9363:22) (/point_of_sale/static/src/js/Popups/ClosePosPopup.js:44)
```
The solution is to use `keepBehind: true` to prevent closing the close popup. I tested in other versions and it wasn't an issue in previous versions.
opw-3368772
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#126119
Forward-Port-Of: odoo/odoo#125779Original PR description
## [REM] core: remove `name_get` API ### Rationale Since v8, the `display_name` field is present on all models. By default, `display_name` uses `name_get` which has pretty much the same purpose…
## [REM] core: remove `name_get` API ### Rationale Since v8, the `display_name` field is present on all models. By default, `display_name` uses `name_get` which has pretty much the same purpose (return record name used by the web client). Gradually, many (backend) developers (and the ORM: https://github.com/odoo/odoo/commit/6da1c3ac4c036eac289597602976538e243cb939) started using `display_name` (more convenient than `record.name_get()[0][1]`) but it still had the `name_get` override. It becomes more complex than necessary and poeple start to misunderstand the two (and sometimes override both, leading to inconstiencies between `display_name`/`name_get`). To simplify the ORM and the API, we decided to keep only one of them, the `display_name` field: - It is much more convenient from a backend point of view (`record.name_get()[0][1]` vs `record.display_name`) - It is cached during the same transaction (and invalidated if its dependencies change) - It can be overridden like any other compute field (override `_compute_display_name` with any extra dependencies) - `name_get` is replaced by `read(['display_name'])` (API perceptive), which can actually be more efficient (if `display_name`'s depends are correct, the ORM will only fetch the fields it needs instead of every prefetchable field) ### Changes - Deprecated `name_get` for the v17 and based the method on `display_name` (the opposite of before) - Removed all usage of `name_get` - Overrides of `name_get` are now overrides of `_compute_display_name` - For `res.partner`, rename the field store `display_name` into `complete_name` because `display_name` context-dependent and it makes no sense to have a compute store that is context-dependent. - Previously, it was possible to return multiple names for the same record with `name_get`, but it was tricky and most of the usage of this `name_get` didn't take this into account. The only example of this is the `name_get` of `product.product` (now use `", ".join(<names>)`). ## [IMP] core: fetch `display_name` during `name_search` The `name_search` makes at least 2 SQL requests, one to find the records and one to read fields needed to compute the `display_name`. With the default `_compute_display_name`, it only needs to fetch the `_rec_name` field (if there is one), but the ORM perfetch field mechanism will also fetch every prefetchable field (see `_fetch_field`). Then, to avoid running two queries and fetching too many fields, we add the dependency fields (with `_determine_fields_to_fetch`) to the select clause of the `Query` returned by `_name_search`. ## [IMP] *: add dependencies to `display_name` field The previous commit introduced an optimization to reduce the number of queries and fields fetched when we call `name_search`. But it works much better when the dependencies of `display_name` contain field names used in the calculation (on the same record/model). Then, to improve the performance and the cache coherency, add `depends` and `depends_context` depending on the custom `_compute_display_name`. Add only the first level of dependencies (never traverse relational field) because only these have a positive impact on the previous optimization and the cost is very low (see `modified`). https://github.com/odoo/enterprise/pull/42599 https://github.com/odoo/upgrade/pull/4780 https://github.com/odoo/documentation/pull/4639
Steps to reproduce ================== - Go to Accounting > Vendor Bills - Create a new record - Click on the Auto-Complete field > Search more - In the search bar, search for a reference -> str is not a function Cause of the issue ================== The search filter is declared as such: ```xml < field name="name" string="Reference" filter_domain="['|', ('name','ilike',self), ('reference','=like',str(self)+'%')]" /> ``` This domain is evaluated in javascript by b
Original PR description
Steps to reproduce
==================
- Go to Accounting > Vendor Bills
- Create a new record
- Click on the Auto-Complete field > Search more
- In the search bar, search for a reference
-> str is not a function
Cause of the issue
==================
The search filter is declared as such:
```xml
<
field name="name"
string="Reference"
filter_domain="['|', ('name','ilike',self), ('reference','=like',str(self)+'%')]"
/>
```
This domain is evaluated in javascript by basic python interpreter.
Going from 15 to 16, it has been rewritten. The str function isn't present anymore in `py_builtin.js`.
Solution
========
Since this is the last remaining usage of this function and `self` is already a string, we can simply replace `str(self)` by `self`
opw-3383708
Forward-Port-Of: odoo/odoo#126501Forward-Port-Of: odoo/odoo#126428
Original PR description
Forward-Port-Of: odoo/odoo#126428
Before this PR, long text in the activity description could create a horizontal scrollbar in the chatter.  Task-2721466 Forward-Port-Of: odoo/odoo#126377
Original PR description
Before this PR, long text in the activity description could create a horizontal scrollbar in the chatter.  Task-2721466 Forward-Port-Of: odoo/odoo#126377
… stage task-3372999 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#125900 Forward-Port-Of: odoo/odoo#125209
Original PR description
… stage task-3372999 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#125900 Forward-Port-Of: odoo/odoo#125209
This error occurs when user import records having value in 'properties' column which is of datatype, 'properties' and while trying to get attribute from getattr to get value of converter it is getting default value None. That's why this error is produced, 'NoneType' object is not callable. Steps to reproduce: 1) Install 'CRM' module. 2) Open 'CRM' module and in it click on 'List' view. 3) Open any record and add value for field 'Add a property'. 4) Export that records. 5) Now click on '
Original PR description
This error occurs when user import records having value in 'properties' column which is of datatype, 'properties' and while trying to get attribute from getattr to get value of converter it is…
This error occurs when user import records having value in 'properties' column which is of datatype, 'properties' and while trying to get attribute from getattr to get value of converter it is getting default value None. That's why this error is produced, 'NoneType' object is not callable.
Steps to reproduce:
1) Install 'CRM' module.
2) Open 'CRM' module and in it click on 'List' view.
3) Open any record and add value for field 'Add a property'.
4) Export that records.
5) Now click on 'Favourites' > 'Import records'.
6) Now click on 'UPLOAD FILE' button > upload that exported file.
7) Now click on 'TEST' button, error will be generated.
```
TypeError: 'NoneType' object is not callable
File "odoo/http.py", line 2115, in __call__
response = request._serve_db()
File "odoo/http.py", line 1698, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1725, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1922, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 154, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 715, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 28, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 24, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 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 1328, in execute_import
import_result = model.load(import_fields, merged_data)
File "odoo/models.py", line 1177, in load
for id, xid, record, info in converted:
File "odoo/models.py", line 1339, 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)
```
By applying this, user will be able to import record of datatype
'properties'.
Sentry-4128524668
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#122817Setting or changing the manager of an employee would not refresh the OrgChart. task-3381781 Forward-Port-Of: odoo/odoo#126040
Original PR description
Setting or changing the manager of an employee would not refresh the OrgChart. task-3381781 Forward-Port-Of: odoo/odoo#126040
Form fields can be prefilled since [1] and their visibility conditionally linked to other fields since [2]. 1. This commit ensures prepopulated fields trigger the conditional visibility mechanism (A), including when said field is first hidden, then conditionally displayed (B). 2. Until [3], with a chain of visibility conditions, when one of them was "contains", "does not contain" or a date-related condition, a traceback was raised (C). This commit corrects the fix from [3] to prevent thi
Original PR description
Form fields can be prefilled since [1] and their visibility conditionally linked to other fields since [2]. 1. This commit ensures prepopulated fields trigger the conditional visibility mechanism…
Form fields can be prefilled since [1] and their visibility conditionally linked to other fields since [2]. 1. This commit ensures prepopulated fields trigger the conditional visibility mechanism (A), including when said field is first hidden, then conditionally displayed (B). 2. Until [3], with a chain of visibility conditions, when one of them was "contains", "does not contain" or a date-related condition, a traceback was raised (C). This commit corrects the fix from [3] to prevent this behavior now that the reason has been identified. 3. Tests are also set up to enforce these fixes. Steps to reproduce (A): - Drop a form - Make field A depend on field B being set - Have field B be autopopulated from user mail - Save and check the form: A won't be shown despite B being set - Removing one letter or typing anything in the input B will trigger the visibility of A. - Expected result: B should immediately appear. Steps to reproduce (B): - Drop a form - Make field A depend on field B being set - Have field B be autopopulated and depend on field C being set - Field C is empty by default - Save: only field C is shown. Type a letter: field B appears, but not field A. - Expected result: both should appear. Note: this bug only occurs when field A is before field B. Steps to reproduce (C) (until [3]): - Drop a form - Field A depends on B containing "abc" - Field B depends on C being set - Save and type something in C: there is a traceback. task-3335536 [1]: https://github.com/odoo/odoo/commit/54873d2 [2]: https://github.com/odoo/odoo/commit/2dcbfec [3]: https://github.com/odoo/odoo/commit/2714469 Forward-Port-Of: odoo/odoo#126424 Forward-Port-Of: odoo/odoo#122044
This commit fixes the malformed comment that would sometimes comment out the rest of the html resulting in an improper display. this is due to the short-closed comment --!> not behing understood by our parser. This commits adds a regex check that will remove the comment entirely before behing send to the sanitizer opw-2812488 Forward-Port-Of: odoo/odoo#125183 Forward-Port-Of: odoo/odoo#123041
Original PR description
This commit fixes the malformed comment that would sometimes comment out the rest of the html resulting in an improper display. this is due to the short-closed comment --!> not behing understood by our parser. This commits adds a regex check that will remove the comment entirely before behing send to the sanitizer opw-2812488 Forward-Port-Of: odoo/odoo#125183 Forward-Port-Of: odoo/odoo#123041
Before this commit, when opening self-chat and trying to add users, self id was duplicated with the chat partner id, leading to a crash. This commit fixes the issue by removing duplicates in inviting users, so that there's no longer a crash when inviting users in self-chat. task-3381895 Forward-Port-Of: odoo/odoo#126027
Original PR description
Before this commit, when opening self-chat and trying to add users, self id was duplicated with the chat partner id, leading to a crash. This commit fixes the issue by removing duplicates in inviting users, so that there's no longer a crash when inviting users in self-chat. task-3381895 Forward-Port-Of: odoo/odoo#126027
On the Blanket Order PDF (as well as other purchase agreements), the vendor isn't specified on the report while it is a required and significative field on the purchase agreement. Added it in place of the `Blanket Order reference` since it's given right above in the title. Also added in the Custom Description field into the PDF as it may contain useful information as well. Task-3358385 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Por
Original PR description
On the Blanket Order PDF (as well as other purchase agreements), the vendor isn't specified on the report while it is a required and significative field on the purchase agreement. Added it in place of the `Blanket Order reference` since it's given right above in the title. Also added in the Custom Description field into the PDF as it may contain useful information as well. Task-3358385 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#125554 Forward-Port-Of: odoo/odoo#125014
Adding an override for new `btn-outline-secondary` style that was missing in community Issue: [GMF] stat buttons are too low contrast in community - https://media.discordapp.net/attachments/936185729980194847/1117831999089021030/image.png?width=1440&height=292 Task-3380259 Part of task-3326263 Forward-Port-Of: odoo/odoo#125717
Original PR description
Adding an override for new `btn-outline-secondary` style that was missing in community Issue: [GMF] stat buttons are too low contrast in community - https://media.discordapp.net/attachments/936185729980194847/1117831999089021030/image.png?width=1440&height=292 Task-3380259 Part of task-3326263 Forward-Port-Of: odoo/odoo#125717
This commit adds Bootstrap JS assets to the web.report_assets_common bundle, enabling basic interactivity in reports. Currently it is only necessary to allow JS in the report_layout template. task-3285597 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#126554 Forward-Port-Of: odoo/odoo#12163
Original PR description
This commit adds Bootstrap JS assets to the web.report_assets_common bundle, enabling basic interactivity in reports. Currently it is only necessary to allow JS in the report_layout template. task-3285597 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#126554 Forward-Port-Of: odoo/odoo#121633
Issue: ------ When applying for a job via an alias mail, it is sometimes possible to get the wrong information for the applicant's name and email. For example: Applicant's Name: "FirstName SecondName Email: "FirstName SecondName" <name@example.com> Because of this, it is not possible to send an e-mail (for example, to set up a meeting) because the latter is erroneous. Cause: ------ Many e-mail services add the name associated with the e-mail in the header. Example of a sent e
Original PR description
Issue: ------ When applying for a job via an alias mail, it is sometimes possible to get the wrong information for the applicant's name and email. For example: Applicant's Name: "FirstName SecondName…
Issue: ------ When applying for a job via an alias mail, it is sometimes possible to get the wrong information for the applicant's name and email. For example: Applicant's Name: "FirstName SecondName Email: "FirstName SecondName" <name@example.com> Because of this, it is not possible to send an e-mail (for example, to set up a meeting) because the latter is erroneous. Cause: ------ Many e-mail services add the name associated with the e-mail in the header. Example of a sent e-mail (can be retrieved with "Show original"): ```eml MIME-Version: 1.0 Date: Wed, 21 Jun 2023 12:09:34 +0200 Message-ID: <CAHbiOmS_PHojqKMhoji9iev4I6pzuJ1=dVHgLKNh3SOS_mw7+w@mail.gmail.com> Subject: Subject test From: FirstName SecondName <name@example.com> To: team-recruitment@company.com Content-Type: multipart/alternative; boundary="000000000000f7db4305fea0f6c3" --000000000000f7db4305fea0f6c3 Content-Type: text/plain; charset="UTF-8" Message test --000000000000f7db4305fea0f6c3 Content-Type: text/html; charset="UTF-8" <div dir="ltr">Message test<br></div> --000000000000f7db4305fea0f6c3-- ``` Solution: --------- Use `_parse_partner_name` method to correctly parse the e-mail and partner's name. Note: ----- Not add `email_from` in `_primary_email` field. Otherwise, they will be override with the "raw" value. opw-3347313 Forward-Port-Of: odoo/odoo#125927
Before this commit, if you stopped sync with microsoft, and refereshed the calendar, it would change the button back to synced status. opw-3382311 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#126077
Original PR description
Before this commit, if you stopped sync with microsoft, and refereshed the calendar, it would change the button back to synced status. opw-3382311 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#126077
This PR improves the appearance of property fields in the Kanban view of item Kanban. A label will be shown for the integer, float, date and datetime property fields. Additionally, The boolean field now has a badge appearance with a label. **Task-3291930** Forward-Port-Of: odoo/odoo#124079
Original PR description
This PR improves the appearance of property fields in the Kanban view of item Kanban. A label will be shown for the integer, float, date and datetime property fields. Additionally, The boolean field now has a badge appearance with a label. **Task-3291930** Forward-Port-Of: odoo/odoo#124079
Steps to reproduce the bug: - Drop the image-text snippet on the homepage. - Double click on the button inside the snippet. - Choose the homepage as the URL ("/"). - Open the "Page Anchor" selector and click on "#top". - Bug: the select does not close itself after selection. This bug occurred because there are two instances of Bootstrap on the same element (the link anchor dropdown): the "bs.dropdown" instance and the "bs.tooltip" instance. The tooltip instance was added by this commit
Original PR description
Steps to reproduce the bug: - Drop the image-text snippet on the homepage. - Double click on the button inside the snippet. - Choose the homepage as the URL ("/"). - Open the "Page Anchor" selector…
Steps to reproduce the bug:
- Drop the image-text snippet on the homepage.
- Double click on the button inside the snippet.
- Choose the homepage as the URL ("/").
- Open the "Page Anchor" selector and click on "#top".
- Bug: the select does not close itself after selection.
This bug occurred because there are two instances of Bootstrap on the same element (the link anchor dropdown): the "bs.dropdown" instance and the "bs.tooltip" instance. The tooltip instance was added by this commit [1], probably unintentionally during a copy-paste operation. Additionally, the text of the Tooltip was not correct ("Link size").
Having these two instances on the same element caused an error because, since this commit [2], we check that an element doesn't have only one instance. If multiple instances are found, the others are disabled. This check was the reason why the "bs.dropdown" instance stopped working.
Note that we could have kept the Tooltip by moving it to the "we-toggler" element. However, we removed it because it didn't provide any additional value, the text of the label itself is sufficient.
[1]: https://github.com/odoo/odoo/commit/740168ce8d27da3d6a7156d2d79655a898394923
[2]: https://github.com/odoo/odoo/commit/c48f57ea2538ad51e00ac27d58f8e191781444f3
task-3378864
Forward-Port-Of: odoo/odoo#126234When you install a localization with multiple `chart_template`, the first one in alphabetical order is installed by default. This is not always the more relevant configuration. This PR adds an optional `sequence` parameter to `chart_template` that will be used to decide which one will be used when installing localization for the first time. opw-3328807 Forward-Port-Of: odoo/odoo#126541 Forward-Port-Of: odoo/odoo#126174
Original PR description
When you install a localization with multiple `chart_template`, the first one in alphabetical order is installed by default. This is not always the more relevant configuration. This PR adds an optional `sequence` parameter to `chart_template` that will be used to decide which one will be used when installing localization for the first time. opw-3328807 Forward-Port-Of: odoo/odoo#126541 Forward-Port-Of: odoo/odoo#126174
Before this commit, In the knowledge app, the date and datetime property fields are not visible in the item-kanban. **Technical Reason:** In the previous version's date and datetime property field values are of string type in a non-ISO format. However, from the version 16.2, the values of date and datetime property fields are of datetime object, which parsed into the string type ISO format, that's creates the formatting issue. After this commit, Now the date and datetime property f
Original PR description
Before this commit, In the knowledge app, the date and datetime property fields are not visible in the item-kanban. **Technical Reason:** In the previous version's date and datetime property field values are of string type in a non-ISO format. However, from the version 16.2, the values of date and datetime property fields are of datetime object, which parsed into the string type ISO format, that's creates the formatting issue. After this commit, Now the date and datetime property fields are visible in the item-kanban. Task-3324573 Forward-Port-Of: odoo/odoo#123838
This is a missing test for #126066 . Task: 3370869 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#126544
Original PR description
This is a missing test for #126066 . Task: 3370869 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#126544
Before this commit, if you scan a barcode that it's not related to a product it opened a popup and showed an error. The solution is to open the popup outside the `_getProductByBarcode` function. opw-3357131 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#126639
Original PR description
Before this commit, if you scan a barcode that it's not related to a product it opened a popup and showed an error. The solution is to open the popup outside the `_getProductByBarcode` function. opw-3357131 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#126639
=== ISSUE === If you go to Project > Task > Open a task and click on the Planned Date field to open the date picker, there is two contrast issues when hovering and clicking on an day. - when hovering : The text become white which is not readable - when clicking on a day : The background and the text have exactly the same color.  === AFTER === We replicate the old desig
Original PR description
=== ISSUE === If you go to Project > Task > Open a task and click on the Planned Date field to open the date picker, there is two contrast issues when hovering and clicking on an day. - when hovering : The text become white which is not readable - when clicking on a day : The background and the text have exactly the same color.  === AFTER === We replicate the old design, using the primary color for the active item. We also prevent this items to receive a light background on hover since the render is weird and the text would not be readable anymore.  task-3329797 part of task-332626 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#121615
Before this commit, if you reset your microsoft callendar account and set to remove events from Odoo, it won't remove them. The problem is that the ('ms_universal_event_id', '!=', False) condition is not implemented, and it can't remove the existing events. opw-3382445 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#126097
Original PR description
Before this commit, if you reset your microsoft callendar account and set to remove events from Odoo, it won't remove them. The problem is that the ('ms_universal_event_id', '!=', False) condition is not implemented, and it can't remove the existing events.
opw-3382445
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#126097Since https://github.com/odoo/enterprise/pull/26737, the task overlap computation ignores past tasks. However, to determine which tasks are in the past, it compares the end date of the task, a timestamp in UTC, with the "NOW()" sql function, whose timezone depends on that of the server, which can lead to problems if the server is not in UTC. To fix this, this PR forces the "NOW()" function to use the UTC timezone. Forward-Port-Of: odoo/enterprise#43222
Original PR description
Since https://github.com/odoo/enterprise/pull/26737, the task overlap computation ignores past tasks. However, to determine which tasks are in the past, it compares the end date of the task, a timestamp in UTC, with the "NOW()" sql function, whose timezone depends on that of the server, which can lead to problems if the server is not in UTC. To fix this, this PR forces the "NOW()" function to use the UTC timezone. Forward-Port-Of: odoo/enterprise#43222
Following the SEPA guidelines (https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2020-11/EPC132-08%20SCT%20C2PSP%20IG%202021%20V1.0.pdf , page 62 of the documents ; 63 of the pdf), this node should only be present if it contains a BIC. If no BIC is available, it shouldn't be there. Some banks were refusing our the files generated by Odoo because of that. OPW 3327389 Forward-Port-Of: odoo/enterprise#42777 Forward-Port-Of: odoo/enterprise#42549
Original PR description
Following the SEPA guidelines (https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2020-11/EPC132-08%20SCT%20C2PSP%20IG%202021%20V1.0.pdf , page 62 of the documents ; 63 of the pdf), this node should only be present if it contains a BIC. If no BIC is available, it shouldn't be there. Some banks were refusing our the files generated by Odoo because of that. OPW 3327389 Forward-Port-Of: odoo/enterprise#42777 Forward-Port-Of: odoo/enterprise#42549
This PR fixes the case where an operator's calendar would contain meetings where he is still available (using the "show_as" field). Currently the appointment availability checks block all slots that conflict with a calendar.event, regardless of the "show_as" flag. We fix it by accommodating the necessary domains. A test was added to ensure this behavior. Task-3264505 Forward-Port-Of: odoo/enterprise#43228 Forward-Port-Of: odoo/enterprise#41026
Original PR description
This PR fixes the case where an operator's calendar would contain meetings where he is still available (using the "show_as" field). Currently the appointment availability checks block all slots that conflict with a calendar.event, regardless of the "show_as" flag. We fix it by accommodating the necessary domains. A test was added to ensure this behavior. Task-3264505 Forward-Port-Of: odoo/enterprise#43228 Forward-Port-Of: odoo/enterprise#41026
before this commit, on neutralizing the database the ebay connector still remains in production mode. after this commit, on neutralizing the db, the ebay connector will changed to sandbox mode Forward-Port-Of: odoo/enterprise#43237
Original PR description
before this commit, on neutralizing the database the ebay connector still remains in production mode. after this commit, on neutralizing the db, the ebay connector will changed to sandbox mode Forward-Port-Of: odoo/enterprise#43237
This PR fixes two bugs in the Helpdesk reports: - The "Open Hours" ticket field is computed by extracting the hours of the duration between the creation date and the closing date, instead of the total hours for this duration. - Some fields are computed based on the timezone of the server instead of UTC. Task-3386252 Forward-Port-Of: odoo/enterprise#43230 Forward-Port-Of: odoo/enterprise#43174
Original PR description
This PR fixes two bugs in the Helpdesk reports: - The "Open Hours" ticket field is computed by extracting the hours of the duration between the creation date and the closing date, instead of the total hours for this duration. - Some fields are computed based on the timezone of the server instead of UTC. Task-3386252 Forward-Port-Of: odoo/enterprise#43230 Forward-Port-Of: odoo/enterprise#43174
This error occurs when the user has deleted the workspace and tries to share that deleted workspace. Steps to produce: - Documents > Configuration > Workspaces > create new workspace. - Documents > select the newly created workspace. - From the dropdown menu click on the 'Share' button > Copy the URL - Go to workspaces > delete that newly created workspace - Now paste the previously copied URL in the new tab. - Error will be generated. see stack trace : ``` ValueError: not enough
Original PR description
This error occurs when the user has deleted the workspace and tries to share that deleted workspace. Steps to produce: - Documents > Configuration > Workspaces > create new workspace. - Documents >…
This error occurs when the user has deleted the workspace and tries to share that deleted workspace.
Steps to produce:
- Documents > Configuration > Workspaces > create new workspace.
- Documents > select the newly created workspace.
- From the dropdown menu click on the 'Share' button > Copy the URL
- Go to workspaces > delete that newly created workspace
- Now paste the previously copied URL in the new tab.
- Error will be generated.
see stack trace :
```
ValueError: not enough values to unpack (expected 1, got 0)
File "odoo/models.py", line 5379, in ensure_one
_id, = self._ids
ValueError: Expected singleton: documents.share()
File "odoo/http.py", line 2114, 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 1840, in dispatch
return 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 "home/odoo/src/enterprise/saas-16.3/documents_spreadsheet/controllers/share.py", line 13, in share_portal
documents = share._get_documents_and_check_access(token, operation="read")
File "home/odoo/src/enterprise/saas-16.3/documents_spreadsheet/models/documents_share.py", line 14, in _get_documents_and_check_access
available_documents = super()._get_documents_and_check_access(access_token, document_ids, operation)
File "home/odoo/src/enterprise/saas-16.3/documents/models/documents_share.py", line 149, in _get_documents_and_check_access
self.ensure_one()
File "odoo/models.py", line 5382, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
sentry-4245535428
Forward-Port-Of: odoo/enterprise#42464This commit adds a tour to verify that the modal can be opened in the Green Savings Report. task-3285597 Forward-Port-Of: odoo/enterprise#43239 Forward-Port-Of: odoo/enterprise#41405
Original PR description
This commit adds a tour to verify that the modal can be opened in the Green Savings Report. task-3285597 Forward-Port-Of: odoo/enterprise#43239 Forward-Port-Of: odoo/enterprise#41405
… stage task-3372999 Forward-Port-Of: odoo/enterprise#43220 Forward-Port-Of: odoo/enterprise#42656
Original PR description
… stage task-3372999 Forward-Port-Of: odoo/enterprise#43220 Forward-Port-Of: odoo/enterprise#42656
When you duplicate an asset, the acqusition is correctly recompute but the prorata date isn't. It causes that the depreciation board is wrongly computed because it is based on the wrong prorata date. The solution to fix this issue is setting copy to False for these fields. opw-3328459 Forward-Port-Of: odoo/enterprise#43165 Forward-Port-Of: odoo/enterprise#43070
Original PR description
When you duplicate an asset, the acqusition is correctly recompute but the prorata date isn't. It causes that the depreciation board is wrongly computed because it is based on the wrong prorata date. The solution to fix this issue is setting copy to False for these fields. opw-3328459 Forward-Port-Of: odoo/enterprise#43165 Forward-Port-Of: odoo/enterprise#43070
Steps to reproduce: - Setup HSBC autopay - Create a bank account number with number and hyphan between - Generate a HSBC autopay report - Submit the report to HSBC Current behaviour: - Hyphan is included inside the HSBC report which caused error when submitting Expected behaviour: - Bank account number should be numberic format only Forward-Port-Of: odoo/enterprise#43208 Forward-Port-Of: odoo/enterprise#43154
Original PR description
Steps to reproduce: - Setup HSBC autopay - Create a bank account number with number and hyphan between - Generate a HSBC autopay report - Submit the report to HSBC Current behaviour: - Hyphan is included inside the HSBC report which caused error when submitting Expected behaviour: - Bank account number should be numberic format only Forward-Port-Of: odoo/enterprise#43208 Forward-Port-Of: odoo/enterprise#43154