Wednesday, July 10, 2024
36 changes · master
New functionality added to Odoo
Odoo Studio now lets users export master data, making it easier to move or reuse configuration and reference information managed through Studio. This reduces manual effort when preparing data for other environments or business processes.
Original PR description
Task id: 3446301
Enhancements to existing features
The WhatsApp module’s security test was updated after an old signup/reset password token field was removed from the database. This keeps automated checks aligned with the current system behavior without changing customer-facing functionality.
Original PR description
Change a test that used the token to prove an operation was not done as an admin. Replaced with the only field that still exist in this context
Resolved issues and error corrections
The Bangladesh payroll configuration now uses the correct name for a yearly minimum tax parameter instead of incorrectly calling it a maximum tax. This helps keep payroll tax rules clear and reduces the chance of confusion when maintaining salary calculations.
Original PR description
The rule parameter l10n_bd_yearly_maximum_tax should really be called l10n_bd_yearly_minimum_tax.
Code cleanup and technical improvements
Event communications for Social and WhatsApp now identify templates directly rather than relying on stored notification categories. This keeps scheduling behavior consistent while reducing unnecessary stored data and supports clearer template indicators in the interface.
Original PR description
Adapt enterprise code to the removal of stored notification types and the addition of a custom reference field task-3256524
Miscellaneous changes
Steps to reproduce: ------------------- - Install 'Documents' and 'Accounting' modules - Go to document settings > Activate Accounting + go to "Journal" smart link then create a synchronized with Vendor Bills journal - Go to accounting setting > Activate "Document Digitization" and select "Digitize automatically" for bills - Send a PDF to the Vendor bill mail alias - Open the created bill Issue: ------ Error in the chatter. Cause: ------ We try to set on the document an att
Original PR description
Steps to reproduce: ------------------- - Install 'Documents' and 'Accounting' modules - Go to document settings > Activate Accounting + go to "Journal" smart link then create a synchronized with Vendor Bills journal - Go to accounting setting > Activate "Document Digitization" and select "Digitize automatically" for bills - Send a PDF to the Vendor bill mail alias - Open the created bill Issue: ------ Error in the chatter. Cause: ------ We try to set on the document an attachment already linked to it, and because it goes through the versioning code, it will first link the new attachment to the record (who was already the case), and then link the old attachment (who is the same attachment as the new) to the document. Solution: --------- If trying to set the same attachment already linked to the document, we skip the versioning code. opw-4034699 Forward-Port-Of: odoo/enterprise#66361
This update renames an internal search permission parameter to make its purpose clearer for developers maintaining Odoo. It affects manufacturing lifecycle, quality, and barcode inventory areas, with no expected change to day-to-day user workflows.
Marketing campaign activities now show a clearer summary of what each activity will do, including its starting point, related action or message template, trigger, and expiry timing. This helps users understand and review campaign steps more easily, with a small wording correction in a campaign template.
Original PR description
### Purpose Clarify what an Activity of a Campaign will do, while cleaning up the form view as well. ### After this PR ##### Commit 1 This commit adds a summary to the activity wizard form view. This summary describes the activity with its starting point, linked Server Action or Mail/SMS Template, trigger type, and its expiry duration. This commit also cleans up the form view. ##### Commit 2 Fixed typo mistake in Marketing Activity Campaign Template. - address → addresses Task-3603463
This update adds support for tracking when a WhatsApp contact or user was last seen. It helps teams better understand recent activity while keeping related security checks covered.
Original PR description
PR community: https://github.com/odoo/odoo/pull/169737
Warehouse users can collect a customer signature directly while processing outgoing delivery orders in the barcode app. This helps ensure deliveries that require proof of receipt are signed before validation, reducing missing-signature follow-up work.
Original PR description
Added in this PR 1. If the user has `stock.group_stock_sign_delivery` activated, a `Sign` button is added to the gear context menu for `outgoing` pickings. 2. When the `Sign` button is pressed, a dialog box is opened to take the signature drawing input from the user. `partner_id` is supplied as a default name for convenience too. The dialog box approximately replicates the functionality of `SignatureWidget` in the backend. 3. Signatures are checked before validation for `outgoing` pickings: if they are not supplied, the sign dialog is opened. After the signature is supplied from the user, picking gets validated automatically. 4. Batch pickings are not included in this PR. task-3601184
This update modernizes internal data access used across accounting, reporting, payments, knowledge, and quality features after a core platform change. It should preserve existing business workflows while improving maintainability and reducing reliance on outdated internal code.
Original PR description
odoo/odoo#172378
The subscription demo data has been updated to provide clearer and more useful sample scenarios, including related stock examples and test data. This helps teams better understand and validate subscription workflows using more realistic starting data.
Colombian electronic invoicing can now handle separate operation modes for different document types, such as electronic invoices and support documents. This lets a company configure the right software credentials for each document flow instead of being limited to a single setup.
Original PR description
[IMP] l10n_co_dian: enable multi operation mode The issue is that Odoo will offer the solution to generate multiple Types of Documents: Electronic Invoices, Support Documents..etc At the moment, Odoo will only let us input one Software ID, so it will not be possible to generate 2 or more Types of Documents Solution: create new model 'l10n_co_dian_operation_modes' with the required fields to allow having multiple operation mode for the same company and decide which mode we should take based on the move type task-id#3998165 upgrade-pr#https://github.com/odoo/upgrade/pull/6219
The Belgian payroll accounting test module’s kanban views were updated to use newer, cleaner interface building blocks. This makes the test screens easier to maintain and keeps them aligned with current Odoo standards, with minimal direct business impact.
Original PR description
In this commit we have simplified the kanban arch for the test_l10n_be_hr_payroll_account module. The goal is to simplify them, make them easier to read and use bootstrap utility classnames. - Previously, we used kanban-box, but now we are using kanban-card instead. - Deprecated oe_kanban_global_click and oe_kanban_global_click_edit. - More use of <field/> tags - Removed the oe_kanban_colorpicker class and replaced it with the kanban_color_picker widget. - Changed type='edit' to type='open' to open records. since version 16, records always open in edit mode by default. - kanban_image from rendering context, is deprecated so we use <field name=... widget=image/> instead - kanban_color, kanban_getcolor and kanban_getcolorname are deprecated use new attribute highlight_color=color_field_name on root node - oe_kanban_colorpicker is deprecated, use kanban_color_picker widget instead Task-3992107
Account reports now use a cleaner way to identify and categorize report lines, such as grouped rows, totals, and load-more sections. This reduces fragile internal handling and helps keep financial report behavior consistent as reports become more complex.
Original PR description
Improves slightly the markup of account report lines ids such that it can contain a dictionary, therefore enabling a key-value pair. Previously, it was made using strings, which was quite a hacky way of doing. This markup is used for example either to group lines, indicate a line is a total line, or for 'load more' lines. We standardize this by putting json into the markups in case of dictionary. task-3791247
Brazilian electronic invoices sent through Avatax now include the invoice payment terms. This helps meet government and customer expectations while keeping discount-related amounts reported at their full value until actual payment behavior is known.
Original PR description
To conform to government and customer expectations, we have to inform them of the payment terms set on the invoice. The vNet, vOrig, grossValue and netValue keys are required but meant to record "payment discounts". In Odoo the closest concept is the early_discount feature on payment terms. But we don't know if this early discount applies when we e-invoice, it's only known when the customer pays. Because of this, we always send the full amounts in these fields. At a later stage we can see if/how we should support this. task-3968325
Sales documents, quotes, invoices, and portal previews for US and Brazil companies using AvaTax can now hide the crowded tax column. This keeps customer-facing documents easier to read when many taxes apply, while allowing the behavior to be controlled by company or localization rules.
Original PR description
[IMP] account_avatax, l10n_br_avatax, sale: Hide tax column for US & BR based companies in some scenarios users can see several taxes listed in the "Taxes" column in the PDF report (for SO, quotes, invoices, etc). Having the column oversaturated with all the taxes can represent a problem for our users. it's a pain currently and we predict that we are going to receive this kind of request also for other countries and in case of multi-company we enforce the company be a USA/Brazil country base Solution: 1- Add new stored column to control showing the tax column through allowing any module to overwrite it. 2- Use the new column 'show_tax_column' to hide the tax column in portal preview and PDF report for US/BR that has avatax active Task-3864811 odoo-pr#https://github.com/odoo/odoo/pull/170705
This update removes obsolete internal code from Belgian and Swedish point-of-sale localization features. It helps keep the system easier to maintain while preserving existing fiscal compliance behavior for affected localizations.
Original PR description
remove dead code and modify some from the previous implementations in BE, SE and IN. Related: https://github.com/odoo/odoo/pull/167012
Knowledge article filtering now correctly includes items whose internal permission is either set to 'none' or left blank. This helps ensure users see the expected articles and avoids missing content due to inconsistent permission handling.
Original PR description
The operator "=?" does not handle null values correctly and will be fixed in the future. However, the intention of the filtered domain is to return articles that have their permission set to 'none' or not set.
This update corrects how several business apps use shared Odoo utilities, preventing breakages caused by outdated internal import paths. There is no intended change to day-to-day workflows, but it improves reliability across accounting, payroll, localization, manufacturing, subscriptions, social, and worksheet features.
Steps to reproduce ================== - Install website_studio - Open any app - Open studio - Click on the website tab - Create a new listing type and confirm - Click on the three dots - View in website => TypeError: Cannot read properties of undefined (reading 'action') Cause of the issue ================== Before https://github.com/odoo/enterprise/pull/49809/commits/7980155915f25128e7cb8d5a0af91ffe45bb44c7 ```xml <t t-set="onItemClicked" t-value="page.page_type === 'lis
Original PR description
Steps to reproduce ================== - Install website_studio - Open any app - Open studio - Click on the website tab - Create a new listing type and confirm - Click on the three dots - View in…
Steps to reproduce ================== - Install website_studio - Open any app - Open studio - Click on the website tab - Create a new listing type and confirm - Click on the three dots - View in website => TypeError: Cannot read properties of undefined (reading 'action') Cause of the issue ================== Before https://github.com/odoo/enterprise/pull/49809/commits/7980155915f25128e7cb8d5a0af91ffe45bb44c7 ```xml <t t-set="onItemClicked" t-value="page.page_type === 'listing' ? this.openPageUrl.bind(this, page) : this.onConfigurePage.bind(this, page)" /> <t t-set="openPageUrl" t-value="page.page_type === 'listing' ? onItemClicked : null" /> <DropdownItem t-if="openPageUrl" onSelected="openPageUrl" href="'#'">View in website</DropdownItem> ``` in the new version, `t-if="openPageUrl"` was always true because `openPageUrl` refers to the function and not the template variable. The function was also not bound to `this`. Solution ======== - The "View in Website" button should only be displayed for pages of listing type. - We add the this to the function call opw-3987521 Forward-Port-Of: odoo/enterprise#65988 Forward-Port-Of: odoo/enterprise#64691
PR does 2 things: - First round of .po file cleaning for es_xx.po files. Since v17 started using es_419 instead of the es_xx.po files, these languages are no longer accessible on Transifex for the translators to change. These files were mostly out of date/incorrect anyways though, so we delete them. The one exception to this is the es_CL.po because Chile has some specific words that differ from the rest of LATAM. This cleanup will occur in a followup PR to give translators time to double chec
Original PR description
PR does 2 things: - First round of .po file cleaning for es_xx.po files. Since v17 started using es_419 instead of the es_xx.po files, these languages are no longer accessible on Transifex for the…
PR does 2 things: - First round of .po file cleaning for es_xx.po files. Since v17 started using es_419 instead of the es_xx.po files, these languages are no longer accessible on Transifex for the translators to change. These files were mostly out of date/incorrect anyways though, so we delete them. The one exception to this is the es_CL.po because Chile has some specific words that differ from the rest of LATAM. This cleanup will occur in a followup PR to give translators time to double check if any of the translations in from these es_CL files should remain. - Cleanup the en_AU/en_GB.po files. There were some non-sense "translations" in them and most of them didn't add much value. Some en_AU files had specific legitimate "translations" were left (e.g. tax "GST", check = cheque), so they were only modified to remove any erroneous translations task: 3593077 COM PR: https://github.com/odoo/odoo/pull/172429 Forward-Port-Of: odoo/enterprise#66179 Forward-Port-Of: odoo/enterprise#65875
Added XML export options of the czech tax report. Most of the work in here was copied from the previous xml export implemented in this commit: https://github.com/odoo-dev/enterprise/commit/32c9a215a74123a2bf7f984421c729c89318e300 task-3127683 Forward-Port-Of: odoo/enterprise#66384 Forward-Port-Of: odoo/enterprise#61200
Original PR description
Added XML export options of the czech tax report. Most of the work in here was copied from the previous xml export implemented in this commit: https://github.com/odoo-dev/enterprise/commit/32c9a215a74123a2bf7f984421c729c89318e300 task-3127683 Forward-Port-Of: odoo/enterprise#66384 Forward-Port-Of: odoo/enterprise#61200
This commit addresses an issue where searching for a product by name in the database led to the recreation of product records. The problem arose during the addition of products to indexedRecords, resulting in duplicates. Community PR: https://github.com/odoo/odoo/pull/171264 opw-4004765 Forward-Port-Of: odoo/enterprise#66269 Forward-Port-Of: odoo/enterprise#65952
Original PR description
This commit addresses an issue where searching for a product by name in the database led to the recreation of product records. The problem arose during the addition of products to indexedRecords, resulting in duplicates. Community PR: https://github.com/odoo/odoo/pull/171264 opw-4004765 Forward-Port-Of: odoo/enterprise#66269 Forward-Port-Of: odoo/enterprise#65952
Forward-Port-Of: odoo/enterprise#66315
Original PR description
Forward-Port-Of: odoo/enterprise#66315
Before this commit: If an IoT is set on a company (other than the default one), when printing a report set to an IoT device. It would always show the "error to print" pop-up. This happened as the notification that the printing operation was successful was always send to the channel of the first company. After this commit: We force to use the company set on the device of the identifier (which is the iot box company). This heuristic is not perfect as different IoT might have devices wit
Original PR description
Before this commit: If an IoT is set on a company (other than the default one), when printing a report set to an IoT device. It would always show the "error to print" pop-up. This happened as the notification that the printing operation was successful was always send to the channel of the first company. After this commit: We force to use the company set on the device of the identifier (which is the iot box company). This heuristic is not perfect as different IoT might have devices with the same identifier, in this case, it would accidentally send to the wrong IoT channel. To solve this other issue, another PR in the IoT will force to send the IoT mac address in order to make sure to use the right IoT. As the code of the IoT might be outdated, we define it with a default value. opw-3965623 Forward-Port-Of: odoo/enterprise#66183 Forward-Port-Of: odoo/enterprise#65996