Daily updates from Odoo
Navigate
Branch
Wednesday, August 18, 2021
35 changes
Enhancements to existing features
The approvals app test setup was improved so messaging features can be accessed without relying on a preset environment. This helps make automated checks more stable and supports ongoing maintenance without changing day-to-day user workflows.
Original PR description
Part of task-2582313
The signing page now displays the person who created and sent the signature request as the requester, instead of showing the person responsible for the original template. This makes it clearer for recipients who contacted them and who to reach out to with questions.
Original PR description
In the signing page of a sign.request, show the sign.request's sender(creator)'s info on the top as the requester before this commit: If I have a template whose responsible is user X and I found that template usefull. I'll reuse it to create a new sign request. On the new sign request, the requestor (display top left) is still the responsible of the template, user X. But for the end user, if he have any question, he need to ask the people that contacted him, that requested the signature. The reference user should be the one that create the signe request. taskid: 2614061
Marketing Automation now keeps email and SMS tracking statuses more consistent when messages fail, are ignored, or are cancelled. The related trace screens were also simplified so users see clearer status and error information, improving follow-up on campaign issues.
Original PR description
PURPOSE Purpose of this merge is to provide some cleaning in mail applications notably targeting mass mailing and failure management. SPECIFICATIONS Mailing trace model state management has been…
PURPOSE Purpose of this merge is to provide some cleaning in mail applications notably targeting mass mailing and failure management. SPECIFICATIONS Mailing trace model state management has been updated in community. Notably various datetime fields have been replaced by a status, only some datetime fields are kept. Trace state for failed / ignored error management has been improved in community. Notably a failure type now tells the underlying error. In this commit we update enterprise accordingly. We also clean marketing trace status update after launching action. Now both Email and SMS Marketing correctly set marketing traces as canceled when their mailing traces are canceled (and error / error). This allows to keep a coherent behavior through applications. Some unnecessary bits related to mail.mail are also cleaned while finding them without any functional impact. Mailing trace views have been cleaned in community to ease their understanding and improve user experience. In this enterprise counterpart we continue this by hiding void fields in trace views (marketing trace). We also add missing information on SMS specific trace view. Task ID-2377974
Payroll users can now organize payslips by employee department or job position. This makes it easier to review, compare, and manage payroll batches by organizational structure.
Original PR description
purpose of this commit is to allow to group the payslips by department or job TaskID-2608573
Signing roles can now have their own colors in template configuration. This makes it easier for users to distinguish which fields belong to each signer when editing or updating a signing template.
Original PR description
add color in the role configuration The color will be used when fields are dropped on the template, or role is modified Before this commit: when a user edits a sign template, all sign.items for different roles have the same color. We hope to use different colors for differnt roles to improve UX. taskid:2614473
The payroll work entry type form now displays the unpaid structure type field using the full available width. This makes the form easier to read and use when configuring payroll work entry types.
Original PR description
currently, the unpaid structures type input field doesn't take the full width. it happens because the div class is added by the xpath in the unpaid group. so this commit fixes the issue by removing the unnecessary xpath so that the unpaid structures type input field takes a full width TaskID-2611955
Helpdesk teams now show clear shortcut buttons for related items such as timesheets, SLA policies, satisfaction results, repairs, tickets, forums, courses, and live chat channels. This helps managers quickly understand team activity and navigate to the right records or website pages with fewer clicks.
Original PR description
…,slides): add some stat button in helpdesk The purpose of this task is to add some stat buttons to provide a better information, easy navigation to related records, and the configuration of the team. we add some stat button as below: -> 'x Live Chat Channels -> 'x Hours Recorded'(or Days Recorded of the timesheet encoding unit is in days) -> 'x SLA Policies' -> 'x% Customer Satisfaction' -> 'Forum' -> 'Course' -> 'x Repairs' -> 'x Tickets' -> clicking on 'go to website' should open the website page in a new tab Task-ID : 2531505
Warehouse users can now open the reception report directly from the information view for incoming pickings and batch pickings in barcode. The update also prevents an error when logging messages with multiple attachments and improves label auto-printing behavior.
Original PR description
Adds a button to the "i" form view of incoming pickings / batch pickings. COM PR: odoo/odoo#70669 Related Upgrade PR: odoo/upgrade#2731 Task: 2500844
The Depreciation Schedule report now shows depreciation duration instead of a rate for assets using the linear depreciation method. This makes the report easier to understand and better aligned with how business users evaluate asset depreciation timelines.
Original PR description
The depreciation rate is replaced by more meaningful depreciation duration information for assets with linear depreciation method. Task: 2531226
Resolved issues and error corrections
Helpdesk dashboards now calculate today's success rate by comparing tickets closed today with the daily target. The helper text for today's and seven-day average success rates is improved, making performance indicators easier for teams to understand.
Original PR description
this commit calculates today's success rate by dividing today's closed ticket by a daily target TaskID-2610915
The timesheet kanban view now keeps the colored status dot properly sized when a task name is very long. This prevents visual confusion and makes status information easier to read for users reviewing timesheet entries.
Original PR description
The status colored dot is squished when the name of the task is too long. Steps to reproduce: https://nimb.ws/aJQF47 go to timesheets > all timesheets create a timesheet entry with a long task name and view this entry in the kanban view The status colored dot has been placed between div tags to avoid being squished. The issue has only been identified on the master branch. Task-2626887
The employee planning view no longer shows sample placeholder data when selected employees have no scheduled shifts. This makes it clearer that the planning is genuinely empty and ready for new schedules to be created.
Original PR description
Purpose of the commit is to fix the view planning action of the employee. An empty line is displayed for the selected employees instead of showing sample even if they don't have any shifts planned. **TaskID: 2608855**
Helpdesk ticket analysis no longer errors when users add the Close Hours measure in pivot reports without Timesheets installed. Ticket forms also now avoid showing a negative related-ticket count when no matching customer tickets exist.
Original PR description
Currently when goto the ticket analysis reporting >> pivot view and add the measure `close hours` gives traceback. Traceback is due to the use of timesheet_uom widget which is defined in the hr_timesheet and when only helpdesk installed at that time it will generate an error. So in this commit use the float_time widget instead of the timesheet_uom. Second, when we create a ticket, and on the form view you can see the stat button showing ticket -1 if not ticket found that linked to same customer so to fix the -1 count if any tickets found for the same customer then do the -1 else count as 0 TaskID: 2619425
The Helpdesk dashboard now loads information using the correct company context. This prevents users in multi-company setups from seeing dashboard data for the wrong company, improving reporting accuracy and day-to-day visibility.
Original PR description
On the helpdesk dashboard, the context would never be passed when loading dashboard data, which caused an issue in a multi-company environment where the data would always be the one of the first company. Task ID: 2610547
The Belgian payroll fleet vehicle form now displays additional company-specific information more cleanly. This makes CO2 fees and local tax details easier to view and reduces layout issues for users managing Belgian company vehicles.
Original PR description
When using a belgian company, more informations are displayed on the vehicle form view, such as co2_fee and local taxation data. However the form would render poorly. This commit fixes it. Task ID: 2627649
The Timesheets settings page now centers the reminder delay values for users and managers. This small display fix improves readability and makes the settings screen look more consistent.
Original PR description
Purpose of this commit is to display the value of reminder_user_delay and reminder_manager_delay fields center in the setting of the timesheet app. So, In this commit add a text-center class for that fields in XML of the setting in the timesheet app. Task ID: 2616165
This update fixes issues caused by converting plain text fields to HTML fields, ensuring descriptions and narration text display correctly instead of showing raw formatting codes. It improves the appearance and reliability of payroll, subscription, and calendar email content for users and customers.
Original PR description
PURPOSE Fix issues generated due to conversion of text field into Html field. SPECIFICATIONS Improve integration of HTML fields as well as "empty html" management. See various commits for more details. Followup of odoo/odoo@cb4f597 and odoo/enterprise@971f3ed Task-2558824
This fix updates the timesheet forecast report to match a recent change in the underlying time label handling. It prevents an error from interrupting users when viewing forecast-related timesheet information.
Original PR description
_apply_time_label method has been refactored in this commit https://github.com/odoo/odoo/commit/9b53115345e988b5ac49ca5728d4de2dd6af56cd
Bulk editing the sales order line on helpdesk tickets is now disabled to prevent an error in the ticket list view. This avoids confusing failures for users, since changing the same sales order line across many tickets is not a typical business action.
Original PR description
This commit fixes a traceback when mass editing sale_line_id in helpdesk.ticket's tree view. It is caused by the need of `commercial_partner_id` in the domain of `sale_line_id` not being present in the view. Task ID: 1601707
The field service task Gantt popover no longer shows the assigned user and project fields twice. This makes task details cleaner and avoids confusion for field service users reviewing schedules.
Original PR description
Purpose of this commit to fix Gantt view popover of task Gantt view in field service app.In that Gantt view popover user_id and project_id fields display twice. So, In this commit remove extra code showing user_id and project_id fields twice in Gantt view popover of the task. Task Id: 2618278
Code cleanup and technical improvements
Several Odoo Enterprise apps were updated to use the latest shared messaging components. This keeps approvals, documents, signing, VoIP, and Studio aligned with the core platform and helps maintain consistent behavior across communication-related features.
Original PR description
*: approvals, documents, mail_enterprise, sign, voip, web_studio community PR: odoo/odoo#74982
Miscellaneous changes
Currently, when open the kanban view of the ticket and do the quick create it will not display the kanban state label according to the legends of the stage. so in this commit, add the stage_id and legend field in quick create view as invisible so it will get the value in state_selection widget to display it on kanban_state dropdown. PS: legend fields are related field of stage_id so added the stage_id and team_id is used as domain on stage_id field so added team_id too. TaskID: 2531595
Original PR description
Currently, when open the kanban view of the ticket and do the quick create it will not display the kanban state label according to the legends of the stage. so in this commit, add the stage_id and legend field in quick create view as invisible so it will get the value in state_selection widget to display it on kanban_state dropdown. PS: legend fields are related field of stage_id so added the stage_id and team_id is used as domain on stage_id field so added team_id too. TaskID: 2531595 Forward-Port-Of: odoo/enterprise#20188
Missing `alert` class create an unwanted margin inside the form view. Task-ID-2607982 Forward-Port-Of: odoo/enterprise#20085
Original PR description
Missing `alert` class create an unwanted margin inside the form view. Task-ID-2607982 Forward-Port-Of: odoo/enterprise#20085
While multiple days are selected for the shift in the planning calendar view but single day shift is made.it will be fixed. The issue arrived from this commit: https://github.com/odoo/enterprise/commit/242f7ca24ecf50648ea21f098fe78b978a51a5ba TaskID-2566320 Forward-Port-Of: odoo/enterprise#19869
Original PR description
While multiple days are selected for the shift in the planning calendar view but single day shift is made.it will be fixed. The issue arrived from this commit: https://github.com/odoo/enterprise/commit/242f7ca24ecf50648ea21f098fe78b978a51a5ba TaskID-2566320 Forward-Port-Of: odoo/enterprise#19869
Currently when open the form view of a ticket, write gibberish(mainly without domain) in the email field will generate an traceback due to false value of domain. So in this commit, when domain exist then and then combine with '@' else pass the email as it is. TaskID: 2582217 Forward-Port-Of: odoo/enterprise#20184
Original PR description
Currently when open the form view of a ticket, write gibberish(mainly without domain) in the email field will generate an traceback due to false value of domain. So in this commit, when domain exist then and then combine with '@' else pass the email as it is. TaskID: 2582217 Forward-Port-Of: odoo/enterprise#20184
to fix the lay translation buttons layout on stages form view, this commit change the xml to display translation buttons in the alignment of the kanban state label fields Task: 2605763 Forward-Port-Of: odoo/enterprise#19777
Original PR description
to fix the lay translation buttons layout on stages form view, this commit change the xml to display translation buttons in the alignment of the kanban state label fields Task: 2605763 Forward-Port-Of: odoo/enterprise#19777
When clicking on rating in the helpdesk dashboard, the list view would not be available until the user reloads the page. This is because the js client expects `list` instead of `tree` in some cases and the action was handled differently than on simple buttons. Now `tree` will be replaced by `list` in the list of views for the action. Task ID: 2612307 Forward-Port-Of: odoo/enterprise#19890
Original PR description
When clicking on rating in the helpdesk dashboard, the list view would not be available until the user reloads the page. This is because the js client expects `list` instead of `tree` in some cases and the action was handled differently than on simple buttons. Now `tree` will be replaced by `list` in the list of views for the action. Task ID: 2612307 Forward-Port-Of: odoo/enterprise#19890
Users were getting a traceback when an employee had a timeoff and the user's timezone was not set. TaskID: 2605558 Forward-Port-Of: odoo/enterprise#20310
Original PR description
Users were getting a traceback when an employee had a timeoff and the user's timezone was not set. TaskID: 2605558 Forward-Port-Of: odoo/enterprise#20310
With the addition of multi-company rules (https://github.com/odoo/odoo/pull/73654/commits/fca3128babb0910a72d1cacda193c064df58337f), an error was raised during the hr_contract_salary_tour. This is because the vehicle contract was not configured with the same company_id as the vehicle it was linked to. Whenever a user is trying to access the vehicle infos, if he doesn't have access to both of the companies, a multi-company error is raised. This change should assign the vehicle's company_i
Original PR description
With the addition of multi-company rules (https://github.com/odoo/odoo/pull/73654/commits/fca3128babb0910a72d1cacda193c064df58337f), an error was raised during the hr_contract_salary_tour. This is because the vehicle contract was not configured with the same company_id as the vehicle it was linked to. Whenever a user is trying to access the vehicle infos, if he doesn't have access to both of the companies, a multi-company error is raised. This change should assign the vehicle's company_id to the linked contract and avoid that error. opw-2518188 Forward-Port-Of: odoo/enterprise#20295
Since version saas-14.4, bytes object are not render by qweb the same way In saas-14.3, the decoded content of the bytes was rendered In saas-14.4, the repr of the bytes is rendered b'content' The certificate embeded in the cfdi xml file is then not rendered as it should be. Solution: decode the certificate bytes to str before the rendering Forward-Port-Of: odoo/enterprise#20219
Original PR description
Since version saas-14.4, bytes object are not render by qweb the same way In saas-14.3, the decoded content of the bytes was rendered In saas-14.4, the repr of the bytes is rendered b'content' The certificate embeded in the cfdi xml file is then not rendered as it should be. Solution: decode the certificate bytes to str before the rendering Forward-Port-Of: odoo/enterprise#20219
Issue : When planning a slot with repetition, the last day of the repetition is not included even though it should be Steps to reproduce: In the planning module, create a slot with the following config : - Repeat checked - Repeat every *1 week* - Until and select exactly 7 days after the start date of the slot Save, and only 1 occurrence is added on the selected start date, but not the one one week after Why is that a bug: In most calendars, when selecting a end date for
Original PR description
Issue : When planning a slot with repetition, the last day of the repetition is not included even though it should be Steps to reproduce: In the planning module, create a slot with the following config : - Repeat checked - Repeat every *1 week* - Until and select exactly 7 days after the start date of the slot Save, and only 1 occurrence is added on the selected start date, but not the one one week after Why is that a bug: In most calendars, when selecting a end date for a recurrence, the end date is included, and it was also supposed to be like that for the planning module. However there was a conversion between the selected end of recurrence date (the whole day) to a datetime (the first microsecond of the day), so when comparing, the end of the recurrence was always smaller than any time on that same day, which means the recurrence last day was always excluded opw-2560786 Forward-Port-Of: odoo/enterprise#20233 Forward-Port-Of: odoo/enterprise#20094
The method is api.model, it makes no sense to check the length of self. Forward-Port-Of: odoo/enterprise#20285
Original PR description
The method is api.model, it makes no sense to check the length of self. Forward-Port-Of: odoo/enterprise#20285
Forward-Port-Of: odoo/enterprise#20271
Original PR description
Forward-Port-Of: odoo/enterprise#20271
This was causing mirgrations to fail. ``` Traceback (most recent call last): File "/home/odoo/src/odoo/14.0/odoo/service/server.py", line 1199, in preload_registries registry = Registry.new(dbname, update_module=update_module) File "/home/odoo/src/odoo/14.0/odoo/modules/registry.py", line 89, in new odoo.modules.load_modules(registry._db, force_demo, status, update_module) File "/home/odoo/src/odoo/14.0/odoo/modules/loading.py", line 474, in load_modules migrations.mi
Original PR description
This was causing mirgrations to fail. ``` Traceback (most recent call last): File "/home/odoo/src/odoo/14.0/odoo/service/server.py", line 1199, in preload_registries registry = Registry.new(dbname,…
This was causing mirgrations to fail.
```
Traceback (most recent call last):
File "/home/odoo/src/odoo/14.0/odoo/service/server.py", line 1199, in preload_registries
registry = Registry.new(dbname, update_module=update_module)
File "/home/odoo/src/odoo/14.0/odoo/modules/registry.py", line 89, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/home/odoo/src/odoo/14.0/odoo/modules/loading.py", line 474, in load_modules
migrations.migrate_module(package, 'end')
File "/home/odoo/src/odoo/14.0/odoo/modules/migration.py", line 180, in migrate_module
migrate(self.cr, installed_version)
File "/tmp/tmp64dwvjff/migrations/sale_subscription/saas~13.2.1.1/end-migrate.py", line 15, in migrate
util.recompute_fields(cr, "sale.subscription.line", ["price_subtotal"])
File "/tmp/tmp64dwvjff/migrations/util/orm.py", line 113, in recompute_fields
records.recompute()
File "/home/odoo/src/odoo/14.0/odoo/models.py", line 5891, in recompute
process(field)
File "/home/odoo/src/odoo/14.0/odoo/models.py", line 5875, in process
field.recompute(recs)
File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 1153, in recompute
self.compute_value(recs)
File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 1175, in compute_value
records._compute_field_value(self)
File "/home/odoo/src/odoo/14.0/odoo/models.py", line 4057, in _compute_field_value
getattr(self, field.compute)()
File "/home/odoo/src/enterprise/14.0/sale_subscription/models/sale_subscription.py", line 1102, in _compute_amount
amounts = taxes.compute_all(price, line.currency_id, line.quantity, product=line.product_id, partner=self.analytic_account_id.partner_id)
File "/home/odoo/src/odoo/14.0/addons/account/models/account_tax.py", line 570, in compute_all
'name': partner and tax.with_context(lang=partner.lang).name or tax.name,
File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 963, in __get__
record.ensure_one()
File "/home/odoo/src/odoo/14.0/odoo/models.py", line 4987, in ensure_one
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: res.partner(1742, 1443, 1514, 1618, 1881, 1447, 1652, 1641, 1565, 1426, 1473, 1508, 1869, 1606, 1528, 1689, 1579, 1683, 1630, 1595, 1692, 1559, 1491, 1430, 1779, 1914, 1867, 1989, 2085, 1793, 1526, 1522, 1520, 2166, 1563, 1749, 1622, 1697, 1624, 2135, 1983, 1495, 1837, 2148, 1920, 1891, 2153, 2216, 2273, 1901, 2103, 1811, 1875, 2071, 2162, 2014, 1916, 2141, 2042, 2004, 1839, 2075, 2021, 1938, 2079, 1924, 1936, 1957, 1969, 1877, 2067, 1887, 2027, 2206, 2069, 2151, 2272, 1918, 2221, 2410, 1930, 2062, 2318, 2316, 2292, 2324, 2394, 2392, 2039, 2429)
```
upg-22387
upg-22389
upg-22397
Forward-Port-Of: odoo/enterprise#20244Archived tasks were showing on the grid view, which is not really making any sense. This commit aims at hiding those tasks from the grid view. TaskID: 2588276 Forward-Port-Of: odoo/enterprise#19725
Original PR description
Archived tasks were showing on the grid view, which is not really making any sense. This commit aims at hiding those tasks from the grid view. TaskID: 2588276 Forward-Port-Of: odoo/enterprise#19725