Monday, October 30, 2023
77 changes · master
Security fixes and vulnerability patches
This update tightens access to sensitive Adyen payment features and data, reducing the risk of misuse in point-of-sale and self-order kiosk flows. It also fixes several Adyen payment and receipt issues, including kiosk payment notifications, error handling, receipt printing, and capture adjustments.
Original PR description
- Adds some permissions to protect sensitive pos_adyen data and methods. - Reduces the risks of abuses of the pos_adyen features. Those changes are not optimal. The whole system should be changed. - Fixes the printing of Adyen receipts data in the receipt. - Fixes an error when receiving a successful Adyen payment notification for the kiosk. - Fixes an error when Adyen returns an error for a payment for kiosk. - Fixes an error when requesting adjustment/capture to Adyen (pos_restaurant_adyen and kiosk). - Removes unused adyen_latest_diagnosis field. task-id: 3500598
Enhancements to existing features
When an employee is archived, their contract details are now hidden from the contract form. This helps prevent users from viewing or relying on contract information for employees who are no longer active.
Original PR description
In this PR we Implemented conditional logic for contract form 1. if we archive the Employee then that contract details are also blank and no more available after remove active employee filter on contract form. Task-3522177
Resolved issues and error corrections
Lead generation now uses an updated industry list that matches the provider’s categories, preventing searches from returning no results due to mismatched values. Users can choose from corrected industries, and searches send the industry name instead of an internal ID for better matching.
Original PR description
The values used in the industry to obtain lead generations did not align with those of our provider. This posed a problem, as it meant that some queries inevitably returned zero leads. Description of…
Code cleanup and technical improvements
This update streamlines how Odoo loads web assets such as scripts and styles across several website and editor features. It is an internal cleanup that should make future maintenance easier without changing day-to-day user workflows.
Original PR description
The loadBundle() function has been simplified to only accept the bundle name (and no longer an object) as an argument. The loadBundle() function calls getBundle(). Except in special cases, it is no longer necessary to call getBundle(). In widgets, we call loadBundle directly rather than using jsLibs and cssLibs lists. Also, jsContents and cssContents are no more used in codebase. task-3266441 https://github.com/odoo/enterprise/pull/49466
Miscellaneous changes
This pull request appears to update the module import area, but the description and commit message do not provide enough detail to identify a finished business outcome. The affected changes are limited to the base import module, so any impact is likely focused on how modules are imported or displayed to administrators.
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 Tax Cloud configuration option is no longer shown to all users by default. It now appears only when the U.S. localization or Tax Cloud module is installed, reducing confusion for businesses that do not use this feature.
Original PR description
Before this PR the setting of tax cloud was displayed for everyone which wasn't something that some clients wanted. Now, the setting only appears when you install l10n_us or account_taxcloud directly. The settings is by default falsy because we have removed the auto install in the manifest of account_taxcloud. upgrade:https://github.com/odoo/upgrade/pull/5315 enterprise: https://github.com/odoo/enterprise/pull/47663 task: 3475032 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The calendar invitation layout now places the reschedule link below the event description with clearer wording. This makes it easier for recipients to understand the event details first and then find the option to request a new time.
Original PR description
This PR move the reschedule link below the description with the appropriate message. Task-3458669
Odoo's web search components can now filter search options using additional item details, such as whether an option is active. This improves consistency in search and pivot menus and makes it easier for the interface to show only the most relevant choices.
Original PR description
The public method getSearchItems did not allow to filter items on the extra keys added in _enrichItem (e.g. isActive). This is now possible.
Project task lists now allow users to edit the related sales order item when all selected tasks belong to the same customer. This makes sales-project updates easier while preventing accidental changes across tasks for different customers.
Original PR description
…tner Description of the issue: Before this commit sale order item field was not editable its readonly in tree view Imp: After this commit sale order item field will be editable if all selected tasks have same partner. task-3374663
Report menu entries are now managed more consistently when users create, archive, or delete reports. This helps prevent duplicate menus and keeps the interface up to date automatically, reducing confusion for users.
Original PR description
This commit adds the following improvements: - Automatic reload after manual menuitem creation. - A UserError is raised when trying to create a duplicate menuitem. - Any existing menuitem is removed when deleting a report, or archived when archiving the report. task-3422314
Gantt progress bars now show more precise time values, such as 4h30 instead of rounding down to 4h. The display is also cleaner, using formats like 4h / 38h, making workload progress easier to read at a glance.
Original PR description
**=mrp_workorder, project_enterprise, web_gantt In this commit, we enhanced the Gantt view progress bar by modifying the display format. Previously, when the hours were not rounded, it would show as '4h' instead of '4h30'. We have now updated it to accurately represent the exact duration. Additionally, we changed the format from '4 h / 38 h' to '4h / 38h' for improved clarity. task-3178655
Odoo now automatically considers more invoice attachment types sent to journal email aliases, such as XML e-invoices, instead of only PDFs. It filters out media files like images, audio, and video, helping businesses create invoices from relevant documents more reliably while reducing manual follow-up.
Original PR description
Problem --------- In 16.2, we added a filter on Journals that allows Odoo to filter the attachments in emails received on a Journal email alias and create one invoice per file that passed the filter.…
Problem
---------
In 16.2, we added a filter on Journals that allows Odoo to filter
the attachments in emails received on a Journal email alias and create
one invoice per file that passed the filter.
The problem is that we've made a filter that only considers PDFs,
excluding all other invoice files, like XMLs. And those are getting
more and more popular with the emergence of electronic invoices.
Objective
---------
We reverse the logic of the filter:
- Remove the setting and always filter the attachment received on an
email alias
- Change the behavior of the filter:
- Filter out all image, video and audio files
- Create one invoice for every other attachment found
Solution
---------
1. Remove all code related to `alias_auto_extract_pdfs_only` and
`display_alias_auto_extract_pdfs_only`. Since the journal view
extension only displays those two fields, we delete it as well.
2. Add a filter in attachments that returns True if the attachment
mimetype is not blacklisted. This helps us filter attachments easily.
3. Update `_message_post_after_hook` to fulfill the objective:
- Create an invoice for meaningful attachments
- Lose the rest into the void.
4. Add the parameter `attachment` on the function `_needs_auto_extract`;
before this change, a document would only be auto-extracted if its main
attachment was to be extracted. This is a bit simplistic since other
attachments could need extraction. Furthermore, this function is
mainly called when fetching the decoder for a particular attachment. It
makes more sense to check that this given attachment is to be extracted
rather than always checking if the document's main attachment is to be
extracted. For those reasons, this computation of this function has been
updated to be specific to the given attachment.
NOTE: The first commit is part of this PR: https://github.com/odoo/enterprise/pull/48294
Task-3536162Contract reports now show as blank when an employee has no available contract details, including when the employee is archived. This avoids displaying outdated or misleading contract information and makes the report behavior clearer for HR users.
Original PR description
…y contract In this commit we Implemented conditional logic for contract report 1. Blank report when no contract details are present. Task-3522177
TaxCloud settings are no longer shown to all users by default. They now appear only when the relevant U.S. localization or TaxCloud module is installed, reducing confusion for companies that do not use this service.
Original PR description
Before the community PR (https://github.com/odoo/odoo/pull/136039) the setting of tax cloud was displayed for everyone which wasn't something that some clients wanted. Now, the setting only appears when you install l10n_us or account_taxcloud directly. The settings is by default falsy because we have removed the auto install in the manifest of account_taxcloud. To make it work we have to change some xpath too. upgrade: https://github.com/odoo/upgrade/pull/5315 odoo: https://github.com/odoo/odoo/pull/136039 task: 3475032
The values used in the industry to obtain lead generations did not align with those of our provider. This posed a problem, as it meant that some queries inevitably returned zero leads. Description of the issue/feature this PR addresses: When a lead mining request was made using the lead generation tool, several industry categories returned no results when selected, even for countries such as the USA. Current behavior before PR: The user's query returned industry ids that did not match up correctly with the keywords used in the lead search. Desired behavior after PR is merged: Now users will be able to choose their industry from a revised list. In addition, the query sent will now contain the name of the industry rather than an id. Linked to the following Upgrade PR : https://github.com/odoo/upgrade/pull/5150 Linked to the following IAP PR : https://github.com/odoo/iap-apps/pull/696 Task ID : 3349531 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A small typo was corrected so the system can properly find the financial reporting menu action. This helps ensure users can access the intended reporting menu reliably.
Original PR description
A typo in the tag name prevented the search on `'ir.actions.client'` from finding the action (and the menuitem, by extension).
This update fixes two issues in Odoo Studio's report editor. Resetting a report now properly clears unsaved changes, and editing controls are hidden when dialogs open to avoid confusing or accidental actions.
Creating a new Knowledge article now places the cursor directly in the main heading field. This lets users start typing the article title right away without an extra click, making article creation smoother.
Original PR description
When the user creates a new article, the focus is missing on the H1(Heading 1). After this FIX, while creating a new article the focus is set on the H1(Heading 1). So that, users can able to start typing article names directly without setting the focus manually. **Task**-3377093
This fixes XML formatting issues in Web Studio that caused error messages to appear in Odoo logs, especially when exporting translations. The change helps keep logs cleaner and reduces confusion for administrators monitoring the system.
Original PR description
before this commit, syntax error was existing in web_studio module and error is showing in odoo log file * export translation of web_studio module * check odoo log file error in the log: * Opening and ending tag mismatch after this commit, no error won't be shown in the log
The Project app’s personal task stage handling was simplified by removing outdated view code after a broader refactor. This reduces maintenance complexity and helps keep task stage grouping and drag-and-drop behavior reliable without changing the core user workflow.
Original PR description
Removing unused view in master after the merge of the refactoring described below in 17.0. See: https://github.com/odoo/odoo/pull/140050 Personal stages of project.stage records are based on two main…
Removing unused view in master after the merge of the refactoring described below in 17.0. See: https://github.com/odoo/odoo/pull/140050 Personal stages of project.stage records are based on two main fields: - personal_stage_type_ids: the list of all personal stages linked to a task (M2M) - personal_stage_type_id: a computed field (not stored) indicating the personal stage of a task for the current user. When reading a set of project.task records grouped by personal stages, two options are possible: - Group the records by personal_stage_type_id (approach used in former app Notes): in which case the read_group method has to ne rewritten as it can be used on a non-stored field. - Group the records by personal_stage_type_ids (approach used in app Project) in which case, the kanban view has to be overridden to be able to drag and drop a task between personal stages (which is not possible by default, when grouping according to a M2M field). The main evolution proposed by this refactor is to use an hybrid approach that would: 1. Group the project.task records by personal_stage_type_id 2. Use the read_group with groupby set to 'personal_stage_type_ids' as this should give the same result. This would allow to: - Avoid a complex and costly (performance wise) read_group override - Avoid an override of the kanban view that is costly to maintain - Simplify the implementation (and thus readability) of personal stage management (among which, removal of the model project.task.stage.personal). task-3345132
This update streamlines how accounting matching search options handle active items. It is an internal cleanup that should keep the user experience unchanged while making the feature easier to maintain.
Original PR description
It is now possible to filter on isActive in getSearchItems. We use that possibility here.
This change streamlines how web resources are loaded in the Planning and VoIP areas. It is an internal cleanup that should make the code easier to maintain without changing how users interact with these features.
Original PR description
The loadBundle() function has been simplified to only accept the bundle name (and no longer an object) as an argument. The loadBundle() function calls getBundle(). Except in special cases, it is no longer necessary to call getBundle(). In widgets, we call loadBundle directly rather than using jsLibs and cssLibs lists. Also, jsContents and cssContents are no more used in codebase. task-3266441 https://github.com/odoo/odoo/pull/139578
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#140073
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140073
Before this commit, the `recover` parameter is used when parsing the xml files. The issue with this, is that it will allow and parse broken XML files, and the error messages in JS will not be related to the issue on the broken XML. Now, the parser is stricter, and the broken template will be replaced with an error template with a compressive error message of the parsing error. task-id: 3420400 Forward-Port-Of: odoo/odoo#139818
Original PR description
Before this commit, the `recover` parameter is used when parsing the xml files. The issue with this, is that it will allow and parse broken XML files, and the error messages in JS will not be related to the issue on the broken XML. Now, the parser is stricter, and the broken template will be replaced with an error template with a compressive error message of the parsing error. task-id: 3420400 Forward-Port-Of: odoo/odoo#139818
`quantity` on sm is depended on `quantity` on sml. When create new sml, `quantity` of sm will always be 0. To fix it, we use origin sm in the compute function to get correct value. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#139913
Original PR description
`quantity` on sm is depended on `quantity` on sml. When create new sml, `quantity` of sm will always be 0. To fix it, we use origin sm in the compute function to get correct value. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#139913
pos*: point_of_sale, pos_online_payment, pos_self_order In this PR we do 2 different things: --- 1. [IMP] pos_self_order: display attributes with long text We change the display of product attributes with long text. Now, if an attribute has a long text (>15 characters), the attributes will be displayed in 1 column. We also prevent the user from adding a product with attributes to the cart if some attributes are not selected. --- 2. [FIX] point_of_sale, pos_online_payment: fix bug
Original PR description
pos*: point_of_sale, pos_online_payment, pos_self_order In this PR we do 2 different things: --- 1. [IMP] pos_self_order: display attributes with long text We change the display of product attributes…
pos*: point_of_sale, pos_online_payment, pos_self_order In this PR we do 2 different things: --- 1. [IMP] pos_self_order: display attributes with long text We change the display of product attributes with long text. Now, if an attribute has a long text (>15 characters), the attributes will be displayed in 1 column. We also prevent the user from adding a product with attributes to the cart if some attributes are not selected. --- 2. [FIX] point_of_sale, pos_online_payment: fix bug force close session In this commit we resolve the bug that force close session when deleting orders in a point_of_sale config. The problem was that we did not take into account that orders can be canceled when closing the session. This led to picking move and account move created for canceled orders which is obviously not wanted. Enterprise PR: odoo/enterprise#49710 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140045
This happened when auditing an aggregation line with a sum_children formula. A test was added in enterprise to prevent that to occur again in the future. Forward-Port-Of: odoo/odoo#139408 Forward-Port-Of: odoo/odoo#139079
Original PR description
This happened when auditing an aggregation line with a sum_children formula. A test was added in enterprise to prevent that to occur again in the future. Forward-Port-Of: odoo/odoo#139408 Forward-Port-Of: odoo/odoo#139079
Commit a97b352e761b421f6205b03a9b87c79358c128cd removed MrpProductionComponentsX2ManyField to use MrpProductionComponentsListRenderer for coloring quantity cells for manual consumption. Correctly extend StockMoveX2ManyField in this commit. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140141
Original PR description
Commit a97b352e761b421f6205b03a9b87c79358c128cd removed MrpProductionComponentsX2ManyField to use MrpProductionComponentsListRenderer for coloring quantity cells for manual consumption. Correctly extend StockMoveX2ManyField in this commit. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140141
1. Rename 'Reserved' on MO components to 'Quantity' 2. Hide `picked` field on MO compoents by default 3. Add tooltip for `picked` field on sm. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140150
Original PR description
1. Rename 'Reserved' on MO components to 'Quantity' 2. Hide `picked` field on MO compoents by default 3. Add tooltip for `picked` field on sm. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140150
Before this commit, the ir.cron "Automation Rules: check and execute" crashed because the "_check" method used get_eval_context where it shouldn't This is due to b846d1ebe9129a11ee0678aa287784e767ff50e5, which makes _get_eval_context a record's method, not a model one. 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 F
Original PR description
Before this commit, the ir.cron "Automation Rules: check and execute" crashed because the "_check" method used get_eval_context where it shouldn't This is due to b846d1ebe9129a11ee0678aa287784e767ff50e5, which makes _get_eval_context a record's method, not a model one. 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#140153
Since c8ca9da7bcee2c122a9d6cf8cda89f02823ba42d, the tooltips in the charts can come out of the container and make the scrollbar appear, which is not desired. In this commit, we fix that. task-3568895 Forward-Port-Of: odoo/odoo#139885
Original PR description
Since c8ca9da7bcee2c122a9d6cf8cda89f02823ba42d, the tooltips in the charts can come out of the container and make the scrollbar appear, which is not desired. In this commit, we fix that. task-3568895 Forward-Port-Of: odoo/odoo#139885
These are fixes for two similar but separate bugs. Versions: --------- - 16.0+ Bug 1: ====== Steps to reproduce: ------------------- 1. install stock & purchase; 2. in Inventory settings, enable product packaging; 3. create a packaging for a product; 4. assign the packaging to the current company; 5. switch to a different company; 6. create a purchase order with the product. Issue: ------ The packaging that gets selected automatically shouldn't be accessible to the current
Original PR description
These are fixes for two similar but separate bugs. Versions: --------- - 16.0+ Bug 1: ====== Steps to reproduce: ------------------- 1. install stock & purchase; 2. in Inventory settings, enable…
These are fixes for two similar but separate bugs. Versions: --------- - 16.0+ Bug 1: ====== Steps to reproduce: ------------------- 1. install stock & purchase; 2. in Inventory settings, enable product packaging; 3. create a packaging for a product; 4. assign the packaging to the current company; 5. switch to a different company; 6. create a purchase order with the product. Issue: ------ The packaging that gets selected automatically shouldn't be accessible to the current company (and isn't in the drop-down). Trying to save the form will return an access error. Similar issues arise in `sale_management` and `website_sale`. Cause: ------ 726179af78d6bcc3184f30fae4ae1218fd4b8c23 and ccdd113260c1a3c8e225f6d726cfe4da36a4df92 updated product packaging onchange methods to computed methods, changing the environment these fields exist in to a `sudo` one. As a consequence, it includes records that are normally inaccessible. Solution: --------- Use the follwing filter before calling `_find_suitable_packaging`: ```python lambda p: p.product_id.company_id <= p.company_id <= line.company_id ``` - if `p.product_id.company_id` is set, `p.company_id` has to be set too; - else `p.company_id` has to be `False` or equal to `line.company_id`. Bug 2: ====== Steps to reproduce: ------------------- 1. install stock; 2. in Inventory settings, enable product packagings; 3. set the company_id of a product to current company; 4. in user settings, remove access to all other companies; 5. refresh the browser; 6. from the page of the edited product, add a package; 7. try to save changes. Problem: -------- User Error pops up due to incompatible companies on records. Cause: ------ As of version 16.0, a field with the `groups="base.group_multi_company"` attribute might as well not exist outside multi-company contexts, preventing the context that automatically added a company_id to a newly created package from working properly. Solution: --------- Add an invisible field containing the `company_id` with the `groups="!base.group_multi_company"` attribute. opw-3457782 Forward-Port-Of: odoo/odoo#140025 Forward-Port-Of: odoo/odoo#134694
Purpose: -------- From the new RelationalModel (https://github.com/odoo/odoo/pull/114024), in the list view, when all the records are selected, the ListController is rendered once per record. This causes performance problems and can cause a flicker where each record is selected one by one. Why: ---- When selecting all records, we will call record.togggleSelection() on each record but this function uses a mutex. So each record will be selected asynchronously. As the state is not modif
Original PR description
Purpose: -------- From the new RelationalModel (https://github.com/odoo/odoo/pull/114024), in the list view, when all the records are selected, the ListController is rendered once per record. This causes performance problems and can cause a flicker where each record is selected one by one. Why: ---- When selecting all records, we will call record.togggleSelection() on each record but this function uses a mutex. So each record will be selected asynchronously. As the state is not modified by the same tick, a rendering will be triggered for each call to record.togggleSelection. Solution: --------- Add a togggleSelection function to the DynamicList which will select all the records in the same mutex. The state will therefore be modified in the same tick and there will be a single rendering. Forward-Port-Of: odoo/odoo#139859
Problem --------- Previously, when receiving an email with several attachments, we created 1 invoice that contained all the attachments. Objective --------- We want to create several invoices depending on the attachments received. No invoice should have more than one PDF document. No invoice should have more than one XML document. Other attachments should be placed in separate invoices (except for the first invoice that can contain 2 attachments: ex. image and PDF). Solution ---------
Original PR description
Problem --------- Previously, when receiving an email with several attachments, we created 1 invoice that contained all the attachments. Objective --------- We want to create several invoices depending on the attachments received. No invoice should have more than one PDF document. No invoice should have more than one XML document. Other attachments should be placed in separate invoices (except for the first invoice that can contain 2 attachments: ex. image and PDF). Solution --------- Update the _extend_with_attachments to behave like such. task-3526248 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140196
The forms where we have ribbons do not provide a great user experience when the internal links are right below the ribbon. Because of the shape and size of the ribbon, the internal link button on the topmost fields gets behind the ribbon. Because the rectangular part of the ribbon is transparent, we can see the button, but cannot click or hover over it, because the ribbon element takes over. To resolve this, I set the pointer-events of ribbon to none. The ribbons already do not have any click ev
Original PR description
The forms where we have ribbons do not provide a great user experience when the internal links are right below the ribbon. Because of the shape and size of the ribbon, the internal link button on the topmost fields gets behind the ribbon. Because the rectangular part of the ribbon is transparent, we can see the button, but cannot click or hover over it, because the ribbon element takes over. To resolve this, I set the pointer-events of ribbon to none. The ribbons already do not have any click events so this solution seems okay. Steps to Reproduce: 1. Move a helpdesk ticket to the archive. 2. Try to move to the customer page using the internal link. Current Behavior: The link button cannot be hovered over and clicked. Expected Behavior: The link button should be above other elements and clickable. OPW-3468153 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#139664 Forward-Port-Of: odoo/odoo#133136
hovering and focusing style is lost. before/after:   --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#139911
Original PR description
hovering and focusing style is lost. before/after:   --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#139911
calendar, im_livechat Before this commit, messages in chatbot conversation were not properly markup. This comes from changes from [1] that added trusted insert. Original code in `Record.insert()` makes a model insertion of the data using the `html` flag. Patches must not override `static insert()` as only the super call is affected by the provided `html` flag. For patches to take account of it, they must instead patch `_insert`, with `_` prefix, which is internally called by original `Record.
Original PR description
calendar, im_livechat Before this commit, messages in chatbot conversation were not properly markup. This comes from changes from [1] that added trusted insert. Original code in `Record.insert()`…
calendar, im_livechat Before this commit, messages in chatbot conversation were not properly markup. This comes from changes from [1] that added trusted insert. Original code in `Record.insert()` makes a model insertion of the data using the `html` flag. Patches must not override `static insert()` as only the super call is affected by the provided `html` flag. For patches to take account of it, they must instead patch `_insert`, with `_` prefix, which is internally called by original `Record.insert()`. In addition: - `static insert` allows array of data while `static _insert` works with data on single record. Patches were designed with data on single record, so some code were not working properly - Signature of `static insert` has been overloaded with new option `html: true`, so patches must propagate it. They were only propagating `data` and omitting the 2nd paramater, which results in omitting provided `html` thus falling back to `html: false`, resulting to non-escaping message body This commit fixes all model patches to override `static _insert` instead of `static insert`. [1]: https://github.com/odoo/odoo/pull/139501 https://github.com/odoo/enterprise/pull/49718 Before/After   Forward-Port-Of: odoo/odoo#140064
Before this commit, since https://github.com/odoo/odoo/pull/137750, the `RtcSession.channelId` property was removed, which prevented the "LIVE" state in calls to be displayed (and hidden) in the right conditions, a missing button in call invitations, and possibly other bugs. This was not caught by tests because there is no test for that. Forward-Port-Of: odoo/odoo#140082
Original PR description
Before this commit, since https://github.com/odoo/odoo/pull/137750, the `RtcSession.channelId` property was removed, which prevented the "LIVE" state in calls to be displayed (and hidden) in the right conditions, a missing button in call invitations, and possibly other bugs. This was not caught by tests because there is no test for that. Forward-Port-Of: odoo/odoo#140082
The method is used only once now, it can be removed. Forward-Port-Of: odoo/odoo#140063
Original PR description
The method is used only once now, it can be removed. Forward-Port-Of: odoo/odoo#140063
Before this commit, messages of type email had their style initially altered on the UI to match the theme, notably the background and font color. To see the original format, a floating button "Show Original Format" was shown in the top-right corner of these messages. The main problem with this button is that most email messages do not have a different visual between altered and non-altered, so this button felt useless most of the time. Also, the original style of email message is a annoyance
Original PR description
Before this commit, messages of type email had their style initially altered on the UI to match the theme, notably the background and font color. To see the original format, a floating button "Show…
Before this commit, messages of type email had their style initially altered on the UI to match the theme, notably the background and font color. To see the original format, a floating button "Show Original Format" was shown in the top-right corner of these messages.
The main problem with this button is that most email messages do not have a different visual between altered and non-altered, so this button felt useless most of the time. Also, the original style of email message is a annoyance in dark theme but not in white theme.
This commit removes the presence on the button and the style of email message is now based on the chosen theme:
- white theme: always show the original style of the email
- dark theme: always show a slightly altered style of the email
This commit also fixes a bug where message of type `email_outgoing` were not properly considered as email messages. To fix this issue, `message.type === "email"` has been replaced with
`message.type.includes("email")` to also take these messages into account.
Task-3573855


Forward-Port-Of: odoo/odoo#140176Since [1], highlighting a pinned message from the notification sent to the channel does not work anymore. This is due to a `super` call missing. This PR fixes the issue. Steps to reproduce: - Go to a channel - Pin a message - Click on the "message" link - Nothing happens [1]: https://github.com/odoo/odoo/pull/121418 Forward-Port-Of: odoo/odoo#139948 Forward-Port-Of: odoo/odoo#139876
Original PR description
Since [1], highlighting a pinned message from the notification sent to the channel does not work anymore. This is due to a `super` call missing. This PR fixes the issue. Steps to reproduce: - Go to a channel - Pin a message - Click on the "message" link - Nothing happens [1]: https://github.com/odoo/odoo/pull/121418 Forward-Port-Of: odoo/odoo#139948 Forward-Port-Of: odoo/odoo#139876
Steps to reproduce: ------------------- - create a job application; - add an applicant name; - add an email with a wrong format. - save; Issue: ------ A traceback occurs. Solution: --------- Check that the normalized email exists (that it is not `False`) before using it. opw-3544918 Forward-Port-Of: odoo/odoo#139456
Original PR description
Steps to reproduce: ------------------- - create a job application; - add an applicant name; - add an email with a wrong format. - save; Issue: ------ A traceback occurs. Solution: --------- Check that the normalized email exists (that it is not `False`) before using it. opw-3544918 Forward-Port-Of: odoo/odoo#139456
This commit contains the following changes: - Mobile view for devices with a width under 'SIZE.MD' - Align mobile view bottom buttons - Reduce size of category bar when images Forward-Port-Of: odoo/odoo#139686
Original PR description
This commit contains the following changes: - Mobile view for devices with a width under 'SIZE.MD' - Align mobile view bottom buttons - Reduce size of category bar when images Forward-Port-Of: odoo/odoo#139686
Forward-Port-Of: odoo/odoo#139915
Original PR description
Forward-Port-Of: odoo/odoo#139915
Steps to reproduce: - Enable multi-step reception - Create a reception in WH/Input - Open an internal picking further down the chain - Change its contact Issue: The location_id and location_dest_id is getting reset to Operation type's default locations, which will raise a warning because the location/dest don't match the ones from the moves anymore. It was decided to only allow the automatic compute of locations for draft pickings. Which means : - Compute will trigger normally when m
Original PR description
Steps to reproduce: - Enable multi-step reception - Create a reception in WH/Input - Open an internal picking further down the chain - Change its contact Issue: The location_id and location_dest_id is getting reset to Operation type's default locations, which will raise a warning because the location/dest don't match the ones from the moves anymore. It was decided to only allow the automatic compute of locations for draft pickings. Which means : - Compute will trigger normally when manually creating a picking - Picking type is readonly outside of draft anyway, so don't change anything for this change - Changing locations of a non-draft picking is a risky operation, as they won't match the moves. So better leave it as a manual change. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140055
**Fw-port of https://github.com/odoo/odoo/pull/138259** Steps to reproduce: - Edit a mailing (mass_mailing) - Click the save icon - Type to '/' to open the Powerbox (it does not...) The `getPowerboxElement` function fails to return the correct node because `this.options.document` is no longer the iframe document after the Wysiwyg component is re-rendered. This happens because when the Wysiwyg component has its props updated, its `options.document` is overwritten by its default option (t
Original PR description
**Fw-port of https://github.com/odoo/odoo/pull/138259** Steps to reproduce: - Edit a mailing (mass_mailing) - Click the save icon - Type to '/' to open the Powerbox (it does not...) The `getPowerboxElement` function fails to return the correct node because `this.options.document` is no longer the iframe document after the Wysiwyg component is re-rendered. This happens because when the Wysiwyg component has its props updated, its `options.document` is overwritten by its default option (the top document). This commit makes sure that, when the editor is mounted inside an iframe, `options.document` evaluates to the iframe's document throughout the entirety of the Wysiwyg component lifecycle. task-3548120 Forward-Port-Of: odoo/odoo#140075
Steps to reproduce: - Create a new Maintenance Request - Set an Equipment Issue: In the compute we use `company` instead of `company_id`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140062
Original PR description
Steps to reproduce: - Create a new Maintenance Request - Set an Equipment Issue: In the compute we use `company` instead of `company_id`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140062
The forms are always in edit mode, so no need to refer to the "edit mode" anymore. Also the 'done quantities' no longer exists from the user pov, there's only a 'quantity' field. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140094
Original PR description
The forms are always in edit mode, so no need to refer to the "edit mode" anymore. Also the 'done quantities' no longer exists from the user pov, there's only a 'quantity' field. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140094
Steps to reproduce: - Create a Delivery - Put any product, some quantity and save Issue: The forecast icon disappears as soon as the picking leaves its 'draft' state. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140114
Original PR description
Steps to reproduce: - Create a Delivery - Put any product, some quantity and save Issue: The forecast icon disappears as soon as the picking leaves its 'draft' state. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140114
## Usecase It is sometimes desirable to completely remove a field from the automated tracking message when setting a custom message that already covers the change being made. ## Solution Add an argument when setting a custom message to (conditionally) filter out the tracking fields from the end message. task-2974500 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#109606
Original PR description
## Usecase It is sometimes desirable to completely remove a field from the automated tracking message when setting a custom message that already covers the change being made. ## Solution Add an argument when setting a custom message to (conditionally) filter out the tracking fields from the end message. task-2974500 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#109606
Currently when you fill quantity on the stock.move and directly click on the details operation button, you will see move lines based on initial quantity. It happens due to the inverse of quantity on stock.move that is only trigger on the save (expected). But in our case, we want to do a save before opening the stock.move.line to have something according to the quantity. We also only trigger the save when the quantity has been change and the stock.move is open. + Hide quantity in draft D
Original PR description
Currently when you fill quantity on the stock.move and directly click on the details operation button, you will see move lines based on initial quantity. It happens due to the inverse of quantity on stock.move that is only trigger on the save (expected). But in our case, we want to do a save before opening the stock.move.line to have something according to the quantity. We also only trigger the save when the quantity has been change and the stock.move is open. + Hide quantity in draft 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#140059
Replace the warning by a usererror. That way it rollbacks to the previous quantity. It will avoid to fake the user thinking he could bypass the warning and remove the quantity silently later. 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#140172
Original PR description
Replace the warning by a usererror. That way it rollbacks to the previous quantity. It will avoid to fake the user thinking he could bypass the warning and remove the quantity silently later. 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#140172
Enhanced reports for better compatibility with Odoo 16.4's new Report Editor: - Added `<div class="oe_structure"></div>` for user customization. - Converted t-field/t-esc/t-out from div to span. - Introduced demo data and adjusted t-if/t-else branching. - Bundled t-if/elif/else directives for the 'condition selector' UI. - Refactored `<t>` nodes in tables where feasible. task-3447407 Forward-Port-Of: odoo/odoo#135739
Original PR description
Enhanced reports for better compatibility with Odoo 16.4's new Report Editor: - Added `<div class="oe_structure"></div>` for user customization. - Converted t-field/t-esc/t-out from div to span. - Introduced demo data and adjusted t-if/t-else branching. - Bundled t-if/elif/else directives for the 'condition selector' UI. - Refactored `<t>` nodes in tables where feasible. task-3447407 Forward-Port-Of: odoo/odoo#135739
Changing the destination location on a picking will: - Change the dest location of its stock.move - Not change the dest location of stock.move.line So it the picking has been reserved, everything will be send to an incorrect location. On top of it, the system prevent to select a destination location that is not a child of the move dest location. This commit, redirect the location dest on stock.move.line when the dest location on stock.move change. Description of the issue/feature this
Original PR description
Changing the destination location on a picking will: - Change the dest location of its stock.move - Not change the dest location of stock.move.line So it the picking has been reserved, everything will be send to an incorrect location. On top of it, the system prevent to select a destination location that is not a child of the move dest location. This commit, redirect the location dest on stock.move.line when the dest location on stock.move change. 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#140101
Follows commit: ffef01e327b0263a2af4892e9e438a2c0ef22184. It caused an issue in Firefox: On the sale order form view (with the field "notes" handled by the OdooEditor), clicking on a Many2one made the browser crash because the method getSelection did not exist on the target which was the input element. It did not crash in chrome as the event's target was always the Document. The added test actually tests the feature of the referenced commit, and checks, as much as possible, that there is
Original PR description
Follows commit: ffef01e327b0263a2af4892e9e438a2c0ef22184. It caused an issue in Firefox: On the sale order form view (with the field "notes" handled by the OdooEditor), clicking on a Many2one made the browser crash because the method getSelection did not exist on the target which was the input element. It did not crash in chrome as the event's target was always the Document. The added test actually tests the feature of the referenced commit, and checks, as much as possible, that there is no crash. 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#140143
Current behavior before PR: Currently, the "Amounts to settle" button in the "Vendors" drop-down menu opens a view showing all the account.move.line that are to be reconciled. Also, they should only be shown when their residual is less than zero. --- Desired behavior after PR is merged: This commit makes it now so that when clicking on that button, only the amls linked to a purchase journal are shown and another "Amounts to Settle" button has been added in the "Customers" drop-down menu
Original PR description
Current behavior before PR: Currently, the "Amounts to settle" button in the "Vendors" drop-down menu opens a view showing all the account.move.line that are to be reconciled. Also, they should only be shown when their residual is less than zero. --- Desired behavior after PR is merged: This commit makes it now so that when clicking on that button, only the amls linked to a purchase journal are shown and another "Amounts to Settle" button has been added in the "Customers" drop-down menu to show the amls linked to a sale journal --- Enterprise: https://github.com/odoo/enterprise/pull/49706 task-3572482 --- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/odoo#140040
Issue: ====== - When a user attempt a certification it will count as 1st attempt and then do retry directly it will count as second attempt : fine. - When a user attempt a certification it will count as 1st attempt and then exit the page and go to the certification again it will count as 1st attempt too. So the user can have unlimited number of attempts like this. Steps to reproduce the issue: ============================= - Install survey , elearning - Go to a course with a c
Original PR description
Issue: ====== - When a user attempt a certification it will count as 1st attempt and then do retry directly it will count as second attempt : fine. - When a user attempt a certification it will count…
Issue: ====== - When a user attempt a certification it will count as 1st attempt and then do retry directly it will count as second attempt : fine. - When a user attempt a certification it will count as 1st attempt and then exit the page and go to the certification again it will count as 1st attempt too. So the user can have unlimited number of attempts like this. Steps to reproduce the issue: ============================= - Install survey , elearning - Go to a course with a certification and do the certification, exit the page and enter to it again. - Go to the user page and see the certifications you will see they both counted as 1st attempt. Expected behavior: ================== - when a user leaves a course (willingly or not) we remove the relationship between the user_input and slide_partner_id. - To get the remaining attempts we just get the user_input_ids of the slide_partner because the old ones are removed. opw-3498054 Forward-Port-Of: odoo/odoo#135910
Tooltip items are not correctly sorted anymore after migration to last Chart.js version in the commit eb530b83b06a057f96. This feature is fixed in this commit. task-3552948 Forward-Port-Of: odoo/odoo#139676
Original PR description
Tooltip items are not correctly sorted anymore after migration to last Chart.js version in the commit eb530b83b06a057f96. This feature is fixed in this commit. task-3552948 Forward-Port-Of: odoo/odoo#139676
Change the global filter icon from the `fa-search` to something more filter-like. Also use the same icon in shared dashboard. Task: [3560817](https://www.odoo.com/web#id=3560817&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-P
Original PR description
Change the global filter icon from the `fa-search` to something more filter-like. Also use the same icon in shared dashboard. Task: [3560817](https://www.odoo.com/web#id=3560817&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#139164
**Step to reproduce**: - Create a pos session - Create a new order - Process the payment (the syncing has to be long to notice the issue) **Issue**: You can still click on buttons in the interface payment screen and trigger tracebacks **Cause**: The ui is not blocked while syncing orders **Solution**: Block the ui while syncing orders --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140032 Forward-Port
Original PR description
**Step to reproduce**: - Create a pos session - Create a new order - Process the payment (the syncing has to be long to notice the issue) **Issue**: You can still click on buttons in the interface payment screen and trigger tracebacks **Cause**: The ui is not blocked while syncing orders **Solution**: Block the ui while syncing orders --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140032 Forward-Port-Of: odoo/odoo#137974
Before this commit, when opening a thread in the Discuss app and changing to another active thread from the Messaging Meu in the systray, the new thread was mistakenly renamed to the previous active thread name. This happens because the component `AutoresizeInput`, which is used to show the thread name in the header of Discuss app, also allows to rename the thread. The code to trigger rename was too naïve, in that a click away was considered as a rename operation on the current thread. Thi
Original PR description
Before this commit, when opening a thread in the Discuss app and changing to another active thread from the Messaging Meu in the systray, the new thread was mistakenly renamed to the previous active thread name. This happens because the component `AutoresizeInput`, which is used to show the thread name in the header of Discuss app, also allows to rename the thread. The code to trigger rename was too naïve, in that a click away was considered as a rename operation on the current thread. This commit fixes the issue by triggering the editing of the value in the `AutoresizeInput` component only when the click away happens while the input had focus. The click in messaging menu will not trigger it as the input is not focused. Task-3570377 Forward-Port-Of: odoo/odoo#140208 Forward-Port-Of: odoo/odoo#140086
Make partner_id and guest_id properly exclusive. Allow creating a channel member from its form view. Forward-Port-Of: odoo/odoo#140272
Original PR description
Make partner_id and guest_id properly exclusive. Allow creating a channel member from its form view. Forward-Port-Of: odoo/odoo#140272
Currently, if a user has an active deferred entry whose account has been deprecated in the mean time, we create a move line containing this deprecated account which raises an unclear error to the user. Now, instead, we let the user create deferral entries for deprecated accounts. We also add a test to check that old moves are not taken into account when generating deferral entries. task-id 3544877 Enterprise PR: https://github.com/odoo/enterprise/pull/48631 Forward-Port-Of: odoo/odo
Original PR description
Currently, if a user has an active deferred entry whose account has been deprecated in the mean time, we create a move line containing this deprecated account which raises an unclear error to the user. Now, instead, we let the user create deferral entries for deprecated accounts. We also add a test to check that old moves are not taken into account when generating deferral entries. task-id 3544877 Enterprise PR: https://github.com/odoo/enterprise/pull/48631 Forward-Port-Of: odoo/odoo#140155 Forward-Port-Of: odoo/odoo#138959
Prior to this commit, the Request for Quotations (RFQ) dashboard suffered from a visibility issue. Specifically, the values displayed on the right section of the dashboard were using a background color class that was not correctly used leading to poor differentiation between the values and their corresponding labels/titles. This commit apply the correct background colors to these elements. task-3573792 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submi
Original PR description
Prior to this commit, the Request for Quotations (RFQ) dashboard suffered from a visibility issue. Specifically, the values displayed on the right section of the dashboard were using a background color class that was not correctly used leading to poor differentiation between the values and their corresponding labels/titles. This commit apply the correct background colors to these elements. task-3573792 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140167
Dark-mode colors have been adapted from MILK redesign in 16.3 [1]. Discuss badge colors were changed in 16.4 to match systray color [2]. Commit [1] adapted them to use primary color instead of intended sytray color. Removing the override of style fixes the issue, as the base style in `core.scss` (white theme) works in both themes. [1]: https://github.com/odoo/odoo/pull/130991 [2]: https://github.com/odoo/odoo/pull/122946 Before  works in both themes. [1]: https://github.com/odoo/odoo/pull/130991 [2]: https://github.com/odoo/odoo/pull/122946 Before  After  Forward-Port-Of: odoo/odoo#140300 Forward-Port-Of: odoo/odoo#140265
Before this commit, the avatar next to composer in Discuss app had the top aligned with the top of the text input of composer. The avatar is smaller than the input, and the text in the input is centered, so the alignment looks off. This commit fixes the issue by offseting the avatar so that when the composer has only 1 line, the avatar is vertically centered with the input. Note that this alignment should be fixed, i.e. if the input field has more than 1 line, we want to keep the avatar in
Original PR description
Before this commit, the avatar next to composer in Discuss app had the top aligned with the top of the text input of composer. The avatar is smaller than the input, and the text in the input is centered, so the alignment looks off. This commit fixes the issue by offseting the avatar so that when the composer has only 1 line, the avatar is vertically centered with the input. Note that this alignment should be fixed, i.e. if the input field has more than 1 line, we want to keep the avatar in the same place, hence why the avatar is just statically offset. Also align composer avatar with message list, by removing the `align-justify: self` that was moving avatar slightly towards the discuss app sidebar. Before  After  Forward-Port-Of: odoo/odoo#140336
Use the correct name for the resource selected in the URL param and don't take into account linked resources that don't have remaining capacity or that are not part of the initial resources available. task-3424035 Forward-Port-Of: odoo/enterprise#49845 Forward-Port-Of: odoo/enterprise#44101
Original PR description
Use the correct name for the resource selected in the URL param and don't take into account linked resources that don't have remaining capacity or that are not part of the initial resources available. task-3424035 Forward-Port-Of: odoo/enterprise#49845 Forward-Port-Of: odoo/enterprise#44101
This PR regroupes many fixes and improvements regarding the deferred: See the details in the commits :) task-id 3544877 Community https://github.com/odoo/odoo/pull/138959 Forward-Port-Of: odoo/enterprise#49758 Forward-Port-Of: odoo/enterprise#48631
Original PR description
This PR regroupes many fixes and improvements regarding the deferred: See the details in the commits :) task-id 3544877 Community https://github.com/odoo/odoo/pull/138959 Forward-Port-Of: odoo/enterprise#49758 Forward-Port-Of: odoo/enterprise#48631
Change the global filter icon from the `fa-search` to something more filter-like. Also use the same icon in shared dashboard. Task: [3560817](https://www.odoo.com/web#id=3560817&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#49166
Original PR description
Change the global filter icon from the `fa-search` to something more filter-like. Also use the same icon in shared dashboard. Task: [3560817](https://www.odoo.com/web#id=3560817&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#49166
Steps to reproduce ================== - On safari, go to an odoo instance with https (you can use browserstack + ngrok) - Install documents - Go to documents - Click on a document - Click on the share icon -> NotAllowedError opw-3556808 Forward-Port-Of: odoo/enterprise#49767 Forward-Port-Of: odoo/enterprise#49291
Original PR description
Steps to reproduce ================== - On safari, go to an odoo instance with https (you can use browserstack + ngrok) - Install documents - Go to documents - Click on a document - Click on the share icon -> NotAllowedError opw-3556808 Forward-Port-Of: odoo/enterprise#49767 Forward-Port-Of: odoo/enterprise#49291
Enhanced reports for better compatibility with Odoo 16.4's new Report Editor: - Added `<div class="oe_structure"></div>` for user customization. - Converted t-field/t-esc/t-out from div to span. - Introduced demo data and adjusted t-if/t-else branching. - Bundled t-if/elif/else directives for the 'condition selector' UI. - Refactored `<t>` nodes in tables where feasible. task-3447407 Forward-Port-Of: odoo/enterprise#47501
Original PR description
Enhanced reports for better compatibility with Odoo 16.4's new Report Editor: - Added `<div class="oe_structure"></div>` for user customization. - Converted t-field/t-esc/t-out from div to span. - Introduced demo data and adjusted t-if/t-else branching. - Bundled t-if/elif/else directives for the 'condition selector' UI. - Refactored `<t>` nodes in tables where feasible. task-3447407 Forward-Port-Of: odoo/enterprise#47501
Cancelling an appointment would log multiple tracking updates and show the tracking update inside the cancellation message: "Appointment canceled by: John Active: True -> False" This change disables tracking messages during the cancelation process and lets the custom message convey the change. Archiving a appointment will also post a custom message instead of the regular tracking message. track_recipients is enabled for bookings and cancelation as these messages would often be auto
Original PR description
Cancelling an appointment would log multiple tracking updates and show the tracking update inside the cancellation message: "Appointment canceled by: John Active: True -> False" This change disables tracking messages during the cancelation process and lets the custom message convey the change. Archiving a appointment will also post a custom message instead of the regular tracking message. track_recipients is enabled for bookings and cancelation as these messages would often be automated and being able to tell whether the organiser received the notification is relevant. Task-2974500 Forward-Port-Of: odoo/enterprise#31795
Commit 9b729b15 changed the provider code of SEPA from 'sepa_direct_debit' to 'custom' but did not adapt the check on the provider code when computing the display name of tokens. This caused SEPA tokens' name to be padded •••• instead of using the bank account's number as name. Forward-Port-Of: odoo/enterprise#49748
Original PR description
Commit 9b729b15 changed the provider code of SEPA from 'sepa_direct_debit' to 'custom' but did not adapt the check on the provider code when computing the display name of tokens. This caused SEPA tokens' name to be padded •••• instead of using the bank account's number as name. Forward-Port-Of: odoo/enterprise#49748
This commit adds a notification to the buger menu in mobile view when a filter is selected. Forward-Port-Of: odoo/enterprise#49605
Original PR description
This commit adds a notification to the buger menu in mobile view when a filter is selected. Forward-Port-Of: odoo/enterprise#49605
*: approvals, voip, whatsapp Before this commit, messages in chatbot conversation were not properly markup. This comes from changes from [1] that added trusted insert. Original code in `Record.insert()` makes a model insertion of the data using the `html` flag. Patches must not override `static insert()` as only the super call is affected by the provided `html` flag. For patches to take account of it, they must instead patch `_insert`, with `_` prefix, which is internally called by original `
Original PR description
*: approvals, voip, whatsapp Before this commit, messages in chatbot conversation were not properly markup. This comes from changes from [1] that added trusted insert. Original code in…
*: approvals, voip, whatsapp Before this commit, messages in chatbot conversation were not properly markup. This comes from changes from [1] that added trusted insert. Original code in `Record.insert()` makes a model insertion of the data using the `html` flag. Patches must not override `static insert()` as only the super call is affected by the provided `html` flag. For patches to take account of it, they must instead patch `_insert`, with `_` prefix, which is internally called by original `Record.insert()`. In addition: - `static insert` allows array of data while `static _insert` works with data on single record. Patches were designed with data on single record, so some code were not working properly - Signature of `static insert` has been overloaded with new option `html: true`, so patches must propagate it. They were only propagating `data` and omitting the 2nd paramater, which results in omitting provided `html` thus falling back to `html: false`, resulting to non-escaping message body This commit fixes all model patches to override `static _insert` instead of `static insert`. [1]: https://github.com/odoo/odoo/pull/139501 https://github.com/odoo/odoo/pull/140064 Forward-Port-Of: odoo/enterprise#49718
…as with attachments Problem --------- Previously, when receiving an email with several attachments, we created 1 invoice that contained all the attachments. Objective --------- We want to create several invoices depending on the attachments received. No invoice should have more than one PDF document. No invoice should have more than one XML document. Other attachments should be placed in separate invoices (except for the first invoice that can contain 2 attachments: ex. image and PDF)
Original PR description
…as with attachments Problem --------- Previously, when receiving an email with several attachments, we created 1 invoice that contained all the attachments. Objective --------- We want to create several invoices depending on the attachments received. No invoice should have more than one PDF document. No invoice should have more than one XML document. Other attachments should be placed in separate invoices (except for the first invoice that can contain 2 attachments: ex. image and PDF). Solution --------- Update the _extend_with_attachments to behave like such. task-3526248 Forward-Port-Of: odoo/enterprise#49779
**Steps:** - Open Planning without demo data - Click on the Week > dropdown menu will open **Issue:** - The dropdown menu is getting overlapped by the content helper. **Cause:** - Before the milky theme, this button was along with other buttons in the control panel, but now it's moved inside hence there is a conflict in the z-index of content helper and the dropdown menu **Fix:** - Changing the z-index of content helper **Task:** 3446994 Forward-Port-Of: odoo/enterprise#45461
Original PR description
**Steps:** - Open Planning without demo data - Click on the Week > dropdown menu will open **Issue:** - The dropdown menu is getting overlapped by the content helper. **Cause:** - Before the milky theme, this button was along with other buttons in the control panel, but now it's moved inside hence there is a conflict in the z-index of content helper and the dropdown menu **Fix:** - Changing the z-index of content helper **Task:** 3446994 Forward-Port-Of: odoo/enterprise#45461
[FIX] account_reports: properly handle lines without codes in sum_children aggregations If some child lines did not have any code, sum_children did not work well, and the report could not be opened. --------------------------- [IMP] account_reports: add a test checking a sum_children aggregation can properly be audited This case was untested and broken (it entered an infinite loop when trying to expand the aggregation and loaded forever). The community counterpart of this PR fixes
Original PR description
[FIX] account_reports: properly handle lines without codes in sum_children aggregations If some child lines did not have any code, sum_children did not work well, and the report could not be opened. --------------------------- [IMP] account_reports: add a test checking a sum_children aggregation can properly be audited This case was untested and broken (it entered an infinite loop when trying to expand the aggregation and loaded forever). The community counterpart of this PR fixes the bug ; this commit adds the proper test to ensure this does not happen again. Forward-Port-Of: odoo/enterprise#49365 Forward-Port-Of: odoo/enterprise#49133