Daily updates from Odoo
Navigate
Branch
Wednesday, February 6, 2019
25 changes
Security fixes and vulnerability patches
Users can now rate and comment on slide channels through a new website review popup, making course feedback easier to collect and display. The update also improves review statistics, lets users edit their own reviews, adds channel search, and strengthens posting security by using signed user tokens instead of exposing document access tokens.
Original PR description
Impacted modules: portal, rating, website_rating, website_slides This merge modifies the some aspect of posting a message for public document, in order to implement the rating (message+rating) on a slides channel. We now support the use case of posting without having the right to write on a document, and force the author of the message (as it is required to be logged to post a message). The security has been improved: to do so, the document token is not leaked anymore. Only the signed token (by current partner id) is used. The rating mixin has been modified to handle displaying average and count (per document), in an efficient way. A new frontend message composer is born in website_rating (as it allow to post a rating with a comment). To do so, a little refactoring of the Portal Chatter has been done. For more details, please have a look at the subcommits. They are well explained and correctly split. Task-1902304
New functionality added to Odoo
Surveys can now be used as certifications with scored answers, passing thresholds, time limits, attempt limits, and certificate emails. Survey creation and presentation are also improved with easier page/question organization, layout choices, randomized questions, and clearer participant result reporting.
Original PR description
Task #1902306 Purpose ======= Preliminary cleanup --------------------------- survey.question is now also the model used for the survey's pages (with the "is_page" field set to True). This allows to…
Task #1902306
Purpose
=======
Preliminary cleanup
---------------------------
survey.question is now also the model used for the survey's pages (with the "is_page" field set to True).
This allows to put all the pages and questions together in a o2m field on the view side and
easily reorganize your survey by dragging the items around.
It also removes one level of encoding by directly having 'Add a page' and 'Add a question'
links on the tree view of questions, enabling a faster encoding.
However, this has the downside of making the code reading a little bit more complicated.
Efforts were made at the model level to create computed fields so that the use of these models
still seems somewhat logical. That means:
- A survey still has "page_ids" (question_and_page_ids filtered on is_page = True)
- These "page_ids" still have question_ids (questions located between this page and the next)
- These "question_ids" still have a "page_id"
That makes the use and display of these information at view and controller levels easier to understand.
Certification
----------------
This commit adds certification capabilities to the survey module.
A certification is a survey with the "certification" flag set to true than can be linked
to a certification email template that contains a certification document (PDF).
This template can be edited by the user in the technical settings to customize the certification email/document.
To be able to implement this certification concept, we also have to add scoring mechanisms to surveys.
survey.questions of type 'simple_choice' and 'multiple_choice' now have scores for the suggested answers.
These question scores allow to compute a global score that is used to determine whether the user has successfully
passed the certification or not.
As additional features, we also have:
- A time limit with an interface timer that limits the test to X minutes
When reached, the survey is automatically submitted and unregistered (= unsubmitted) answers are not taken into account.
- A limited number of attempts for the survey/certification
If reached, the user can't take the survey/certification anymore
The 'survey result' layout was adapted accordingly to show the success rate of participants and the correct answers
to the survey questions.
Randomization and survey layout selection
---------------------------------------------------------
The "page" concept is now only present in the user interface.
Surveys are split in "sections" that have two purposes:
- Organizing a (long) survey/certification
- Allow to pick a random questions count for that section (more information here after)
On the user interface, based on the questions_layout field, surveys are displayed:
- On a single page, where sections still appear but are only used as visual separations
- On multiple pages, having one page per section (this matches the previous behavior)
- On multiple pages, having one page per *question*
On top of that page concept, this commit added randomization for the survey questions.
The randomization mechanism will take X questions per section of the survey.
The survey.user_input is initialized with the selected questions to be sure to keep that
set of questions and avoid showing a new set of questions every time the user refreshes the page.
This also allows to easilly go back and know which question we have to show.
Specs
=======
- Create a new survey :
- Add a description field for the survey
- Options on a survey :
- Passing score : (sum of all good answers) in %
- If No scoring => No passing score, no certificate
- If Scoring with answers => Passing score and can see the answers (can create certificate)
- If Scoring without answers => Passing score but can't review the answers at the end (can create certificate)
- for the questions, if "no scoring" selected, can 't see the option "good answer" and "score" on the questions
- If the 2 others options, can see the options "good answer" and "score" on the questions
- all the types of questions are available for each option.
- Questions
- Add the option correct answer on the multiples questions (one or more good answers)
- Certifications
- If scoring, force "mandatory" for "mutliple choices (1or multiple answers)"
- On the dashboard => visual information that this specific survey is a certification
- Time Limit : The student is informed on the home screen of the survey of the time limit.
The clock start when he clicks on "start survey"
- Template of the certificate : send email with attachment PDF
- Front-end :
- Add some margin
- Replace "Back to survey" with the blue-bar from the portal
- Add a timer (start when the survey starts)
- Add a progress bar (number of section and number of question inside the section)
- Analyse of the results :
- First a global graph with the number of people who''ve participated and passed the test
- Stages of a survey :
- Remove the stage "Permanent"
- 3 stages :
- draft : not on-line but can be tested (with phantom token)
- In progress : on-line
- closed : not on-line
- Who can test a survey : the manager and the user. Add this condition to the phantom token.Adds a dedicated eight-column General Ledger style report for Chilean localization needs. This helps Chilean businesses access a country-specific accounting report required for local tax and financial reporting workflows, with the initial version covering the first four columns.
Original PR description
Provide a new custom report for Chile localization. It has the shape as what they call a "Eight columns report". The custom report is provided by the new model account_eightcolumns_report in l10n_cl_reports As asked in task 1833998 "l10n_cl - Chilian localization - accounting 8 columns General Ledger (8 columnas - Balance Tributario)"
Enhancements to existing features
Opening stock pickings is now faster when they contain many move lines. The availability check uses a quicker counting approach, reducing wait time for users in inventory workflows.
Original PR description
Description of the issue/feature this PR addresses: use search_count to fast compute when there lot of move_lines. 800 ms -> 100 ms This improve a little the speed when you open a picking. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update makes manufacturing order processing return the created production records, which can help other batch operations continue working with those results. It is a small internal improvement that supports smoother automation in manufacturing workflows.
Original PR description
can be help full when use in batch @jco-odoo 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
Point of Sale orders now apply the correct account mapping when a fiscal position is used. This helps ensure accounting entries are posted to the right accounts, reducing manual corrections and improving financial accuracy.
Original PR description
If a fiscal position is set on an order had uses account mapping, the account for the generated accounting entries must be adapted Changed in master for stability reason opw-1910475
This update improves the guided onboarding tour for the Sales app, making it smoother for new users to get started. It also prevents a small visual completion message issue that could appear when finishing a tour, improving the overall first-use experience.
Original PR description
Description of the issue/feature this PR addresses: onboarding tour improvements. Current behavior before PR: Desired behavior after PR is merged: onboarding tour improvements. Task: https://www.odoo.com/web#id=1920454&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.191cdd23115b0d560e21518795bbb3c8 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change corrects or improves a text label in the Mail activity area. It helps users see clearer wording in the interface without changing business processes or functionality.
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
This update makes several accounting-related screens clearer and more consistent, including improved labels, warnings, filters, and settings text. It also fixes check number display so check numbers are treated as plain numbers rather than monetary amounts, reducing confusion for users.
Original PR description
Task : https://www.odoo.com/web#id=40157&view_type=form&model=project.task&action=333&active_id=131&menu_id=4720 Pad : https://pad.odoo.com/p/r.ce7e9384c5fffa227d7ed5cb9cf5c22c 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
Access-rights errors now provide clearer wording and, in debug mode, more context about why access was denied. This helps administrators and support teams diagnose permission and rule issues faster without changing normal user permissions.
Original PR description
Access rights issues are currently hard to diagnose (especially from ir.rule) due to how little details they provide. This makes a pass over various sources of access errors and: * improve/clarify the base message * provide an alternative message with more details in debug mode - [x] ir.model.access - [x] ir.rule - [x] related fields - [x] fields with groups - [x] close #28451 (provide both _name and _description in access error messages) Task [1886746](https://www.odoo.com/web?debug#id=1886746&model=project.task&view_type=form&menu_id=4720)
This change makes an existing web interface component available for broader reuse. It helps developers build or customize related-record fields more consistently without changing the experience for end users.
Original PR description
Expose to public the variable FieldX2Many. Task ID: [1910385](https://www.odoo.com/web#id=1910385&action=333&active_id=1520&model=project.task&view_type=form&menu_id=4720)
When a vendor with a specific currency is selected on a product, Odoo now uses that vendor currency for the product's supplier pricing. This helps purchasing teams keep vendor price lists accurate and avoid manual currency corrections.
Original PR description
- if the currency is set on a vendor and set that particular vendor to the product, the currency will not be being changed by vendor's currency. - after this commit currency in pricelist will be changed by the currency of the vendor Task : https://www.odoo.com/web#id=1826166&view_type=form&model=project.task&action=327&menu_id=4720 Pad: https://pad.odoo.com/p/r.3f58fdd172e409fecc382face887968c -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Website editors now get dedicated places to add custom styling and JavaScript, instead of having to edit many underlying system files. This reduces the risk of breaking a site or blocking future updates while still allowing businesses to tailor the look and behavior of their website.
Original PR description
* web, web_editor See sub-commits for details. Currently, when an user wants to edit the css of its website, he has access to lots of files and, in debug mode, to even more files. While the feature is nice for people who know what they are doing, a lambda person can easily break its website by changing the wrong files. Also, nothing warns the user that the files that are edited will never receive updates anymore (unless if they are reset). The goal is to prevent those behavior while still allowing the add custom css. Another goal is to be able to *add* custom javascript. Custom files created for the user: SCSS: user_custom_rules.scss, user_custom_bootstrap_overridden.scss JS: user_custom_javascript.js task-1919350
Survey-related sample data was updated to stay compatible with recent changes in the core survey model. This helps keep appraisal survey examples working correctly after changes to how survey pages, questions, scoring, and certification data are represented.
Original PR description
Task #1902306 Community PR #29577 Purpose ======= Update data to fit the model changes made in community.
The Dutch ICP report now presents VAT details and reported amounts in a cleaner, more compliant format. Amounts are rounded without decimals, empty or zero-only customer lines are omitted, and VAT numbers are easier to read with country codes handled separately.
Original PR description
- round reported amounts so that they have no decimal part (half up) - don't report any amount in service or product column if no operation was made for the customer (previously, we reported 0) - show country code column left to the VAT number one, and not the opposite - when VAT number contains the country code, remove it from the reference displayed in "VAT number" column - group VAT number by 4 characters, separated by spaces - if balance is equal to 0 for both products and services on a line, don't display the line
Several accounting configuration and form screens were adjusted to make labels clearer and avoid display issues. These small usability improvements help finance users better understand settings and navigate accounting records with less confusion.
Original PR description
Task : https://www.odoo.com/web#id=40157&view_type=form&model=project.task&action=333&active_id=131&menu_id=4720 Pad : https://pad.odoo.com/p/r.ce7e9384c5fffa227d7ed5cb9cf5c22c
This update refines the mobile form experience, especially in Sales Order screens, by adjusting spacing, field alignment, button styling, and price presentation. It makes delivery method information easier to read on one line and removes unnecessary visual clutter during mobile record creation.
Original PR description
Some change are visible in Sales Order view :
- Padding-bottom 12px on <tr>
- Padding bottom 4px on labels
- Set en empty tr height to always have the same space between fields.
- "open popup" icon: update padding to no padding right
- Delivery method field full width
- Update Style of the "add" button
- Update style of the prices
- Delivery method should be on one line 100% when complete all
field should be on the same line :
delivery method
0.00$ - Get Rate - Add to order
- Hide "New" label on mobile on creation
/!\ Need to merge this before : https://github.com/odoo/odoo/pull/30512
Task ID: [1910385](https://www.odoo.com/web#id=1910385&action=333&active_id=1520&model=project.task&view_type=form&menu_id=4720)Resolved issues and error corrections
Access error messages now consistently show both the readable model description and its technical model name. This makes permission issues easier to identify and resolve, especially when descriptions are translated or unclear.
Original PR description
All AccessError message don't show the same things, sometimes it is _description of model, sometime it is _name. Today it like this model.py: check_access_rule -> _description check_field_access_rights -> _description _read_from_database -> _name field.py check -> _name For developper it is better to use _name (some translate or description are unusable to understand with model is concern). @odony -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes regressions in the website editor introduced during a previous editor update. It restores expected editing behavior and prevents editor cleanup from accidentally removing unrelated page data, helping website edits remain reliable.
Original PR description
Following the new editor's merge at https://github.com/odoo/odoo/pull/29775, the website 'edit.js' file received mistakes / useless code. https://github.com/odoo/odoo/pull/30839 fixes one of them.…
Following the new editor's merge at https://github.com/odoo/odoo/pull/29775, the website 'edit.js' file received mistakes / useless code. https://github.com/odoo/odoo/pull/30839 fixes one of them. Hopefully this commit will solve the remaining ones. - https://github.com/odoo/odoo/blob/12.0/addons/website/static/src/js/menu/edit.js#L43 was moved for no reason at all at the bottom of the method alongside its comment which broke the feature and made the comment wrong. - Changed a '.a' selector into a '.a:not(.b), .a.b' selector... https://github.com/odoo/odoo/blob/b6db6b878c5d329c19262d829e13726c3a3a1d25/addons/website/static/src/js/menu/edit.js#L136 - For the same selector, a 'FIXME' comment was removed while it was not fixed (this restores it as a 'TODO' instead of a 'FIXME' though). - On edition stop, removed all the data-editor-message, even the specific ones that were not added by the editor (note that it was not a problem for the current ones in Odoo as they were by chance on the main editable elements which made them not saved in the database): https://github.com/odoo/odoo/blob/b6db6b878c5d329c19262d829e13726c3a3a1d25/addons/website/static/src/js/menu/edit.js#L177
This update improves how kanban cards use contextual information, especially in embedded list or card views. It also fixes image display for newly created records and avoids unnecessary image loading when the image data is already available.
Original PR description
Part of task 34045 Use rebase-ff
Bank reconciliation now better handles contacts who are both customers and suppliers, such as when an invoice, a vendor bill, and a partial bank payment need to be matched together. This prevents confusing reconciliation errors and helps accounting teams clear receivable and payable balances in one workflow.
Original PR description
Task 1933763 Be able to reconcile this scenario : - You invoiced $100 to a contact—> receivable $100 - You received a $50 bill from the same contact—> payable $50 - Contact pay you $50 (bank…
Task 1933763 Be able to reconcile this scenario : - You invoiced $100 to a contact—> receivable $100 - You received a $50 bill from the same contact—> payable $50 - Contact pay you $50 (bank statement) - You want to reconcile all the things easily from bank reconciliation --> avoid this message : https://drive.google.com/a/odoo.com/file/d/1pyzwMUDQIbH2wLrj1gk4ds6QPlfKei7F/view?usp=drivesdk --> manage the counterpart to be created (bank move) the story looks like (bank move is the one to be managed) : ``` journ n° compte contact DEBIT CREDIT Mach sales 12 400000 Clients Azure Interior 100.00€ 0.00 € A1 sales 12 701000 Ventes Azure Interior 0.00 € 100.00 € purchase 11 440000 Fournisseurs Azure Interior 0.00 € 50.00 € A2 purchase 11 600000 Achats Azure Interior 50.00 € 0.00 € bank 3 550001 Bank Azure Interior 50.00 € 0.00 € bank 3 400000 Clients Azure Interior 0.00 € 100.00 € A1 bank 3 440000 Fournisseurs Azure Interior 50.00 € 0.00 € A2 ``` -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where related record lists could stay outdated after a linked record was created or edited. Users will now see changes such as new messages reflected correctly without needing extra refreshes or manual workarounds.
Original PR description
A one2many pointing to an integer field won't be invalidated if a corresponding record is created/edited This proposes a single direction dependency in this case.
The website editor no longer shows the homepage welcome prompt on every newly created page. This prevents confusing guidance from appearing in the wrong place and keeps the page creation experience clearer.
Original PR description
Every new page was being considered an empty homepage with _"Welcome to your Homepage! Let's start designing."_ shown. Now only an empty homepage shows that message. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes incorrect legal reference values used for Belgian company car payroll calculations. It helps ensure CO2 fees and taxable benefit amounts are computed consistently and accurately in current versions.
Original PR description
… master -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Code cleanup and technical improvements
Odoo Studio's editor was updated to align with a core platform change and avoid loading an unnecessary JavaScript file while editing. This is an internal cleanup that should help keep the editor lighter without changing day-to-day functionality for users.
Original PR description
Adaptation to odoo/odoo#29999