Daily updates from Odoo
Navigate
Branch
Wednesday, February 12, 2020
34 changes
New functionality added to Odoo
Helpdesk users can now create a sales order directly from eligible tickets, making it easier to invoice time spent without navigating through linked tasks or projects. New defaults, demo data, and batch invoicing support streamline the full ticket-to-invoice flow for service teams.
Original PR description
======= Purpose ======= Currently to invoice time spent on tickets the user has to somehow guess that he needs to open the task set on the ticket in order to invoice his time. The goal of this task…
=======
Purpose
=======
Currently to invoice time spent on tickets the user has to somehow guess that he needs to open the task set on the ticket in order to invoice his time.
The goal of this task is to have a shortcut to create an SO directly from the ticket without needing to go through the project task.
===========
Specifications
===========
- Add a 'Create Sales Order' non-primary button on helpdesk tickets
- only visible if the 'Time Reinvoicing' feature is enabled on the helpdesk team
- and if the user has at least the Sales > Own documents access right level
- and if the sale_order_id field is not set and allow_billable is false on the project selected on the ticket
- or if the sale_line_id field is not set on the task selected on the ticket (= this condition is void if a task isn't set on the ticket)
- and allow_billable is true on the project selected on the ticket
- Clicking on the button should open one of the following modals:
- if allow_billable is true on the project selected on the ticket (current modal we have for project tasks)
- if allow_billable is false on the project selected on the ticket (current modal we have for projects)
- Prefill the partner_id field with the one set on the ticket
- Projects created on the fly from Helpdesk tickets should have allow_timesheets,, allow_timesheet_timer and allow_billable set to true by default
- set 'Service on Timesheet' as the default value for timesheet_product_id
- Rename the 'Sales Order' field into 'Ref. Sales Order'
- Add some demo data to showcase this featureAdds support for updating Chilean currency exchange rates through SBIF in the currency rate live feature. Businesses operating in Chile can automate rate updates after configuring an SBIF API token, reducing manual work and improving accuracy.
Original PR description
This adds sbif connection to "currency_rate_live" module. It requires an API Token. It can be obtained from SBIF site.
Enhancements to existing features
Odoo now supports responsive font sizes so text can scale more naturally across desktop, tablet, and mobile screens. This improves readability and visual consistency across many apps, while also giving website users more control over font size choices.
The sales order creation wizard now automatically uses the customer already set on the related project or task, reducing manual entry and mistakes. Several timesheet billing and timer settings are also moved into the community sale timesheet module for more consistent availability.
Original PR description
The partner_id on the wizard for sale order creation (from project and from tasks) is now set with the one on the project or on the task if it is set. Some fields were moved to community (from sale_timesheet_enterprise). Concerned fields : allow_billable (project and task), allow_timesheet_timer (project) This also move timesheet_product_id to community. This field was being added in industry_fsm_sale and was required if allow_billable and allow_timesheets were true. But those 2 other fields are already available once sale_timesheet is installed. The field timesheet_product_id is thus being moved to sale_timesheet for more coherence. Task-215757 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now checks that search screens include at least one searchable field, preventing views where users cannot actually search records. The CRM lost reason search view was updated accordingly, and future configuration mistakes will trigger a warning before they affect users.
Original PR description
These are a series of patches that make sure every search view within Odoo has at least one field within its declaration so that records of the model are actually searchable.
The timesheet list view has been adjusted so users can enter the task first and add the description beside it, making data entry more natural. Descriptions are no longer required in the list view; when left blank, the system safely fills a placeholder so records remain valid.
Original PR description
Pad : https://pad.odoo.com/p/r.25403e4e6dd9a9dd46972b7f54a5aa0b Task : https://www.odoo.com/web#id=2176065&action=333&active_id=1251&model=project.task&view_type=form&menu_id=4720
Course pages now better show uncategorized content, including a “View all” option and pagination when needed. Content creators also get easier organization tools, safer upload title handling, and a new option to show or hide the promoted slide.
Original PR description
PURPOSE --------------- Add small improvements to the frontend UI for slide_channels. SPECIFICATION ----------------------- Current behavior before PR: 1. We can't display all uncategorized slides of…
PURPOSE --------------- Add small improvements to the frontend UI for slide_channels. SPECIFICATION ----------------------- Current behavior before PR: 1. We can't display all uncategorized slides of a course. 2. When you upload an image or PDF, the name field is replaced by the filename even it was filled before selecting the file. This leads to rewrite the name a second time before uploading the slide. 3. There is no way for the website designer to choose if he wants to display or hide the promoted slide of a course. Desired behavior after PR is merged: 1. Slides without a category are displayed correctly, now you have access to the link "View all" which allows the user to display all uncategorized slides with a possible pager. You have also the possibility to create a section/category with the new button "Add a section" next to the button to upload content. 2. When you upload an image or a PDF, the name field is no more replace automatically by the filename. Now, it's replaced only if the field is empty when you select the file. 3. Now, there is a new button under the Customize tab to display or hide the promoted slide on the courses. By default, the promoted slide is displayed on the course. task-2161391
The project overview now includes helpful explanations for key financial fields such as other costs, re-invoiced costs, invoiced revenue, and revenue still to invoice. This makes the report easier to understand for users reviewing project profitability and billing status.
Original PR description
Purpose ======= The project overview is still as obscure as ever, so we are adding even more tooltips. Specifications ============== Add the following tooltips to the project overview: - Other costs: Any cost linked to the Analytic Account of the Project. - Re-invoiced costs: Costs from expenses that were reinvoiced to your customer (provided that the Analytic Account of the Project was set on the Expense). - Invoiced: Revenues linked to Timesheets already invoiced. - To Invoice: Revenues linked to Timesheets not yet invoiced. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The SMS preview wizard has been simplified so previews rely on a single record reference and compute the message preview more consistently. This also corrects an incorrect “No Records” warning that could appear even when previewable records existed, improving confidence when preparing SMS templates.
Original PR description
Task : https://www.odoo.com/web#id=2180132&action=333&active_id=965&model=project.task&view_type=form&menu_id=4720 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
Timesheet users can now enter an optional description when adding a line from the grid or form view. Descriptions are no longer mandatory in the list view, reducing unnecessary friction when recording time.
Original PR description
Pad : https://pad.odoo.com/p/openerp-project.task-UKIOKIZBI3 Task : https://www.odoo.com/web#id=2176065&action=333&active_id=1251&model=project.task&view_type=form&menu_id=4720
Field Service tasks linked to locked sales orders now show their product list as read-only. This prevents users from accidentally adding products or changing quantities after an order has been locked, keeping service work aligned with confirmed sales terms.
Original PR description
Purpose When an SO is locked, it is no longer possible to add products or to modify SOLs. This restriction is completely bypassed by the 'Products on tasks' feature in Field Service. Specifications If the SO linked to an FSM task is in the state 'locked', the Products kanban view should be in read-only. LINKS PR #8099 Task 2181465
Resolved issues and error corrections
This fix improves how Odoo detects and reports incorrectly configured rule conditions in screens and forms. It helps prevent broken views or confusing behavior by catching invalid setup earlier and making error messages clearer for support and developers.
This update corrects invalid filtering rules used in several business workflows, including approvals, USPS delivery settings, and field service sales projects. The fix helps ensure users see the right records and reduces the chance of errors when opening or using these screens.
Original PR description
Cf odoo/odoo#44642
The coupon generation wizard for helpdesk tickets now hides internal company and ticket fields. This reduces clutter for users and helps keep the flow focused on creating the coupon.
Original PR description
in wizard for generating coupon from tickets, hide the company, tickets fields task-2191174
This fixes search screens that had no searchable field configured, which previously made searching those records impossible. Users can now find records in the affected areas as expected, reducing friction in daily work.
Original PR description
Without at least one field, performing a search in these models' search view is outright impossible.
Features or functions removed from Odoo
The event app no longer includes the old Twitter hashtag setting on events or event types. This avoids maintaining a redundant option now covered by the Social Marketing app and the website builder, keeping event configuration simpler.
Original PR description
This PR removes the field twitter_hashtag from event and event_type. The justification behind this change is that it has been made obsolete by our social marketing app and our website builder TaskID: 2191921 PR: #xxxxx 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
Code cleanup and technical improvements
This update standardizes how font sizes are defined across multiple Odoo Enterprise screens and reports. It prepares these areas to support responsive text sizing when that option is enabled, helping layouts adapt better across different devices and print contexts.
Original PR description
This will allow to use responsive font-sizes once the related option is enabled.
Miscellaneous changes
Description of the issue/feature this PR addresses: Picture of employees are maximized directly which is annoying when you move the mouse in kanban view. Desired behavior after PR is merged: Add the ability to put a waiting time before opening the zoom in option of the field in the view (default value is 0). In employee kanban view, the waiting time is set to 1000ms. taskID: 2191289 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forw
Original PR description
Description of the issue/feature this PR addresses: Picture of employees are maximized directly which is annoying when you move the mouse in kanban view. Desired behavior after PR is merged: Add the ability to put a waiting time before opening the zoom in option of the field in the view (default value is 0). In employee kanban view, the waiting time is set to 1000ms. taskID: 2191289 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#44704
Before this commit, it was possible to delete an expense product even if it was already set on expense notes. Description of the issue/feature this PR addresses: opw-2195962 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#45187 Forward-Port-Of: odoo/odoo#45175
Original PR description
Before this commit, it was possible to delete an expense product even if it was already set on expense notes. Description of the issue/feature this PR addresses: opw-2195962 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#45187 Forward-Port-Of: odoo/odoo#45175
The customer display sometimes displayed a warning message saying: "A script on this page may be busy, or it may have stopped responding. [...] Script: chrome://[...]". We then remove the time limit for the execution of Chrome scripts. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#45140
Original PR description
The customer display sometimes displayed a warning message saying: "A script on this page may be busy, or it may have stopped responding. [...] Script: chrome://[...]". We then remove the time limit for the execution of Chrome scripts. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#45140
To reproduce: - Create a second company with the same currency as the first, - Assign the first pricelist with that currency (based on _order) to the second company - Install the POS, or create a new pos.config while in the first company The above results in: raise ValidationError("The selected pricelists must belong to no company or the company of the point of sale") opw-2192658 Forward-Port-Of: odoo/odoo#45171 Forward-Port-Of: odoo/odoo#45038
Original PR description
To reproduce:
- Create a second company with the same currency as the first,
- Assign the first pricelist with that currency (based on _order) to
the second company
- Install the POS, or create a new pos.config while in the first
company
The above results in:
raise ValidationError("The selected pricelists must belong to no
company or the company of the point of sale")
opw-2192658
Forward-Port-Of: odoo/odoo#45171
Forward-Port-Of: odoo/odoo#45038From Odoo 13.0, the list of answers of a user displays the name of the answer itself, and not its parent's. Answers created directly on a question are given a name, but answers created from a comment are not. This commit fixes this behavior for a better consistency: all posts should have a displayable name. A migration step on saas~12.5 will populate from their parent's name the existing posts that don't have a name. Forward-Port-Of: odoo/odoo#45159
Original PR description
From Odoo 13.0, the list of answers of a user displays the name of the answer itself, and not its parent's. Answers created directly on a question are given a name, but answers created from a comment are not. This commit fixes this behavior for a better consistency: all posts should have a displayable name. A migration step on saas~12.5 will populate from their parent's name the existing posts that don't have a name. Forward-Port-Of: odoo/odoo#45159
Sometimes, constraints are not delayed during a module upgrade: the module is 'to upgrade' but in 'init' mode :-/ Fix this by relying on the module's state only. Forward-Port-Of: odoo/odoo#45147
Original PR description
Sometimes, constraints are not delayed during a module upgrade: the module is 'to upgrade' but in 'init' mode :-/ Fix this by relying on the module's state only. Forward-Port-Of: odoo/odoo#45147
When we valide a stock landed costs with a stock picking with multiple products, when two stock valuation layers is created, only one was link to the journal account move. task-2123752 Forward-Port-Of: odoo/odoo#44829
Original PR description
When we valide a stock landed costs with a stock picking with multiple products, when two stock valuation layers is created, only one was link to the journal account move. task-2123752 Forward-Port-Of: odoo/odoo#44829
Without at least one field, performing a search in these models' search view is outright impossible. Related to https://github.com/odoo/enterprise/pull/8363 Forward-Port-Of: odoo/odoo#45143
Original PR description
Without at least one field, performing a search in these models' search view is outright impossible. Related to https://github.com/odoo/enterprise/pull/8363 Forward-Port-Of: odoo/odoo#45143
In some case, a pre migration script will call `xml_import.parse` to force reload a no-update data in pre script. It is possible that field will be marked as recompute in the process. The problem is that the reference to the field added in `env.all.tocompute` won't be the same as the reference of the same field after calling setup_models, leading to an infinite loop while recomputing this field since `fields.__get__` wont find self in `env.all.tocompute`. This problem was discorvered tr
Original PR description
In some case, a pre migration script will call `xml_import.parse` to force reload a no-update data in pre script. It is possible that field will be marked as recompute in the process. The problem is that the reference to the field added in `env.all.tocompute` won't be the same as the reference of the same field after calling setup_models, leading to an infinite loop while recomputing this field since `fields.__get__` wont find self in `env.all.tocompute`. This problem was discorvered trying to migrate a database with all modules installed (no demo data) from 12.0 to 13.0 (for commit references: http://runbot.odoo.com/runbot/build/1176576 with database comming from http://runbot.odoo.com/runbot/build/1171714). This commit add a check before executing `setup_models` in order to log if some tocompute remains before breaking fields references and add a flush after pre scipts to fix the current issue. Forward-Port-Of: odoo/odoo#45109 Forward-Port-Of: odoo/odoo#45016
d92f76592c19 introduced a toastr when publishing a record. It was designed for the topbar publishing toggle button, but some other templates ended up also using that feature. As those templates were missing `data-description` which contains the model business name, it would show `You've published your undefined`. This is only related to a very few places having a publish button inside the page. This commit fixed that by ensuring every publish button template have the necessary code. A
Original PR description
d92f76592c19 introduced a toastr when publishing a record. It was designed for the topbar publishing toggle button, but some other templates ended up also using that feature. As those templates were missing `data-description` which contains the model business name, it would show `You've published your undefined`. This is only related to a very few places having a publish button inside the page. This commit fixed that by ensuring every publish button template have the necessary code. Also, a fallback is added in case tha `data-description` is missing somehow. task-2191735 Forward-Port-Of: odoo/odoo#44975
### Issue - Install MRP - MO > Import with BOM The lines are not populated but it was the case in v12. ### Cause In 7206b385b5, the lines generation are done in a onchange but they are not trigerred in imports ### Solution Call the onchange manually when we are in an import case **OPW-2188066** -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#45081
Original PR description
### Issue - Install MRP - MO > Import with BOM The lines are not populated but it was the case in v12. ### Cause In 7206b385b5, the lines generation are done in a onchange but they are not trigerred in imports ### Solution Call the onchange manually when we are in an import case **OPW-2188066** -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#45081
Steps to reproduce the bug: - Install l10n_sg - Create a new company C where country = Singapore - Set l10n_sg as the chart of accounts of C - Go to Tax report Bug: A traceback was raised. opw:2191692 Forward-Port-Of: odoo/enterprise#8351
Original PR description
Steps to reproduce the bug: - Install l10n_sg - Create a new company C where country = Singapore - Set l10n_sg as the chart of accounts of C - Go to Tax report Bug: A traceback was raised. opw:2191692 Forward-Port-Of: odoo/enterprise#8351
- Install `industry_fsm` - Delete the FSM project - Install `industry_fsm_report` The module can't be installed since a data is missing. We move the data update in a `post_init_hook`. opw-2180900 Forward-Port-Of: odoo/enterprise#8352 Forward-Port-Of: odoo/enterprise#8335
Original PR description
- Install `industry_fsm` - Delete the FSM project - Install `industry_fsm_report` The module can't be installed since a data is missing. We move the data update in a `post_init_hook`. opw-2180900 Forward-Port-Of: odoo/enterprise#8352 Forward-Port-Of: odoo/enterprise#8335
…ation After modifying start or/and end date on a contract, we remove already generated work entries that are outside new period. taskID: 2179816 original-commit: d6e6ebb Forward-Port-Of: odoo/enterprise#8349
Original PR description
…ation After modifying start or/and end date on a contract, we remove already generated work entries that are outside new period. taskID: 2179816 original-commit: d6e6ebb Forward-Port-Of: odoo/enterprise#8349
From an accounting perspective companies are allowed to create multiple RteICA accounts as long as they start with 2368. opw-2192156 Forward-Port-Of: odoo/enterprise#8361
Original PR description
From an accounting perspective companies are allowed to create multiple RteICA accounts as long as they start with 2368. opw-2192156 Forward-Port-Of: odoo/enterprise#8361
Without at least one field, performing a search in these models' search view is outright impossible. Related to https://github.com/odoo/odoo/pull/45143 Forward-Port-Of: odoo/enterprise#8363
Original PR description
Without at least one field, performing a search in these models' search view is outright impossible. Related to https://github.com/odoo/odoo/pull/45143 Forward-Port-Of: odoo/enterprise#8363
Steps to reproduce: - install sale_intrastat - attempt to create an invoice Previous behavior: you get a traceback "ValueError: Invalid field 'intrastat_product_origin_country_id' on model 'account.move.line'" this field only exists in belgian accounting Current behavior: the faulty field has been moved to another module and only affects belgian accounting opw-2194943 Forward-Port-Of: odoo/enterprise#8345
Original PR description
Steps to reproduce: - install sale_intrastat - attempt to create an invoice Previous behavior: you get a traceback "ValueError: Invalid field 'intrastat_product_origin_country_id' on model 'account.move.line'" this field only exists in belgian accounting Current behavior: the faulty field has been moved to another module and only affects belgian accounting opw-2194943 Forward-Port-Of: odoo/enterprise#8345