Wednesday, April 13, 2022
19 changes · master
Enhancements to existing features
The mail app's message and chat window logic was reorganized so key actions live in shared data models rather than screen components. This internal improvement should make future changes easier and reduce the risk of fragile behavior, without introducing a major user-facing change.
Original PR description
This commit moves some handler methods from components to models, as a step closer to having most of business code in models. Having business code in models is desirable so that the code is much more maintainable: easier to change and more robust code. Task-2579306
This update standardizes a shorthand used by Odoo developers to express optional search filters. It makes common filtering rules easier to write and maintain, reducing complexity in core code without changing expected business behavior.
Original PR description
Previous to this PR, [we had only 1 short-circuit operator: `=?`](https://github.com/odoo/odoo/blob/44029495bc4f85c9f99b16dbab0a49c6ba0f19f9/odoo/osv/expression.py#L1028-L1035). This PR formalizes…
Previous to this PR, [we had only 1 short-circuit operator: `=?`](https://github.com/odoo/odoo/blob/44029495bc4f85c9f99b16dbab0a49c6ba0f19f9/odoo/osv/expression.py#L1028-L1035).
This PR formalizes the concept and applies it to all existing operators, also introducing a left short-circuit equivalent (`?=`).
```
Short-circuit operators are:
<term_operator>? right is false or left <term_operator> right
?<term_operator> left is false or left <term_operator> right
Some examples of short-circuit operators:
=? right = false or left = right
!=? right = false or left != right
>? right = false or left > right
<? right = false or left < right
>=? right = false or left >= right
<=? right = false or left <= right
in? right = false or left in right
not in? right = false or left not in right
?= left = false or left = right
?!= left = false or left != right
?> left = false or left > right
?< left = false or left < right
?>= left = false or left >= right
?<= left = false or left <= right
?in left = false or left in right
?not in left = false or left not in right
```
Using short-circuit operators enables the simplification of some domains like, for example, probably the most common one in Odoo:
`[('|', ('company_id', '=', False), ('company_id', 'in', company_ids)]`
With short-circuit operators:
`[('company_id', '?in', company_ids)]`
Here's another example with a datetime field:
`['|', ('deadline', '=', False), ('deadline', '<=', fields.Datetime.now())]`
`[('deadline', '?<=', fields.Datetime.now())]`
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThe mail composer was simplified by removing an outdated internal content-reading method. This makes the messaging code easier to maintain and helps reduce future issues without changing the user experience.
Original PR description
Task-2579306
This update simplifies the mail message composer by removing an unnecessary internal text selection helper. It helps keep the messaging code easier to maintain without changing how users write or send messages.
Original PR description
Task-2579306
The mail composer has been updated to handle Enter key actions through a dedicated composer view. This makes message writing behavior easier to maintain and helps ensure a smoother, more consistent user experience when composing messages.
Original PR description
Task-2579306
The mail app now handles the Enter key in the message composer through a clearer shared view layer. This should make composer behavior easier to maintain and help keep message-entry interactions consistent across the application.
Original PR description
Task-2579306
The Discuss app now has a clearer action for starting a new chat on mobile. This helps users begin conversations more easily from smaller screens, improving the mobile messaging experience.
Original PR description
Task-2579306
The Discuss app is being updated to better handle the action for creating a new channel on mobile. This should make the mobile messaging experience more consistent and easier to maintain as the interface evolves.
Original PR description
Task-2579306
The Discuss mobile interface now has a clearer internal handling for selecting mailbox items. This improves the reliability and maintainability of the mobile messaging experience, helping users navigate conversations more smoothly.
Original PR description
Task-2579306
Discuss is being updated to better manage the quick search input within the messaging interface. This helps prepare the mail app for smoother navigation and more reliable search interactions in Discuss.
Original PR description
Task-2579306
This update improves how the Discuss app handles the action to start a meeting from the sidebar. It helps keep the meeting-start flow better organized and easier to maintain, supporting a smoother collaboration experience for users.
Original PR description
Task-2579306
The Discuss app now handles quick search input through the main Discuss view, making the search experience in the sidebar more consistent and easier to maintain. This helps users find conversations more smoothly while supporting future improvements to the messaging interface.
Original PR description
Task-2579306
The Discuss app now has a dedicated mobile mailbox selection view, making it easier for users to navigate conversations on smaller screens. This improves the mobile messaging experience by presenting mailbox choices in a more focused and accessible way.
Original PR description
Task-2579306
The mail app now handles follow-button clicks through the message thread itself, making follow and unfollow actions more consistent. This improves reliability and maintainability of the user experience around following conversations.
Original PR description
Task-2579306
The mail app now handles the unfollow action through the conversation itself, making follower controls more consistent. This should make maintaining and improving the follow/unfollow experience easier while keeping the user-facing behavior stable.
Original PR description
Task-2579306
The mail app’s internal message and discussion handling has been reorganized so more business logic sits in shared models instead of screen components. This should make future changes easier, reduce duplication, and improve long-term reliability without introducing major visible changes for users.
Original PR description
This commit moves some handler methods from components to models, as a step closer to having most of business code in models. Having business code in models is desirable so that the code is much more maintainable: easier to change and more robust code. Task-2579306
HR teams can now send contract signature requests to several employees in one flow instead of repeating the process individually. The signature request wizard also supports attaching files and can proceed by finding the right contact even when an employee has no linked user account.
Original PR description
This commit allows to send sign requests to multiple employees at once , as well as attaching files using the signature request wizard. TaskId-2774221
Users can now open the form view for a specific record directly from a spreadsheet list via the context menu. This makes it easier to inspect or update underlying business records without navigating away manually.
Original PR description
Depends on https://github.com/odoo/enterprise/pull/24567
Payslip batches now skip unnecessary checks when expense-related payroll data does not require them. This reduces extra database work during batch creation, helping payroll processing run more efficiently without changing the user workflow.
Original PR description
Filters out 2 queries when creating payslips if they are not necessary.