Daily updates from Odoo
Thursday, December 5, 2024
23 changes · master
Enhancements to existing features
Users can now press Ctrl+S while editing a Knowledge article to save their changes directly. This prevents the browser's default page-save prompt and matches the familiar save shortcut used in common text editors.
Original PR description
When the user presses `Ctrl` + `s`, the browser prompts the user to select a directory to save the current page in. Today, most text editors use the `Ctrl` + `s` shortcut to save the current file. This PR will add a new event listener for `Ctrl` + `s` that will prevent the default browser behavior and save the user changes in db. task-4191390
Attendance officers now see only the actions and fields they are allowed to use. This prevents users from trying to edit or save attendance information that would later be blocked by permissions, making the workflow clearer and reducing errors.
Original PR description
Before this commit, when a user has the right office and not manager in attendance; he was able to see some buttons, modify some values but when he tried to access/save it i had a rightissue. To avoid that, these buttons wille be hidden and these fields will be readonly when the user doesn't have enough right. task-4044869
The terminology for International Commercial Terms has been standardized from “Incoterm” to “Incoterms” across affected Odoo business flows. This reduces confusion in labels, reports, data fields, and integrations while aligning the product with the correct international abbreviation.
Original PR description
According to international standars, the abbreviation of 'International Commercial Terms' is INCOTERMS. However, the use of INCOTERM is prevalent in our codebase. This commits fixes it, rewording all references to the correct one. This commit also updates the name of the fields in the models to avoid future confusion about the correct abbreviation. task: 3983531 COM-PR: https://github.com/odoo/odoo/pull/189030 UPG-PR: https://github.com/odoo/upgrade/pull/6847
Resolved issues and error corrections
The Social Demo module now reuses existing standard records instead of creating duplicate copies. This reduces test database inconsistencies and helps avoid unexpected issues when the demo module is installed accidentally or for testing.
Original PR description
Although `social_demo` is a strong independent module it's a bit odd that it partially duplicates a bunch of data from `base` and `product`, and if it gets installed (possibly by mistake) into a database for testing, some tests don't cope well with the issue. Remove the duplicated records and just reference the base ones. Leave `product_product_4d` as it's either novel to `social_demo` or was removed from `product` since it was initially duplicated.
The barcode scanning flow now shows a correctly spelled and grammatically improved error message when a scanned barcode is not found. This makes the receipt process clearer for users and reduces confusion during warehouse operations.
Original PR description
Barcode --> Operations --> Receipts --> NEW Scan a barcode that doesn't exist in the DB ie: "5449000000996" The current error message's spelling and grammar are off. opw-4307102
Code cleanup and technical improvements
This update reorganizes and renames files across several Odoo project, timesheet, planning, helpdesk, field service, and subscription-related apps. It is an internal cleanup intended to make the codebase easier to maintain, with no expected direct change to day-to-day user workflows.
Original PR description
* helpdesk_timesheet * industry_fsm_report * industry_fsm_sale_report * planning * project_account_asset * project_account_budget * project_forecast * project_helpdesk * project_holidays * project_hr_payroll_account * project_sale_subscription * project_timesheet_forecast * project_timesheet_forecast_sale * project_timesheet_forecast * sale_timesheet_enterprise * timesheet_grid task-4366769
This update reorganizes and renames internal Point of Sale code across several related modules to make it easier to maintain. It should not change day-to-day cashier or restaurant workflows, but it reduces future development risk and improves consistency across country-specific and device integrations.
Original PR description
### Commit 1: [REF] pos_urban_paper, pos_l10n_se: clean setup method of pos_store Correctly separe user UI state, service and technical state in the pos_store setup method. Also rename state variable in snake_case to camel_case. --- ### Commit 2: [REF] point_of_sale, pos_*: pos_store cleaning *: l10n_cl_edi_pos,l10n_de_pos_cert,l10n_ec_edi_pos,l10n_mx_edi_pos, pos_blackbox_be,pos_iot,pos_iot_six,pos_l10n_se,pos_restaurant_preparation_display, pos_self_order_iot,pos_settle_due,pos_urban_piper Rename methods in pos_store to respect camelCase rules
Miscellaneous changes
after this commit [1] the **Pagos** namespace was always removed from the schemaLocation attribute, this was causing error for Quarum pac. this commit fix the issue by filtering the schemaLocation attribute based what is present in namespace map. [1] https://github.com/odoo/enterprise/commit/dd18e0829810df7594730e14e09ac2174eedcc32 opw-4168509 Forward-Port-Of: odoo/enterprise#74937 Forward-Port-Of: odoo/enterprise#74809
Original PR description
after this commit [1] the **Pagos** namespace was always removed from the schemaLocation attribute, this was causing error for Quarum pac. this commit fix the issue by filtering the schemaLocation attribute based what is present in namespace map. [1] https://github.com/odoo/enterprise/commit/dd18e0829810df7594730e14e09ac2174eedcc32 opw-4168509 Forward-Port-Of: odoo/enterprise#74937 Forward-Port-Of: odoo/enterprise#74809
In this commit we add several models to the PRESET_MODELS_DEFAULTS list such that the exporter includes necessary models by default. Task-4205813 Forward-Port-Of: odoo/enterprise#70495
Original PR description
In this commit we add several models to the PRESET_MODELS_DEFAULTS list such that the exporter includes necessary models by default. Task-4205813 Forward-Port-Of: odoo/enterprise#70495
`position_plugin` does not share methods, but it offers features through resources that are pretty much essential for other plugins. In these cases, it makes sense to add them as a dependency. Prior to this PR, it was not possible to comment inside a list item (comment beacons were not allowed inside) in the new editor. It is not intended, and this commits allows it again. task-4331264 Forward-Port-Of: odoo/enterprise#73855
Original PR description
`position_plugin` does not share methods, but it offers features through resources that are pretty much essential for other plugins. In these cases, it makes sense to add them as a dependency. Prior to this PR, it was not possible to comment inside a list item (comment beacons were not allowed inside) in the new editor. It is not intended, and this commits allows it again. task-4331264 Forward-Port-Of: odoo/enterprise#73855
Steps to reproduce: - Insert a pivot from CRM - Create a global filter, with type date or text => The id field can be selected With this commit, field `id` is now available only on relational global filters. Task: 4348477 Forward-Port-Of: odoo/enterprise#75076 Forward-Port-Of: odoo/enterprise#74191
Original PR description
Steps to reproduce: - Insert a pivot from CRM - Create a global filter, with type date or text => The id field can be selected With this commit, field `id` is now available only on relational global filters. Task: 4348477 Forward-Port-Of: odoo/enterprise#75076 Forward-Port-Of: odoo/enterprise#74191
- Add .pot base translation file. - Replace potentially unsafe `const_eval()` with a `json.loads()`. - Use the built-in methods for setting filename for received files. Forward-Port-Of: odoo/enterprise#74691 Forward-Port-Of: odoo/enterprise#74347
Original PR description
- Add .pot base translation file. - Replace potentially unsafe `const_eval()` with a `json.loads()`. - Use the built-in methods for setting filename for received files. Forward-Port-Of: odoo/enterprise#74691 Forward-Port-Of: odoo/enterprise#74347
This is only a cosmetic change from a text button to an icon button. The main changes of the PR are done in https://github.com/odoo/odoo/pull/184308/. ----------------------- Community pr description: - changed the "start", "pause" and "done" button text to icons to be able to set the button column size at a fixed value - moved the unblock button in the dropdown - made the previous block button toggle between block and unblock - change the dropdown bullet to red when blocked This
Original PR description
This is only a cosmetic change from a text button to an icon button. The main changes of the PR are done in https://github.com/odoo/odoo/pull/184308/. ----------------------- Community pr description: - changed the "start", "pause" and "done" button text to icons to be able to set the button column size at a fixed value - moved the unblock button in the dropdown - made the previous block button toggle between block and unblock - change the dropdown bullet to red when blocked This commit also modifies the width of the json_popover as it was using the base column width which was too big for the icon. It also modifies the width of the mo_list_dropdown column to limit the empty space. This implies changes in the web module: in `column_width_hook.js`, the width of a widget is equal to it's `listViewWidth`, like the fields. However, unlike the fields, the widget class is missing a validation for that props. task-id: 4279789 Forward-Port-Of: odoo/enterprise#74396
This will add new rule parameter values for 2024 for the CP200 salary scales. Task: 4274766 Forward-Port-Of: odoo/enterprise#73080
Original PR description
This will add new rule parameter values for 2024 for the CP200 salary scales. Task: 4274766 Forward-Port-Of: odoo/enterprise#73080
Before this PR: In the Kanban view, when selecting request documents and opening the chatter, the activity button does not appear. Similarly, in the list view, when selecting any documents and opening the chatter, the activity button is not displayed. Technical: For request documents, we get an empty res_model, so a condition was added to handle this. In the documents_list_renderer, the 'res_model' cannot be retrieved, since active fields are calculated from the 'arch info'. Therefore, we
Original PR description
Before this PR: In the Kanban view, when selecting request documents and opening the chatter, the activity button does not appear. Similarly, in the list view, when selecting any documents and opening the chatter, the activity button is not displayed. Technical: For request documents, we get an empty res_model, so a condition was added to handle this. In the documents_list_renderer, the 'res_model' cannot be retrieved, since active fields are calculated from the 'arch info'. Therefore, we added the field in the list view. After this PR: The activity button will now be visible for all documents in both the Kanban and list views. Task-4341409 Forward-Port-Of: odoo/enterprise#74588
The position of the `iso20022_uetr` field was defined as being after the `partner_bank_id` field in the view. However multiple of these fields were defined in the view using if/else conditions, and the former field was put after the first occurrence of the latter. So depending on which `partner_bank_id` field was shown, the `iso20022_uetr` field would be either before or after it. This commit makes it consistent and puts it after the last occurrence of `partner_bank_id`. Forward-Port-Of: odo
Original PR description
The position of the `iso20022_uetr` field was defined as being after the `partner_bank_id` field in the view. However multiple of these fields were defined in the view using if/else conditions, and the former field was put after the first occurrence of the latter. So depending on which `partner_bank_id` field was shown, the `iso20022_uetr` field would be either before or after it. This commit makes it consistent and puts it after the last occurrence of `partner_bank_id`. Forward-Port-Of: odoo/enterprise#75064
Steps to reproduce: 1) Install l10n_in_hr_payroll module 2) open payslip of an Indian employee 3) click on the Create Report button and select the Payment Advice option 4) creating Pdf report prints an empty report Cause: Payment advice only refers to the batch's payslip Fix: Now the Payment advice can apply directly to the payslips Task-4220378 Forward-Port-Of: odoo/enterprise#71515
Original PR description
Steps to reproduce: 1) Install l10n_in_hr_payroll module 2) open payslip of an Indian employee 3) click on the Create Report button and select the Payment Advice option 4) creating Pdf report prints an empty report Cause: Payment advice only refers to the batch's payslip Fix: Now the Payment advice can apply directly to the payslips Task-4220378 Forward-Port-Of: odoo/enterprise#71515
Current Behaviour: - when grouping or filtering records in the planning kanban view, the daterange looks like displayed on two columns Expected Behaviour: - the daterange should be displayed as a single line Task-4273653 Forward-Port-Of: odoo/enterprise#72466
Original PR description
Current Behaviour: - when grouping or filtering records in the planning kanban view, the daterange looks like displayed on two columns Expected Behaviour: - the daterange should be displayed as a single line Task-4273653 Forward-Port-Of: odoo/enterprise#72466
Norway will soon (beginning of 2025) only accept their 1.30 version of the SAF-T. This commit adapts the current behaviour to be in line with the change to that new version. This also correct two errors that were used in the generic SAF-T module: - The accounts codes should be used for AccountID instead of the account database ids - The ValueDate should be the accounting date and not the invoice date. Based on the info from: - Previous version SAF-T description: https://www.skatteetaten
Original PR description
Norway will soon (beginning of 2025) only accept their 1.30 version of the SAF-T. This commit adapts the current behaviour to be in line with the change to that new version. This also correct two…
Norway will soon (beginning of 2025) only accept their 1.30 version of the SAF-T. This commit adapts the current behaviour to be in line with the change to that new version. This also correct two errors that were used in the generic SAF-T module: - The accounts codes should be used for AccountID instead of the account database ids - The ValueDate should be the accounting date and not the invoice date. Based on the info from: - Previous version SAF-T description: https://www.skatteetaten.no/globalassets/bedrift-og-organisasjon/starte-og-drive/rutiner-regnskap-og-kassasystem/saf-t-regnskap/oppdateringer-desember-2020/norwegian-saf-t-financial-data---technical-description.pdf - New version: https://www.skatteetaten.no/globalassets/bedrift-og-organisasjon/starte-og-drive/rutiner-regnskap-og-kassasystem/saf-t-regnskap/oppdateringer-mars-2024/norwegian-saf-t-financial-data---technical-description.pdf task-3975794 Forward-Port-Of: odoo/enterprise#73249 Forward-Port-Of: odoo/enterprise#65221
At the moment, the SOAP call in `_l10n_ec_get_client_service_response` catches `ConnectionError`, but some exceptions raised by zeep (such as `Timeout`) are not caught and will cause a traceback for the user. We catch `RequestException` to make sure that these are caught. task-none Forward-Port-Of: odoo/enterprise#74266
Original PR description
At the moment, the SOAP call in `_l10n_ec_get_client_service_response` catches `ConnectionError`, but some exceptions raised by zeep (such as `Timeout`) are not caught and will cause a traceback for the user. We catch `RequestException` to make sure that these are caught. task-none Forward-Port-Of: odoo/enterprise#74266
At the moment, when `l10n_ke_edi_oscu_stock` is installed, the purchase order view is broken for users that don't belong to the `account.group_account_invoice` group, because they don't have access to the `l10n_ke_edi.customs.import` model. This commit restricts the `l10n_ke_customs_import_ids` field on the `purchase.order` view to the `account.group_account_invoice` so that this error no longer occurs. runbot-70725 Forward-Port-Of: odoo/enterprise#74893
Original PR description
At the moment, when `l10n_ke_edi_oscu_stock` is installed, the purchase order view is broken for users that don't belong to the `account.group_account_invoice` group, because they don't have access to the `l10n_ke_edi.customs.import` model. This commit restricts the `l10n_ke_customs_import_ids` field on the `purchase.order` view to the `account.group_account_invoice` so that this error no longer occurs. runbot-70725 Forward-Port-Of: odoo/enterprise#74893
Currently, when cancelling an order, the notification is not sent to the preparation display. Steps to reproduce: ------------------- * Open both restaurant and preparation display * In the restaurant place an order and send it to the kitchen * Select Action > Cancel order > Observation: The cancellation is not sent to the preparation display Note: If you send a new order or refresh the preparation display then you can see that the order has been cancelled. Why the fix: ----------
Original PR description
Currently, when cancelling an order, the notification is not sent to the preparation display. Steps to reproduce: ------------------- * Open both restaurant and preparation display * In the…
Currently, when cancelling an order, the notification is not sent to the preparation display.
Steps to reproduce:
-------------------
* Open both restaurant and preparation display
* In the restaurant place an order and send it to the kitchen
* Select Action > Cancel order
> Observation: The cancellation is not sent to the preparation display
Note: If you send a new order or refresh the preparation display then you can see that the order has been cancelled.
Why the fix:
------------
When cancelling order, data looks like this
`{'change': True, 'sound': False, 'category_ids': {}}`. Since `category_ids` is empty, `preparation_displays` will alsos be empty which explains why the preparation display does not receive the notification, it is simply not sent.
https://github.com/odoo/enterprise/blob/42b7b322d6c720de45661e3370397adaf74fe1f4/pos_preparation_display/models/preparation_display_order.py#L29-L40
Since all lines are canceled, we include all the different categories they cover. Now `preparation_displays` is not empty and all the displays it covers will receive a notification.
opw-4322600
Forward-Port-Of: odoo/enterprise#74683### Steps to reproduce: - Create a new Loan at a date several months in the past - Add a "Skip until" date after the date of the loan but before the current date - Compute the draft lines - Confirm - The lines skipped are those after the "Skip until" date and not the ones before ### Cause: It seems there was a typo in how the "Skip until" option is handled. When we add a skip until date, we are actually doing the reverse behavior. We are skipping everything after the skip until and no
Original PR description
### Steps to reproduce: - Create a new Loan at a date several months in the past - Add a "Skip until" date after the date of the loan but before the current date - Compute the draft lines - Confirm - The lines skipped are those after the "Skip until" date and not the ones before ### Cause: It seems there was a typo in how the "Skip until" option is handled. When we add a skip until date, we are actually doing the reverse behavior. We are skipping everything after the skip until and not what's before. ### Solution: Correct the typo. opw-4342085 Forward-Port-Of: odoo/enterprise#74721