Tuesday, December 5, 2023
23 changes · master
New functionality added to Odoo
Adds a new statement of account report for Malaysian localization, available from follow-up reports. This helps businesses share clearer customer account summaries and payment follow-up information from within Odoo.
Original PR description
Impacted Version: - 17.1 and above This commit improve below features: - Create statement of account reports in follow-up reports task-3610441
Enhancements to existing features
Spreadsheet users now see a warning when a pivot data source is not used in any formula. This helps users spot unused data sources more easily from the menu and side panel, reducing confusion and keeping spreadsheets cleaner.
Original PR description
This commit adds a warning in the menu item and the side panel of the pivot view when the data source is not used in any formula. Task: [3487684](https://www.odoo.com/web#id=3487684&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
Resolved issues and error corrections
Quality test type names can now be translated, making the Quality app easier to use for non-English-speaking teams. This improves localization and helps users understand quality checks in their preferred language.
Original PR description
quality.point.test_type names weren't being translated. Let's improve the quality of the quality module for non-native English speakers! Note that this fix is added into v15-saas-15.2, but could not be added for v16-v17 stable versions due to adding "translate=True" to a Char field requiring a -u of the module (since its translations are stored as a different db column)
Miscellaneous changes
This commit allows the value of an option to be unset. Before this commit, once a value had been set, it was impossible to remove it from the view. For example, an image size couldn't be unset to keep the default behavior. A test has been added to verify that the SelectMenu has a remove button, and that the value can be remove effectively. task-3470048 Forward-Port-Of: odoo/enterprise#52034 Forward-Port-Of: odoo/enterprise#47400
Original PR description
This commit allows the value of an option to be unset. Before this commit, once a value had been set, it was impossible to remove it from the view. For example, an image size couldn't be unset to keep the default behavior. A test has been added to verify that the SelectMenu has a remove button, and that the value can be remove effectively. task-3470048 Forward-Port-Of: odoo/enterprise#52034 Forward-Port-Of: odoo/enterprise#47400
Embedded views added to Knowledge articles now automatically switch the article to a full-width layout. This gives users more room to view and work with embedded content, making articles easier to edit and read.
Original PR description
This commit changes the behavior of inserting any embedded view inside of a knowledge article: when inserted we switch the view to full_width. This way it is easier to work with embedded views as they are bigger and easier to see. task-3604828
The Documents PDF manager now supports keyboard shortcuts for common actions like splitting, adding files, and using action buttons. This makes handling PDFs quicker and easier for users who process documents frequently.
Original PR description
Make the PDF manager easier to use by mapping its action buttons to hotkeys: - split -> ALT + S - close -> already mapped to escape - add file -> ALT + F - other actions -> ALT + SHIFT + 1..9 task-3510539
Timesheet grids now visually flag entries that need attention, such as more than 24 hours in a day, missing expected hours, or overtime. This helps managers and employees spot potential mistakes, lost billing, or workload issues faster, while also improving the accuracy of expected working time calculations.
Original PR description
The main goal of this task is to give users visual clues so that they can see at glance there is an abnormal situation to address. Before this commit: 1) grid view: It makes no sense to encode more…
The main goal of this task is to give users visual clues so that they can see at glance there is an abnormal situation to address. Before this commit: 1) grid view: It makes no sense to encode more than 24h in one day. We can thus safely assume that the user mistyped, but the user is not alerted about it. 2) if an employee has timesheeted less than they should have, the company is potentially losing money. It must then be rectified asap. Same when doing overtime, it can mean that the company will have to compensate the employee accordingly. It is also a clue for the manager that an employee may be overloaded. 3) using _work_intervals_batch to get resources work interval doesn't take into consideration their calendar. In this commit: 1) Cells that are > 24h are highlighted in red when grouping by an employee or when viewing the 'my timesheets' menu 2) We colored the cell of the total per day of each employee in the section. - red when there are missing timesheets - orange if there is overtime. 3) using _get_valid_work_intervals fixed the issue. Related PRs: Community: https://github.com/odoo/odoo/pull/124512 task-3054342
This update removes outdated image URL handling from WhatsApp conversation threads. It helps keep the WhatsApp integration aligned with the main platform changes and reduces the chance of incorrect or duplicated chat image data.
Original PR description
see https://github.com/odoo/odoo/pull/140469
The Planning app no longer shows a client error when users open the roles view from the configuration menu. This restores access to role configuration and avoids disruption for managers setting up planning resources.
Original PR description
This commit fixes a traceback that would appear when trying to access the roles view from the configuration many in the Planning application. -- Behaviour Before -- When navigating to the roles from the configuration menu, a client error would appear stating that ``_lt`` is not a function. -- Issue -- We use _lt for translations in many2many_avatar_resource_field.js and for some reason an error was popping up. The ``_lt`` function will be merged with the ``_t`` function in 17.1 so this would have been done anyways. -- Current Behaviour -- Everything works alright ! task-3599395
Steps to reproduce: - Create a stored product - Update on hand quantity to 30 package P location WH-STOCK - Create and confirm an SO for that product - On the barcode app select the related picking - scan source location then scan the product and validate Bug: package is still set which will create a negative quantity for that package in the new location Fix: clear the package when changing source location if the package is not there opw-3546239 Forward-Port-Of: odoo/enterprise#
Original PR description
Steps to reproduce: - Create a stored product - Update on hand quantity to 30 package P location WH-STOCK - Create and confirm an SO for that product - On the barcode app select the related picking - scan source location then scan the product and validate Bug: package is still set which will create a negative quantity for that package in the new location Fix: clear the package when changing source location if the package is not there opw-3546239 Forward-Port-Of: odoo/enterprise#51924 Forward-Port-Of: odoo/enterprise#50713
This commit removes the preparation category so that all categories are prepared and thus displayed on the kitchen display. Forward-Port-Of: odoo/enterprise#51774
Original PR description
This commit removes the preparation category so that all categories are prepared and thus displayed on the kitchen display. Forward-Port-Of: odoo/enterprise#51774
latam task 1097 Forward-Port-Of: odoo/enterprise#48754 Forward-Port-Of: odoo/enterprise#47967
Original PR description
latam task 1097 Forward-Port-Of: odoo/enterprise#48754 Forward-Port-Of: odoo/enterprise#47967
Issue Description: ================== An employee is configured for flexible work hours. However, when their schedule is planned, it fails to display correctly. In Odoo 16.3, to establish flexible hours, one must select `planning` in the employee's contract. Consequently, the `Working hours` field (found under `Schedule` in the `Work Information` tab) should be left blank. Intriguingly, if `Working hours` are reinstated in `Work Information,` the planning becomes visible, but this action co
Original PR description
Issue Description: ================== An employee is configured for flexible work hours. However, when their schedule is planned, it fails to display correctly. In Odoo 16.3, to establish flexible…
Issue Description: ================== An employee is configured for flexible work hours. However, when their schedule is planned, it fails to display correctly. In Odoo 16.3, to establish flexible hours, one must select `planning` in the employee's contract. Consequently, the `Working hours` field (found under `Schedule` in the `Work Information` tab) should be left blank. Intriguingly, if `Working hours` are reinstated in `Work Information,` the planning becomes visible, but this action contradicts the flexible hours setting. Steps to Reproduce: =================== 1. Navigate to the `Employees` app and select an employee. 2. Access the `Work Information` tab and clear the `Working hours` field. 3. Go to the `Planning` app, and publish a schedule for the selected employee. 4. Switch to developer mode and proceed to `Settings` > `Technical` > `Email` > `Emails`. 5. Attempt to open a link from the relevant email; the planning will not be displayed. Proposed Solution: ================== Modify the process so that when an employee's `Working Hours` are not set, the system bypasses the calculation of 'minTime' and 'maxTime' values in the 'timeGridDay' and 'timeGridWeek' components. This should allow for the correct display of planning schedules for employees with flexible working hours. opw-3608860 Forward-Port-Of: odoo/enterprise#51943
Small refactoring to be coherent with odoo/odoo#144574 Correction of the changes of odoo/enterprise#48709 Forward-Port-Of: odoo/enterprise#51964
Original PR description
Small refactoring to be coherent with odoo/odoo#144574 Correction of the changes of odoo/enterprise#48709 Forward-Port-Of: odoo/enterprise#51964
With an MX company setup Create an invoice Add foreign partner Set fields Incoterm and External trade Set currency to MXN Add a line Confirm Send&Print CFDI Validation will fail with error Code : CCE173 Message : El valor del atributo cce11:ComercioExterior:Mercancias:Mercancia:UnidadAduana es igual a "99"o el atributo cce11:ComercioExterior:Mercancias:Mercancia:ValorUnitarioAduana es igual a cero. In the CFDI the amount in USD of the move is reported as 0. This occurs because, wh
Original PR description
With an MX company setup Create an invoice Add foreign partner Set fields Incoterm and External trade Set currency to MXN Add a line Confirm Send&Print CFDI Validation will fail with error Code : CCE173 Message : El valor del atributo cce11:ComercioExterior:Mercancias:Mercancia:UnidadAduana es igual a "99"o el atributo cce11:ComercioExterior:Mercancias:Mercancia:ValorUnitarioAduana es igual a cero. In the CFDI the amount in USD of the move is reported as 0. This occurs because, when the main currency is MXN, we don't have `tipo_cambio` in cfdi values, but we need the amount to compute the ratio to USD opw-3601134 Forward-Port-Of: odoo/enterprise#52066
This PR adds/change the name of the page corresponding to the string attribute because To be able to detect a field, Knowledge needs to be able to read its page name. For more reference: Task-3501211 Task-3524474 Forward-Port-Of: odoo/enterprise#48315
Original PR description
This PR adds/change the name of the page corresponding to the string attribute because To be able to detect a field, Knowledge needs to be able to read its page name. For more reference: Task-3501211 Task-3524474 Forward-Port-Of: odoo/enterprise#48315
Change fixes problem with every refund work day being labeled as half-day. It was caused by the fact that number_of_days is negative in case of refund and function checking whether work day is half didn't take it into account. task-3523846 Forward-Port-Of: odoo/enterprise#51981 Forward-Port-Of: odoo/enterprise#49568
Original PR description
Change fixes problem with every refund work day being labeled as half-day. It was caused by the fact that number_of_days is negative in case of refund and function checking whether work day is half didn't take it into account. task-3523846 Forward-Port-Of: odoo/enterprise#51981 Forward-Port-Of: odoo/enterprise#49568
Bug === When we open the document inspector without selecting the record, if we change some field values, those changes are not saved. The reason for that is that the web client expects the record to be selected in the kanban view / list view if we make a change, which is not always the case in Documents. Task-3586696 Forward-Port-Of: odoo/enterprise#51877 Forward-Port-Of: odoo/enterprise#50516
Original PR description
Bug === When we open the document inspector without selecting the record, if we change some field values, those changes are not saved. The reason for that is that the web client expects the record to be selected in the kanban view / list view if we make a change, which is not always the case in Documents. Task-3586696 Forward-Port-Of: odoo/enterprise#51877 Forward-Port-Of: odoo/enterprise#50516
Since 7b338e0, Odoo does not send emails if you change the stage of your own tickets (or create them), the rationale being that you don't need to be informed of your own actions. But portal users are not familiar with Odoo so we want to always send them an email if they create a ticket. steps to reproduce: - create a portal user - create an helpdesk team with an alias - set a template on the initial stage - send an email from the portal user email address to that alias before this comm
Original PR description
Since 7b338e0, Odoo does not send emails if you change the stage of your own tickets (or create them), the rationale being that you don't need to be informed of your own actions. But portal users are not familiar with Odoo so we want to always send them an email if they create a ticket. steps to reproduce: - create a portal user - create an helpdesk team with an alias - set a template on the initial stage - send an email from the portal user email address to that alias before this commit: - the ticket is created but no email is send from the mail template after this commit: - an email from the mail template is sent if a portal user creates a ticket using the email alias opw-3555716 Forward-Port-Of: odoo/enterprise#52035 Forward-Port-Of: odoo/enterprise#51992
When closing an asset with a non-depreciable value, the book value is equal to the non-depreciable value instead of zero. opw-3565329 Forward-Port-Of: odoo/enterprise#52065 Forward-Port-Of: odoo/enterprise#51453
Original PR description
When closing an asset with a non-depreciable value, the book value is equal to the non-depreciable value instead of zero. opw-3565329 Forward-Port-Of: odoo/enterprise#52065 Forward-Port-Of: odoo/enterprise#51453
This commit adds commercial company name for the receiver and sender partners to the shipping request to sendcloud. opw-3591211 Forward-Port-Of: odoo/enterprise#51880 Forward-Port-Of: odoo/enterprise#51676
Original PR description
This commit adds commercial company name for the receiver and sender partners to the shipping request to sendcloud. opw-3591211 Forward-Port-Of: odoo/enterprise#51880 Forward-Port-Of: odoo/enterprise#51676
This issue occurs when a customer creates a delivery order using the inventory module, validates it, and then tries to generate the delivery guide for that order. At that time error will be generated. step to reproduce: - Install the `l10n_mx_edi_stock` Module. - switch the company of `ESCUELA KEMPER URGATE` - open the `Inventory` - create the delivery order > validate it. - click on `Generate Delivery Guide` button. - the error will be generated, sentry traceback- ``` AttributeEr
Original PR description
This issue occurs when a customer creates a delivery order using the inventory module, validates it, and then tries to generate the delivery guide for that order. At that time error will be…
This issue occurs when a customer creates a delivery order using the inventory module, validates it, and then tries to generate the delivery guide for that order. At that time error will be generated.
step to reproduce:
- Install the `l10n_mx_edi_stock` Module.
- switch the company of `ESCUELA KEMPER URGATE`
- open the `Inventory`
- create the delivery order > validate it.
- click on `Generate Delivery Guide` button.
- the error will be generated,
sentry traceback-
```
AttributeError: 'stock.picking' object has no attribute '_l10n_mx_edi_cfdi_invoice_document_sent_failed'
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 "addons/web/controllers/dataset.py", line 28, in call_button
action = self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 20, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 466, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "odoo/api.py", line 453, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "home/odoo/src/enterprise/17.0/l10n_mx_edi_stock/models/stock_picking.py", line 362, in l10n_mx_edi_cfdi_try_send
self._l10n_mx_edi_cfdi_invoice_document_sent_failed("\n".join(errors))
```
https://github.com/odoo/enterprise/blob/17.0/l10n_mx_edi_stock/models/stock_picking.py#L362
https://github.com/odoo/enterprise/blob/17.0/l10n_mx_edi_stock/models/stock_picking.py#L264
The reason for this error is that the method that called `l10n_mx_edi_cfdi_invoice_document_sent_failed` instead of `_l10n_mx_edi_cfdi_document_sent_failed` was called incorrectly.
sentry-4621933269
Forward-Port-Of: odoo/enterprise#50791Versions: --------- -16.3e+ Steps to reproduce: ------------------- - Have a private project you don't follow with a task assigned to you; - go to timesheets; - add a line with the task; - update hours via the grid. Issue: ------ Access error, you don't have access to `project.project` record. Cause: ------ odoo/odoo#133443 added the ability for users to search & add tasks assigned to them from private projects to the Timesheets grid. That issue was caused by checking the `al
Original PR description
Versions: --------- -16.3e+ Steps to reproduce: ------------------- - Have a private project you don't follow with a task assigned to you; - go to timesheets; - add a line with the task; - update hours via the grid. Issue: ------ Access error, you don't have access to `project.project` record. Cause: ------ odoo/odoo#133443 added the ability for users to search & add tasks assigned to them from private projects to the Timesheets grid. That issue was caused by checking the `allow_timesheets` field of a project they don't have access to. Similarly, the`grid_update_cell` method also double checks that the record you're updating has `allow_timesheets` enabled, leading to the access error when the task belongs to a project you cannot access. Solution: --------- Use `sudo` before trying to access `project_id.allow_timesheets`. Also fixed a warning in kanban view caused by comparing a record with a record id. opw-3587411 Forward-Port-Of: odoo/enterprise#51976