Daily updates from Odoo
Navigate
Branch
Tuesday, November 19, 2019
35 changes
Security fixes and vulnerability patches
Rating records are now limited to internal employees, while public and portal users can still use approved rating flows through controlled website and project pages. This reduces the risk of unauthorized access to rating data without disrupting customer-facing feedback features.
Original PR description
Before, rating model was accessible (read, write, create) by everyone without any restriction (expect unlink). We change the ACLs of rating.rating to be accessible only by employees, but some are public, then we add some sudo call for previous functional flow. 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
Customer rating records are now restricted to employees by default, reducing unnecessary access while keeping public rating flows working where needed. Helpdesk and subscription rating processes were adjusted so customers can still submit or view ratings through intended public links.
Original PR description
Before, rating model was accessible (read, write, create) by everyone without any restriction (expect unlink). We change the ACLs of rating.rating to be accessible only by employees, but some are public, then we add some sudo call for previous functional flow.
New functionality added to Odoo
English (India) can now be selected when creating a new Odoo database. This ensures Indian number formatting is used for amounts, such as crore and lakh grouping, making financial figures clearer for Indian users.
Original PR description
Description of the issue/feature this PR addresses: English (India) needs its own language definition so that it can be selected at the time of database creation. For example, the amounts in India…
Description of the issue/feature this PR addresses: English (India) needs its own language definition so that it can be selected at the time of database creation. For example, the amounts in India are displayed/printed as 99,99,99,999.99 (crore, lakh/lac, thousand, etc.) instead of 999,999,999,999.99 (billion, million, thousand, etc.) Current behavior before PR: 1. English (AU), English (CA), English (UK) and English (US) are the only English related languages currently available at the time of database creation. <img src="https://user-images.githubusercontent.com/21964536/69032416-68a3d080-0a02-11ea-9c11-33a597d945e1.png" width="50%"/> 2. Amounts are displayed using the format 999,999,999,999.99 when any of the existing English option is selected for the Language. Desired behavior after PR is merged: 1. English (IN) is available at the time of database creation <img src="https://user-images.githubusercontent.com/21964536/69032933-bd941680-0a03-11ea-8e08-4e29050e7bdc.png" width="50%"/> 2. Amounts are displayed using the format 99,99,99,999.99  -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
Customers can now change their selected rating and add feedback before submitting it, instead of being locked into the smiley they clicked in the email. This makes feedback collection clearer and should improve the quality of responses for teams using ratings.
Original PR description
Description of the issue/feature this PR addresses: TASK: https://www.odoo.com/web?#id=1936849&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 PAD: https://pad.odoo.com/p/r.fc7aec1f1cb5bd15d9c7b4a7cb055012 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
Managers creating leave for employees in different timezones will now have the leave dates saved using the employee's timezone. The system also warns users when their timezone differs from the employee's, helping avoid incorrect leave periods such as overnight bookings.
Original PR description
Purpose ======= If a manager creates a leave for an employee in another timezone, the employee's timezone should be used, not the user's timezone. Currently, if a manager with timezone UTC creates a leave (one day) for an employee in New Zealand timezone, the leave is during the night from the employee's perspective. Specification ============= 1) Use the employee's timezone for saving leave dates. 2) Display a warning if the user and the employee have different timezones. Task 2008407 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Invoices and vendor bills now include a "To check" option so accountants can flag items that need later review. Flagged entries appear as reminders and counters on the related accounting journal dashboard, helping teams track outstanding review work.
Original PR description
### Purpose Add the "To check" checkbox for invoices/bills The "To check" checkbox is useful when an accountant want to be reviewed (or review later) some entries as Odoo will add a reminder + counter in the related accounting journal dashboard. **Task ID: 2092088** -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change makes Odoo’s translation and language setup behavior more explicit, reducing surprises when importing or updating translations. It also reorganizes translation export logic to make future maintenance and performance improvements easier.
Original PR description
Extract some cleaning wanted in #30759 but not related to language packs - `amount_to_text` should work only on activated languages - deprecate `load_lang` and rely on `_create_lang` or `_activate_lang` - `trans_load_data` and `_load_module_terms` no longer silently activate languages - pass explicitly parameters instead of relying on context content - replace some `IrTranslation._load_module_terms(['base'], ['fr_FR'])` by `BaseModule._update_translations(['fr_FR'])` for higher level methods - create `TranslationExporter` class to clarify the `trans_export` method (and clean dead code) Task-id: 2088290 Pad: https://pad.odoo.com/p/r.f6f789f8711d21314bd902972153ea9d
Project task forms are updated to better match Field Service task forms, making customer, sales, deadline, assignee, and tag information appear in a more coherent layout. Access-sensitive sales order information is hidden from users without the right sales permissions, improving clarity and reducing confusion.
Original PR description
…coherent with the one from industry_fsm In order to make the task views from project and fsm more coherent, some fields were added to project.task. In project_views, view_task_form2 was adapted to…
…coherent
with the one from industry_fsm
In order to make the task views from project and fsm more coherent, some fields
were added to project.task. In project_views, view_task_form2 was adapted to follow the following specs:
Customer Project
Phone Assigned to
Email
Sales Order Deadline
Tags
correction erreurs dans project, suppression lignes inutiles project_task_views
Modification of attributes of field sale_order_id to allow a change in module fsm"
Modification of display value on sale order button to allow a change in module fsm
[IMP] Changed the view to hide phone and customer email if customer is not set
Hide the sol field when user is not a user of sale app
Add group attribute to sale_order_id so that user without sale app privileges can't see it
modification of the label for the field partner_email
modification of project task form view
delete duplicate field in project task form view
hide create so button, if there's already an so
modif of form view to allow better replace in enterprise version
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-prThe documentation was improved to better explain how company-specific display behavior works. This helps implementers and developers understand the expected behavior more easily, reducing confusion when configuring or extending multi-company features.
Original PR description
-- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Message tracking now links tracked changes to the original field definition instead of relying on field names alone. This reduces the risk of exposing outdated or incorrect information when fields are renamed or removed, improving privacy and data consistency.
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
Developers can now use more flexible dynamic filters in views without being blocked by overly strict validation. This helps teams build adaptable business screens while reducing unnecessary development friction.
Original PR description
We do not want to block developers from using dynamic domains like:
```python
domain="country_id and [('country_id', 'in', [False, country_id])] or []"
```Planning screens and emails were updated to make shift scheduling clearer and easier to use, including renamed menus, better date ranges, improved templates, and clearer email communication. A bug was also fixed so copying the previous week handles time zones correctly, helping avoid missing or incorrect shifts.
Belgian payroll now supports laptops as an extra-legal benefit, including related taxable benefit calculations in salary structures and visibility in the salary configurator. The update also improves salary simulations for meal vouchers and ensures company car data is reused correctly when needed.
Project and field service task forms have been aligned so users see a more consistent experience across Odoo. The update also improves task scheduling fields, hides irrelevant options for non-field-service work, and streamlines task creation in the Field Service app.
Original PR description
…coherent with the one from industry_fsm correction view inheritance name in helpdesk [IMP] Hide non-fsm projects in the task creation of FSM app. Added a tag menu in FSM app. Hide mark as done button in non-fsm tasks. Replace start date/end date fields with Planned date field and effective hours field fix typo modification of project task form view delete useless xpath hide so button if there s already an so and add widget daterange to planned date begin and and on task form view add a compute method to determine if planned_date_begin and planned_date_end should be shown on project and fsm task form
This update makes the Planning app easier to use with clearer labels, better shift date selection, improved email wording, and more helpful schedule details. It also renames Project Forecast to Project Planning and fixes an issue when copying the previous week across time zones.
Original PR description
Multiple changes made to the views:
* Date range widget for shifts
* Renamed "Planning templates" to "Shift Templates"
* Removed the "Calendar" menu item
* App `project_forecast` renamed to "Project Planning"
* Changed "Schedule your employee shifts" to "Recurring Shifts" in
settings
* Changed default recurrence to 6 months
* Added quick search and group by to Shift templates
* Changed modal name to "Send Planning by Email"
* Date range widget
* Small changes to email templates
* Subject to: Your Schedule
* Planning from mm/dd to mm/dd
* Linebreaks
* Added related task
* Added note to gantt popover + number of conflicting slots
* Removed "note" field on webpage if emptyResolved issues and error corrections
This corrects a small typo that could cause analytic account filtering rules to be built incorrectly. The fix helps ensure users see the right analytic records when the system applies those filters.
Original PR description
Leftover typo from #36804 . -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents an error when a product is created or edited from the website and its image is deleted. If no image URL is available, the system now handles it gracefully instead of showing a traceback, making product editing more reliable.
Original PR description
Task : https://www.odoo.com/web?#id=2063293&action=327&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.c134d9b0d8ea08eb773491d23bb96507 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update keeps accounting reports working after a related change in the main Odoo platform. It prevents disruptions caused by an internal method change, with no expected change to everyday report usage.
Original PR description
Followup of odoo/odoo#38859
The Approvals app now tracks changes using the correct underlying field reference instead of only the field name. This helps ensure tracked approval changes are linked reliably and avoids confusion or errors in audit history.
Original PR description
This commit replaces the name of the tracked field by its reference. TaskID: 2088634
Features or functions removed from Odoo
The accounting app no longer shows a separate Bank Accounts menu because bank account setup and management now happens through the standard Journals menu. This simplifies navigation and reduces confusion for users by keeping related financial settings in one place.
Original PR description
Everything is managed from the regular "journals" menu, now.
Code cleanup and technical improvements
The survey app’s behind-the-scenes flow for saving answers, moving between pages, timing tests, and viewing results has been modernized. This should make surveys more reliable for participants and easier to maintain, while reducing unnecessary server calls.
Original PR description
PURPOSE Purpose of this PR is to standardize and update JS code of the survey application. It impacts mainly save, pagination and validation flows when taking surveys. Python code will have to be…
PURPOSE
Purpose of this PR is to standardize and update JS code of the survey
application. It impacts mainly save, pagination and validation flows
when taking surveys.
Python code will have to be adapted consequently.
SPECIFICATIONS: UDPATE WIDGETS
Update JS code remove global selectors / global JS and use standard
widgets. Lessen number of RPCs and clean old code for prefilling and
validation of surveys.
Contains update of notably
* Survey Form: make it a real widget calling routes in RPC and
doing some validation;
* Prefill is now handled in the template instead of in js controller;
* Submit is now done in json rpc;
* Survey Timer: make timer a real widget;
* Survey Result Analysis: make result, graph and pagifation
real widgets;
* Charts handling have been externalised in a sub widget;
* Pagination have been externalised in a sub widget;
Clean Prefill: prefill can be done directly in the template as the template
has already all the needed values (in answer object).
Clean Validation: validation is done at server side and is independent
from prefilling values.
Dates: dates are now formatted directly in the template at rendering using
a format_date fonction pointer called in the template.
Don't use widget in review mode: remove o_survey_form class from review
template as only dates were processed in the widget for review template.
Breadcrumb: remove button previous, prev=prev and go_back mechanism.
The previous page is handled by the breadcrump. Remove redirect url
mechanism. Breadcrumb now saves the answers when going to a previous page.
Move o_survey_form class to a higher div to englobe breadcrumb in the widget
and ease his handling.
Modify the route type of survey submit to work in json. The js survey form
controller calls now manually the route via rpc.
SPECIFICATIONS: UDPATE CONTROLLERS
Refactor questions naming, validation and save flow. Simplify the answer_tag
and question name by removing the survey_id (uses now only question id)
for the most simple cases.
Factorise the save and validate survey answers to avoid duplicate code.
Review posted submit data :
* process all questions by question type (instead of using form data
(key,value) that needed key parsing and was un-typed)
* regroup answers by questions and adapt all validation and save flow
* remove post data in save and validate question methods
and uses directly the answer(s)
* remove useless input names
Validation and submit functions have been rewritten to avoid
duplicated code as many question types have quite the same
validation and save process.
SPECIFICATIONS: MISC
Partial Forward Port : Web assets have been split into another
template to avoid multiple load of those assets when website is
installed.
Also reset is_time_limited on scoring type change.
Also remove locale load as already done in session.js#load_modules
See sub commits for more details.
Task ID 1930132
Closes PR #32419Miscellaneous changes
Avoid redirect from `/favicon.ico` to `/<lang>/facivon.ico` at each request 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 Forward-Port-Of: odoo/odoo#40487
Original PR description
Avoid redirect from `/favicon.ico` to `/<lang>/facivon.ico` at each request 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 Forward-Port-Of: odoo/odoo#40487
Task: https://www.odoo.com/web?#id=37726&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.f2cd5345ee05b29072f47d4d393f5900 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#33674
Original PR description
Task: https://www.odoo.com/web?#id=37726&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.f2cd5345ee05b29072f47d4d393f5900 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#33674
Issue was blocking the system to confirm a SO/Invoice after redirection from paypal. In V13 is getting the value of the paypal_urls using paypal_get_form_action_url() returning the correct string, not a dict anymore Closing opw-2119027 opw-2122833 Forward-Port-Of: odoo/odoo#40432
Original PR description
Issue was blocking the system to confirm a SO/Invoice after redirection from paypal. In V13 is getting the value of the paypal_urls using paypal_get_form_action_url() returning the correct string, not a dict anymore Closing opw-2119027 opw-2122833 Forward-Port-Of: odoo/odoo#40432
In e29c08969 source mode was reintroduced. Since complex template seemed broken when it was edited, the feature of forcing source mode when there is a `% if ` or `% set` template directive of 12.3 was reintroduced. Since the direct breaking of the template was mostly solved with the added line: `options.prettifyHtml = false;` the force source mode is not so much necessary and there was report that it was not very clear. In this commit it is removed, and if necessary could be reintroduced lat
Original PR description
In e29c08969 source mode was reintroduced. Since complex template seemed broken when it was edited, the feature of forcing source mode when there is a `% if ` or `% set` template directive of 12.3 was reintroduced. Since the direct breaking of the template was mostly solved with the added line: `options.prettifyHtml = false;` the force source mode is not so much necessary and there was report that it was not very clear. In this commit it is removed, and if necessary could be reintroduced later with clearer implementation. opw-2123730 fix #40410 Forward-Port-Of: odoo/odoo#40421
Open Mass Mailing in debug mode, create a new mass mailing, choose a template for the body, check with the inspector the iframe. The head of the iframe does not have the debug assets. This is because the global variable relative to the debug mode gets temporary overwritten before solving the promise. For Gorash this has been done for: * Performance as all the editor assets must be inserted into the iframe assets * As an indication to bugfixers that the fix must not be done in this
Original PR description
Open Mass Mailing in debug mode, create a new mass mailing, choose a template for the body, check with the inspector the iframe. The head of the iframe does not have the debug assets. This is because the global variable relative to the debug mode gets temporary overwritten before solving the promise. For Gorash this has been done for: * Performance as all the editor assets must be inserted into the iframe assets * As an indication to bugfixers that the fix must not be done in this bundle as it is the exact same content as outside of the iframe and the exact same content as previous Odoo versions. Removing the override given that: * If someone enable debug=assets he/she is aware of the performance hit * A ticket has been opened because the iframe is hard to debug without debug assets. opw-2117649 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#40270
Remove warnings Add missing parameter posonlyargs (cf [position swap](https://docs.python.org/3/whatsnew/changelog.html#python-3-8-0-beta-3)) Forward-Port-Of: odoo/odoo#40355
Original PR description
Remove warnings Add missing parameter posonlyargs (cf [position swap](https://docs.python.org/3/whatsnew/changelog.html#python-3-8-0-beta-3)) Forward-Port-Of: odoo/odoo#40355
Description of the issue/feature this PR addresses: Without the product_uom_category_id set you cannot edit this tree view. There is a domain [('category_id', '=', product_uom_category_id)] triggered from this view whcich is not fulfilled if we do not have the field set in the tree. Fixes https://github.com/odoo/odoo/issues/39543 Current behavior before PR: You cannot edit the tree view its definition for `view_stock_move_raw_tree` as you'll get an error saying: ``` Error while validating
Original PR description
Description of the issue/feature this PR addresses: Without the product_uom_category_id set you cannot edit this tree view. There is a domain [('category_id', '=', product_uom_category_id)] triggered…
Description of the issue/feature this PR addresses: Without the product_uom_category_id set you cannot edit this tree view. There is a domain [('category_id', '=', product_uom_category_id)] triggered from this view whcich is not fulfilled if we do not have the field set in the tree.
Fixes https://github.com/odoo/odoo/issues/39543
Current behavior before PR: You cannot edit the tree view its definition for `view_stock_move_raw_tree` as you'll get an error saying:
```
Error while validating view
Field 'product_uom_category_id' used in attributes must be present in view but is missing:
- 'product_uom_category_id' in domain="[('category_id', '=', product_uom_category_id)]"
Error context:
View `stock.move.raw.tree`
[view_id: 617, xml_id: mrp.view_stock_move_raw_tree, model: stock.move, parent_id: n/a]
```
Desired behavior after PR is merged: You're able to edit the tree view definition as the domain is fulfilled.
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#39551If a Bill of Material is created without code (eg. when created as a new group from a kanban view grouped by BoM) we would get a traceback instead of an error. With this changeset, we get a "You cannot create a new Bill of Material from here." error if it is being tried. opw-2124162 fix #38904 Forward-Port-Of: odoo/odoo#40377 Forward-Port-Of: odoo/odoo#40289
Original PR description
If a Bill of Material is created without code (eg. when created as a new group from a kanban view grouped by BoM) we would get a traceback instead of an error. With this changeset, we get a "You cannot create a new Bill of Material from here." error if it is being tried. opw-2124162 fix #38904 Forward-Port-Of: odoo/odoo#40377 Forward-Port-Of: odoo/odoo#40289
_Probably not the best way, to check to avoid xss and stuff_ Forward-Port-Of: odoo/odoo#40438 Forward-Port-Of: odoo/odoo#39755
Original PR description
_Probably not the best way, to check to avoid xss and stuff_ Forward-Port-Of: odoo/odoo#40438 Forward-Port-Of: odoo/odoo#39755
Forward-Port-Of: odoo/odoo#40419
Original PR description
Forward-Port-Of: odoo/odoo#40419
The mail_notification_paynow template expects a model_description parameter or defaults to the model _description, "Journal Entries". We add, similar to 4a3fd02af4a on sale.order, a type_name field to get the correct type name in an extensible way. Similar to 8c91b193fca3b, 65b6375cf3f9b. opw 2120545 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 gu
Original PR description
The mail_notification_paynow template expects a model_description parameter or defaults to the model _description, "Journal Entries". We add, similar to 4a3fd02af4a on sale.order, a type_name field to get the correct type name in an extensible way. Similar to 8c91b193fca3b, 65b6375cf3f9b. opw 2120545 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 Forward-Port-Of: odoo/odoo#40216
Adds Lithuanian Business Accounting Standard (BAS) reports: * Balance Sheet * Profit/Loss Report Forward-port of v12 pr 5634 Forward-Port-Of: odoo/enterprise#6710
Original PR description
Adds Lithuanian Business Accounting Standard (BAS) reports: * Balance Sheet * Profit/Loss Report Forward-port of v12 pr 5634 Forward-Port-Of: odoo/enterprise#6710
Due to the usage of the sign_request_ids field in a @depends, this module depends on the module defining the hr_contract_sign field. https://github.com/odoo/enterprise/blame/13.0/hr_contract_salary/models/hr_contract.py#L46 Forward-Port-Of: odoo/enterprise#6764
Original PR description
Due to the usage of the sign_request_ids field in a @depends, this module depends on the module defining the hr_contract_sign field. https://github.com/odoo/enterprise/blame/13.0/hr_contract_salary/models/hr_contract.py#L46 Forward-Port-Of: odoo/enterprise#6764
Purpose ======= 1/ When creating a salary structure (Payroll > Configuration > Structures), give in the name and type. Save. All works fine 2/ Redo the same but open one of the salary rules under and discard it. Try to save the structure. You get an error The operation cannot be completed: - Create/update: a mandatory field is not set. - Delete: another model requires the record being deleted. If possible, archive it instead. Model: Salary Rule (hr.salary.rule), Field: Py
Original PR description
Purpose ======= 1/ When creating a salary structure (Payroll > Configuration > Structures), give in the name and type. Save. All works fine 2/ Redo the same but open one of the salary rules under and discard it. Try to save the structure. You get an error The operation cannot be completed: - Create/update: a mandatory field is not set. - Delete: another model requires the record being deleted. If possible, archive it instead. Model: Salary Rule (hr.salary.rule), Field: Python Condition (condition_python) Forward-Port-Of: odoo/enterprise#6655