Tuesday, February 14, 2023
62 changes · master
Enhancements to existing features
The Brazilian localization module now uses English as its main language, with the original Portuguese text preserved in translation files. This makes the module easier for international teams to maintain while keeping Portuguese available for local users.
Original PR description
This commit replaces terms in Portuguese with English translations and moves the original Portuguese terms into pt.po translation files. This makes it easier to maintain the module. task-3116558 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update renames an internal Sales CRM view identifier to remove an unnecessary number. It improves consistency and maintainability without changing how users interact with the system.
Original PR description
before this commit, the inherited view is not named in a good way. after this commit, 123 will be removed from the external id of the inherited view. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now drag dialog windows to reposition them on the screen. This makes it easier to view information behind a pop-up and work more comfortably in busy screens.
PDF reports now include needed web assets directly in the document before rendering, reducing dependency on extra server workers and avoiding failures when assets are not yet fully available. This makes report generation more reliable and easier to test, with a small fix to prevent unnecessary asset-related requests during PDF creation.
Original PR description
Before this commit printing a report would require at least two workers, one for the original request "print this report" plus one used by the wkhtmltopdf subprocess to download the many assets…
Before this commit printing a report would require at least two workers, one for the original request "print this report" plus one used by the wkhtmltopdf subprocess to download the many assets (css/js/img) present in the html document it is rendering. Because it was using a minimum of two workers, it was not possible to test the rendering of PDF reports as only one worker was available for HttpCase tests methods. In this work, we download all assets and inline them inside the html document prior of invocating the wkhtmltopdf subprocess so that no further download is necessary. task-2706552 --- **[FIX] base: 404 /web/assets during pdf rendering** Special case for when the assets have been generated in the current transaction, have not been commited yet and thus are not visible to the request made with `wsgi_client` as it opens its own cursor. This prevents the assets inlining algorithm from crashing for not found assets. --- *I made the extra fix commit so that it has its own commit message* With some help from @Gorash for the unittest <3
Down payments on sales orders are now split by tax rate instead of shown as one combined line. This makes invoices and sales documents clearer when orders include products with different taxes, and helps users better understand how down payments affect taxable amounts.
Original PR description
Break down payments per tax. When creating a down payment for a sale order, create one line per tax instead of one line for the entire order. [Sale Order] Product Qty Unit price Tax Subtotal Product1…
Break down payments per tax. When creating a down payment for a sale order, create one line per tax instead of one line for the entire order.
[Sale Order]
Product Qty Unit price Tax Subtotal
Product1 1 1000 10% 1000
Product2 1 1000 5% 1000
====
Untaxed 2000
Tax 150
====
Total 2150
Make a 50% (1075) down payment :
[BEFORE]
Product Qty Unit price Tax Subtotal
Product1 1 1000 10% 1000
Product2 1 1000 5% 1000
Down pay 1 1075 0
====
Untaxed 2000
Tax 150
====
Total 2150
[AFTER]
Product Qty Unit price Tax Subtotal
Product1 1 1000 10% 1000
Product2 1 1000 5% 1000
Down pay 1 500 10% 0
Down pay 1 500 5% 0
====
Untaxed 2000
Tax 150
====
Total 2150
Task: 2678531
Enterprise PR: https://github.com/odoo/enterprise/pull/36331The Fleet app now shows a properly designed form when viewing vehicle cost report details instead of a generic automatically generated layout. The list view also hides the option to create new report records from this reporting screen, reducing confusion for users.
Original PR description
before this commit, form view for the model fleet.vehicle.cost.report model was not defined, thus on opening the form view of this model shows odoo generated form view. after this commit, as the form view is added for the model, on opening the form, clean form will be displayed. also in the file, there is a record with wrongly aligned corrected that and set create="0" attribute in tree to hide the new/create button. Before:  After:  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
List views now calculate totals only for columns that are actually shown, instead of also processing hidden optional columns. This reduces unnecessary work and can make list screens more efficient without changing what users see.
Original PR description
The purpose of this commit is to no longer calculate the aggregated value of columns that are not displayed in the list view. Before this commit, we always calculated the aggregate value of optional columns that are hidden. 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
Project users can now delete or archive a recurring task while choosing whether the recurrence should continue or stop. Recurrences now rely on hidden task templates, so future tasks can still be generated without forcing users to keep an old visible task in place.
Original PR description
The goal of this task is to ease the deletion/archiving of recurrent tasks by giving the user the option to either continue or stop the recurrence. The two main use-cases are: \- You have a recurring…
The goal of this task is to ease the deletion/archiving of recurrent tasks by giving the user the option to either continue or stop the recurrence. The two main use-cases are: \- You have a recurring task for a weekly meeting. Next week, the user will be on time off. You are thus deleting the task. However, you would still like tasks generated for the following meetings and to keep track of the previous meetings. \- You have a recurring task for a weekly meeting with an employee that has just been fired. You are thus deleting the task and you won't need this recurrence anymore. (You may or may not want to keep track of the previous meetings.) The main issue we are currently facing is that we need a task that acts as a template for the recurrence to continue. This means that a user cannot delete all of his tasks without breaking their recurrence. Consequently, we will be using a "task template" for each recurrence, which will only serve technical purposes and be invisible to the users. When the recurrence is stopped, the task template is deleted. This simplifies the technical and functional implementation as the user won't be able to modify the template themselves. \- Added task templates to recurrences in the data. \- Deleted "all tasks" option form recurence update and changed "this and following tasks" to "this and future tasks". Most of the time, the user is going to update the most recent task, and it doesn't make any functional sense to update past ones. \- Same options for delete and archive. \- No recurrent subtasks allowed anymore. \- `date_deadline` is copied. We compute it by adding the delta between the create date and the `date_deadline` of the template to the next recurrence date. \- Added filter to several view not to display task templates. task-2937565 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Gantt planning view has been rebuilt to make large schedules load and scroll much faster. Users will also notice that details now open by clicking an item instead of hovering, making interactions more deliberate and predictable.
Original PR description
Conversion of the gantt view to OWL. Along the way the UI has been changed: - hover a pill does not make a popover appear anymore. It is now necessary to click on the pill to make it appear. A button…
Conversion of the gantt view to OWL. Along the way the UI has been changed: - hover a pill does not make a popover appear anymore. It is now necessary to click on the pill to make it appear. A button "Edit" in the popover still allows to edit the pill (if edition is available). The unused arch attribute collapse_first_level has been removed. Technically: - complete revamp of the DOM and class names to trim down dead code and needless nesting; - the gantt view now makes use of the CSS display "grid" property in several places (most importantly in the main row container), further simplifying the DOM and allowing for list virtualization; - this virtualization process ensures that only visible rows (and their related elements) are effectively rendered in the DOM. This is done using the newly added "useVirtual" hook. The rendering process of the new gantt view should thus be a lot quicker as a result. Enterprise counterpart PR: odoo/enterprise#36202 Task Id: 3105022 Co-authored-by: Bruno Boi <boi@odoo.com> Co-authored-by: Julien Mougenot <jum@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Onboarding and offboarding plan activities can now be assigned to regular employees, not just HR officers. A dedicated activity area lets employees and their managers manage these tasks while keeping employee records appropriately restricted.
Original PR description
When starting an onboarding/offboarding plan on an employee, activities were only created for the users that were part of the HR Officer group. Regular users can't access the `hr.employee` model and it's not possible to have activities on `hr.employee.public`. A new model has been created to manage those activities and is only accessible to the user and their manager. task-3151758
Companies in Mexico can now record import taxes charged by customs brokers and have them treated as creditable taxes. This helps ensure those payments are included correctly in DIOT tax reporting.
Original PR description
User Case: The Company A buy some products from a Foreign Customer, and when they are received in Mexico, the Broker Partner send an invoice to Company A by the importation taxes. In this case, when Company A, make the payment to the broker, the taxes could be accredited for the company and in your case must be reported in the DIOT report. More info about the configuration in the README file. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
YouTube previews now link correctly, and push notification previews show real content instead of placeholder information. The update also hides an unavailable sync action when no account is connected and corrects a small wording issue.
Original PR description
This commit changes the youtube link from the preview to a functioning one and updates the push notification preview with actual data. It also hide the synchronize button when there is no account linked. It finally fix a typo. Task-3068775
Document workflow actions can now specify which accounting journal to use when creating accounting entries. This helps businesses that use separate journals for expenses, purchases, bank transactions, or other document types route documents more accurately while keeping the previous default behavior if no change is made.
Original PR description
Some customers use more than one journal to input accounting, ie: one journal for expense or visa and one for "standard" purchase or 2 banks journals. We want to let them decide which journal will be used in their workflow. This commit adds the selection of journal in the action form. By default, the first one of the list is selected to keep the actual behavior, but allow the user to select another one. taskid: 3134526 [community](https://github.com/odoo/odoo/pull/111328) [enterprise](https://github.com/odoo/enterprise/pull/36308)
The Gantt view used across planning-style screens has been rebuilt to load and scroll faster, especially with many rows. Users will notice a small interaction change: clicking an item now opens its details instead of hovering over it.
Original PR description
Conversion of the gantt view to OWL. Along the way the UI has been changed: - hover a pill does not make a popover appear anymore. It is now necessary to click on the pill to make it appear. A button…
Recurring project and field service tasks now keep their planned start and end dates when copied or regenerated. This helps teams preserve scheduling information and avoid manual date re-entry.
Original PR description
Copy `planned_date_begin`and `planned_date_end`. More details about how it is done in community commit. task-2937565 Community : https://github.com/odoo/odoo/pull/98088
Odoo's document extraction features now use clear text statuses such as success, processing, or error_no_credit instead of numeric codes. This makes status handling more readable and consistent across invoice, expense, purchase, recruitment, and IAP extraction workflows, with limited direct impact for end users.
Original PR description
The extract server now returns the status of the request as a string (e.g. `success`, `processing`, `error_no_credit`, etc) instead of an integer status code. Upgrade PR: odoo/upgrade/pull/4180
This update adjusts how TaxCloud tax settings are applied in sales order screens, keeping them aligned with the parent sales order configuration. It helps ensure the right tax behavior is shown and used consistently when managing orders.
Original PR description
Update tax_id attr attribute override with parent attr. Task: 2678531 Community PR: https://github.com/odoo/odoo/pull/105177
Partner address lists now place follow-up addresses before general “other” addresses. This makes credit control and payment follow-up details easier to spot while keeping miscellaneous addresses at the end of the list.
Original PR description
Currently, follow-up address show last after the other address, this is an inconvenience because other address always show last. This commit reorders the address type. Other addresses are now displayed last, and follow-up addresses are displayed before other addresses, changing the tooltip to adapt the follow-up address. task-3087691
Recurring plan names are now handled in a way that supports proper translation for each user's language. This helps customers and staff see clearer, localized subscription timing labels on sales and website subscription pages.
Original PR description
Before this commit, the recurrence name was computed and stored but the translations could not work because they were depending on other fields values and the lang of the consulting user. taskid 3184794
The Brazilian reporting module now uses English as its main language, with the original Portuguese wording kept in the translation file. This makes the module easier to maintain while preserving Portuguese translations for users who need them.
Original PR description
This commit translates the module into English, replacing the Portuguese terms with English, and moves the original terms into pt.po translation file. This makes it easier to maintain the module. task-3116558
Resolved issues and error corrections
The accounting wizard now keeps the journal chosen by the user when creating accrued revenue entries. This prevents entries from unexpectedly reverting to the default miscellaneous journal, reducing manual corrections and accounting confusion.
Original PR description
When creating an accrued revenue entry, the same journal will always be selected by the model (by default: Miscellaneous Operations) even after selecting and confirming another journal in the view form. This is due to the computed field that always take the same journal. Converting the computed function to a default function resolve the issue. related PR: #109058 opw-3076067
Features or functions removed from Odoo
This change removes an old stock reporting component that is no longer used after the replenishment report was modernized. It reduces obsolete code in the stock module without changing expected business workflows.
Original PR description
The legacy implementation of the report client action has been moved to stock [1], as it was only used by an extension in stock, for the "replenish_report" action. A recent commit [2] converted that action into owl, making the legacy implementation of the report action unused. This commit thus removes it. [1] https://github.com/odoo/odoo/commit/feef532b417828905ce09675043b55b2b3736e43 [2] https://github.com/odoo/odoo/commit/0a43740481c098f076c3aefa550092d6b960be88 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 change removes outdated internal checks for context values that are no longer used anywhere in the system. It simplifies the base contact/customer code without changing expected business behavior.
Original PR description
Those keys have no match in the codebase. 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
Miscellaneous changes
Since 16.0 the `Tax ID` field label is dependant on the company country. For the US we chose `EIN` as the label. Since there are multiple sources of tax ids in the US, it is better to leave it as the default: `Tax ID`. task-3162675 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#111967
Original PR description
Since 16.0 the `Tax ID` field label is dependant on the company country. For the US we chose `EIN` as the label. Since there are multiple sources of tax ids in the US, it is better to leave it as the default: `Tax ID`. task-3162675 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#111967
Conversion of the gantt view to OWL. Along the way the UI has been changed: - hover a pill does not make a popover appear anymore. It is now necessary to click on the pill to make it appear. A button "Edit" in the popover still allows to edit the pill (if edition is available). The unused arch attribute collapse_first_level has been removed. Technically: - complete revamp of the DOM and class names to trim down dead code and needless nesting; - the gantt view now makes use of the CSS display "grid" property in several places (most importantly in the main row container), further simplifying the DOM and allowing for list virtualization; - this virtualization process ensures that only visible rows (and their related elements) are effectively rendered in the DOM. This is done using the newly added "useVirtual" hook. The rendering process of the new gantt view should thus be a lot quicker as a result. Note that the legacy gantt view is still available since its extensions are not yet converted (through the js_class legacy_gantt). Its class name is now o_legacy_gantt_view. Community counterpart PR: odoo/odoo#110819 Task Id: 3105022 Co-authored-by: Bruno Boi <boi@odoo.com> Co-authored-by: Julien Mougenot <jum@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Accounting entries created from attachments now use the intended journal when no automatic processing method is found. This helps ensure documents imported from attachments are recorded in the correct accounting journal, reducing manual corrections.
Original PR description
This commit fix an issue on moves creation from attachments. Before, when creating moves from attachment, if no method is found the 'self' journal is not taken into account. After, the journal found or contained in 'self' is used while creating the move taskid: 3134526 [community](https://github.com/odoo/odoo/pull/111328) [enterprise](https://github.com/odoo/enterprise/pull/36308)
This fixes a missing payroll printing component so payroll documents can be sent to a printer as expected. It restores previously unavailable functionality, reducing disruption for payroll teams that rely on printed reports or payslips.
Original PR description
Oupsie.
This change restructures how record display data is prepared for kanban and activity views. It limits access to internal record functionality, reducing maintenance risk while keeping the user-facing behavior the same.
Original PR description
To evaluate the KanbanRecord and the ActivityRecord, a formattedRecord is passed.
What is a formattedRecord:
Before this commit:
The base record + all its fields with the keys value and raw_value. formattedRecord = {
...Record(),
field1: {
value: ...,
raw_value: ...,
}
}
After this commit:
All its fields with the value and raw_value keys.
formattedRecord = {
field1: {
value: ...,
raw_value: ...,
}
}
This modification avoids giving access to the functionality of the Record class directly in the arch. The arch should never have access to the internals of the Record.
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-prThis update simplifies how colored tag information is loaded in Odoo’s web interface, especially for project and email-related tag fields. It removes an unused project setting and makes the underlying behavior easier to maintain without changing day-to-day workflows for users.
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
The update adjusts Enterprise apps to stay compatible with a related platform change in how record fields are loaded. This helps keep Helpdesk and Studio screens working consistently after the underlying system update, with no expected change to day-to-day workflows.
Original PR description
This commit is the counterpart of odoo/odoo#112518
Since the next imminent release of Debian Bookworm will come with [Python 3.11](https://packages.debian.org/bookworm/python3) as some other distros (like [Fedora 37](https://docs.fedoraproject.org/en-US/fedora/f37/release-notes/developers/Development_Python/)) this PR adapts Odoo 16.0 to work with Python 3.11. * [New opcodes](https://docs.python.org/3/whatsnew/3.11.html#new-opcodes) added in 3.11 * Stop using [getdefaultlocale](https://docs.python.org/3.11/library/locale.html#locale.getdefa
Original PR description
Since the next imminent release of Debian Bookworm will come with [Python 3.11](https://packages.debian.org/bookworm/python3) as some other distros (like [Fedora 37](https://docs.fedoraproject.org/en-US/fedora/f37/release-notes/developers/Development_Python/)) this PR adapts Odoo 16.0 to work with Python 3.11. * [New opcodes](https://docs.python.org/3/whatsnew/3.11.html#new-opcodes) added in 3.11 * Stop using [getdefaultlocale](https://docs.python.org/3.11/library/locale.html#locale.getdefaultlocale) * Fix "odoo.tools.config" for unittest mock ( pkgutil is not able to find it since 3.11) * random.sample population have to be a [sequence since 3.11](https://docs.python.org/3.11/library/random.html#random.sample) Note: This is an excerpt from this [testing branch](https://runbot.odoo.com/runbot/bundle/16-0-bookworm-moc-140562) that was made to test against the Jammy and Bookworm distributions. Forward-Port-Of: odoo/odoo#112317
Before this PR the text "Preview as a PDF" was too close of the is_print field. By adding a margin this issues is solved. Task-id: 3178176 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112284
Original PR description
Before this PR the text "Preview as a PDF" was too close of the is_print field. By adding a margin this issues is solved. Task-id: 3178176 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112284
Before this commit, the "addLabel" and "editable" props type was not really tested. 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#112533
Original PR description
Before this commit, the "addLabel" and "editable" props type was not really tested. 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#112533
This PR addresses 3 issues: ~1. Selection restore issues after pasting: After pasting content like "text www.someurl.com more_text" on a non-collapsed selection followed by UNDO, the selection was not restored to the original one. This PR fixes it.~ ~2. Pasting content in a empty link or in a selection spanning the whole content of a link: In order to prevent inadvertently pasting content **inside** a link rather than replacing it, this PR removes the link when pasting content inside an
Original PR description
This PR addresses 3 issues: ~1. Selection restore issues after pasting: After pasting content like "text www.someurl.com more_text" on a non-collapsed selection followed by UNDO, the selection was…
This PR addresses 3 issues:
~1. Selection restore issues after pasting:
After pasting content like "text www.someurl.com more_text" on a non-collapsed selection followed by UNDO, the selection was not restored to the original one. This PR fixes it.~
~2. Pasting content in a empty link or in a selection spanning the whole content of a link:
In order to prevent inadvertently pasting content **inside** a link rather than replacing it, this PR removes the link when pasting content inside an empty link or when all of its text content is selected, letting the pasted content replace it.~
**(these issues are now addressed by PR https://github.com/odoo/odoo/pull/108755)**
3. Bad use of Node.textContent:
Misuse of this method was causing the following bugs:
- parsing the wrong URL when updating a link's href based on its label
- changing an elements content on cleanForSave if a ZWS inline element contained children element other than text nodes.
This PR replaces the use of textContent for safer alternatives.
Task-3081254.
Forward-Port-Of: odoo/odoo#112501
Forward-Port-Of: odoo/odoo#108521before this commit, on clicking the sales calendar view, it allows the quick adding from the calendar view and entered value is going to the name field of sale.order model. after this commit, quick adding will be disable and on clicking form will be opened with selected date. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112566 Forward-Port-Of: odoo/odoo#112523
Original PR description
before this commit, on clicking the sales calendar view, it allows the quick adding from the calendar view and entered value is going to the name field of sale.order model. after this commit, quick adding will be disable and on clicking form will be opened with selected date. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112566 Forward-Port-Of: odoo/odoo#112523
### How to reproduce 1. Create a user with lower privileges then admin 2. Add a new company and a new contact of that company in the contact app at the sametime 3. Manually save This will result in a write access denied opw-3127591 Forward-Port-Of: odoo/odoo#110525
Original PR description
### How to reproduce 1. Create a user with lower privileges then admin 2. Add a new company and a new contact of that company in the contact app at the sametime 3. Manually save This will result in a write access denied opw-3127591 Forward-Port-Of: odoo/odoo#110525
Description of the issue/feature this PR addresses: - Display description of tax in purchase report if we add the value in description field. If not, it will display tax name. Current behavior before PR: - Even we add the value in description field, the purchase report only display tax name. Desired behavior after PR is merged: - After this PR is merged, purchase report will display description of tax if add the value in description field. @qrtl --- I confirm I have signed the
Original PR description
Description of the issue/feature this PR addresses: - Display description of tax in purchase report if we add the value in description field. If not, it will display tax name. Current behavior before PR: - Even we add the value in description field, the purchase report only display tax name. Desired behavior after PR is merged: - After this PR is merged, purchase report will display description of tax if add the value in description field. @qrtl --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#109731
Before this PR, changing the number of columns of a text snippet made subsequent changes to the text impossible, due to a Node.ouid mismatch, leading to a rollback of any changes made. This PR fixes it, and also back-ports a commit that fixes the selection restore after changing the number of columns. task-3165895 opw-3137951 Forward-Port-Of: odoo/odoo#112445 Forward-Port-Of: odoo/odoo#111739
Original PR description
Before this PR, changing the number of columns of a text snippet made subsequent changes to the text impossible, due to a Node.ouid mismatch, leading to a rollback of any changes made. This PR fixes it, and also back-ports a commit that fixes the selection restore after changing the number of columns. task-3165895 opw-3137951 Forward-Port-Of: odoo/odoo#112445 Forward-Port-Of: odoo/odoo#111739
This is a backport cherry-pick of: Before this commit, the web editor loaded the configuration for ice servers each time it was created. It is useless to do it more than once, so this commit simply keep the initial value around. Part-of: odoo/odoo#111571 Forward-Port-Of: odoo/odoo#112614
Original PR description
This is a backport cherry-pick of: Before this commit, the web editor loaded the configuration for ice servers each time it was created. It is useless to do it more than once, so this commit simply keep the initial value around. Part-of: odoo/odoo#111571 Forward-Port-Of: odoo/odoo#112614
After a model in sample mode has fetched sample data, its orm is reset to be the "true" orm (standard orm service using the real server (prod) or the mock server (test)). Thus any change in the view parameters that imply to fetch data will lead to fetch "true" data (possibly none) and thus present "true" data in the view. The problem is that the graph and pivot views did keep the class .o_view_sample_data in that case. Here, we make sure that that class is removed at an appropriate time. Forwar
Original PR description
After a model in sample mode has fetched sample data, its orm is reset to be the "true" orm (standard orm service using the real server (prod) or the mock server (test)). Thus any change in the view parameters that imply to fetch data will lead to fetch "true" data (possibly none) and thus present "true" data in the view. The problem is that the graph and pivot views did keep the class .o_view_sample_data in that case. Here, we make sure that that class is removed at an appropriate time. Forward-Port-Of: odoo/odoo#112515 Forward-Port-Of: odoo/odoo#112323
Triple click correction failed whenever the triple-click-selected block was followed by an empty block. The reason is that `getDeepestPosition` prevents the selection from being placed within a line break (`<br>`) and therefore returns the block itself (`<p>[]<br></p>` will be expressed as `(p, 0)`), so the heuristic to determine if triple click correction in needed in `getDeepRange` would fail as it assumed the `end` node was a leaf where it wasn't. This fixes the issue by applying the heurstic
Original PR description
Triple click correction failed whenever the triple-click-selected block was followed by an empty block. The reason is that `getDeepestPosition` prevents the selection from being placed within a line break (`<br>`) and therefore returns the block itself (`<p>[]<br></p>` will be expressed as `(p, 0)`), so the heuristic to determine if triple click correction in needed in `getDeepRange` would fail as it assumed the `end` node was a leaf where it wasn't. This fixes the issue by applying the heurstic to the first leaf of the `end` node instead, and making the correction for there as well. task-3180922 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112543 Forward-Port-Of: odoo/odoo#112487
Steps to reproduce: - Install Sales, Project, Timesheets. - Go to a task inside Project, and to the Timesheets tab. - Create or modify a timesheet line, and write a very long description. Issue: The description field of the timesheet line is not fitting to the parent instead is fitting for the content inside description making the table bigger than it should. Solution: We have a custom widget for timesheet_ids field when we have sale_timesheet and the widget is missing the `o_fi
Original PR description
Steps to reproduce: - Install Sales, Project, Timesheets. - Go to a task inside Project, and to the Timesheets tab. - Create or modify a timesheet line, and write a very long description. Issue: The description field of the timesheet line is not fitting to the parent instead is fitting for the content inside description making the table bigger than it should. Solution: We have a custom widget for timesheet_ids field when we have sale_timesheet and the widget is missing the `o_field_one2many` class. So we add the proper class to the component with `TimesheetsOne2ManyField`  opw-3145298 Forward-Port-Of: odoo/odoo#111607
Steps to reproduce: 1. Go to website shop page 2. Change the price sliders so no products are shown 3. Increase the range of the sliders Issue: Traceback ```python UncaughtPromiseError > TypeError Uncaught Promise > Cannot read properties of null (reading 'classList') TypeError: Cannot read properties of null (reading 'classList') at Class._onPriceRangeSelected (https://23198922-16-0-all.runbot173.odoo.com/web/assets/debug/1/web.assets_frontend_lazy.js:121254:70) (/website_sale/sta
Original PR description
Steps to reproduce: 1. Go to website shop page 2. Change the price sliders so no products are shown 3. Increase the range of the sliders Issue: Traceback ```python UncaughtPromiseError > TypeError…
Steps to reproduce: 1. Go to website shop page 2. Change the price sliders so no products are shown 3. Increase the range of the sliders Issue: Traceback ```python UncaughtPromiseError > TypeError Uncaught Promise > Cannot read properties of null (reading 'classList') TypeError: Cannot read properties of null (reading 'classList') at Class._onPriceRangeSelected (https://23198922-16-0-all.runbot173.odoo.com/web/assets/debug/1/web.assets_frontend_lazy.js:121254:70) (/website_sale/static/src/js/website_sale.js:1200) at HTMLInputElement.<anonymous> (https://23198922-16-0-all.runbot173.odoo.com/web/assets/debug/1/web.assets_frontend_lazy.js:72834:23) (/web/static/src/legacy/js/core/mixins.js:277) at HTMLDivElement.dispatch (https://23198922-16-0-all.runbot173.odoo.com/web/assets/debug/1/web.assets_frontend_lazy.js:26934:27) (/web/static/lib/jquery/jquery.js:5183) at elemData.handle (https://23198922-16-0-all.runbot173.odoo.com/web/assets/debug/1/web.assets_frontend_lazy.js:26742:28) (/web/static/lib/jquery/jquery.js:4991) at Multirange.dispatchNewValueEvent (https://23198922-16-0-all.runbot173.odoo.com/web/assets/debug/1/web.assets_frontend_lazy.js:122060:24) (/website/static/lib/multirange/multirange_custom.js:258) ``` Cause: When the list of products is empty, the div containing it is no longer present. So when we try to get it with querySelector() it returns null. Solution: Ensure the div is present in the DOM to modify it opw-3144545 Forward-Port-Of: odoo/odoo#111486
Steps to reproduce: - Add a pubic holiday record, i.e., From 6 Feb 2023 to 7 Feb 2023 - Add a leave with the date conflicting the public holiday, i.e. From 3 Feb 2023 to 8 Feb 2023 - Regenerate the work entries and check the work entry in form view. Current behaviour: Missing leave_id on some work entries Expected behaviour: It should linked to the corresponding leave for the work entries that is created by the leave, while public holiday work entries should keep leave_id empty.
Original PR description
Steps to reproduce: - Add a pubic holiday record, i.e., From 6 Feb 2023 to 7 Feb 2023 - Add a leave with the date conflicting the public holiday, i.e. From 3 Feb 2023 to 8 Feb 2023 - Regenerate the…
Steps to reproduce:
- Add a pubic holiday record, i.e., From 6 Feb 2023 to 7 Feb 2023
- Add a leave with the date conflicting the public holiday, i.e. From 3 Feb 2023 to 8 Feb 2023
- Regenerate the work entries and check the work entry in form view.
Current behaviour:
Missing leave_id on some work entries
Expected behaviour:
It should linked to the corresponding leave for the work entries that is created by the leave, while public holiday work entries should keep leave_id empty.
Explanation:
After calling contract._get_interval_leave_work_entry_type, the leaves should be filted out the not related leaves so contract._get_more_vals_leave_interval can get the correct vals. Otherwise public holiday will always return {'leave_id': false} in contract._get_more_vals_leave_interval which will replace the correct leave_id value.
X-original-commit: 7880185
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#112066The images of users in the livechat team were overlapping with their ratings on the front-end page of the livechat channel. Remove negative gutters to fix this. task-3135733 Forward-Port-Of: odoo/odoo#110440
Original PR description
The images of users in the livechat team were overlapping with their ratings on the front-end page of the livechat channel. Remove negative gutters to fix this. task-3135733 Forward-Port-Of: odoo/odoo#110440
Fixes the bug animation of the add to cart. task: `2943578` Forward-Port-Of: odoo/odoo#105321 Forward-Port-Of: odoo/odoo#99737
Original PR description
Fixes the bug animation of the add to cart. task: `2943578` Forward-Port-Of: odoo/odoo#105321 Forward-Port-Of: odoo/odoo#99737
Before this commit, in the partner portal, all CRM stages were displayed for an opportunity, even the non-relevant ones. Now, only the stages that apply to this opportunity are displayed Task-3133070 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#111894
Original PR description
Before this commit, in the partner portal, all CRM stages were displayed for an opportunity, even the non-relevant ones. Now, only the stages that apply to this opportunity are displayed Task-3133070 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#111894
Before this commit, if the user mousedown a snippet, it would start a timer of 1500 ms and a the end of the timer, it would show a tooltip to help the user indicating him that he should drag & drop and not click. The drag & drop code would (sort of) stop that timer if a drag was detected, to not show the tooltip if the user is correctly drag & dropping. But it feels weird, as when you fail to realize you should drag & drop but click instead, you only have the hint 1.5s later. Some people inte
Original PR description
Before this commit, if the user mousedown a snippet, it would start a timer of 1500 ms and a the end of the timer, it would show a tooltip to help the user indicating him that he should drag & drop and not click. The drag & drop code would (sort of) stop that timer if a drag was detected, to not show the tooltip if the user is correctly drag & dropping. But it feels weird, as when you fail to realize you should drag & drop but click instead, you only have the hint 1.5s later. Some people internally when trying to show this tooltip would actually use triple click on snippet, because it's probably not easy to figure exactly what the trigger is. The change is then made to show the tooltip directly on mouseup. If the drag & drop code did not indicate that a drag happened, we can safely assume it was a simple click and not a drag. Forward-Port-Of: odoo/odoo#112408
Steps to reproduce: Add a record in the "Contacts & Addresses" tab of a contact. Issue: There are missing spaces in the information display. Cause: The kanban view compilation removes the spaces (and line breaks) between the different tags. Solution: Add spaces on the template. opw-3131806 Forward-Port-Of: odoo/odoo#111572
Original PR description
Steps to reproduce: Add a record in the "Contacts & Addresses" tab of a contact. Issue: There are missing spaces in the information display. Cause: The kanban view compilation removes the spaces (and line breaks) between the different tags. Solution: Add spaces on the template. opw-3131806 Forward-Port-Of: odoo/odoo#111572
When selecting across table cells and changing block style, we applied the block style to the traversed blocks which included the ones we want to change but also their parent cell (`<td>`). This resulted in invalid nested blocks like `<td><p><h1>...</h1></p></td>`. task-3177014 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112446 Forward-Port-Of: odoo/odoo#112380
Original PR description
When selecting across table cells and changing block style, we applied the block style to the traversed blocks which included the ones we want to change but also their parent cell (`<td>`). This resulted in invalid nested blocks like `<td><p><h1>...</h1></p></td>`. task-3177014 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112446 Forward-Port-Of: odoo/odoo#112380
Added Swiss states to base --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#111994
Original PR description
Added Swiss states to base --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#111994
Steps to reproduce: - Install stock, purchase - Create a product with a long name - Create a purchase order with that product - Go to portal and access the purchase order Current behavior: - Product title overflows in `product.template` form - Product title overflows when accessing the PO from the portal Behavior after the PR: - To fix the problem on the form we add `overflow-wrap` to titles - To fix the problem in the Portal we add `table-responsive` to the table opw-3133407
Original PR description
Steps to reproduce: - Install stock, purchase - Create a product with a long name - Create a purchase order with that product - Go to portal and access the purchase order Current behavior: - Product title overflows in `product.template` form - Product title overflows when accessing the PO from the portal Behavior after the PR: - To fix the problem on the form we add `overflow-wrap` to titles - To fix the problem in the Portal we add `table-responsive` to the table opw-3133407 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112625 Forward-Port-Of: odoo/odoo#111053
before this commit, opening a user profile in website, doesn't show the tabs like About, Questions, Answers, Activity, Votes. after this commit, it will display all the tabs in user profile Before:  After:  After:  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112155
Before this commit if you would call phone_parse() but not pass along a country code it would crash. This is reproducable by calling the phone_parse function and not setting a country on the contact. In this case you would get the following traceback: AttributeError: 'bool' object has no attribute 'upper'. This happens because the phonenumbers library tries to upper() the region but if Odoo doesn't have a country set it passes along False. By doing a fallback to 'None' the phonenumbers l
Original PR description
Before this commit if you would call phone_parse() but not pass along a country code it would crash. This is reproducable by calling the phone_parse function and not setting a country on the contact. In this case you would get the following traceback: AttributeError: 'bool' object has no attribute 'upper'. This happens because the phonenumbers library tries to upper() the region but if Odoo doesn't have a country set it passes along False. By doing a fallback to 'None' the phonenumbers library will natively handle this and the user in the UI does not get a traceback. Task-2852953 Co-Authored-By: Thibault Delavallee <tde@odoo.com> Forward-Port-Of: odoo/odoo#112619
Businesses may need to distribute free products via Odoo eCommerce. However, it wasn't possible because Delivery section was inside conditional block `t-if='website_sale_order.amount_total`` [1]. Fix it by putting the Deliveries just before that block. [1]: https://github.com/odoo/odoo/blob/a93ed75cb80f16f48dda15058d333b33ccb430d3/addons/website_sale/views/templates.xml#L1564-L1565 opw-3115137 Description of the issue/feature this PR addresses: Current behavior before PR: Desired
Original PR description
Businesses may need to distribute free products via Odoo eCommerce. However, it wasn't possible because Delivery section was inside conditional block `t-if='website_sale_order.amount_total`` [1]. Fix it by putting the Deliveries just before that block. [1]: https://github.com/odoo/odoo/blob/a93ed75cb80f16f48dda15058d333b33ccb430d3/addons/website_sale/views/templates.xml#L1564-L1565 opw-3115137 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#112300
We must force the access rights to the installation folder to "FullAccess" because in some environments these rights have been restricted by customers. And so the iot windows does not work properly 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#112545
Original PR description
We must force the access rights to the installation folder to "FullAccess" because in some environments these rights have been restricted by customers. And so the iot windows does not work properly 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#112545
There is a check that prevent to set "internal" (meaning from the current company) partners on invoices/bills created via a journal alias. When the "from" email is the email of the company, the check previously failed to recognize it as internal. This could happen in this scenario : If a customer/vendor sends a invoice/bill to the company email. If then, someone forward this email to the journal alias. The "from" field is now the company email address. Task: 3145287 Forward-Port-Of: odoo/od
Original PR description
There is a check that prevent to set "internal" (meaning from the current company) partners on invoices/bills created via a journal alias. When the "from" email is the email of the company, the check previously failed to recognize it as internal. This could happen in this scenario : If a customer/vendor sends a invoice/bill to the company email. If then, someone forward this email to the journal alias. The "from" field is now the company email address. Task: 3145287 Forward-Port-Of: odoo/odoo#112632 Forward-Port-Of: odoo/odoo#112108
1. Install [Accounting], [Spain - Accounting] on Apps 2. On [Settings], - [Users & Companies]>[Companies]: add and set to a company in Spain 3. [Accounting]>[Configuration]>[Fiscal Positions] - Select [REAGYP - Agricultura] - Missing 0 % IVA soportado (bienes corrientes) (Compras) Request: reflect the policy to protect the vulnerable groups - https://www.boe.es/buscar/doc.php?id=BOE-A-2022-22685 Impacted versions: 14 - master opw-3143902 --- I confirm I have signed the CLA and
Original PR description
1. Install [Accounting], [Spain - Accounting] on Apps 2. On [Settings], - [Users & Companies]>[Companies]: add and set to a company in Spain 3. [Accounting]>[Configuration]>[Fiscal Positions] - Select [REAGYP - Agricultura] - Missing 0 % IVA soportado (bienes corrientes) (Compras) Request: reflect the policy to protect the vulnerable groups - https://www.boe.es/buscar/doc.php?id=BOE-A-2022-22685 Impacted versions: 14 - master opw-3143902 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112023
The error: > You need to add a line before posting. was never raised anymore because a payment term line was always created with a value of 0 if there were no invoice lines. This commit checks that there are invoice lines before creating payment term lines. Forward-Port-Of: odoo/odoo#112688
Original PR description
The error: > You need to add a line before posting. was never raised anymore because a payment term line was always created with a value of 0 if there were no invoice lines. This commit checks that there are invoice lines before creating payment term lines. Forward-Port-Of: odoo/odoo#112688
The lines that are not foldable don't always contain the 'unfolded' key, and could be wrongly hidden when printing. Example: generic tax report, with just the demo data; print it in a month with operations => only the tax type lines are shown Forward-Port-Of: odoo/enterprise#37052
Original PR description
The lines that are not foldable don't always contain the 'unfolded' key, and could be wrongly hidden when printing. Example: generic tax report, with just the demo data; print it in a month with operations => only the tax type lines are shown Forward-Port-Of: odoo/enterprise#37052
## Current behaviour A visitor on the ecommerce cannot add a rental product to the cart, if said product is only checked with "can be rented", but not "can be sold". ## Expected behaviour After PO's confirmation, visitor should be able to add to cart rental products that are only set as "can be rented". ## Steps to reproduce - Install Ecommerce, Rental, Sales - Choose a rental product, set it as "can be rented" and unset "can be sold", publish it to the website. - Logout and try to ad
Original PR description
## Current behaviour A visitor on the ecommerce cannot add a rental product to the cart, if said product is only checked with "can be rented", but not "can be sold". ## Expected behaviour After PO's…
## Current behaviour A visitor on the ecommerce cannot add a rental product to the cart, if said product is only checked with "can be rented", but not "can be sold". ## Expected behaviour After PO's confirmation, visitor should be able to add to cart rental products that are only set as "can be rented". ## Steps to reproduce - Install Ecommerce, Rental, Sales - Choose a rental product, set it as "can be rented" and unset "can be sold", publish it to the website. - Logout and try to add the product on the eCommerce, it will fail to add the product. (With a warning that the product doesn't exist, this is why it cannot be added to cart) ## Reason for the problem The method that checks if a product can be added to the cart (`_is_add_to_cart_allowed`) is requiring the "can be sold" checks to be `true` for it to be added. ## Fix Override `_is_add_to_cart_allowed` and add a disjunction with the "can be rented" flag. ## Affected versions - 16.0 - saas-16.1 - master --- opw-3160771 Forward-Port-Of: odoo/enterprise#36851
In Mexico, they export their Trial Balance to the SAT in an XML format, and this monthly. At the end of the year, December will be updated as normal. But in their closing process, accountants need to post their closing and correcting entries to close the period. At this point, they need to make a final extract of the Trial Balance, with only the "closing entries" associated. This is what they call their "Month 13", so a fake period at the end of the year used to export their closing entries.
Original PR description
In Mexico, they export their Trial Balance to the SAT in an XML format, and this monthly. At the end of the year, December will be updated as normal. But in their closing process, accountants need to…
In Mexico, they export their Trial Balance to the SAT in an XML format, and this monthly. At the end of the year, December will be updated as normal. But in their closing process, accountants need to post their closing and correcting entries to close the period. At this point, they need to make a final extract of the Trial Balance, with only the "closing entries" associated. This is what they call their "Month 13", so a fake period at the end of the year used to export their closing entries. We need a way for accountants to "tag" some Journal Entries as "closing entries" and allow them to get a special version of their Trial Balance to export it to the authorities. In Odoo 15, this was done by the 'l10n_mx_reports_closing' module. But with the new reports engine in Odoo 16, we did not port this functionality straight away. This commit reintroduces the l10n_mx_reports_closing module, rewritten on top of the new reports engine. #### Implementation Notes We create a report filter 'Month 13' which changes the report generation. Intuitively, when the filter is set, we restrict ourselves to the Month 13 entries within the current period. When the filter is not set, we pretend that the Month 13 entries fall between Dec 31 (of the year of their accounting date) and Jan 1. We build the report with that assumption. (For example, if the current period does not span a change of year, we don't include them, and if it does, we include the Month 13 entries that would hypothetically fall between Dec 31 and Jan 1.) Comparisons between periods are supported when the 'Month 13' filter is deactivated. When performing a comparison, Month 13 entries are considered as being part of December, except for the last comparison period if it ends on December 31. Task: 3089361 Upgrade PR: https://github.com/odoo/upgrade/pull/4249 Forward-Port-Of: odoo/enterprise#36986 Forward-Port-Of: odoo/enterprise#34705
### Steps to reproduce * create a SEPA mandate and print it You should see that the creditor's address is not visible. It's actually there, but outside the page. (on 16 you can see the first few letters) opw-3105091 Forward-Port-Of: odoo/enterprise#36908 Forward-Port-Of: odoo/enterprise#36752
Original PR description
### Steps to reproduce * create a SEPA mandate and print it You should see that the creditor's address is not visible. It's actually there, but outside the page. (on 16 you can see the first few letters) opw-3105091 Forward-Port-Of: odoo/enterprise#36908 Forward-Port-Of: odoo/enterprise#36752