Daily updates from Odoo
Navigate
Branch
Thursday, August 10, 2023
37 changes
Enhancements to existing features
A new automated test checks that Belgian payroll correctly handles an employee moving to a new job with a new contract. This helps ensure required salary details are pre-filled and reduces the risk of errors during internal job changes.
Original PR description
The added test is intended to check that an employee signing a new contract for a new job inside the company will be correctly adapted. taskID 2898298
This update standardizes how translated messages insert values across several Odoo Enterprise apps. It reduces duplicated formatting logic behind the scenes, making translations easier to maintain and less error-prone without changing user workflows.
Original PR description
Improve `gettext` to directly handle value injection within translations, removing the need for `sprintf`.
```js
sprintf(_t("Due in %s days"), days);
```
becomes
```js
_t("Due in %s days", days);
```
Community: https://github.com/odoo/odoo/pull/123932Automatic Currency Rates can now use exchange rates from the Czech National Bank. This helps Czech companies align Odoo currency updates with the source commonly used for local accounting and fiscal compliance.
Original PR description
Problem --------- While it is legally allowed to use exchange rates from European Central Bank, majority of czech companies use the ones provided from Czech National Bank (and switch is not often feasible, as it cannot be changed during an open fiscal period). Objective --------- Add Czech National Bank to Automatic Currency Rates. Solution --------- Fetch the currency rate on the oficial webpage. Parse the returned data and update the active currency values. task-3366770
The global filter editor now behaves more predictably when users click the “Start typing...” prompt for related models. It clears the placeholder label, closes unnecessary dropdown suggestions, and keeps focus in the input so users can enter their intended value without distraction.
Original PR description
**Description** _Issue is related to :- Related model dropdown in global filters._ This PR ensures that clicking on 'Start typing...' would clear the label and close the dropdown. Also, it would disable display of default values and matching fields, by maintining the focus on input field. Task ID : 3375332
Spreadsheet notifications now let the sender decide when to show repeat alerts instead of relying on a hidden tag to suppress them. Notifications can also be marked as sticky, so important messages can stay visible until the user dismisses them.
Original PR description
Currently, the payload allowing to notify the user is composed of a text and a tag. The tag, when it is the same, avoids renotifying the user. We believe that it is the responsibility of the notifying element to relaunch a notification or not. So we remove this tag in this commit. Also, we add in the payload a "sticky" attribute indicating if the notification should or should not clear itself after some time part of task 2984935
Accountants can now use a hidden Document Date column in journal entries, journal items, and bank reconciliation to see the original invoice or document date rather than only the entry date. This makes it easier to search, filter, group, and sort accounting lines by the date that matters for the document.
Original PR description
Description of the issue/feature this PR addresses: When an accountant adds an invoice at another date than the date of the said invoice, it is that date that is shown on the journal entries and…
Description of the issue/feature this PR addresses: When an accountant adds an invoice at another date than the date of the said invoice, it is that date that is shown on the journal entries and items views. This makes it impossible to order the lines by invoice date as the only date field available on those views does not give the proper piece of information. Current behavior before the PR: Prior to this commit, the Journal Entries and Journal Items views show no column giving the date of the document for every line but only for those that have been added the same day. Desired behavior after the PR is merged: Adding this, the Journal Entries and Journal Items views show a "Document Date" column which represent the date of the document. The bank reconciliation widget presents this column too. In each of these three locations, filters, groups and ordering have been setup to be able to be applied on this new column. This allows to search and filter lines using that piece of information. The column is hidden by default. Community PR: https://github.com/odoo/odoo/pull/129040 task-3388309
Spreadsheet users will now receive clearer notifications with different categories such as warnings, errors, information, and success messages. This makes spreadsheet-related feedback easier to understand and helps users react appropriately when working with documents and spreadsheet features.
Resolved issues and error corrections
Belgian payroll now handles cases with multiple public holidays and variable salary components more accurately. This helps ensure payslips and related accounting validations reflect the correct worked days and compensation amounts.
Original PR description
…alary
This fixes an automated accounting test flow that had stopped working after recent import changes. It helps ensure tax group import behavior is checked reliably, reducing the risk of accounting issues reaching users.
Original PR description
Following changes on the import (https://github.com/odoo/enterprise/commit/5a800d5e304d02e15def04ef76911543c633af92), the tour does not work. It was attempted in https://github.com/odoo/enterprise/commit/467613ace4e8cb0dac8274e6742984f01aacd1c9, but did not work (and silently, because the test is deactivated) Fixes runbot error 23638
This fixes internal references to a renamed action service so affected screens continue to work correctly. It helps prevent errors in Helpdesk and Quality worksheet views after the underlying service name changed.
Original PR description
the default model 'useAction' service is now named 'action' no longer 'actionService' Changed the reference where needed
This update fixes an unreliable automated test for the Web Studio icon creator. It helps keep quality checks stable so development and releases are not delayed by random test failures.
Original PR description
An apparently nondeterministic error occured on runbot while running js test "with initial web icon data" for the IconCreator. Cause of the error:
Sign template PDFs can no longer be edited or cleared from the template properties, reducing the risk of accidental replacement or deletion. This helps preserve document integrity and prevents validation issues caused by changing the underlying PDF in a template.
Original PR description
The sign.template datas field is writable, which makes it very easy to replace or delete the PDF. Modifying the underlying document doesn't make sense and causes integrity checks to fail. This commit prevents these issues by making the field readonly. Consequently, the Edit and Clear buttons in Template Properties are no longer visible. Note that the document itself can still be modified (for example, via the Documents app), causing integrity checks to fail. However, that is a separate topic. task-3455091
This fix prevents existing sign template items from being treated like newly created unsaved items when opening their detail popovers. It helps keep template editing smooth and avoids unnecessary delays or incorrect handling for items that are already saved.
Original PR description
https://github.com/odoo/enterprise/pull/43125 introduced a new relational model and since sign uses it to show x2many records in the sign item popover when editing a template. That PR also introduced a new approach to guarantee that new sign items are already saved in the server before we allow opening the popover. However, the logic for doing that was affecting items that already had an ID set in the server because it was checking for the updated property in the sign item, while it should be checking for a negative id only. This commit fixes this by adding only the negative ids to the negativeIds object, which contains promises for each id that are resolved when the item is saved in the server. task-3438789
This fixes a missed internal reference after a platform change renamed how actions are handled. It helps quality control worksheets continue opening and running actions reliably without disrupting users.
Original PR description
Since [new relational model](https://github.com/odoo/odoo/commit/8723f020c3587a900c811b8cc23f53fe34b98df3), actionService changed to action in the new relational model. This commit fixes one missed actionService.
This fix adjusts Belgian payroll fleet handling so the system uses the responsible user when no fleet manager is set. This prevents incorrect behavior in cases where a fleet manager is missing and keeps ownership or responsibility assignments consistent.
Original PR description
The behavior was not correct, we want nothing if there is no fleet manager task-3395095
Code cleanup and technical improvements
The automated tests for Point of Sale IoT were adjusted to match recent screen changes in the related Point of Sale interface. This helps keep quality checks reliable without changing what users see or how they use the product.
Original PR description
In the related community pr we refactor the `ProductScreen` to use the new `category_selector` component. In this commit we adapt the tests such that they work correctly with the new code. Related PR: https://github.com/odoo/odoo/pull/131038
Miscellaneous changes
The Gantt dependencies display in the Gantt view is not working anymore in Firefox browser since the conversion to owl. This commit fixes that. Steps ===== Using firefox as a browser: - Install module project - Activate task dependencies in the settings of Project - Open the Gantt view of a project with task dependencies enabled (e.g. Research and Development). Issue ===== Dependencies between tasks are not displayed in the Gantt view. Cause ===== The `d` property of the tag `p
Original PR description
The Gantt dependencies display in the Gantt view is not working anymore in Firefox browser since the conversion to owl. This commit fixes that. Steps ===== Using firefox as a browser: - Install module project - Activate task dependencies in the settings of Project - Open the Gantt view of a project with task dependencies enabled (e.g. Research and Development). Issue ===== Dependencies between tasks are not displayed in the Gantt view. Cause ===== The `d` property of the tag `path` should contained data separated by spaces. Currently, commas are added to separate those datas. This is not supported by Firefox and therefore leads to the arrows not to be displayed. Fix === No more commas are added to separate geometrical datas during the generation of dependency arrows. task-3447057 Forward-Port-Of: odoo/enterprise#44870
task-3368644 Forward-Port-Of: odoo/enterprise#45263 Forward-Port-Of: odoo/enterprise#43032
Original PR description
task-3368644 Forward-Port-Of: odoo/enterprise#45263 Forward-Port-Of: odoo/enterprise#43032
Current behaviour: --- When exporting a report as PDF, all the columns are being squeezed at the right of the page. Steps to reproduce: --- 1. Head over to Accounting 2. Click on Reporting > General Ledger 3. Click on the PDF button 4. All column are squeezed at the right Cause of the issue: --- Conversion of account_reports to owl opw-3410862 opw-3436993 Forward-Port-Of: odoo/enterprise#45378 Forward-Port-Of: odoo/enterprise#44767
Original PR description
Current behaviour: --- When exporting a report as PDF, all the columns are being squeezed at the right of the page. Steps to reproduce: --- 1. Head over to Accounting 2. Click on Reporting > General Ledger 3. Click on the PDF button 4. All column are squeezed at the right Cause of the issue: --- Conversion of account_reports to owl opw-3410862 opw-3436993 Forward-Port-Of: odoo/enterprise#45378 Forward-Port-Of: odoo/enterprise#44767
Align the total line with its parent instead of slightly indenting it. Task-id 3438422 Forward-Port-Of: odoo/enterprise#45420
Original PR description
Align the total line with its parent instead of slightly indenting it. Task-id 3438422 Forward-Port-Of: odoo/enterprise#45420
Issue: ------------------- In the barcode operations settings, the scrap button is duplicated Steps to reproduce: ------------------- * Go to barcode -> Operations * In Delivery orders -> To process -> Click on some record * Click on the settings icon in the top right menu * There are two scrap buttons Cause: ------------------- When we have the barcode and MRP apps both installed, the scrap button is loaded twice, one from the javascript function printButtons() and the other from
Original PR description
Issue: ------------------- In the barcode operations settings, the scrap button is duplicated Steps to reproduce: ------------------- * Go to barcode -> Operations * In Delivery orders -> To process -> Click on some record * Click on the settings icon in the top right menu * There are two scrap buttons Cause: ------------------- When we have the barcode and MRP apps both installed, the scrap button is loaded twice, one from the javascript function printButtons() and the other from the file main.xml from stock_barcode_mrp add-on. The commit 61ca0bd fixed the javascript file and now there is no need to keep the second scrap button. OPW-3440927 Forward-Port-Of: odoo/enterprise#45004
Steps to reproduce the bug: - Install `social_push_notifications` module - Ensure you have multiple website - Enable website push notifications in settings - In another browser, go to the website as visitor and allow notifications - Go back to main browser and create a new post: - Set no `domain` (to match all visitors, for test purpose) - Set a title - Select both websites to post on - Post it Issue: Customer receive 2 notifications. Cause: Sending
Original PR description
Steps to reproduce the bug:
- Install `social_push_notifications` module
- Ensure you have multiple website
- Enable website push notifications in settings
- In another browser, go to the website as visitor and allow notifications
- Go back to main browser and create a new post:
- Set no `domain` (to match all visitors, for test purpose)
- Set a title - Select both websites to post on
- Post it
Issue:
Customer receive 2 notifications.
Cause:
Sending posts to all visitors without checking if the post account's
website is the same as the visitor website.
Solution:
If account has a website, filter visitors to retrieve only the ones on
the current website.
opw-3170544
Forward-Port-Of: odoo/enterprise#44992
Forward-Port-Of: odoo/enterprise#40735- The stat button should not mention cancelled quote - put back the history stat button task-id: 3391973 Forward-Port-Of: odoo/enterprise#43718
Original PR description
- The stat button should not mention cancelled quote - put back the history stat button task-id: 3391973 Forward-Port-Of: odoo/enterprise#43718
Task Adhoc: 29354 Task latam: 1052 Steps to reproduce: Go to runbot Odoo 14 enterprise and install "l10n_ar_edi" module (Argentinean Electronic Invoicing). Take position on Argentinian company (AR) (Responsable Inscripto) . Create a vendor bill for foreign partner. It is necessary that the partner does not have a country_id or if it does, it is needed that it does not have VAT. Also it is required the invoice to have document type (66) DESPACHO DE IMPORTACIÓN. Another requirement is
Original PR description
Task Adhoc: 29354 Task latam: 1052 Steps to reproduce: Go to runbot Odoo 14 enterprise and install "l10n_ar_edi" module (Argentinean Electronic Invoicing). Take position on Argentinian company (AR) (Responsable Inscripto) . Create a vendor bill for foreign partner. It is necessary that the partner does not have a country_id or if it does, it is needed that it does not have VAT. Also it is required the invoice to have document type (66) DESPACHO DE IMPORTACIÓN. Another requirement is that the journal use documents. Go to Accounting / Reporting / Statement Reports / Tax Report and click on button "VAT BOOK(ZIP)", previously select the period in which the invoice created in strep 3 is included. Current behavior: After clicking on "VAT BOOK(ZIP)" there is a bug with traceback. Expected behavior: After clicking on "VAT BOOK(ZIP)" there is no bug with traceback. Forward-Port-Of: odoo/enterprise#44711
This PR bundles a collection of urgent bug fixes as well as some small cosmetic changes to the new MRP shop floor display that was introduced in https://github.com/odoo/enterprise/pull/43610. Please refer to the individual feature commits for details. Task: 3432610 Forward-Port-Of: odoo/enterprise#44760
Original PR description
This PR bundles a collection of urgent bug fixes as well as some small cosmetic changes to the new MRP shop floor display that was introduced in https://github.com/odoo/enterprise/pull/43610. Please refer to the individual feature commits for details. Task: 3432610 Forward-Port-Of: odoo/enterprise#44760
The `_compute_amount_residual` method computes residual amounts on reconcilable account move lines. As it uses an sql query for an efficient computation it discerns stored records from new records (having a new id) by filtering out records with a falsy id field (new ids are always falsy). It then proceeds the computation for stored records only. The bug arises when the compute method is called on records during an onchange call, as the records get reassigned a new id as well. This can be seen
Original PR description
The `_compute_amount_residual` method computes residual amounts on reconcilable account move lines. As it uses an sql query for an efficient computation it discerns stored records from new records (having a new id) by filtering out records with a falsy id field (new ids are always falsy). It then proceeds the computation for stored records only. The bug arises when the compute method is called on records during an onchange call, as the records get reassigned a new id as well. This can be seen when opening the total due followup view and toggling the blocked field on any of the unreconciled entries. The problem is resolved by including records during an onchange in the computation: in practice the computation can simply be carried out on all `_origin` records. This commit includes the test reproducing the behavior described above. opw-3388389 Forward-Port-Of: odoo/enterprise#45418
Steps to reproduce: 1. install and configure l10n_de_pos_cert and create a point of sale 2. open the session 3. make a cash in or cash out operation 4. attempt to close the session Traceback: ``` File "<2771>", line 527, in template_2771 odoo.addons.base.models.ir_qweb.QWebException: Error while render the template IndexError: tuple index out of range Template: l10n_de_pos_cert.dsfinvk_cash_point_closing_template Path: /t/t/t[4] Node: <t t-esc="orders[0].id"/> ``` This happens
Original PR description
Steps to reproduce: 1. install and configure l10n_de_pos_cert and create a point of sale 2. open the session 3. make a cash in or cash out operation 4. attempt to close the session Traceback: ``` File "<2771>", line 527, in template_2771 odoo.addons.base.models.ir_qweb.QWebException: Error while render the template IndexError: tuple index out of range Template: l10n_de_pos_cert.dsfinvk_cash_point_closing_template Path: /t/t/t[4] Node: <t t-esc="orders[0].id"/> ``` This happens because in lines https://github.com/odoo/enterprise/blob/12690625b4c248a1c833ec44e123da25d1eff3f6/l10n_de_pos_cert/models/pos_session.py#L56-L57 it checks for `self.order_ids` even though `orders` might be empty, like in the current scenario. As a result orders need to be checked too. opw-3423586 Forward-Port-Of: odoo/enterprise#44947
With https://github.com/odoo/odoo/pull/122085, we simplified the definition of display_name for `sign.request.item`: https://github.com/odoo/enterprise/commit/155eaf192802b808f85a39fa577b2f2e237c2864#diff-fd924498755af2d3fa8524a8260aed6830a30a87b5a8d9cc0b0470e1a7534b5fL758-R758 but because of https://github.com/odoo/odoo/blob/0d30cc2bc9b9cc2b805d6c2d0a440f185c648da0/odoo/models.py#L235-L236 It overstates completely the default definition instead of merging definition as others fields. Rever
Original PR description
With https://github.com/odoo/odoo/pull/122085, we simplified the definition of display_name for `sign.request.item`: https://github.com/odoo/enterprise/commit/155eaf192802b808f85a39fa577b2f2e237c2864#diff-fd924498755af2d3fa8524a8260aed6830a30a87b5a8d9cc0b0470e1a7534b5fL758-R758 but because of https://github.com/odoo/odoo/blob/0d30cc2bc9b9cc2b805d6c2d0a440f185c648da0/odoo/models.py#L235-L236 It overstates completely the default definition instead of merging definition as others fields. Revert this small change. task-3441148 https://github.com/odoo/odoo/pull/131364 Forward-Port-Of: odoo/enterprise#45528
**Summary** Currently, you can't access the Payments Matching from a journal on the accounting dashboard. **Steps to reproduce** * install `account_accountant` * go to the dashboard * on any journal, click on 3 dots -> Payments Matching => Nothing happens **Cause** The relevant action is returned as a record, but it should be a dictionary. opw-3440322 Forward-Port-Of: odoo/enterprise#44959
Original PR description
**Summary** Currently, you can't access the Payments Matching from a journal on the accounting dashboard. **Steps to reproduce** * install `account_accountant` * go to the dashboard * on any journal, click on 3 dots -> Payments Matching => Nothing happens **Cause** The relevant action is returned as a record, but it should be a dictionary. opw-3440322 Forward-Port-Of: odoo/enterprise#44959
## Issue In the timesheet app, in the timer header, when we have a project specified, the task dropdown shows all tasks, not only those specified in the project we have selected. ## Steps to reproduce - Install Timesheets - Create a Project with a few tasks inside (make sure the project is billable) - Go to Timesheets > Start the timer, select the project, notice that in the dropdown menu for the tasks we have all tasks. ## Cause The component `timesheet_timer_header` doesn't make use
Original PR description
## Issue In the timesheet app, in the timer header, when we have a project specified, the task dropdown shows all tasks, not only those specified in the project we have selected. ## Steps to…
## Issue In the timesheet app, in the timer header, when we have a project specified, the task dropdown shows all tasks, not only those specified in the project we have selected. ## Steps to reproduce - Install Timesheets - Create a Project with a few tasks inside (make sure the project is billable) - Go to Timesheets > Start the timer, select the project, notice that in the dropdown menu for the tasks we have all tasks. ## Cause The component `timesheet_timer_header` doesn't make use of Many2XAutocomplete component, so when doing the `name_search` and fetching the domain for the field, `getDomain` return `undefined`. ## Fix Add a `domain` props on each `Field` subcomponent of the `TimesheetTimerHeader` component, which returns a function that gives you the correct domain, which just fetches the domain from the `fields` props which is a dictionary containing the our `fieldInfo`. ## Affected versions saas-16.3 up to master ## References opw-3418151 opw-3420312 Forward-Port-Of: odoo/enterprise#44681
This PR is a fix done to a previous PR which used isTotalLine in a wrong way. No behavior is being changed, it is only a small correction. Said PR is this one : https://github.com/odoo/enterprise/pull/44112 Forward-Port-Of: odoo/enterprise#45445 Forward-Port-Of: odoo/enterprise#45421
Original PR description
This PR is a fix done to a previous PR which used isTotalLine in a wrong way. No behavior is being changed, it is only a small correction. Said PR is this one : https://github.com/odoo/enterprise/pull/44112 Forward-Port-Of: odoo/enterprise#45445 Forward-Port-Of: odoo/enterprise#45421
To reduce the space that multiple warnings take on the screen we removed their margins. We also made the 'section_selector' div appear only when there is sections. Indeed, the div took space on top of the warnings even when it was empty. Task-id 3438422 Forward-Port-Of: odoo/enterprise#45412
Original PR description
To reduce the space that multiple warnings take on the screen we removed their margins. We also made the 'section_selector' div appear only when there is sections. Indeed, the div took space on top of the warnings even when it was empty. Task-id 3438422 Forward-Port-Of: odoo/enterprise#45412
Center the debug button. Make the debug button on lines with level 0. The button color was the same as the background of the line making it 'invisible'. Task-id 3438422 Forward-Port-Of: odoo/enterprise#45408
Original PR description
Center the debug button. Make the debug button on lines with level 0. The button color was the same as the background of the line making it 'invisible'. Task-id 3438422 Forward-Port-Of: odoo/enterprise#45408
Put the control panel action buttons into a button group where there is only one button showing and the others are in a dropdown. This saves space. Task-id 3438422 Forward-Port-Of: odoo/enterprise#45368
Original PR description
Put the control panel action buttons into a button group where there is only one button showing and the others are in a dropdown. This saves space. Task-id 3438422 Forward-Port-Of: odoo/enterprise#45368
This PR prevents from messing with hierarchy and ensure rights coherency. Task-3416593 Forward-Port-Of: odoo/enterprise#43831
Original PR description
This PR prevents from messing with hierarchy and ensure rights coherency. Task-3416593 Forward-Port-Of: odoo/enterprise#43831
In a multi-company database, once the Spanish localization is installed we are creating BOE's mod_347, mod_439 sequences for all companies; this commit avoid creating unnecessary sequences for companies that are not located in Spain Forward-Port-Of: odoo/enterprise#45488 Forward-Port-Of: odoo/enterprise#42893
Original PR description
In a multi-company database, once the Spanish localization is installed we are creating BOE's mod_347, mod_439 sequences for all companies; this commit avoid creating unnecessary sequences for companies that are not located in Spain Forward-Port-Of: odoo/enterprise#45488 Forward-Port-Of: odoo/enterprise#42893
A simple typo meant that email reminders would get sent every day no matter the configuration of the request. This commit also slighlty improves the readability of the query and a comnment to clarify why it is built the way it is (with an OR, which is a bit suprising). OPW-3455341 Forward-Port-Of: odoo/enterprise#45464
Original PR description
A simple typo meant that email reminders would get sent every day no matter the configuration of the request. This commit also slighlty improves the readability of the query and a comnment to clarify why it is built the way it is (with an OR, which is a bit suprising). OPW-3455341 Forward-Port-Of: odoo/enterprise#45464