Daily updates from Odoo
Monday, November 20, 2023
50 changes
38 changes
Enhancements to existing features
Translation wording was improved across several service-related Odoo apps to make labels and messages clearer for users in different languages. The update fixes English phrasing, makes more text available for translation, and improves how translated messages handle variable content.
Original PR description
This PR improves translation strings in the service apps, by adding more named variables, fixing some English mistakes, or making non translatable strings translatable. Task-3522662
New Field Service tasks will now start without an assigned person instead of automatically assigning the user who creates them. This makes task creation consistent across Field Service menus and helps teams assign work intentionally.
Original PR description
Before this commit, When the user creates a new task, the assignee gets automatically set to the current user. This behavior, however, was inconsistent with how other menus in the Field Service module operated. After this commit, The assignee won't be set when creating a task. it will remain empty. task:3475473
The demo project data now shows more complete examples of budgets, subscriptions, timesheets, expenses, purchases, materials, and manufacturing costs. This helps business users better understand the project side panel and profitability view using realistic sample information.
Original PR description
improve the following demo data for the project's right-side panel
- Before this commit
- Budgetary position demo data not shown in the project update
- all types of timesheets not added in the project update
- in the profitability section cost and revenue demo data are
not added
- subscription and expense demo data not added
- manufacturing and material demo data not added
- After this commit
- create one project with the name of 'Home Cunstroctiion'
- Created budget and added 2 budgetary positions under the
project
- create each type of timesheet under the 'AGR' project
- in the profitability section added revenue and cost demo
data
- material added in the revenue section
- manufacturing orders added in the cost section
- added purchase order
- added subscription and expenses
task-3089076Subscription screens now use clearer wording, including renaming the next invoice date field to “Next Invoice.” Empty views for subscriptions and upsells now provide improved titles and descriptions, helping users understand what to do when no records are available.
Original PR description
Following changes: ------ 1. Rename the string 'Date of next invocie' to 'Next Invoice'. 2. Changed the description message of subscription empty view. 3. Added the description and changed the title for upsell menu having no record. task-3501381
Resolved issues and error corrections
Creating a new Belgian payroll contract no longer shows an error when the Fleet app is not installed. The fleet-related check now only runs in the payroll fleet module, preventing unnecessary disruption for users who do not use fleet features.
Original PR description
Before this commit, an error message appeared when clicking on creating a new contract. The problem was: a field linked to the fleet application was used without it being installed. This was fixed by moving the check to the l10n_be_he_payroll_fleet module task : 3522341
This fixes helpdesk and eLearning forum page links after a related forum update changed the page structure. It ensures the support-related link still appears in the right place and only for question posts, preserving a smooth user experience.
Original PR description
The target in this xpath has to be adapted after the refactoring of `website_forum` in PR https://github.com/odoo/odoo/pull/120982 Community PR: https://github.com/odoo/odoo/pull/120982 task-3083657
This change reverts a previous adjustment to planning templates because it changed stable behavior in an unintended way. Users keep the existing template behavior for now, while a safer correction will be handled separately for saved shift templates.
Original PR description
This reverts commit 145fdbc786c434593bf060e82cd84110a6d830e3 because the fix alters the behavior in planning template which is not really allowed in stable. A another fix will be done to correctly compute the shift template generated when the user saves a shift as template. X-original-commit: dd5e4756cc3e837fbf531833917701c7fc35a569
Code cleanup and technical improvements
This update refactors spreadsheet editing code to use a more direct internal property access pattern. It should not change what users see, but it helps keep the spreadsheet feature easier to maintain and less error-prone over time.
Original PR description
Task: 3586686
Miscellaneous changes
Issue 1: With a 0% tax 'Tasa' in the invoice, TotalTrasladosBaseIVA0 & TotalTrasladosImpuestoIVA0 must be present in the payment CFDI file. Issue 2: With a 0% tax 'Exento', a traceback was raised when generating the payment CFDI. opw-3574611 Forward-Port-Of: odoo/enterprise#50973 Forward-Port-Of: odoo/enterprise#50506
Original PR description
Issue 1: With a 0% tax 'Tasa' in the invoice, TotalTrasladosBaseIVA0 & TotalTrasladosImpuestoIVA0 must be present in the payment CFDI file. Issue 2: With a 0% tax 'Exento', a traceback was raised when generating the payment CFDI. opw-3574611 Forward-Port-Of: odoo/enterprise#50973 Forward-Port-Of: odoo/enterprise#50506
## [FIX] project_forecast: freeze time for test_shift_creation_from_project Before this commit, the `test_shift_creation_from_project` test failed during the weekend because the working schedule of the current company considers the weekend is not a working day and so instead of creating a planning template during 2 days, it will create a planning template during one day. This commit freezes the time to be sure, the test is executed during a working day to stay valid and keep the same
Original PR description
## [FIX] project_forecast: freeze time for test_shift_creation_from_project Before this commit, the `test_shift_creation_from_project` test failed during the weekend because the working schedule of…
## [FIX] project_forecast: freeze time for test_shift_creation_from_project Before this commit, the `test_shift_creation_from_project` test failed during the weekend because the working schedule of the current company considers the weekend is not a working day and so instead of creating a planning template during 2 days, it will create a planning template during one day. This commit freezes the time to be sure, the test is executed during a working day to stay valid and keep the same behavior to test. runobt-41215 ## [FIX] planning: freeze time for test_shift_creation_from_role Before this commit, the `test_shift_creation_from_role` test failed during the weekend because the working schedule of the current company considers the weekend is not a working day and so instead of creating a planning template during 2 days, it will create a planning template during one day. This commit freezes the time to be sure, the test is executed during a working day to stay valid and keep the same behavior to test. runobt-41977 Forward-Port-Of: odoo/enterprise#50999
Before this commit, the test does a search to fetch a helpdesk team to do a write but we don't check if the helpdesk is found This commit adds an assert to be sure a helpdesk team is found with the search called. runbot-21676 Forward-Port-Of: odoo/enterprise#50997
Original PR description
Before this commit, the test does a search to fetch a helpdesk team to do a write but we don't check if the helpdesk is found This commit adds an assert to be sure a helpdesk team is found with the search called. runbot-21676 Forward-Port-Of: odoo/enterprise#50997
When having a customer invoice from branch 1 to branch 2, the relative vendor bill's company id is wrongly set as branch 1. Steps: - Create two branches for a company - On both branches, activate inter-company transactions ans synchronize invoices/bills - Create an invoice from branch 1 to branch 2, confirm -> The relative vendor bill's company is set as Branch 1 instead of Branch 2 opw-3517000 Forward-Port-Of: odoo/enterprise#49232
Original PR description
When having a customer invoice from branch 1 to branch 2, the relative vendor bill's company id is wrongly set as branch 1. Steps: - Create two branches for a company - On both branches, activate inter-company transactions ans synchronize invoices/bills - Create an invoice from branch 1 to branch 2, confirm -> The relative vendor bill's company is set as Branch 1 instead of Branch 2 opw-3517000 Forward-Port-Of: odoo/enterprise#49232
There should be one TIM section per Colombian tax type. Each TIM contains [1...*] IMP. These IMP should be grouped by tax rate. This commit ensures this, after a6647aabcd8d3fbfb6a270120bfffad3c4ed7c46 broke it. opw-3598156 Forward-Port-Of: odoo/enterprise#50978 Forward-Port-Of: odoo/enterprise#50920
Original PR description
There should be one TIM section per Colombian tax type. Each TIM contains [1...*] IMP. These IMP should be grouped by tax rate. This commit ensures this, after a6647aabcd8d3fbfb6a270120bfffad3c4ed7c46 broke it. opw-3598156 Forward-Port-Of: odoo/enterprise#50978 Forward-Port-Of: odoo/enterprise#50920
The matching is now done in `account`, when posting, for all lines with a matching number set to `I*` (where `*` can be anything) [task-3593885](https://www.odoo.com/web#id=3593885&model=project.task) Forward-Port-Of: odoo/enterprise#50627
Original PR description
The matching is now done in `account`, when posting, for all lines with a matching number set to `I*` (where `*` can be anything) [task-3593885](https://www.odoo.com/web#id=3593885&model=project.task) Forward-Port-Of: odoo/enterprise#50627
Currently, when booking an appointment, let's say for a tennis court, the calendar.event name will be setup as follows: "Tennis Court with Marc Demo". Which is not very practical for smaller display, as we will have only the first part of the name remaining: "Tennis Court wi...". The goal of this commit is to modify it to the following format: "Marc Demo - Tennis Court Booking". That way we keep the most important information first, which is the name of the attendee. This is especially
Original PR description
Currently, when booking an appointment, let's say for a tennis court, the calendar.event name will be setup as follows: "Tennis Court with Marc Demo". Which is not very practical for smaller display, as we will have only the first part of the name remaining: "Tennis Court wi...". The goal of this commit is to modify it to the following format: "Marc Demo - Tennis Court Booking". That way we keep the most important information first, which is the name of the attendee. This is especially important for the POS Restaurant display. Task-3599241 Forward-Port-Of: odoo/enterprise#50817
Before this commit, a recent generic change removes the "add" and "plan" buttons in each gantt cell to avoid having too many elements available in the gantt view. That changes has not been adapted for the sale_planning tour and so the step failed because it no longer found plan button. This commit removes the step failed and adapt the previous step to just click on the grid cell to display the plan dialog. runbot-25881 Forward-Port-Of: odoo/enterprise#50996
Original PR description
Before this commit, a recent generic change removes the "add" and "plan" buttons in each gantt cell to avoid having too many elements available in the gantt view. That changes has not been adapted for the sale_planning tour and so the step failed because it no longer found plan button. This commit removes the step failed and adapt the previous step to just click on the grid cell to display the plan dialog. runbot-25881 Forward-Port-Of: odoo/enterprise#50996
This commit makes the helper of the auditing action of the aged payable report markup as it is currently not the case and its content is in plain text. Forward-Port-Of: odoo/enterprise#50915
Original PR description
This commit makes the helper of the auditing action of the aged payable report markup as it is currently not the case and its content is in plain text. Forward-Port-Of: odoo/enterprise#50915
Steps to reproduce: - Install approvals. - Go to the app and create a new approval like `Borrow Items`. - Now fill the form with atleast 1 product. - Go to mobile view of the same page and reload. - See the product Lines The issue is that since we don't have any kanban view specific for approvals, we will try to load a generic one which in this case will be only showing the id of the product. Creating a custom kanban view for this lines we can do a proper display like displaying the na
Original PR description
Steps to reproduce: - Install approvals. - Go to the app and create a new approval like `Borrow Items`. - Now fill the form with atleast 1 product. - Go to mobile view of the same page and reload. - See the product Lines The issue is that since we don't have any kanban view specific for approvals, we will try to load a generic one which in this case will be only showing the id of the product. Creating a custom kanban view for this lines we can do a proper display like displaying the name of the product and the quantity. Before:  After:  opw-3449483 Forward-Port-Of: odoo/enterprise#50749 Forward-Port-Of: odoo/enterprise#49468
Prior to this PR, the `desktop icon` inside a kanban card was misaligned. Task-3586834 | Before | After | |--------|--------| | <img width="343" alt="Screenshot 2023-11-07 at 15 38 16" src="https://github.com/odoo/enterprise/assets/108661430/58a06311-8d73-4bd6-a5a6-9cc1dedec4b4">| <img width="333" alt="Screenshot 2023-11-07 at 15 36 36" src="https://github.com/odoo/enterprise/assets/108661430/011f7334-e37a-4f02-8b91-92a02d7bc38d"> | Forward-Port-Of: odoo/enterprise#50406
Original PR description
Prior to this PR, the `desktop icon` inside a kanban card was misaligned. Task-3586834 | Before | After | |--------|--------| | <img width="343" alt="Screenshot 2023-11-07 at 15 38 16" src="https://github.com/odoo/enterprise/assets/108661430/58a06311-8d73-4bd6-a5a6-9cc1dedec4b4">| <img width="333" alt="Screenshot 2023-11-07 at 15 36 36" src="https://github.com/odoo/enterprise/assets/108661430/011f7334-e37a-4f02-8b91-92a02d7bc38d"> | Forward-Port-Of: odoo/enterprise#50406
Before this PR when we validate timesheet toast notification was not correctly centered. After this PR when we validate timesheet toast notification is correctly centered. task-3433667 Forward-Port-Of: odoo/enterprise#44455
Original PR description
Before this PR when we validate timesheet toast notification was not correctly centered. After this PR when we validate timesheet toast notification is correctly centered. task-3433667 Forward-Port-Of: odoo/enterprise#44455
steps to reproduce: import a csv file where the rows are not sorted by date before this commit: balances are not correctly set as the first row and last row are used, assuming the rows are sorted by date. after this commit: raise an error if the rows are not sorted. opw-3507204 Forward-Port-Of: odoo/enterprise#50847 Forward-Port-Of: odoo/enterprise#50706
Original PR description
steps to reproduce: import a csv file where the rows are not sorted by date before this commit: balances are not correctly set as the first row and last row are used, assuming the rows are sorted by date. after this commit: raise an error if the rows are not sorted. opw-3507204 Forward-Port-Of: odoo/enterprise#50847 Forward-Port-Of: odoo/enterprise#50706
Since commit a0b24fc, a "Document not found" error could occur in databases using multiple IAP accounts for the `invoice_ocr` service. This only occurred when the update of the status of the extraction was performed through the "Update All Status" cron. It happened because there was a mismatch between the IAP account selected in the cron and the IAP account used when the document was sent. Now, we force the company set in the context to match the one set on the document so that the IAP
Original PR description
Since commit a0b24fc, a "Document not found" error could occur in databases using multiple IAP accounts for the `invoice_ocr` service. This only occurred when the update of the status of the extraction was performed through the "Update All Status" cron. It happened because there was a mismatch between the IAP account selected in the cron and the IAP account used when the document was sent. Now, we force the company set in the context to match the one set on the document so that the IAP accounts selected will always be consistent. Tickets: 3591259,3592713,3578945,3584204 Forward-Port-Of: odoo/enterprise#50878 Forward-Port-Of: odoo/enterprise#50722
When a report contained an expression using "boolean" figure_type (for example, the annual LU tax report), trying to print it to pdf raised an error when rendering the qweb template, since the formatted 'name' key for that column contained a value of type bool instead of str ; and the template tried to call len(bool) at some point. To fix that, we make it so that _format_value now directly returns 'Yes' and 'No'. The owl template of the report also needed to be fixed in order to use that valu
Original PR description
When a report contained an expression using "boolean" figure_type (for example, the annual LU tax report), trying to print it to pdf raised an error when rendering the qweb template, since the formatted 'name' key for that column contained a value of type bool instead of str ; and the template tried to call len(bool) at some point. To fix that, we make it so that _format_value now directly returns 'Yes' and 'No'. The owl template of the report also needed to be fixed in order to use that value instead of hardcoding those two strings. Forward-Port-Of: odoo/enterprise#50828
When receiving a document from an unknown contact, we no longer create a new partner. However, if the contact is known, we assign the already existing partner to the document. We remove that feature because it was creating duplicate partners for documents sent to accounting which uses VAT number as primary matching criterion. Contacts created in Documents were messing up with the ones associated with the VAT numbers. Task-3579869 Forward-Port-Of: odoo/enterprise#50810 Forward-Port-Of: odo
Original PR description
When receiving a document from an unknown contact, we no longer create a new partner. However, if the contact is known, we assign the already existing partner to the document. We remove that feature because it was creating duplicate partners for documents sent to accounting which uses VAT number as primary matching criterion. Contacts created in Documents were messing up with the ones associated with the VAT numbers. Task-3579869 Forward-Port-Of: odoo/enterprise#50810 Forward-Port-Of: odoo/enterprise#50379
Steps to reproduce ================== - Go to invoices - Open studio - Create a new model, validate, etc - Go to another menu - Click on the newly created menu `This action is not editable by Studio` Cause of the issue ================== The newly created menu was created without the studio context key https://github.com/odoo/enterprise/blob/8b5778206effa1f23707bf3eacb326efbec8473f/web_studio/static/src/client_action/editor/new_model_item/new_model_item.js#L24 See https:/
Original PR description
Steps to reproduce ================== - Go to invoices - Open studio - Create a new model, validate, etc - Go to another menu - Click on the newly created menu `This action is not editable by Studio` Cause of the issue ================== The newly created menu was created without the studio context key https://github.com/odoo/enterprise/blob/8b5778206effa1f23707bf3eacb326efbec8473f/web_studio/static/src/client_action/editor/new_model_item/new_model_item.js#L24 See https://github.com/odoo/enterprise/pull/48640/commits/53c497f532fe6d94119a3ca54da88dddf26cf2b8 opw-3593825 Forward-Port-Of: odoo/enterprise#50730
The aim of this commit is removing the infinite loader once you download the accounts coverage report on account.report. The problem was that we return an ir.actions.act_url with a target to "self". It means that this url should replace the current page by the url. This commit changes the target of the action to "download" according to the [documentation](https://www.odoo.com/documentation/17.0/developer/reference/backend/actions.html#url-actions-ir-actions-act-url). no task id Forward-Por
Original PR description
The aim of this commit is removing the infinite loader once you download the accounts coverage report on account.report. The problem was that we return an ir.actions.act_url with a target to "self". It means that this url should replace the current page by the url. This commit changes the target of the action to "download" according to the [documentation](https://www.odoo.com/documentation/17.0/developer/reference/backend/actions.html#url-actions-ir-actions-act-url). no task id Forward-Port-Of: odoo/enterprise#50665
opw-3551400 Forward-Port-Of: odoo/enterprise#50833
Original PR description
opw-3551400 Forward-Port-Of: odoo/enterprise#50833
This issue occurs when a customer creates Appointments and then attempts to select the Appointments type ,at that time error will be generated. step to reproduce: - Install the `appointments` Module. - click on `Reporting > Appointments` menu. - open list view. - create new Appointments(Enter only Meeting Subject) . - after select Appointments type. - the error will be generated. sentry traceback- ``` AttributeError: 'mail.tracking.value' object has no attribute 'field' File "od
Original PR description
This issue occurs when a customer creates Appointments and then attempts to select the Appointments type ,at that time error will be generated. step to reproduce: - Install the `appointments` Module.…
This issue occurs when a customer creates Appointments and then attempts to select the Appointments type ,at that time error will be generated.
step to reproduce:
- Install the `appointments` Module.
- click on `Reporting > Appointments` menu.
- open list view.
- create new Appointments(Enter only Meeting Subject) .
- after select Appointments type.
- the error will be generated.
sentry traceback-
```
AttributeError: 'mail.tracking.value' object has no attribute 'field'
File "odoo/http.py", line 2157, in __call__
response = request._serve_db()
File "odoo/http.py", line 1732, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1759, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1960, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "addons/website/models/ir_http.py", line 235, in _dispatch
response = super()._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 207, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 722, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "home/odoo/src/enterprise/17.0/knowledge/controllers/article_thread.py", line 47, in mail_thread_messages
return super().mail_thread_messages(thread_model, thread_id, **kwargs)
File "odoo/http.py", line 722, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/mail/controllers/thread.py", line 28, in mail_thread_messages
return {**res, "messages": res["messages"].message_format()}
File "home/odoo/src/enterprise/17.0/whatsapp/models/mail_message.py", line 48, in message_format
vals_list = super().message_format(*args, **kwargs)
File "addons/sms/models/mail_message.py", line 42, in message_format
message_values = super(MailMessage, self).message_format(format_reply=format_reply, msg_vals=msg_vals)
File "addons/rating/models/mail_message.py", line 30, in message_format
message_values = super().message_format(format_reply=format_reply, msg_vals=msg_vals)
File "addons/mail/models/mail_message.py", line 1033, in message_format
vals_list = self._message_format(self._get_message_format_fields(), format_reply=format_reply)
File "addons/im_livechat/models/mail_message.py", line 34, in _message_format
vals_list = super()._message_format(fnames=fnames, format_reply=format_reply)
File "addons/mail/models/mail_message.py", line 929, in _message_format
displayed_tracking_ids = record_sudo._track_filter_for_display(displayed_tracking_ids)
File "home/odoo/src/enterprise/17.0/appointment/models/calendar_event.py", line 204, in _track_filter_for_display
return tracking_values.filtered(lambda t: t.field.name != 'active')
File "odoo/models.py", line 6082, in filtered
return self.browse([rec.id for rec in self if func(rec)])
File "odoo/models.py", line 6082, in <listcomp>
return self.browse([rec.id for rec in self if func(rec)])
File "home/odoo/src/enterprise/17.0/appointment/models/calendar_event.py", line 204, in <lambda>
return tracking_values.filtered(lambda t: t.field.name != 'active')
```
https://github.com/odoo/enterprise/blob/17.0/appointment/models/calendar_event.py#L204
There is no 'field' name of fields accessible in the mail.tracking.value model, but there is `field_id` name fields accessible in that model.
after this commit, While creating an appointment, the customer will be able to select an appointment type.
sentry-4629475865
Forward-Port-Of: odoo/enterprise#50799In the function _get_transfer_move_lines_values, we empty the order of the query, because we do a group by. We should instead define another order, so the results are always returned in the same order. Related to runbot error 25781 Forward-Port-Of: odoo/enterprise#49915
Original PR description
In the function _get_transfer_move_lines_values, we empty the order of the query, because we do a group by. We should instead define another order, so the results are always returned in the same order. Related to runbot error 25781 Forward-Port-Of: odoo/enterprise#49915
To pass validation by the PAC, the tax amounts reported for each invoice line need to fulfil the following conditions: - The total tax amount must be equal to the sum of the tax amounts reported for each invoice line. - The tax amount reported for each line must be equal to (tax rate * base amount), rounded either up or down. The system currently compute tax base and import from the move line, and then, in case of partial payment, these amounts are scaled down using the percentage
Original PR description
To pass validation by the PAC, the tax amounts reported for each invoice line need to fulfil the following conditions: - The total tax amount must be equal to the sum of the tax amounts reported for…
To pass validation by the PAC, the tax amounts reported for each invoice line need to fulfil the following conditions: - The total tax amount must be equal to the sum of the tax amounts reported for each invoice line. - The tax amount reported for each line must be equal to (tax rate * base amount), rounded either up or down. The system currently compute tax base and import from the move line, and then, in case of partial payment, these amounts are scaled down using the percentage of amount already paid (computed as payment amount over total amount). This process have 2 issues: 1) The tax amount computed this way may not be the same as computing it from the base amount *after* taking into account the percentage paid 2) The base value reduced by the payment percentage is saved and then summed up (for each line) to get the payment amount. Due to rounding imprecision adding up, the result may be off a few cents difference that will make the payment validation fail. It is best to sum the line values and then apply the payment percentage. opw-3537164 Forward-Port-Of: odoo/enterprise#50660 Forward-Port-Of: odoo/enterprise#50118
We want the tests to be able to run even without demo data. These use a res_partner/res_partner_bank defined in demo data. The account_asset test was forgotten during the fw-port of https://github.com/odoo/enterprise/commit/d8e5b62dfadffb6b81e61fce73053fa806fc2c6c Runbot error: 26966, 26308, 26986 Forward-Port-Of: odoo/enterprise#50624 Forward-Port-Of: odoo/enterprise#49851
Original PR description
We want the tests to be able to run even without demo data. These use a res_partner/res_partner_bank defined in demo data. The account_asset test was forgotten during the fw-port of https://github.com/odoo/enterprise/commit/d8e5b62dfadffb6b81e61fce73053fa806fc2c6c Runbot error: 26966, 26308, 26986 Forward-Port-Of: odoo/enterprise#50624 Forward-Port-Of: odoo/enterprise#49851
Add code 262 in "brut" and "net" expressions of "Participations" section opw-3545765 Linked community PR: https://github.com/odoo/odoo/pull/142205 Forward-Port-Of: odoo/enterprise#50903 Forward-Port-Of: odoo/enterprise#50745
Original PR description
Add code 262 in "brut" and "net" expressions of "Participations" section opw-3545765 Linked community PR: https://github.com/odoo/odoo/pull/142205 Forward-Port-Of: odoo/enterprise#50903 Forward-Port-Of: odoo/enterprise#50745
Steps to reproduce: - Go to "Settings / Technical / Discuss / Activity Types" - Set a default user for "Tax Report" and "Tax Report Ready" (i.e. Marc Demo) - Go to "Accounting / Reporting / Audit Reports / Tax Report" - Click on "CLOSING ENTRY" button => A "Tax Report" activity is created on the closing entry for the main admin (i.e. Mitchell Admin). - Post the closing entry => A "Tax Report Ready" activity is created for the main admin too. In both cases, the default user configure
Original PR description
Steps to reproduce: - Go to "Settings / Technical / Discuss / Activity Types" - Set a default user for "Tax Report" and "Tax Report Ready" (i.e. Marc Demo) - Go to "Accounting / Reporting / Audit Reports / Tax Report" - Click on "CLOSING ENTRY" button => A "Tax Report" activity is created on the closing entry for the main admin (i.e. Mitchell Admin). - Post the closing entry => A "Tax Report Ready" activity is created for the main admin too. In both cases, the default user configured on the activity type is ignored. Solution: Use the default user configured on the activity type and make sure that the user is part of the company and is in group "account.group_account_manager". opw-3496493 Forward-Port-Of: odoo/enterprise#50857 Forward-Port-Of: odoo/enterprise#49486
Steps to reproduce: - Install l10n_mx_edi - Use an user with Accountant rights in Accounting (e.g. Mitchell Admin) - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to "Accounting / Customers / Invoices" - Click on "Upload" button and upload a CFDI invoice - Connect with another user with Accountant rights in Accounting (e.g. Marc Demo) - Try to open the invoice created from the uploaded CFDI invoice => You will be able to open the invoice, but an Access Error on the attachm
Original PR description
Steps to reproduce: - Install l10n_mx_edi - Use an user with Accountant rights in Accounting (e.g. Mitchell Admin) - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to "Accounting / Customers / Invoices" - Click on "Upload" button and upload a CFDI invoice - Connect with another user with Accountant rights in Accounting (e.g. Marc Demo) - Try to open the invoice created from the uploaded CFDI invoice => You will be able to open the invoice, but an Access Error on the attachment will be raised. Cause: When the CFDI invoice is uploaded, an attachment is correctly created from it and linked to the invoice. But another attachment is created from that document to create a "l10n_mx_edi.document" record. This second attachment has no reference to the invoice (i.e. its "res_model" and "res_id" fields are not set). opw-3579253 Forward-Port-Of: odoo/enterprise#50689
We now find more emails when input is a strange multi-emails like input. See community PR for more details. Task-3572208 Forward-Port-Of: odoo/enterprise#50892
Original PR description
We now find more emails when input is a strange multi-emails like input. See community PR for more details. Task-3572208 Forward-Port-Of: odoo/enterprise#50892
When the payment label is a single word, we try to match the full value and not only the alphanumeric values. However, the matching was made on the token that was already sanitized using the [0-9a-zA-Z\s] regex. Instead, let's match the full value. X-original-commit: bccc0ae0e896d58b54debae9483b8744d2b59ddc Forward-Port-Of: odoo/enterprise#49962 Forward-Port-Of: odoo/enterprise#49842
Original PR description
When the payment label is a single word, we try to match the full value and not only the alphanumeric values. However, the matching was made on the token that was already sanitized using the [0-9a-zA-Z\s] regex. Instead, let's match the full value. X-original-commit: bccc0ae0e896d58b54debae9483b8744d2b59ddc Forward-Port-Of: odoo/enterprise#49962 Forward-Port-Of: odoo/enterprise#49842
There are a few reports/options that have the account as line name. When it happens, the account display name is shown, which contains both the code and the name. In this change, we aim to improve the xlsx print by dynamically splitting the name in such a case in two columns, easing manipulation of the file after export. Task id # 3525247 Forward-Port-Of: odoo/enterprise#48595
Original PR description
There are a few reports/options that have the account as line name. When it happens, the account display name is shown, which contains both the code and the name. In this change, we aim to improve the xlsx print by dynamically splitting the name in such a case in two columns, easing manipulation of the file after export. Task id # 3525247 Forward-Port-Of: odoo/enterprise#48595
Before this commit, the 'pos_preparation_display' module mistakenly used 'product.template.attribute.value' instead of the correct 'product.template.attribute.value' for displaying product attributes. This resulted in incorrect attribute values being shown in the preparation display. This commit corrects the reference to ensure that the accurate attribute values are displayed. opw-3599554 Forward-Port-Of: odoo/enterprise#50837
Original PR description
Before this commit, the 'pos_preparation_display' module mistakenly used 'product.template.attribute.value' instead of the correct 'product.template.attribute.value' for displaying product attributes. This resulted in incorrect attribute values being shown in the preparation display. This commit corrects the reference to ensure that the accurate attribute values are displayed. opw-3599554 Forward-Port-Of: odoo/enterprise#50837
12 changes
Enhancements to existing features
The desktop icon in kanban cards within the Stock Barcode module was misaligned and has now been corrected. This visual improvement ensures that the interface displays properly and provides a better user experience when managing barcode operations.
Original PR description
Prior to this PR, the `desktop icon` inside a kanban card was misaligned. Task-3586834 | Before | After | |--------|--------| | <img width="343" alt="Screenshot 2023-11-07 at 15 38 16" src="https://github.com/odoo/enterprise/assets/108661430/58a06311-8d73-4bd6-a5a6-9cc1dedec4b4">| <img width="333" alt="Screenshot 2023-11-07 at 15 36 36" src="https://github.com/odoo/enterprise/assets/108661430/011f7334-e37a-4f02-8b91-92a02d7bc38d"> |
Resolved issues and error corrections
This fix corrects the alignment of the confirmation message that appears when users validate their timesheets. The notification now displays in the proper centered position, improving the visual presentation and user experience when submitting timesheet entries.
Original PR description
Before this PR when we validate timesheet toast notification was not correctly centered. After this PR when we validate timesheet toast notification is correctly centered. task-3433667
This update removes an outdated field called "show_operations" from the manufacturing work order form view. The field was already removed from the core system, and this change ensures the enterprise version stays synchronized with that update, preventing display errors and maintaining consistency across the application.
Original PR description
In COM PR linked, `show_operations` field is removed from the form view inherited here. COM PR: odoo/odoo#140898
This update prevents users from editing the follow-up report directly in Studio, since it's composed only of an email template. Users who need to customize follow-up communications can now edit the underlying email template instead, which is the proper way to modify this report's content.
Original PR description
opw-3551400 Forward-Port-Of: odoo/enterprise#50833
This update completes the cleanup process for the AvaTax accounting module to ensure it's properly neutralized in non-production environments. The fix removes residual production settings that could confuse users even when the module is disabled, bringing the system in line with how it's handled in earlier versions.
Original PR description
This commit adds a missing part of the neutralisation of the account_avatax app. This brings it back in line with the complete neutralisation script that is used on the PaaS and SaaS in versions < 16.0 Forward-Port-Of: odoo/enterprise#50889
This update restores a scroll test in the mail messaging system that was previously removed. The fix ensures that the automatic scrolling behavior in the message chatter works correctly and is properly validated through testing.
Original PR description
Fixes in community PR. https://github.com/odoo/odoo/pull/142308
The aged payable audit helper text was displaying as plain text instead of formatted markup. This fix applies proper formatting to the helper content, improving readability and presentation of the audit information in the aged payable report.
Original PR description
This commit makes the helper of the auditing action of the aged payable report markup as it is currently not the case and its content is in plain text.
This update adds a verification check to ensure that helpdesk teams are properly found during testing. Previously, the system would attempt to update a helpdesk team without confirming it existed, which could lead to silent failures. This fix adds a safety check to catch and report any issues when helpdesk teams cannot be located.
Original PR description
Before this commit, the test does a search to fetch a helpdesk team to do a write but we don't check if the helpdesk is found This commit adds an assert to be sure a helpdesk team is found with the search called. runbot-21676 Forward-Port-Of: odoo/enterprise#50997
This update corrects how column labels appear in accounting reports. Previously, column labels were displayed in lowercase, making them harder to read. The fix now displays labels in proper formatting, improving the visual presentation and readability of financial reports for users.
Original PR description
Before this commit we use `column.name` as label of our columns for report lines in the report form view. It caused that the label was in lower case. The aim of this commit is using the `label` instead of the `name` to have the column `label` well formatted. Before:  After:  no task id
A recent update removed the "plan" button from the sales planning calendar view to reduce clutter. This fix updates the automated test to work with the new interface by clicking directly on the calendar cell instead of looking for the removed button. This ensures the test continues to work properly with the updated user interface.
Original PR description
Before this commit, a recent generic change removes the "add" and "plan" buttons in each gantt cell to avoid having too many elements available in the gantt view. That changes has not been adapted for the sale_planning tour and so the step failed because it no longer found plan button. This commit removes the step failed and adapt the previous step to just click on the grid cell to display the plan dialog. runbot-25881
Two automated tests in the Planning and Project Forecast modules were failing when run on weekends because the system's working schedule doesn't include weekends. This fix ensures these tests always run during weekdays by freezing the test execution time, making the tests reliable and consistent regardless of when they're run.
Original PR description
## [FIX] project_forecast: freeze time for test_shift_creation_from_project Before this commit, the `test_shift_creation_from_project` test failed during the weekend because the working schedule of…
## [FIX] project_forecast: freeze time for test_shift_creation_from_project Before this commit, the `test_shift_creation_from_project` test failed during the weekend because the working schedule of the current company considers the weekend is not a working day and so instead of creating a planning template during 2 days, it will create a planning template during one day. This commit freezes the time to be sure, the test is executed during a working day to stay valid and keep the same behavior to test. runobt-41215 ## [FIX] planning: freeze time for test_shift_creation_from_role Before this commit, the `test_shift_creation_from_role` test failed during the weekend because the working schedule of the current company considers the weekend is not a working day and so instead of creating a planning template during 2 days, it will create a planning template during one day. This commit freezes the time to be sure, the test is executed during a working day to stay valid and keep the same behavior to test. runobt-41977 Forward-Port-Of: odoo/enterprise#50999
Code cleanup and technical improvements
This update removes an unnecessary variable from the account reports module that was redundant with existing functionality. The system now uses a single method to handle report exports, making the code cleaner and easier to maintain without any changes to how reports work for users.
Original PR description
The `export_report` variable is not longer needed since `dispatch_report_action()` is already handling it through the `on_sections_source` parameter.