Daily updates from Odoo
Friday, August 2, 2019
36 changes · master
New functionality added to Odoo
Repair orders now include tags and responsible users, making it easier to classify work and assign ownership. The Repair app also gains parts filtering plus graph and pivot reporting views, helping teams analyze repair activity more effectively.
Original PR description
Task: https://www.odoo.com/web?#id=1945878&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.43251e7b241dfdc3350864396f58708d Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds a lazy translation option so shared labels and messages can be translated correctly when the user's language is known. It helps ensure multilingual text appears in the right language across affected business areas without requiring duplicated wording.
Original PR description
Introduces the method `_lt`
The translation method is now evaluated lazily.
It allows to declare global variables with translatable content
i.e. this code will now work:
```python
LABEL = _lt("User")
def _compute_label(self):
context = {'lang': self.partner_id.lang}
self.user_label = LABEL
```
Alternative patch for odoo/enterprise#3665
Doing `self.assertEqual(str(language), "Klingon", ...` is needed as comparing `language` with `"Klingon"`, returns an error:
`AssertionError: Klingon != 'Klingon' : The translation should not be applied yet `Enhancements to existing features
This update standardizes how images are stored and displayed across multiple Odoo apps, including clearer size names and a new medium-large image option. It improves consistency and efficiency for image-heavy records such as contacts, employees, products, fleet vehicles, badges, and website shop categories, while reducing unnecessary stored image versions where they are not needed.
Original PR description
Merge commit for PR #34925 Related enterprise PR odoo/enterprise/pull/4865 The goal is to: - Use `image.mixin` on the models currently storing multiple image sizes. - Create Image field and use it on models where mixin is overkill. - Rename the image fields to contain the pixel number in the name. - Add 512 size. - Clean up `image.mixin`, zoom field, variant fields. Note: models that currently store only a single size image will not be changed in this PR.
Credit notes and refunds are now clearer across invoices, bills, dashboards, and PDFs. The update makes refund documents easier to understand by showing the right document title and reference details while removing payment instructions that do not apply.
Original PR description
Task 2038326 * Tick the credit note sequence by default on the customer invoices and vendor bills journals * Write Customer Invoice/Vendor Bill/Credit Note/Customer refund at the top of the document * The reference field should be printed on the credit note pdf (interesting because it gives source and reason) * If the document is a credit note, there shouldn't be any payment information on the pdf (the customer doesn't have to pay you) (currently you see the "payment communication" the customer is supposed to use) * Rename Credit Note to Refund on dashboard * Add tooltip on payment widget Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
When employees update their language from their profile, the page now reloads automatically after saving so the new language is shown right away. This avoids confusion and removes the need for users to manually refresh the page; the profile page also no longer offers an unnecessary Create button.
Original PR description
Description of the issue/feature this PR addresses: Before, as preferences were a popup, the system reload itself. now it doesn't reload. It should Current behavior before PR: When a user change his language in employee profile, he doesn't see the result before reloading manually the page. Desired behavior after PR is merged: With this commit, when a user change his language, the page is reloaded on saving. id=2035089 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Canadian customer and vendor records can now store a Provincial Sales Tax (PST) number. When present, this number is shown on invoices so businesses can document PST exemptions or requirements correctly.
Original PR description
Description of the issue/feature this PR addresses: opw-1951352 Add pst number for Canadian partners Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Reports that show amounts written out in words now use the recipient’s language for the currency unit label. This makes multilingual documents clearer and more professional for customers and partners.
Original PR description
Description of the issue/feature this PR addresses: This occurs when a provider shows a report in their previously configured language, but the text associated with the amount, where the label unit is indicated, is not translated. Current behavior before PR: The label of the Unit, associated to the currency, not translated in the reports where the amount in text is shown Desired behavior after PR is merged: Unit label associated with the currency correctly translated according to the language of the partner in the reports -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Successful mail server connection tests now show a normal success notification instead of an error-style message. This avoids confusing users with warnings like “Oops something went wrong” when the test actually passed.
Original PR description
Description of the issue/feature this PR addresses: If the connection test to mail server succeeds, we shouldn't see "Oops something went wrong" and "User Error" either Current behavior before PR: An error is generated to display success message Desired behavior after PR is merged: Generate success message with bus notification. id=2032067 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change makes sales and accounting processes easier for developers to customize without altering core behavior. It supports safer extensions around analytic account creation, bank statement reconciliation, and tax line preparation, reducing future maintenance effort.
Original PR description
This PR aims to separate vals preparation into new method for hooking in extensions -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update removes unused precision settings from several currency-related fields because they were not actually affecting how monetary amounts are stored or displayed. It reduces confusion for maintainers without changing business behavior for users.
Original PR description
Description of the issue/feature this PR addresses: IIUC, `digits` only works on `Float` fields, on `Monetary` fields it has no effect: - It is not applied in `convert_to_column()` or `convert_to_cache()`; - It is not part of `description_attrs`, so it will not be included in the output of `fields_get()`. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The live chat configuration screens have been simplified to make setup easier and reduce clutter. This improves onboarding for users configuring website live chat and helps teams get started faster with fewer distractions.
Original PR description
Description of the issue/feature this PR addresses: Purpose Clean screens and improve onboarding -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Thailand localization now has an updated VAT return report with clearer 7% tax labeling and support for zero-rated and exempt taxes. This helps businesses classify VAT more accurately and removes an unused tax group to simplify configuration.
Original PR description
- Added zero rated and exempted taxes - Improved 7% tax label - Removed unused tax group opw-39083 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Employees using the Point of Sale frontend now have a direct button to return to the backend instead of manually changing the URL. This makes session closure and navigation smoother for POS users, with related styling moved into the appropriate HR POS area and an access-rights fix for stock valuation during POS validation.
Original PR description
Description of the issue/feature this PR addresses: Allow the user of employee feature to go back to his backend. Current behavior before PR: When we're logged as employee in the pos front end, it's impossible to go to the backend unless we change the URL Desired behavior after PR is merged: We have a new button that lead us to the back end -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Project app now shows a clearer and more consistent warning when a task hierarchy would create a recursion loop. This helps users better understand why a task relationship cannot be saved and aligns the message with similar safeguards elsewhere in Odoo.
Original PR description
Follow up on https://github.com/odoo/odoo/commit/0f2470f8179a3bdf3b256261bb706754522c5669#r32847139 Description of the issue/feature this PR addresses: Project Current behavior before PR: Improve warning message to make it consistent with other places. (Where Recursion may occur) Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Cc: @jem-odoo
This update adjusts the HR Expenses screen setup so future customizations can extend it more reliably. It helps partners and implementers adapt expense workflows without duplicating or replacing more of the standard configuration.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Clicking a cell in list views no longer shows an unnecessary darker focus style while the page is loading. The focus highlight remains available for keyboard navigation, keeping accessibility support while making mouse interactions look cleaner.
Original PR description
Before this commit, when clicking on a cell in the listview, the cell receives the focus, which makes it have an extra style (darker gray) when waiting for the page to laod. After this commit, the extra style will only be added when using the keyboard to navigate between the cells and not on click. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update removes an unnecessary setting from an HR Attendance screen definition. It has no expected visible impact for users, but it keeps the application code cleaner and easier to maintain.
Original PR description
Description of the issue/feature this PR addresses: This appears to be leftover from a C/P from the line above, however `type="html"` does not make much sense on `<p>` element. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The documentation now mentions an additional translation helper that was already available in Odoo. This helps teams and implementers find the right guidance when preparing translated text, with no direct change to business workflows.
Original PR description
Was added at #31211 @robodoo r+
This update fixes small wording and configuration mistakes in field definitions across several Odoo apps. It helps keep the system consistent and reduces the chance of minor setup issues, with no expected change to day-to-day business workflows.
Original PR description
Description of the issue/feature this PR addresses: - `String` -> `string`; - `defaut` -> `default`; - `defaults` -> `default`; - `reandonly` -> `readonly`; - removed redundant `placeholder` attribute for `Char` field; - removed redundant `size` attribute for `Float` and `Integer` fields; - changed to use `Selection` instead of `Char` for a field having a defined `selection`. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Point of Sale setup now creates and assigns the right journals by default, including company-specific sales and invoicing journals. The update also improves PoS order/session screens and makes pricing and discount options available without requiring the Sales app, reducing setup errors and manual configuration.
Original PR description
1. Default PoS Orders Journal Make sure that a default POS order journal is created and set as default sales journal on the newly created pos.config 2. PoS Orders https://nimb.ws/I1sp7F [OK]…
1. Default PoS Orders Journal
Make sure that a default POS order journal is created and set as default sales journal on the newly created pos.config
2. PoS Orders
https://nimb.ws/I1sp7F [OK]
https://nimb.ws/GKmwo5 [OK]
3. In the PoS.config
When I tick the option "multi-currencies" in the pos.settings, it should tick the option "Multiple Product Prices"
And when this option is ticked, I see the default pricelist and the option to activate advanced pricelsits (it's what you've already done https://nimb.ws/9LhsVC)
Default pricelist and advanced pricelists should be next to each other
4. On pricelist:
The field discount_policy has been moved from 'sale' to 'product' in revision: https://github.com/odoo/odoo/pull/27310/commits/a216473c73086cf028228d2d5cf3470c8a8d55bc but the view is still only there in sale module, meaning that if you have only point of sale installed, you have no way to enable this on the pricelist and so use it in POS. Move the view in module 'product' and apply correct groups.
5. Define a domaine for the pos orders journal in pos.config : should be a sales journal
https://nimb.ws/lcNFf4
6. When I tick the box "invoicing", there should be a default journal set and this journal should be the customer invoices journal of the company. Would that be possible ?
task: 2008468This update prevents media attached to product variants from being edited in places where that should not be allowed. It helps keep product information more consistent and reduces the risk of accidental changes to variant-specific images or media.
Original PR description
task : https://www.odoo.com/web#id=2035653&action=327&model=project.task&view_type=form&menu_id=4720 pad : https://pad.odoo.com/p/r.ba547ddd13baa9e68adf00b2f65f2a9a task-id:2035653 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Several business apps now use clearer, standardized image sizes and naming. This helps keep images consistent across records and screens, improves display quality options, and simplifies future maintenance without changing single-image models.
Original PR description
Merge commit for PR #4865 Related to community PR odoo/odoo/pull/34925 The goal is to: - Use `image.mixin` on the models currently storing multiple image sizes. - Create Image field and use it on models where mixin is overkill. - Rename the image fields to contain the pixel number in the name. - Add 512 size. - Clean up `image.mixin`, zoom field, variant fields. Note: models that currently store only a single size image will not be changed in this PR.
The Approvals app has been simplified with clearer naming, updated request stages, improved button labels, and a cleaner request layout. Users now receive warnings before submitting when required approvers or mandatory documents are missing, helping reduce incomplete approval requests.
Original PR description
Improve request Kanban Rename Category into "Approvals Types" and add widget radio on fields Rename buttons Rename stage New -> To Submit and Confirmed -> Submitted Put description in a tab Add warning on submit if there aren't enough approvers or if there aren't document (if mandatory) id=2040874
Expense sheets linked to payroll now give HR teams clearer options to either post accounting entries or defer reimbursement to the next payslip. Payslips also make related expenses easier to access, reducing manual steps and simplifying payroll review.
Original PR description
- Display 2 buttons on the expense sheet to either post the journal entries or ask to report the expense in next payslip. - On the many2many expense sheets on the payslip, display a stat button and redirect to the related expenses when set.
This update removes an outdated internal note that incorrectly suggested certain changes should not be carried forward. It helps keep maintenance guidance accurate without changing how users work with the system.
Discount controls were aligned with the updated product-based permission setup, helping subscription and field service documents keep working as expected. A reporting test was also tightened to avoid failures caused by an extra point-of-sale journal.
Resolved issues and error corrections
Creating a new bank statement from the reconciliation area no longer fails when selecting a partner. The fix ensures the correct default journal is available, preventing an error and keeping the accounting workflow smooth.
View validation errors now identify the affected view using its external ID instead of only its display name. This makes it easier for teams to find and fix the correct view when configuration or upgrade issues occur.
Original PR description
**Description of the issue/feature this PR addresses:** There are some checks in `ir.ui.view` that in their error message show the view name instead of the view xml_id. The name is not helpful sometimes to find which is the wrong view, because the name can be anything. As it's done in other view errors in same file, what should be shown instead it's the view xml_id. **Current behavior before PR:** There are some view errors that show the view name. **Desired behavior after PR is merged:** The view errors show the view xml_id as expected, to easy find which one is the wrong view. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change corrects a typo in Odoo's command-line tooling. It is a minor cleanup that improves clarity without changing business functionality or user workflows.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
CSV exports now consistently provide the underlying raw data values instead of formatted display values. This makes exported files more predictable for reporting, data cleanup, and re-importing, while also fixing issues with empty selection fields.
Original PR description
Followup of #18819 for master - change selection field API to return an empty string in export - remove raw_data mode, every export is raw_data
This update fixes a typo in an internal model class name for the website theme installation feature. It helps keep the codebase consistent and reduces the chance of confusion for future maintenance, with no expected impact on day-to-day users.
Original PR description
Description of the issue/feature this PR addresses: fix typo in model class name -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix corrects how several Odoo apps prepare messages for translation, ensuring labels and notifications are translated at the right time. It also removes unused code, reducing maintenance risk without changing business workflows.
Original PR description
Alternative version of #31211 without using a `_lt` method
This fix updates how translated text is handled in several Enterprise reporting and dashboard areas. It helps prevent incorrect or poorly timed translations, improving consistency for users working in different languages.
Original PR description
Now that the _lt method has been added Enterprise version of odoo/odoo#31211
This change corrects how labels are prepared for translation so they are translated at the right time rather than during server startup. It helps avoid missing or incorrect translations in affected accounting reports and subscription dashboard areas, with no expected workflow changes for users.
Original PR description
Without using the _lt Alternative of #4290 Enterprise version of odoo/odoo#33259
Code cleanup and technical improvements
Marketing campaigns are now managed in one shared campaign area instead of a separate mass mailing campaign model. This makes campaign reporting more consistent across email marketing, CRM, sales, links, and future channels, with added visibility into leads, opportunities, quotations, and revenue generated by campaigns.
Original PR description
This merge removes the mass_mailing.campaign model. Instead of having a fully fledged model, we will simply inherit utm.campaign. This change implies that mass_mailing.tag and mass_mailing.stage move to the utm model along their associated views/data. These changes were made so that campaigns could be used in the future by social, mass_mailing and mass_sms and available in the same view This commit also removes the source_id and the medium_id fields on the campaign. Indeed those depends on the flow, not the campaign (mass mailing is a source, email is a medium for example). In this merge we also add statistics from crm and sales to the campaign model like what has been done for mass mailing previously. Task ID: 2002029& PR: #34015
Marketing automation now uses the shared campaign field for mailing results instead of the old mass mailing campaign reference. This keeps campaign reporting aligned across apps after the older community feature was removed, helping results aggregate consistently.
Original PR description
As mass mailing campaign was removed in community, the reference mass_mailing_campaign_id had to be replaced with campaign_id Task ID: 2002029 PR Community: #34452 PR: #5000