Thursday, July 22, 2021
28 changes · master
Enhancements to existing features
Common action buttons across Odoo now include keyboard shortcuts, making frequent tasks faster to complete. This improves day-to-day productivity, especially in accounting and related workflows, by reducing reliance on mouse clicks in forms and pop-up dialogs.
Original PR description
Define `data-hotkey` on most used action buttons. TaskID: 2588233 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The task analysis report now offers clearer measures, labels, filters, and grouping options so teams can better understand project task performance. Users can analyze ratings, assignment and closure times, deadlines, customers, sales orders, tags, and team ownership more easily.
Original PR description
Purpose of the commit is to improve the task analysis report of the project app. So in this commit, done the below changes: - removed the # of tasks measure - added the following measures: Rating Value (/5), Working Hours to Assign, Working Hours to Close - removed the # from the labels of the following measures: Days to Deadline, Working Days to Assign,Working Days to Close - renamed 'task title' into 'task' - added a search on tag_ids and sale_order_id - added the following filters: -My Projects + My Team's Projects -My Tasks + My Team's Tasks (rename 'Unassigned' into 'Unassigned Tasks') -Starred -Tasks Late + Tasks in Overtime - added the following group bys: task, customer, kanban state, assignment date, creation date, deadline, last stage update TaskID: 2508645
The system now reads only the action information needed to show Action and Print menus, instead of loading extra data that is not used. This slightly improves page response time and reduces data transferred when views are loaded.
Original PR description
`load_views` calls `get_bindings` to render Action and Print menu. Before this update, it read all action fields, including heavy computed fields like `search_view` (which calls fields_view_get). But in fact just few fields are used. This slighly improves response time and data size.
Project and field service task forms now keep key project and tag details visible and have cleaner button ordering. Calendar year-view popovers now show event times correctly, making schedules easier to read.
Original PR description
project: project_id and tag_ids should be always visible in fsm mode too. also re-sequence the task form view buttons and added class for the proper xpath. web: Currently, the time in popover of the year view does not appear with the title due to record.allday is undefined instead of false So in this commit, check if record.allday is not exist then display the time in front of the title instead of after the title. TaskID: 2502339
Pricelist entries now prevent invalid date ranges, such as an end date that is the same as or earlier than the start date. This helps businesses avoid pricing rules that could behave unexpectedly or be applied incorrectly.
Original PR description
Description of the issue/feature this PR addresses: date range validation for pricelist item records in pricelist Current behavior before PR: It is possible to enter invalid date ranges (start and…
Description of the issue/feature this PR addresses: date range validation for pricelist item records in pricelist Current behavior before PR: It is possible to enter invalid date ranges (start and end date) for pricelist items in pricelists.  Desired behavior after PR is merged: It is not possible to enter invalid date ranges for pricelist items in pricelists. Valid date ranges: - end date is set - start date is set - end date is greater than start_date  Invalid date ranges: - start date is greater than end date - start date and end date are the same  Validation message example:  -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now edit fields shown with the remaining days display while in edit mode, using the usual date or date-time picker. In read-only mode, the field continues to show easy labels such as today, yesterday, or the time difference, making dates both clear to read and easier to update.
Original PR description
PURPOSE remaining_days widget is not editable and it just shows information based on value like, Today, Yesterday, Tommorrow etc, when we change mode to edit it should have date/datetime picker so that user can change value of the widget. SPEC remaining_days widget will display date/datetime picker in edit mode and in readonly mode it will display delta between the value of the field and today. TASK 2507961 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves the Field Service app experience across task forms, kanban boards, maps, calendars, and lists. Teams get clearer task details, better scheduling visibility, cleaner popovers, and more consistent displays for assignments, tags, hours, and worksheets.
Original PR description
Purpose of the commit is to do the generic improvment So in this commit done the below changes: 1) Form view: - move the 'planned date' field below the 'parent task' one - switch the overlapping…
Common action buttons across many Odoo business apps now support keyboard shortcuts. This makes frequent workflows faster and easier to navigate, especially in forms and pop-up windows where users repeatedly add, save, or cancel actions.
Original PR description
Resolved issues and error corrections
Kanban boards now behave correctly when filters are active, including when cards are moved between columns or search criteria change. This prevents misleading column progress bars and refreshes emptied filtered columns, giving users a more accurate view of their work.
Original PR description
Task 2454209 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
Miscellaneous changes
Fixes taking a half day outside of working hours counting as half a day instead of nothing. Since hr_work_entry_holidays has been moved to community in 14.3 also apply it here See odoo/odoo#68977 See odoo/enterprise#18454 Forward-Port-Of: odoo/odoo#71136
Original PR description
Fixes taking a half day outside of working hours counting as half a day instead of nothing. Since hr_work_entry_holidays has been moved to community in 14.3 also apply it here See odoo/odoo#68977 See odoo/enterprise#18454 Forward-Port-Of: odoo/odoo#71136
Purpose of the commit is to do the generic improvment So in this commit done the below changes: 1) Form view: - move the 'planned date' field below the 'parent task' one - switch the overlapping tasks and recurring tasks warning from place - overlapping tasks warning: indicate 'task' instead of 'tasks' when the nb=1 - reorder the stat buttons 2) Kanban view: - display tags below the partner - the remaining hours tag should have the same design and visibility conditions than project tasks - update the quickcreate - change the name placeholder to: "e.g. Boiler replacement" - use the avatar widget for the user_id field - the start hour should be formatted as 10:00 PM instead of 22:00 PM - display the project below the name of the task 3) Map view: - added the worksheet template - move the date below the phone - Map popover added the project and assigned to field below the name 4) Calendar view: - display non working days (according to the company calendar) and global time off in grey - the city, zip and phone fields should only be visible if set - Calendar popover - add the worksheet template field below the name; only visible if set - remove the city and the zip fields and display the full address of the customer below his name instead - add the tags field below the phone one; only visible if set - Calendar popover - add the project and assigned to field below the name - use the avatar widget for the 'assigned to' field - open the day mode by default in the 'my tasks' menus - year mode: display the start hour in front of the name - display the avatar of the user in the right side panel 5) List view: - use the time widget for the 'hours spent' field - move the company field to the right of the user_id one - add the 'initially planned hours' field to the right of the 'end date' one - remove the deadline field - add the following fields on the right of the 'hours spent' one: remaining hours, remaining hours on SO, sub-tasks hours spent, total hours, progress - add the following fields to the right of the tags field: kanban state, stage - the sub-tasks hours spent and total hours fields should only be visible if the 'sub-tasks' feature is enabled in the settings of Project - add the priority field on the left of the name - display it in the same style as the products list view - the project and customer fields should be optional - the following fields should be displayed by default: project, assigned to, worksheet template, customer, start date, end date, next activity, tags, company - the following fields should be hidden by default: priority, initially planned hours, hours spent, remaining hours, remaining hours on SO, sub-tasks hours spent, total hours, progress, kanban state, stage - sort tasks by start date (from least to most recent) 6) Gantt view: - Gantt view popover - add the worksheet template field above the partner one; only visible if set - rename 'stop date' into 'end date' - add the project and assigned to fields at the top - indicate 'x other tasks for this employee at the same time' in red, below the tags field when applicable - open the day mode by default in the 'my tasks' menus 7) Activities view: - the list view and filters displayed when scheduling an activity should be the ones from field service instead of project 8) Graph/pivot views: - the list view opened when clicking on an element of the graph/pivot views should indicate 'Tasks' instead of 'Project Tasks' - group by project instead of project > stage in the 'to invoice' menu - Enable the sample data for the pivot/graph view of the worksheer template. 9) REPORTING: - remove the following measures: # days to deadline, # of tasks - remove the # in the following labels: working days to assign, working days to close - pivot view: group by project > assigned to 10) CONFIGURATION: - in settings - change the description of the 'time and material' feature to: "Keep track of the products used for your tasks, and invoice your time and material to your customers" - change the description of the 'extra quotations' feature to: "Create new quotations directly from your tasks" - project form view: add a 'worksheet template' label - project kanban view: use the same design as in the project app - project kanban view: display the name of the default worksheet template in muted, below the name - worksheets - change 'template name' into 'name' - display the 'create' button in form view - rename the action into 'Worksheet Templates' - remove the graph and pivot view from worksheet template menu 11) MISC: - add products: add a burger menu on hover with a button to edit the product - the 'worksheets' feature should be enabled by default when Studio is installed - my tasks > tasks menu: add a group by start date > day by default TaskID: 2502339
Define `data-hotkey` on most used action buttons. TaskID: 2588233
This fixes internal developer documentation for web notifications and popovers by restoring that certain callbacks do not return a value. It helps prevent confusion for future maintenance without changing how users experience the system.
Original PR description
odoo/odoo#74003 updated a few docstrings, half of them being the typing of callbacks to not use the TypeScript syntax / extension. However in doing so it dropped critical parts of the signature (namely the specific type of the return value -- or the lack thereof). Update this error to restore the information that the callbacks have no return value.
Report download errors are now shown in a helpful dialog instead of displaying a technical traceback. This lets users follow a redirect to fix missing company information, such as Belgian VAT details, and retry the export with less disruption.
Original PR description
Try to download a report file but knowing that the controller will raise an Exception in the case of l10n_be: Tax Report Remove the VAT number on the Belgian Company and export the report as xml Before this commit, the error was not well handled, i.e. a traceback was shown After this commit, a Redirect dialog is shown, giving the possibility to the user to go on the company's list view and change some company's fields. 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
This fix restores the progress message shown while users upload media in the web editor. Users can once again see upload status clearly, reducing confusion during image or file uploads.
Original PR description
In odoo/odoo#72675 the new services were made available in the frontend, and calls to the legacy notification services were redirected to the new notification service. However, some of the behaviour of the legacy notification service was not replicated in the new one, like the ability to pass an HTML element to use inside the notification. While html content can be passed, it is cloned, meaning that the DOM of the element cannot be manipulated by the caller, which is what was being done to show progress during media upload. Although the upload progress toast looks like a notification, it's hardly a standard notification and adds a lot of behaviour, because manipulating DOM directly when it is managed by owl cannot be done safely, it has been decided to simply make it its own widget separate from the notification service, which can manipulate its own DOM freely. task-2607393
This update rewrites a web interface color definition into a more widely supported format. It helps avoid styling issues in environments where some stylesheet tools could not process the previous color format.
Original PR description
Some scss compilers are not supporting the colors written in hexadecimal with 8 digits. So to keep the the color and transparency, we have re-written the color in rgba. Issue introduced in: https://github.com/odoo/odoo/commit/a1c983250e9547c383ef677fb411b0bc589efa89 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
Helpdesk analysis reports now keep the user's chosen measurement when filters are applied. This prevents reports from unexpectedly switching back to Count, making analysis more consistent and reducing rework.
Original PR description
Current behaviour:
* In the analysis report, after having set a measure other than Count,
the measure is reset to Count after having applied a filter.
Expected behaviour:
* In the analysis report, after having set a measure other than Count,
the measure remains selected after having applied a filter.Financial reports now correctly stop listening for window resize events after users navigate away. This prevents crashes when another action is opened on top of a report, improving stability without changing report functionality.
Original PR description
When on the "account_report" client action, do an action on top of it with the actionService You should have the "account_report" as a breadcrumb Trigger the resize event on window Before this commit, the handler defined by the "account_report" client action was executed eventhough the client action was not here anymore, resulting in a crash because the DOM was not as expected After this commit, there is no crash anymore, since we disable the resize handler at the right time This follows the refactoring at: 0573acae2306bf5da2005852da9323ddc59e5431
Suppose a recurrent event synced with both calendars. Suppose that the current user is not the organizer. If one occurrence of the event is cancelled, the user won't be able to sync the calendars. To reproduce the event: (Need two Microsoft accounts A01 and A02) 1. [On Microsoft, with A01] Create an event: - Recurrent (next 3 days for instance) - With A02 2. Set the address mail of current partner with A02's address 3. Sync with Microsoft - Note that the 3 occurrences are
Original PR description
Suppose a recurrent event synced with both calendars. Suppose that the current user is not the organizer. If one occurrence of the event is cancelled, the user won't be able to sync the calendars. To…
Suppose a recurrent event synced with both calendars. Suppose that the
current user is not the organizer. If one occurrence of the event is
cancelled, the user won't be able to sync the calendars.
To reproduce the event:
(Need two Microsoft accounts A01 and A02)
1. [On Microsoft, with A01] Create an event:
- Recurrent (next 3 days for instance)
- With A02
2. Set the address mail of current partner with A02's address
3. Sync with Microsoft
- Note that the 3 occurrences are displayed
4. [On Microsoft, with A01] Cancel one occurrence
5. Sync calendars
Error: A Validation Error is raised: "The operation cannot be completed:
- Create/update: a mandatory field is not set [...]"
At some point, the module updates each occurrence of the event and
stores the occurrence's values:
https://github.com/odoo/odoo/blob/4ae90dd6f9e28e6fdff45c7612a3a756665e1489/addons/microsoft_calendar/models/microsoft_sync.py#L213-L220
However, the cancelled occurrence will be incorrectly stored. Because it
is cancelled, `_microsoft_to_odoo_values` will return {'active': False}:
https://github.com/odoo/odoo/blob/4ae90dd6f9e28e6fdff45c7612a3a756665e1489/addons/microsoft_calendar/models/calendar.py#L63-L65
Therefore, in the previous code, `values` will contain `(<Recurrence
ID>, None, None)`
Later, when applying the recurrence, the module detects all
already-existing occurrences and the others (i.e., those that need to be
created):
https://github.com/odoo/odoo/blob/02886f65e9026e1f7617c8b23c3d87edd358b168/addons/calendar/models/calendar_recurrence.py#L190-L192
where the ranges are tuples like `(<start of the occurrence>, <end>)`.
As a result, `ranges_to_create` will contain such a tuple `(None, None)`
which makes no sense
OPW-2571398
Forward-Port-Of: odoo/odoo#73719The test needs the option "Lock Confirmed Sales" enabled The current code doesn't really activate the option Forward-Port-Of: odoo/odoo#74046 Forward-Port-Of: odoo/odoo#73502
Original PR description
The test needs the option "Lock Confirmed Sales" enabled The current code doesn't really activate the option Forward-Port-Of: odoo/odoo#74046 Forward-Port-Of: odoo/odoo#73502
Take into account the case where vat of a customer is not set, otherwise with l10n_it_edi installed (after 3741e141e5) it's not possible to create them. opw-2608759 opw-2607887 opw-2608008 opw-2608759 opw-2608031 opw-2608697 opw-2608698 opw-2608814 Forward-Port-Of: odoo/odoo#74056
Original PR description
Take into account the case where vat of a customer is not set, otherwise with l10n_it_edi installed (after 3741e141e5) it's not possible to create them. opw-2608759 opw-2607887 opw-2608008 opw-2608759 opw-2608031 opw-2608697 opw-2608698 opw-2608814 Forward-Port-Of: odoo/odoo#74056
Followup of odoo/odoo@edf729c09e0ee7d77ea2763e797cd45857144923 where reveal_id was changed to a reveal_ids on industry model (comma separated list of IDs). This was changed in IAP Mining but not here. Forward-Port-Of: odoo/odoo#74036
Original PR description
Followup of odoo/odoo@edf729c09e0ee7d77ea2763e797cd45857144923 where reveal_id was changed to a reveal_ids on industry model (comma separated list of IDs). This was changed in IAP Mining but not here. Forward-Port-Of: odoo/odoo#74036
On windows when you copy paste text in and into Odoo (for example in the description when creating a ticket) a traceback occurs. There is an isWhitelist function which verifies that a node is indeed in the authorized items via the following instruction `item.matches (CLIPBOARD_WHITELISTS.nodes.join (','))` But on windows there is a comment node containing `<--StartFragment-->` Here is the clipboard data on linux and on windows for the same copied text (Hello): - Linux ``` <met
Original PR description
On windows when you copy paste text in and into Odoo (for example in the description when creating a ticket) a traceback occurs. There is an isWhitelist function which verifies that a node is indeed…
On windows when you copy paste text in and into Odoo (for example in the description when creating a ticket) a traceback occurs.
There is an isWhitelist function which verifies that a node is indeed in the authorized items via the following instruction
`item.matches (CLIPBOARD_WHITELISTS.nodes.join (','))`
But on windows there is a comment node containing `<--StartFragment-->`
Here is the clipboard data on linux and on windows for the same copied text (Hello):
- Linux
```
<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">
<span style=\"color: rgb(102, 102, 102); font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;\">Hello</span>
```
- Windows
```
<html>
<body>
<!--StartFragment--><span style="color: rgb(102, 102, 102); font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Hello</span><!--EndFragment-->
</body>
</html>
```
Except for this additional comment on Windows, the `.matches()` method does not exist.
This PR uses the `Array.includes` function on the item's `nodeName`, which should work in all cases while keeping the same behavior.
opw-2591597
Forward-Port-Of: odoo/odoo#73961Issue: Payouts reference on Stripe are display as: `SUB123 - ODOO_PARTNER_456789`. Cause: When making a Stripe request to create new customer, the description is formated as : `ODOO_PARTNER_456789` . Solution: Replace customer description format as : `Partner: Mitchel Admin (id:456789)` . Inspired by: https://github.com/odoo/odoo/commit/3bc1e0175d85a70806999109e928c234e8cc2ca4 opw-2593621 Forward-Port-Of: odoo/odoo#73966
Original PR description
Issue: Payouts reference on Stripe are display as: `SUB123 - ODOO_PARTNER_456789`. Cause: When making a Stripe request to create new customer, the description is formated as : `ODOO_PARTNER_456789` . Solution: Replace customer description format as : `Partner: Mitchel Admin (id:456789)` . Inspired by: https://github.com/odoo/odoo/commit/3bc1e0175d85a70806999109e928c234e8cc2ca4 opw-2593621 Forward-Port-Of: odoo/odoo#73966
When you are using non deductible taxes, the tax amount is handled as an expense increase, using the same expense account than the invoice line. But not having the analytic option, this expense increase is not classified in the same analytic account. Thus, a sane default for the initial chart of accounts is to set it to True. @Tecnativa TT31062 Forward-Port-Of: odoo/odoo#74077
Original PR description
When you are using non deductible taxes, the tax amount is handled as an expense increase, using the same expense account than the invoice line. But not having the analytic option, this expense increase is not classified in the same analytic account. Thus, a sane default for the initial chart of accounts is to set it to True. @Tecnativa TT31062 Forward-Port-Of: odoo/odoo#74077
This PR reverts this one https://github.com/odoo/odoo/pull/54364 because it introduces the following problem: It is no longer possible to close the dialog when it is opened from a gantt view, because the buttons are overridden and they no longer close the window after the action. In addition to the fact that this fix no longer makes sense at the moment opw-2591597 Forward-Port-Of: odoo/odoo#73951 Forward-Port-Of: odoo/odoo#73872
Original PR description
This PR reverts this one https://github.com/odoo/odoo/pull/54364 because it introduces the following problem: It is no longer possible to close the dialog when it is opened from a gantt view, because the buttons are overridden and they no longer close the window after the action. In addition to the fact that this fix no longer makes sense at the moment opw-2591597 Forward-Port-Of: odoo/odoo#73951 Forward-Port-Of: odoo/odoo#73872
PURPOSE Before this, if user have not enough creadit to generate leads and user generate the leads than it threw the error and change the record state to the error, But it does not affact to the form. in saas-14.4 we are re-open the same record for form view is updated and correct error message is appears. SPECIFICATION in this PR, we change the read-only attrs and now contact_number field is not readonly if it is in draft and error state. Task-ID: 2605708 -- I confirm I
Original PR description
PURPOSE Before this, if user have not enough creadit to generate leads and user generate the leads than it threw the error and change the record state to the error, But it does not affact to the form. in saas-14.4 we are re-open the same record for form view is updated and correct error message is appears. SPECIFICATION in this PR, we change the read-only attrs and now contact_number field is not readonly if it is in draft and error state. Task-ID: 2605708 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#74044
Forward-Port-Of: odoo/odoo#74098
Original PR description
Forward-Port-Of: odoo/odoo#74098
This is a small fixup of previous commit https://github.com/odoo/enterprise/commit/9bbd7b55935c01518ab818886f145053c0d45af3. The regex was replacing only exact matches, but we should still exclude the string 'res_partner' if it comes for another join on table res_partner due to a customized ir_rule. opw-2526848 Forward-Port-Of: odoo/enterprise#18385
Original PR description
This is a small fixup of previous commit https://github.com/odoo/enterprise/commit/9bbd7b55935c01518ab818886f145053c0d45af3. The regex was replacing only exact matches, but we should still exclude the string 'res_partner' if it comes for another join on table res_partner due to a customized ir_rule. opw-2526848 Forward-Port-Of: odoo/enterprise#18385
Before this commit, the background colour of the Cohort view cells is always white. Now, the background colour of the cell will be related to the percentage. Note that this is already the behaviour in 13. Forward-Port-Of: odoo/enterprise#19778
Original PR description
Before this commit, the background colour of the Cohort view cells is always white. Now, the background colour of the cell will be related to the percentage. Note that this is already the behaviour in 13. Forward-Port-Of: odoo/enterprise#19778