Search
Navigate
Branch
Tuesday, December 5, 2023
38 changes
23 changes
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
15 changes
New functionality added to Odoo
Odoo now integrates with Pricer electronic price tag systems, allowing businesses to link their products to physical price tags that display product information and pricing. The system automatically syncs product changes to the price tags every 12 hours, with the option for manual updates, streamlining in-store price management.
Original PR description
This PR adds a new module "pricer" It allows integration of Odoo with Pricer. Users can now associate their products in Odoo to Pricer electronic price tags, which allow them to display product information and price Every 12 hours in a cron we check if the products with Pricer tags linked to them were modified and if so, we call Pricer API to modify the displayed product information. (this can also be done manually) task-3414052
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
Enhancements to existing features
The AvaTax connection test pop-up has been improved to clearly show whether the authentication was successful or failed. Previously, users saw a confusing dictionary of raw data without knowing if the connection worked. Now the results are displayed as a clear list with explicit success/failure messaging, making it much easier for users to understand the connection status.
Original PR description
Before this commit, the pop-up when testing the avatax connection was very unclear for user. Indeed, we displayed a dictionary of information without really telling the user that the connection was successful or not. Now, when testing the connection we clearly indicate if the authentication was a success or not, and we display all the information as a list. task: 3614808
Resolved issues and error corrections
Fixed an issue in Web Studio where selecting a non-existent method when creating a custom button would cause a confusing error. Now, the system provides a clear validation error message when users try to use a method that doesn't exist in the model, making it easier to identify and correct the mistake.
Original PR description
The customer wants to use Web Studio to create an add custom button from an existing method in the model; however, there is a non-existent method identified, at that time the error will be generated.…
The customer wants to use Web Studio to create an add custom button from an existing method in the model; however, there is a non-existent method identified, at that time the error will be generated.
step to reproduce:
- install the `web_studio & sale_management`
- open sale
- open any one Quotations
- click on `web_studio` button
- click on Add button
- enter the label & select `call a method`
- write method name `action_delete` (non-existing method in model)
- the error will be generated,
sentry traceback-
```
AttributeError: 'sale.order' object has no attribute 'prin'
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/web_studio/controllers/main.py", line 1697, in check_method
if not callable(getattr(model, method_name)):
```
after this commit ,If the customer prefers a non-existing method,at that time raise Validation Error.
sentry-4614276017This fix corrects the Tax Report for Argentine companies to display the invoice date (Bill Date) instead of the accounting date in the Date column. Previously, when an invoice had a different accounting date than its bill date, the report would show the wrong date, causing confusion in tax reporting and compliance documentation.
Original PR description
Task Adhoc: 32101 Task latam: 1121 #### Steps to reproduce: 1. Go to runbot Odoo 16 enterprise and install "l10n_ar_edi" module (Argentinean Electronic Invoicing). 2. Take position on Argentinian…
Task Adhoc: 32101 Task latam: 1121 #### Steps to reproduce: 1. Go to runbot Odoo 16 enterprise and install "l10n_ar_edi" module (Argentinean Electronic Invoicing). 2. Take position on Argentinian company (AR) (Responsable Inscripto). 3. Create a vendor bill with a journal that use documents and with "Accounting Date" one month after the "Bill Date". For example: "Bill Date" = "09/22/2023" and "Accounting Date" = "10/01/2023". Finally confirm the invoice. 4. Go to "Accounting / Reporting / Statement Reports / Tax Report", select "Tax Type: Purchases" and filter by the same month of the "Accounting Date" mentioned in step 3 (in this case: October). 5. The column "Date" must show "Bill Date" instead of "Accounting Date" for each document. #### Current behavior: "Tax Report" with "Tax Type: Purchases" is showing on column "Date" the value of the "Accounting Date" instead of "Bill Date". #### Expected behavior: "Tax Report" with "Tax Type: Purchases" is showing on column "Date" the value of of "Bill Date". Forward-Port-Of: odoo/enterprise#50774
This update addresses compliance requirements for Belgian POS systems in version 17. The fix resolves issues with product deletion functionality, enables proper cash rounding settings, and removes commented-out validation checks to ensure the system meets certification standards.
Original PR description
In order to be certified, few changes has to be done in v17. We fix deletion of the product that was not working. The cash rounding was not set. the check was commented and we remove the comment.
This update fixes three critical issues when copying spreadsheet history: the snapshot data was not being preserved during the copy process, active revision history was incorrectly carried over to the copied spreadsheet, and the snapshot was referencing the wrong revision ID. These fixes ensure that when users copy a spreadsheet's history, the data is accurately preserved and the revision tracking works correctly.
This fix enables users to remove previously set values from optional settings in Web Studio, such as image sizes, allowing them to revert to default behavior. Previously, once a value was set, it couldn't be removed from the view. The change includes a test to verify the remove functionality works correctly.
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#51646 Forward-Port-Of: odoo/enterprise#47400
This fix resolves two critical issues in the Shop Floor workorder process. Previously, clicking 'Mark as Done' would fade out the workorder without validating required information like lot/serial numbers for the final product, and there was no way to close production on the last workorder. Now the system properly validates all prerequisites before allowing workorders to be marked complete.
Original PR description
In the Shop Floor, on a workorder, 'Mark as Done' do not check for its prerequisites before fading out, giving you for example no chance to fill the missing lot/serial for the final product. Moveover, on the last workorder, you have no way to 'Close Production'.
This update corrects the Balance Sheet and Profit & Loss reports for Kazakhstan operations to align with official financial statement requirements. The changes ensure disposal group assets and liabilities are properly included in totals, equity accounts display with correct signs, and expense/income lines show accurate values based on debit/credit conventions. These corrections ensure financial reports are balanced and compliant with Kazakhstan accounting standards.
Original PR description
Balance Sheet: - Lines 101. Assets (or disposal groups) held for sale, and 301. Liabilities of disposal groups held for sale should be added to the totals of Assets and Liabilities, respectively. - The sign of account 51 should be + not - since it's an Equity account. Profit & Loss: - I've changed the sign of the accounts used for each report line, so that lines that expect to be expenses are positive on debit, and lines that expect to be income are positive on credit. Source: official financial statements, found at https://adilet.zan.kz/rus/docs/V1700015384 This is part of the wider task of re-balancing the Balance Sheets. I've checked that with these changes, the Balance Sheet is always balanced. (Checked using the TestBalanceSheetBalanced test from https://github.com/odoo/enterprise/pull/47602) taskid:3060790 Forward-Port-Of: odoo/enterprise#47604
This fix resolves an issue where WhatsApp guest users were experiencing unnecessary message separators and repeated server calls when loading public pages. The system now properly tracks when guests have viewed messages, reducing redundant processing and improving the user experience for guest visitors.
Original PR description
Since 17.0, the new message separator is displayed for guests. The set_last_seen_message rpc is also triggered in order to save this information on the server side. However, the _channel_seen method does not handle guests as it should. As a consequence, the new message separator is always displayed and the rpc call is always done when a guest loads the public page. This PR enable guest support for this feature. task-3603603 community: https://github.com/odoo/odoo/pull/142546
Employees with flexible work hours can now have their schedules properly displayed in the Planning app. Previously, when an employee's working hours were left blank (as required for flexible scheduling), their published schedules would fail to display. This fix allows the system to correctly handle flexible hour employees by skipping unnecessary time calculations.
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
Users encountered an access error when trying to update hours in the timesheet grid for tasks assigned to them in private projects they don't follow. This fix allows the system to properly verify project settings without requiring direct access to the project record, enabling employees to log time on their assigned tasks regardless of project visibility settings.
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
This fix resolves an issue where Mexican invoices with MXN currency were failing CFDI validation because the USD amount was incorrectly calculated as zero. The system now properly computes the MXN to USD exchange ratio needed for external trade invoices, allowing them to pass validation successfully.
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 fix prevents users from accidentally converting a regular sales order into a subscription order after it has been confirmed. Previously, the recurrence and plan fields remained editable even on confirmed orders without subscription products, which could lead to unintended changes. Now these fields are automatically hidden when a confirmed order doesn't contain subscription products.
Original PR description
…firmed Currently, if you create a SO without subscription products and confirm it, the recurrence field will still be editable. Therefore allowing to change a confirmed SO to a subscription. This is an undesired behavior and should not be possible. This commit fixes that by hiding the recurrence field in confirmed SO without subscription products. task-3600687 Forward-Port-Of: odoo/enterprise#50860
This fix corrects an issue where refund work days in payroll were incorrectly being marked as half-days. The problem occurred because the system wasn't properly accounting for negative day values that occur during refunds. This ensures accurate payroll calculations and reporting for refunded work periods.
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