Daily updates from Odoo
Navigate
Branch
Friday, May 17, 2024
65 changes
1 change
Miscellaneous changes
Before this commit, an error occurred when opening a product with an attribute set to 'Instantly Variants Creation Mode' and an option attribute. The issue was due to the 'Instantly' attributes not being loaded into the PoS, resulting in a missing attribute_id. opw-3850050 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165196
Original PR description
Before this commit, an error occurred when opening a product with an attribute set to 'Instantly Variants Creation Mode' and an option attribute. The issue was due to the 'Instantly' attributes not being loaded into the PoS, resulting in a missing attribute_id. opw-3850050 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165196
31 changes
New functionality added to Odoo
Users can now manually add quality checks to specific inventory transfers or manufacturing orders when needed. This gives teams more flexibility to handle exceptional inspections without changing the standard quality process.
Original PR description
*: quality_control, quality_mrp, quality_mrp_workorder This commit adds the ability to create on-demand quality points that could be used to arbitrarily add quality checks to any transfer. Users are able to do so via a specific action attached to the `stock.picking` form. On clicking on this action, a wizard appears where users should specify the product, quality point and lot/serial number (if applicable). On confirmation, the proper quality check(s) will be added to the current transfer only. Task-3870556
Enhancements to existing features
Adds a dedicated Carta Porte PDF report for Mexican stock deliveries, showing the required transport information while removing cargo product details from regular delivery guides for confidentiality. Demo and reference data were also cleaned up so users can create invoices, foreign trade documents, and delivery guides more reliably.
Original PR description
This PR contains the commits from the following task: - [3755520 - Create Carta Porte PDF report](https://www.odoo.com/web#id=3755520&cids=1&menu_id=4720&action=333&active_id=967&model=project.task&view_type=form) - [3851842 - Fix demo data (and refactor)](https://www.odoo.com/web#id=3851842&cids=1&menu_id=4720&action=333&active_id=967&model=project.task&view_type=form) related Community PR: https://github.com/odoo/odoo/pull/160704
Businesses can now configure deferred expenses and deferred revenue independently, including separate journals and calculation methods. This gives accounting teams more control and better alignment with different recognition policies for costs versus income.
Original PR description
Allow having different Deferred Journal and Computation Method for Deferred Expense/Revenue task-id 3931137
This update adds clearer internal labels to the Mexican electronic invoicing report fields for product code and unit code. It helps teams and implementers customize invoice layouts more reliably without changing the visible invoice content.
Original PR description
Inside the `l10n_mx_edi.report_invoice_document` report, it is difficult to locate the `<th/>` and `<td/>` tags associated with "Unit code" and "Product code" headers and values using xpaths. This fix aims to make this easier by adding name attributes to both
Bank statement CSV files can now be imported when their transactions are ordered from newest to oldest. This helps businesses use files from banks that export statements in descending date order without manually reordering them first.
Original PR description
This commit added the option to import bank lines ordered by dates in descending order. Before that, only ascending order of lines by dates was accepted. Some banks provide csv files that are sorted by date descendingly. task-3839831
The deferred entries list has been simplified by removing unnecessary columns, making it easier for accounting users to focus on the information they need. This improves day-to-day navigation and reduces visual clutter without changing accounting behavior.
Original PR description
The current tree view is polluted with useless columns. This commit cleans it up. task-id 3928442
Signing field buttons now display icons, making them easier to distinguish and read when preparing documents. Standard fields use their configured icons, while custom backend-created fields receive icons based on their field type.
Original PR description
This commit adds icons to field buttons to make them more unique and easier to read. Default field buttons will use the custom icon defined in their record. Other custom field buttons created in the backend will use an icon according to their type, using the `icon_type` array. task-3919223 | Before | After | |--------|--------| |  |  |
Inventory reporting labels and menus were adjusted to make them clearer and better organized. The recurring product filter now uses simpler wording, and the Performance report menu is placed under technical features so business users see a cleaner reporting menu.
Original PR description
In this commit: ================== - Rephrased 'Can be Recurring' to 'Recurring' in product views filters. - Under Reporting/Performance : - Moved the 'Performance' menu to technical features for better categorization. task-3721429
Customers now choose their delivery method on the checkout page while selecting their address, instead of alongside payment. This reduces checkout clutter and makes the flow more reliable when multiple delivery and payment options are available.
Original PR description
A single step for selecting a delivery method and a payment provider poses two problems: 1) The interface looks cluttered when multiple pms and delivery methods are configured. 2) Complexity in a payment and a delivery widget dependencies. As they are rendered on the same page it requires to dynamically update parts of its content in js causing bugs and inconsistencies. For those reasons we decided to move the delivery selection step to the /checkout step where an address is selected. task-3133415 See also: - https://github.com/odoo/odoo/pull/153063 - https://github.com/odoo/upgrade/pull/6035
Project planning views now make scheduling conflicts easier to understand by highlighting only the relevant conflicting tasks while keeping other tasks muted or hidden as appropriate. Time off warnings are clearer, Gantt views include totals, and unassigned tasks appear correctly when filtering by assignee.
Original PR description
… point _*=industry_fsm, hr_holidays_gantt, planning_holidays Before this commit: -when clicked on conflict warning it was showing all task in highlighted as regular task -leave warning was showing same date twice for single day leave -leave warning was showing time next to the date for single and multiple day leave -in gantt view not showing total row at the end -when filter for assignee unassigned task was not showing After the commit: -after click on conflict warning it will show conflicted task in highlighted and regular task in muted -single day leave warning will show that particular date once -now leave warning will show only that particular date for single and multiple day leave and show time next to the date for half and custom day leave only -in gantt it will show a total row at the end -when filter for assignee unassigned task will show task- 3514831
The DIN 5008 document layouts for follow-up reports, field service worksheets, and rental sales reports have been reworked so their layout logic is handled directly in templates rather than hidden calculations. This makes the reports easier to adapt for customer-specific formatting needs and refreshes the related translations.
Original PR description
A lot of information of the din5008 layout were computed with some compute function which made the customization a bit hard to do. This commit will modify the l10n_din5008 module to pass all the logic in xml. Also updating the translation of the module. task-3888498
The Barcode app can now split a single scan into several barcode values using configurable separators such as commas, semicolons, pipes, or line breaks. This helps warehouse teams process batches of serial or lot numbers faster, while the interface temporarily pauses input until all scanned values are handled.
Original PR description
This commit adds a new system parameter: `stock_barcode.barcode_separator_regex` Like its name is saying, it's a regex, and its default value is `[,;|]`. In the barcode App, when a barcode is scanned and it can be splitted regarding the regex, the scanned barcode will be split into multiple barcodes and each part will be processed independently. Because a lot of barcode can be processed like that, the UI is blocked while it's ongoing. The purpose of this feature is to scan a bunch of serial/lot numbers at once. task-3595212 Community PR: odoo/odoo#150877
The appointment leave management wizard no longer uses a separate resource calendar field. This streamlines the leave setup flow and reduces confusion for users managing appointment availability.
Original PR description
Remove and clean the use of a resource calendar in the appointment manage leaves wizard. Follow-up of odoo/enterprise#56617 task-3773104
Documentation links in several Odoo Enterprise screens now use a version-aware link widget instead of fixed links to a specific documentation version. This reduces maintenance work across releases and helps users land on the correct documentation for the Odoo version they are using.
Original PR description
Before this commit, in many views the links to the documentation was a absolute link to a given version of the documentation. Because of that, the links had to be changed for each version of Odoo. After this commit, most of the link to the documentation use a widget with a relative link that will be adpted with the current version odoo running on the server. task-id: 3605445
Accounting report filters have been simplified to make report options easier to understand and use. This should help users find and adjust reporting settings more quickly, reducing friction in day-to-day financial reporting.
Original PR description
This commit will do a simplification of the options filter in the accounting reports task:3931176
Intercompany transaction rules are now easier to configure, with separate options that can be combined and clearer controls for how related documents are created. Businesses can choose draft or posted automation, select the purchase journal used for vendor bills, and install sales/purchase intercompany flows without requiring inventory features.
Original PR description
This commit aim at improving the usability of Intercompany transactions. What has been done: - Changing the rule_type into booleans so that we can select multiple options - Adding the automation either create in draft or posted - Adding the purchase_journal_id so that the user is able to choose the journal (by default it will put the first purchase journal if there is one) - Remove the creation of invoice - Remove the blue banner from company form and settings Also divide the sale_purchase_inter_company_rules in two, to have a new module that will deal with the stock part. This will allow people to install the module without needing to have inventory. task: 3685688
Improves the manufacturing work order and shop floor experience with clearer actions, better empty-screen imagery, employee search, and automatic status/workcenter updates. These changes help operators complete daily production tasks faster and with fewer clicks or misunderstandings.
Original PR description
This pr will fix or add various UX related features: 1. Adapt the png of the tablet view on the workorder empty list view. 2. Addition of BOM/MO Overview onboarding tips. (the lead day wizard will be refactored in another pr) (community) 3. Changes on the work order form view 4. Changes on the work order list view 5. In the shop floor app, clicking on a MO will set it's status to "ongoin" and added a search bar in the employee login (enterprise) 6. Expanding a line in MO overview works now when clicking on the whole line (previously had to click on the small arrow) (community) 7. Split wizard default quantity is set to 2 (community) 8. Add the workcenter of a work order when clicking on it's manufacturing order in the shop floor task-id: 3691130 closes: https://github.com/odoo/enterprise/pull/56927 community: https://github.com/odoo/odoo/pull/154607
Features or functions removed from Odoo
The payroll app no longer sends users notifications about certain data changes. This reverses a recently added behavior because it caused issues, helping avoid unwanted or problematic notifications.
Original PR description
We revert the below commit in this commit due to some issues that appears, so we decided to remove the added functionality PR - https://github.com/odoo/enterprise/pull/54184 Task-3642351
Miscellaneous changes
Before this commit: We restrict the user to delete GST Return Period record once the transaction has been initiated with the government server to maintain the consistency After this commit: In some special case i.e. for demo/bad record we might want to delete the GST Return Period with help of `force_delete` context it can be easily done in the special cases task-3930638 Forward-Port-Of: odoo/enterprise#62562
Original PR description
Before this commit: We restrict the user to delete GST Return Period record once the transaction has been initiated with the government server to maintain the consistency After this commit: In some special case i.e. for demo/bad record we might want to delete the GST Return Period with help of `force_delete` context it can be easily done in the special cases task-3930638 Forward-Port-Of: odoo/enterprise#62562
Issue: - Previously, the `_getDefaultFilterLabel()` method overridden, but mistakenly called the `_getEmptyGroupLabel()` method from the superclass, causing traceback errors. Fix: - This commit fixes the issue by calling the correct superclass method, `_getDefaultFilterLabel()`. Effect of the commit:https://github.com/odoo/enterprise/commit/8382bf4dc94139bd9eb44eb0907bb1b991a0e3b2# Forward-Port-Of: odoo/enterprise#62714
Original PR description
Issue: - Previously, the `_getDefaultFilterLabel()` method overridden, but mistakenly called the `_getEmptyGroupLabel()` method from the superclass, causing traceback errors. Fix: - This commit fixes the issue by calling the correct superclass method, `_getDefaultFilterLabel()`. Effect of the commit:https://github.com/odoo/enterprise/commit/8382bf4dc94139bd9eb44eb0907bb1b991a0e3b2# Forward-Port-Of: odoo/enterprise#62714
The tests were failing because the TPAR report was working correctly beause all TPAR taxes were inactive. They need to be set active before using. Task# 3782518 Forward-Port-Of: odoo/enterprise#62702 Forward-Port-Of: odoo/enterprise#62697
Original PR description
The tests were failing because the TPAR report was working correctly beause all TPAR taxes were inactive. They need to be set active before using. Task# 3782518 Forward-Port-Of: odoo/enterprise#62702 Forward-Port-Of: odoo/enterprise#62697
When typing in the softphone's search bar, the search result doesn't appear immediately; the user has to press Enter to make it happen. This is because the input field uses the t-model directive with the trim modifier. The trim modifier silently switches the directive to lazy mode, meaning that the content of the field is updated whenever the onchange event is fired instead of oninput. This commit removes the trim modifier to fix the problem. opw-3890028 Forward-Port-Of: odoo/enterprise#6
Original PR description
When typing in the softphone's search bar, the search result doesn't appear immediately; the user has to press Enter to make it happen. This is because the input field uses the t-model directive with the trim modifier. The trim modifier silently switches the directive to lazy mode, meaning that the content of the field is updated whenever the onchange event is fired instead of oninput. This commit removes the trim modifier to fix the problem. opw-3890028 Forward-Port-Of: odoo/enterprise#62379 Forward-Port-Of: odoo/enterprise#62125
**Steps** [website_sale_subscription] - Settings > Website, set "Add to Cart" behaviour to "Go to cart" - Create a recurring product with only one recurring price. - Go to shop, choose the recurring product and try to add it to the cart ** Error 500 ** **Issue** In case there's only one plan, no menu to select a plan is displayed and plan_id is NaN in that case. https://github.com/odoo/enterprise/blob/7d160198be779095660e7f6fb68ae231e4621972/website_sale_subscription/static/src/js/websi
Original PR description
**Steps** [website_sale_subscription] - Settings > Website, set "Add to Cart" behaviour to "Go to cart" - Create a recurring product with only one recurring price. - Go to shop, choose the recurring product and try to add it to the cart ** Error 500 ** **Issue** In case there's only one plan, no menu to select a plan is displayed and plan_id is NaN in that case. https://github.com/odoo/enterprise/blob/7d160198be779095660e7f6fb68ae231e4621972/website_sale_subscription/static/src/js/website_sale_subscription.js#L15 Which is going to be problematic later https://github.com/odoo/enterprise/blob/7d160198be779095660e7f6fb68ae231e4621972/website_sale_subscription/models/sale_order.py#L21 introduced by 7d160198be779095660e7f6fb68ae231e4621972 **Fix** We do not pass a plan_id if there's only one existing plan and use the fallback. opw-3891366 Forward-Port-Of: odoo/enterprise#62038
When the user quits a unfinished picking, the reservation on the move lines are lost. To avoid that, uncompleted moves will be split in such case. For example: - Assume we have a move of 0/15; - The user picks 4 qty (4/15) then exit the picking: => Before this commit, we're left with only one `stock.move.line` with 4 qty and already picked (not knowing what its reservation was since this information is on the `stock.move` and not on the `stock.move.line`.) => After this commit, the lin
Original PR description
When the user quits a unfinished picking, the reservation on the move lines are lost. To avoid that, uncompleted moves will be split in such case. For example: - Assume we have a move of 0/15; - The user picks 4 qty (4/15) then exit the picking: => Before this commit, we're left with only one `stock.move.line` with 4 qty and already picked (not knowing what its reservation was since this information is on the `stock.move` and not on the `stock.move.line`.) => After this commit, the line's move will be split and we'll be left with two `stock.move` and thus `stock.move.line`: - One with 4 qty, already picked (4/4); - One with 11 qty, waiting to be picked (0/11); So, the user will always know what the remaining qty they still have to pick. task-3821067 Forward-Port-Of: odoo/enterprise#59212
## Analysis Since this commit https://github.com/odoo/enterprise/commit/16ba33cd77413948308dd09326021a14f52f51f6, a domain is used to filter which preparation displays should be refreshed when an order arrives. The current domain only filters the preparation displays that are linked to one or more PoS (`pos_config_ids`). If no specific PoS are linked to the preparation display, the domain will filter out the preparation display and the user will have to **manually refresh** the preparation di
Original PR description
## Analysis Since this commit https://github.com/odoo/enterprise/commit/16ba33cd77413948308dd09326021a14f52f51f6, a domain is used to filter which preparation displays should be refreshed when an order arrives. The current domain only filters the preparation displays that are linked to one or more PoS (`pos_config_ids`). If no specific PoS are linked to the preparation display, the domain will filter out the preparation display and the user will have to **manually refresh** the preparation display to see a new order. ## Solution The domain should also check if a preparation display is linked to all PoS. ## References opw-3756416 Forward-Port-Of: odoo/enterprise#62430
The SellerSupplierParty data was initially included for transport reason '13', but recent validations show it is only necessary for transport reasons '02' and '07', which we do not support. Removed these fields to prevent data redundancy and potential errors. Before: - Included SellerSupplierParty data for transport reason '13'. After: - Removed SellerSupplierParty data from DespatchAdvice template. This change ensures compliance with the latest validation rules and reduces unnecessar
Original PR description
The SellerSupplierParty data was initially included for transport reason '13', but recent validations show it is only necessary for transport reasons '02' and '07', which we do not support. Removed these fields to prevent data redundancy and potential errors. Before: - Included SellerSupplierParty data for transport reason '13'. After: - Removed SellerSupplierParty data from DespatchAdvice template. This change ensures compliance with the latest validation rules and reduces unnecessary XML data. Legal Reference:  https://cpe.sunat.gob.pe/sites/default/files/inline-files/ValidacionesGREv20221020_publicacion.xlsx Latam Task: https://latam-localizations.odoo.com/web#id=1203&menu_id=142&cids=1&action=188&model=project.task&view_type=form Forward-Port-Of: odoo/enterprise#62651
### Steps to reproduce the issue: 1. Go to _Planning > My Planning_ and switch to the Weekly Calendar view 2. Plan a new Event from 5.30 AM to 7 PM in the Calendar 3. When the creation Form opens, the Date does not reflect the slot you were creating - Also happens in Gantt view: 1. Make sure the company's schedule starts or ends between two hours (e.g.: 8.15 am) 2. Click on the '+' button of the corresponding cell in the Daily Gantt view 3. The Date will be cut to the start or e
Original PR description
### Steps to reproduce the issue: 1. Go to _Planning > My Planning_ and switch to the Weekly Calendar view 2. Plan a new Event from 5.30 AM to 7 PM in the Calendar 3. When the creation Form opens,…
### Steps to reproduce the issue: 1. Go to _Planning > My Planning_ and switch to the Weekly Calendar view 2. Plan a new Event from 5.30 AM to 7 PM in the Calendar 3. When the creation Form opens, the Date does not reflect the slot you were creating - Also happens in Gantt view: 1. Make sure the company's schedule starts or ends between two hours (e.g.: 8.15 am) 2. Click on the '+' button of the corresponding cell in the Daily Gantt view 3. The Date will be cut to the start or end of the schedule. ### Explanation: Before opening `planning.planning_view_form`, the client calls for `onchange` which will then call for `default_get` that will align `start_datetime` and `end_datetime` with the work hours of `res.company.resource_calendar_id` in every situation where no resource is specified. https://github.com/odoo/enterprise/blob/ff4e39a09399f46790c0ad45bc9f9af4e4cd44d1/planning/models/planning.py#L625-L635 ### Suggested fix: `start_datetime` and `end_datetime` should not change only in Weekly and Daily Calendar views and in Daily Gantt View. The key should not remain in the Context of the Action to avoid unintended behaviours, adding it in the Context of the Event instead. opw-3829635 Forward-Port-Of: odoo/enterprise#62601 Forward-Port-Of: odoo/enterprise#61152
Currently, when validating an order, an error appears. Steps to reproduce: ------------------- * Install **l10n_de_pos_cert** and set up **fiskaly** * Set up **PoS** in German company * Open a store session * Validate an order > Unknown Error: An unknown error has occured! Please, contact Odoo. Why the fix: ------------ https://github.com/odoo/enterprise/blob/a8bd649f7b4c5c3af64edaca19b9c8ca9999cd9e/l10n_de_pos_cert/static/src/overrides/models/models.js#L184-L186 Function `get_t
Original PR description
Currently, when validating an order, an error appears. Steps to reproduce: ------------------- * Install **l10n_de_pos_cert** and set up **fiskaly** * Set up **PoS** in German company * Open a store…
Currently, when validating an order, an error appears.
Steps to reproduce:
-------------------
* Install **l10n_de_pos_cert** and set up **fiskaly**
* Set up **PoS** in German company
* Open a store session
* Validate an order
> Unknown Error: An unknown error has occured! Please, contact Odoo.
Why the fix:
------------
https://github.com/odoo/enterprise/blob/a8bd649f7b4c5c3af64edaca19b9c8ca9999cd9e/l10n_de_pos_cert/static/src/overrides/models/models.js#L184-L186
Function `get_tax_details()` was changed with
https://github.com/odoo/odoo/commit/ab0bdf0192120671010634978f202da35ddfc79f
It was previously returning an object of the form
```js
amount: 56.050000000000004
base: 295
name: "19%"
tax: Proxy(AccountTax)
amount: 19
amount_type: "percent"
children_tax_ids: []
company_id: Base {models: {…}, records: Proxy(Object), model: {…}, _raw: {…}, id: 3, …}
id: 16
include_base_amount: false
is_base_affected: true
model: {…}
models: {pos.config: {…}, pos.order: {…}, pos.order.line: {…}, pos.session: {…}, pos.payment.method: {…}, …}
name: "19%"
price_include: false
```
And now returns
```js
amount: 56.050000000000004
amount_type: "percent"
base: 295
batch_indexes: [0]
display_base: 295
evaluation_context: {multiplicator: 0.19}
extra_base_for_base: []
extra_base_for_tax: []
id: 16
include_base_amount: false
index: 0
is_base_affected: true
name: "19%"
price_include: false
sequence: 10
tag_ids: []
tax_amount: 56.05
tax_amount_factorized: 56.050000000000004
tax_exigibility: "on_invoice"
tax_ids: []
tax_percentage: 19
```
`details.tax.id` is now simply `details.id` and `details.tax.amount` is `details.tax_percentage`. As per the following definition: https://github.com/odoo/odoo/blob/5058c01974431af1cb3a59d65bf40cf5b08ba4ea/addons/point_of_sale/static/src/app/store/models.js#L2202-L2209
opw-3924715
Forward-Port-Of: odoo/enterprise#62613Add Bank Indonesia as a provider or currency rate in order to align with the local market needs. Task id # 3217982 Forward-Port-Of: odoo/enterprise#62535 Forward-Port-Of: odoo/enterprise#61008
Original PR description
Add Bank Indonesia as a provider or currency rate in order to align with the local market needs. Task id # 3217982 Forward-Port-Of: odoo/enterprise#62535 Forward-Port-Of: odoo/enterprise#61008
Before this commit: - Select an image (WEBP format) along with other images. - The preview in the inspector is distorted. Reason: - When introducing the support for WEBP images in the following PR -- https://github.com/odoo/odoo/pull/85494, the upload of documents was not taken into account. - The current image processing ensures that the supported image formats are resized at the backend before being sent to the frontend. Fix: - The exact values of the `max-width` and `max-height` dr
Original PR description
Before this commit: - Select an image (WEBP format) along with other images. - The preview in the inspector is distorted. Reason: - When introducing the support for WEBP images in the following PR -- https://github.com/odoo/odoo/pull/85494, the upload of documents was not taken into account. - The current image processing ensures that the supported image formats are resized at the backend before being sent to the frontend. Fix: - The exact values of the `max-width` and `max-height` draw their inspiration from the following image resizing values in the `documents_inspector.xml` ref- https://github.com/odoo/enterprise/blob/saas-16.4/documents/static/src/views/inspector/documents_inspector.xml#L39 After this commit: - The WEBP image, along with the other image formats can now be previewed without breaking any alignment in the Inspector. Task-3749547 Forward-Port-Of: odoo/enterprise#62565 Forward-Port-Of: odoo/enterprise#59339
Steps to Reproduce: 1. Select a doc. 2. Replace it with another doc. 3. You can see the history of the inspector. 4. From the history tab, double-click on the restore button. 5. Delete the previewed doc from the history list. 6. Throws a Traceback. Issue: triggers asynchronous operation on "_onHistoryItemRestore", when clicked, rapid consecutive clicks could result in multiple asynchronous operations being initiated simultaneously, leading to race conditions or unexpected behavior.
Original PR description
Steps to Reproduce: 1. Select a doc. 2. Replace it with another doc. 3. You can see the history of the inspector. 4. From the history tab, double-click on the restore button. 5. Delete the previewed doc from the history list. 6. Throws a Traceback. Issue: triggers asynchronous operation on "_onHistoryItemRestore", when clicked, rapid consecutive clicks could result in multiple asynchronous operations being initiated simultaneously, leading to race conditions or unexpected behavior. Fix: No traceback will occur, registered only once on a button. Task:3843157 Forward-Port-Of: odoo/enterprise#62560 Forward-Port-Of: odoo/enterprise#60227
33 changes
New functionality added to Odoo
This update adds French language translations to the HR Holidays module for French localization. The translation files have been updated to provide French-language support for holiday and leave management features, making the system more accessible to French-speaking users in France.
Original PR description
opw-3904133
Enhancements to existing features
This update allows administrators to delete GST Return Period records in special situations (such as demo or incorrect records) by using a force delete option, while maintaining the standard protection that prevents deletion once government transactions have been initiated. This provides flexibility for data cleanup without compromising the integrity of official GST filings.
Original PR description
Before this commit: We restrict the user to delete GST Return Period record once the transaction has been initiated with the government server to maintain the consistency After this commit: In some special case i.e. for demo/bad record we might want to delete the GST Return Period with help of `force_delete` context it can be easily done in the special cases task-3930638
This update removes the "Amounts to Settle" menu items from the Customers and Vendors dropdown menus to reduce clutter. Users can still access this information through the dashboard or the Aged Payable/Aged Receivable reports, making the interface cleaner and easier to navigate.
Original PR description
Description of the issue this commit addresses: The Customers and Vendors dropdown start to bloat and the Amounts to Settle view can be reached via the dashboard or the Aged Payable/Aged Receivable reports. Therefore, we can remove them to lower the amount of buttons. Desired behavior after this commit is merged: The menuitems in the Customers and the Vendors dropdown to reach the Amounts to Settle view have been removed. no task linked, feedback --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves the E-Waybill system in Odoo's Indian localization module with a better user interface for tracking and managing E-WayBills. A new wizard feature has been added to simplify the process of canceling E-waybills, making it easier for users to handle cancellations without manual data entry.
Original PR description
In this PR: - Improved user interface for better tracking and cancellation of E-WayBills. - Introduced a wizard feature to simplify the insertion of cancel E-waybill details. Task ID: 3659636. Co-authored-by: Co-authored-by: K Theja (kthe@odoo.com) Forward-Port-Of: odoo/odoo#156452
Resolved issues and error corrections
The Gantt calendar view now displays times in the correct format based on your location and language settings. Previously, times were always shown in 12-hour format with AM/PM regardless of regional preferences. This update ensures that users in regions using 24-hour time format will see times displayed correctly.
Original PR description
Issue: ------ When we go to a gantt view with the day view, the time format is always displayed in 12-hour format followed by "am" or "pm". Depending on the location, this format may also be 24 hours. Solution: --------- Use the current localization to determine the time display format. opw-3867317
This fix resolves an issue where the Starshipit shipping carrier would fail with an error when the API doesn't return pricing information. The system now retries fetching shipping details in the background to ensure accurate pricing is captured, preventing order processing failures.
Original PR description
Steps to reproduce: - Configure Starshipit - Create a stock picking - Choose Starshipit as carrier - Validate the picking - Try multiple times to reproduce the error Current behaviour: - KeyError exception raised Expected behaviour: - Should not have any KeyError Explanation: Starshipit API sometimes will not return the total_shipping_price, therefore the carrier price become 0 and cannot proceed. To handle this case, we put the order detail fetching in background as welljust in case the API didn't return the total_shipping_price again. task-3887386
This update corrects a test oversight that was missed during a previous code update in the stock barcode module. The fix ensures that automated tests run correctly and reliably, helping maintain the quality and stability of the barcode scanning functionality.
Original PR description
This commit fixes an oversight in the forward-port of https://github.com/odoo/enterprise/pull/59342, see comment https://github.com/odoo/enterprise/pull/59342#pullrequestreview-1966528450 opw-3746608
The Journal Report now displays more efficiently when expanding line items, eliminating excessive white space that previously caused horizontal scrolling. This improvement enhances the user experience by keeping the report properly sized for the screen without requiring users to scroll horizontally.
Original PR description
When unfolding the journals, a lot of empty, unused space was left around the values. This lead to the report easily becoming too large for the screen, causing the display of an horizontal scrollbar, and hence degrading the user experience. We fix that by removing any notion of minimal width for this report specifically.
This update replaces deprecated timezone references across multiple Odoo modules with current, supported alternatives. This ensures the system remains compatible with modern timezone standards and prevents potential issues from using outdated timezone definitions.
Original PR description
Continuation of #59440
This update fixes failing tests in the Australian tax reporting module. The tests were not working properly because the tax codes being tested were inactive. The fix activates these tax codes so the tests can run correctly and verify the tax report functionality.
Original PR description
The tests were failing because the TPAR report was working correctly beause all TPAR taxes were inactive. They need to be set active before using. Task# 3782518
We removed unnecessary supplier data from Peru's electronic delivery guide format that was being included for a transport type we don't support. This cleanup ensures our system stays compliant with Peru's latest validation rules and prevents potential errors when processing delivery documents.
Original PR description
The SellerSupplierParty data was initially included for transport reason '13', but recent validations show it is only necessary for transport reasons '02' and '07', which we do not support. Removed these fields to prevent data redundancy and potential errors. Before: - Included SellerSupplierParty data for transport reason '13'. After: - Removed SellerSupplierParty data from DespatchAdvice template. This change ensures compliance with the latest validation rules and reduces unnecessary XML data. Legal Reference:  https://cpe.sunat.gob.pe/sites/default/files/inline-files/ValidacionesGREv20221020_publicacion.xlsx Latam Task: https://latam-localizations.odoo.com/web#id=1203&menu_id=142&cids=1&action=188&model=project.task&view_type=form Forward-Port-Of: odoo/enterprise#62651
This fix corrects a configuration error in the Subscriptions app where the payment token field had an improperly formatted setting that caused errors when editing it through the Studio customization tool. The setting value is now properly formatted as a boolean, allowing users to edit payment token fields without encountering errors.
Original PR description
Before this commit:
The sale_subscription_order_form XML view had a key-value pair of {'no_create': 'True'} on the field for a payment_token. The proper value should be True without quotation marks, otherwise a invalid prop error is thrown when you attempt to edit the payment_token field via studio in the Subscriptions app.
opw-3891923This fix resolves an issue where the selected reporting period was not being applied when accessing the EC Sales List report from the Tax Report warning message. Users will now see the correct period when clicking the "Do not forget to submit the EC Sales list report" warning, ensuring accurate tax reporting for intra-community sales.
Original PR description
When accessing EC listing through the "Do not forget to submit the EC Sales list report" warning, the tax report's options used not to be passed onto EC listing. Steps to reproduce original issue: - Install `l10n_be_reports` - Create an invoice for a customer with 'Intra-Community' as a 'Fiscal Position' - Confirm it - Go to: Accounting > Reporting > Statement Reports > Tax Report - Select a period that'd include the invoice - Click on the "Do not forget to submit the EC Sales list report" warning - The period selected will be the wrong one task-3891799 Forward-Port-Of: odoo/enterprise#62726 Forward-Port-Of: odoo/enterprise#62642
This fix addresses memory errors that occur when updating large numbers of records in the system, which commonly happens during software upgrades. The change optimizes how the system processes and stores temporary data during these updates, reducing memory consumption from tens of megabytes to just 1-2 megabytes, allowing upgrades to complete successfully without running out of memory.
Original PR description
Motivation: MemoryError exceptions when a large number of records on the same model have dirty fields. Such often happens during upgrades. In the current implementation, the cached data is re-arranged in multiple steps using local data structures. The most problematic is `id_vals[record.id][field.name]`, because it creates a dictionary with a potentially long field name (think studio fields) as key for each dirty record. For thousands of records, this quickly accumulates to 10s of MiB in RAM. The idea of this patch is: 1. collect all dirty ids for all dirty fields on the model. This does not cost additional memory, since the list of ids per field will be pop()'ed from the cache. 2. Walk over fields and ids collecting all fields and values of each id in the same loop, directly building the `updates` dictionary, without creating the intermediate data structure.
This fix corrects the display size of PIN entry buttons in the employee attendance kiosk mode. The buttons were appearing too large due to a CSS styling conflict with the website module. The fix restores the proper button sizing so employees can easily enter their PIN during manual identification.
Original PR description
Steps to reproduce: - Install attendance and website - Toggle "Employee PIN Identification" in Settings - Open "Attendances" - Kiosk Mode - Identify Manually and click on an employee Issues: The button for the pin code are too big, this is due to the CSS change in website module for the 'btn-lg' class. https://github.com/odoo/odoo/blob/71227dbc4848c7c27c61e477a78b35e0c0167b8e/addons/website/static/src/scss/website.scss#L576-L594 As a solution I added the styling to the `o_hr_attendance_PINbox_button` class, such that we keep the original styling. https://github.com/odoo/odoo/blob/71227dbc4848c7c27c61e477a78b35e0c0167b8e/addons/web/static/lib/bootstrap/dist/css/bootstrap.css#L3462-L3466 opw-3864816
This fix prevents creating URL redirects (308 rewrites) that point to existing website pages, which was causing unpredictable and inconsistent behavior. When a redirect pointed to an existing page like the shop or homepage, the system would sometimes show the wrong content depending on the order of internal routing rules. The fix ensures redirects only work as intended by blocking redirects to existing controller pages.
Original PR description
Creating a 308 which redirects to an existing controller will have unpredictable (and unwanted) behaviors. Indeed, 308 are there to redirect an existing URL (like `/shop`) to a non-existing URL (like…
Creating a 308 which redirects to an existing controller will have unpredictable (and unwanted) behaviors. Indeed, 308 are there to redirect an existing URL (like `/shop`) to a non-existing URL (like `/my-super-shop`) and to make it so that non existing URL will respond with the content of the existing URL. The way it's done is that it simply replace the routing map rule for the given URL by two new rules: - One for the non-existing URL (chosen url_to) which will serve the existing url endpoint - One for the existing URL, which will be turned into a redirect endpoint This works fine except if you actually select an existing controller as url_to in the 308 rewrite. In this case, there will be 2 werkzeug Rules for the same URL, which is bad. Worst than that, depending of the selected controller the order of those 2 Rules will change, leading to different behavior. Step to reproduce: - Create a 308 from /blog to / (note that "/" is a controller) - Go to /blog, it will redirect and show the homepage - Go to /, it will show the homepage - Now edit the 308 and redirect /shop to / - Go to /shop, it redirects to / but won't show the homepage, it will show the shop page - Go to /, it will show the shop page Technically, here is the routing map for both cases: 1. 308 shop case ``` <FasterRule '/' -> functools.partial(<bound method WebsiteSale.shop of <odoo.http.CustomerPortal (extended by PortalAccount, PaymentPortal, CustomerPortalExternalTax, SaleStockPortal, CustomerPortal, PaymentPortal, PaymentPortal, WebsiteSaleDelivery, WebsiteSaleExternalTaxCalculation, WebsiteSale, WebsiteSaleStockRenting, WebsiteSaleStockRenting, WebsiteSale, WebsiteSaleRenting, PaymentPortal, CustomerPortalExternalTax, CustomerPortal, WebsiteAccount) object at 0x7f4d9468a6b0>>)>, <FasterRule '/' -> functools.partial(<bound method Website.index of <odoo.http.Home (extended by Home, Home, Routing, AuthSignupHome, Website) object at 0x7f4d94583460>>)>, ``` 2. 308 blog case ``` <FasterRule '/' -> functools.partial(<bound method Website.index of <odoo.http.Home (extended by Home, Home, Routing, AuthSignupHome, Website) object at 0x7f7fc9ebd7e0>>)>, <FasterRule '/' -> functools.partial(<bound method WebsiteBlog.blog of <odoo.http.WebsiteBlog object at 0x7f7fc9d69090>>)>, ``` You see that the Rule order is inverted from one case to another. We could have decided to do another fix and adapt the `_generate_routing_rules()` method to keep only one Route but that seems worst as: 1. 308 are not designed for that in the first place, not even sure what we would want 2. it will technically be far from ideal, having the check routing map to check if exists already and ensure the same behavior all the time Note that testing a few main controllers, only the /shop seems to lead to this different behavior. Note that it's a bit of a non-stable change, so 17.0 seems like a good compromise. Especially since the /shop example is not buggy before 17.0 as somehow the `Website.index` Rule is before the `WebsiteSale.shop`. ``` <FasterRule '/' -> functools.partial(<bound method Website.index of <odoo.http.Home (extended by Home, Home, Routing, AuthSignupHome, Website, WebsiteTest) object at 0x7fad28571660>>)>, <FasterRule '/' -> functools.partial(<bound method WebsiteSale.shop of <odoo.http.WebsiteSale (extended by WebsiteSaleDelivery, WebsiteSale) object at 0x7fad28435e40>>)>, ``` opw-3901713
This fix resolves an issue where icons were being incorrectly cropped when converted to PNG format. The problem was caused by using incorrect coordinate values when positioning the icon within the image. By using the correct coordinate values, icons now export with proper sizing and positioning, ensuring users see complete and properly formatted icon images.
Original PR description
Commit that introduced the issue:
https://github.com/odoo/odoo/commit/e806328bc5bd8526594e8e2b90685c03504dea79
Issue:
=====
when an icon is converted to png it's cropped.
Steps to reproduce the issue:
=============================
- Go to this url: {host}/web_editor/font_to_img/61802/rgb(0,143,140)/rgb(255,255,255)/190x200
- The icon is cropped.
Origin of the issue:
=====================
In this case we are using `top` and `left` as they are the top left corner of the icon inside the image , but in reality the returned value is 0 , and the top left corner is represented by `box[0]` and `box[1]`.
Solution:
=========
Use of `box` values instead of `top` and `left`
Before:
======

After:
====

opw-3865845
Forward-Port-Of: odoo/odoo#163006TPAR taxes have been deactivated by default in the Australian localization module because they are rarely used and clutter the tax selection interface. This change makes it easier for users to find and select the taxes they actually need when setting up accounting configurations.
Original PR description
TPAR is not commonly used and makes it difficult to search for taxes in Many2one fields. This commits sets them to inactive by default. Task# 3782518 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 fix resolves errors that occur when trying to modify recurring calendar events if the original base event has been archived. Previously, the system would continue using the archived event as the base, causing errors or inconsistencies when users tried to change recurrence patterns. Now the system automatically selects a valid non-archived event as the new base event, allowing recurrence modifications to work smoothly.
Original PR description
When the base event is archived, it continues being the base event of the recurrence, and when trying to change the recurrence of all the events of the recurrence, an error is thrown or some…
When the base event is archived, it continues being the base event of the recurrence, and when trying to change the recurrence of all the events of the recurrence, an error is thrown or some inconsistencies occur. To test the problem, you can follow these steps: 1. Create a recurrence of events from a non included day on the recurrence (example: recurrence on tuesday and friday and the start of the recurrence on monday). The first event will be archived automatically. 2. Open other event of the recurrence. 3. Modify the recurrence for all events (example: change the weekdays, set just tuesday instead of tuesday and friday) An error will be thrown. See next gif:  By making these changes, the base event will be updated, as indicated in the `_select_new_base_event` method, so these inconsistencies will not occur when making the changes. See next gif:  cc @Tecnativa TT46742 ping @pedrobaeza @chienandalu --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165659 Forward-Port-Of: odoo/odoo#149349
When users create a menu item with special characters in the URL (like spaces) that doesn't exist, and then create the page through the "Create Page" button, the menu link now automatically updates to point to the new page. Previously, the menu would continue pointing to the old broken link, requiring manual correction.
Original PR description
Users can create menu items whose URL contain special characters (e.g. spaces, apostrophes, etc.). This is a legitimate use, as menus can for instance redirect towards uploaded files whose name may include such characters. However, when the URL doesn't exist, we land on a 404 page. If we then create the page through the "Create Page" button, special characters are slugified for the new page. At that point, we need to update the menu's URL accordingly. Steps to reproduce: 1. Create a Menu "Test A" 2. Add a URL with a space "/test a" 3. Save it 4. Go to the website, and click on the menu "Test A" (it opens the URL "/test%20a", which lands on a 404 page) 6. Click on "Create Page" (the created page uses the URL "/test-a") 7. Save it 8. Click again on the menu "Test A" => You land on the same 404 as before, on "/test%20a". opw-3896659 Forward-Port-Of: odoo/odoo#165602 Forward-Port-Of: odoo/odoo#165408
Fixed a bug in the job listings page that caused an error when some job postings had incomplete location information (missing city). The system now properly handles job listings with varying levels of location detail, allowing the page to display and sort all jobs correctly without crashing.
Original PR description
Steps to reproduce: - Install `website_hr_recruitment` - For one of the job listing add a job location without specifying a city - For another job listing add a job location with a city - Go to `/jobs` url Issues: Since one of the record doesn't have a city specified `record[city]` is False. This resulted in a traceback in the `sorted` call as we were comparing string to boolean. opw-3911415 Forward-Port-Of: odoo/odoo#165094
Colombian phone numbers starting with 324 were incorrectly marked as invalid due to outdated phone number validation data. This fix updates the validation rules to recognize these numbers as valid, ensuring customers and contacts in Colombia can properly register their phone numbers in the system.
Original PR description
Current behavior:
---
Colombian phone numbers starting with 324 are invalid.
Steps to reproduce:
---
parsed = phonenumbers.parse('324 1234567', 'CO')
is_valid = phonenumbers.is_valid_number(parsed)
is_valid == False
Cause of the issue:
---
Old versions of phonenumbers (external library) are not
up to date with the latest colombian phone system changes
Fix:
---
Monkey patched the library
Similar as: https://github.com/odoo/odoo/commit/b7878038e0aca885aa174ccd74be9ffd4b393a89
opw-3870579
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#164848
Forward-Port-Of: odoo/odoo#164608This fix corrects the file extension of the GitHub issue template configuration from an incorrect format to the proper .yml format. This ensures GitHub can correctly recognize and process the issue template configuration, maintaining proper automation and workflow functionality.
Fixed an issue where the 'Everybody's Calendar' filter selection was lost when users navigated back to the calendar view using the breadcrumb. The filter preference is now saved and restored automatically, eliminating the need to reselect it each time. This improves the user experience by maintaining filter settings across navigation.
Original PR description
Version: ---------- sass-16.3 Steps to reproduce: -------------------------- - open the Calendar module - click on the everybody's calendar filter option to view all the meetings - click on any…
Version: ---------- sass-16.3 Steps to reproduce: -------------------------- - open the Calendar module - click on the everybody's calendar filter option to view all the meetings - click on any meeting to open the form view for that meeting - now navigate back through the breadcrumb - the everybody's calendar filter is now unchecked Issue: ---------- The 'Everybody's Calendar' option is not set and one needs to check it again every time he come back through the breadcrumb. Cause: ---------- All the other filters are saved in the backend through orm calls but the All filter is not saved since it does not have a recordId. Solution: ---------- The filter state is now stored in the user context, so when a user come back through the breadcrumb the previous set value is taken from the user context. task-3792066 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165459 Forward-Port-Of: odoo/odoo#160952
This update removes an extra closing curly brace that was causing a syntax error in the CRM team views configuration file. The erroneous character was preventing the system from properly parsing the context field, which could lead to functionality issues in the CRM module. This fix ensures the configuration file is properly formatted and the CRM module functions correctly.
Original PR description
I found in the CRM view crm_team_views.xml on line 82 an extra closing curly brace in the value of the context. Each opening tag/brace must have only one closing tag/brace. In our case it was a curly brace which must be removed to avoid syntax errors. This PR is made after a similar one for 17.0 branch which has the same issue and I was advised by @reth-odoo to make the PR for the first branch containing the bug. The previous PR URL for 17.0: [https://github.com/odoo/odoo/pull/164461](https://github.com/odoo/odoo/pull/164461) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165717
This update removes the use of an outdated timestamp function (utcfromtimestamp) from Odoo's automation and file handling systems. The change ensures the system uses more reliable and modern date/time handling methods, improving code stability and future compatibility.
Original PR description
First commit: Doesn't look like an issue since it is a fallback in case `action.last_run` is not set Second commit: to verify Forward-Port-Of: odoo/odoo#165735
This fix resolves an issue where re-enabling a warehouse resupply connection would create a duplicate route instead of reusing the existing one. When users removed and then re-added a warehouse as a resupply source, the system now correctly restores the previous route rather than creating a new one, preventing confusion and data duplication.
Original PR description
Steps to reproduce: - Create two warehouses A & B - Open the warehouse B form - Set warehouse A as resupply and save - Remove warehouse A as resupply and save - Set warehouse A as a resupply again and save Issue: Instead of unarchiving the existing resupply route, it created a new route instead, meaning we have now two resupply routes from the same warehouse to the same warehouse. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165660 Forward-Port-Of: odoo/odoo#165129
This fix resolves an issue where customers would see conflicting messages when browsing product variants on the website. Previously, when switching to a deleted product variant, both a "product doesn't exist" message and an outdated stock availability message would display simultaneously. The fix ensures that only the appropriate message appears based on the current variant's status.
Original PR description
Issue: ====== Availablity message and product doesn't exist shows at the same time. Steps to reproduce the issue: ============================= - Create a storable product with 2 attributes each having 2 values - Set show available qty below 5 units - Remove one of the created variants - Set qty for all the other variants to 3 (anything less than 5 and > 0) - Go to website page of the product and switch between variants - You can see that when we go to the deleted variant it shows both messaged. "Deoesn't exist" message for the current variant and stock message from the old variant that we switched from Origin of the issue: ==================== When the product doesn't exist we don't update the availability message neither we hide it. Solution: ========= We can use the same trick to show/hide the not available message but in the opposite logic to show/hide the availability message. opw-3875941 Forward-Port-Of: odoo/odoo#163979
A typo in the fullscreen exit message was corrected, changing "string" back to "screen". Additionally, the text escaping function was updated to display the message correctly. This ensures users see the proper exit fullscreen instructions without formatting issues.
Original PR description
With the conversion of inline templates in [1], a typo was introduced that changed "screen" to "string". This commit fixes that typo and updates the .pot file. Also, the `escape` function used was changed to the correct one. [1] 5700cc65b614b0db0f73b6704fe2fad44b62d2d3 Forward-Port-Of: odoo/odoo#165442 Forward-Port-Of: odoo/odoo#164893
This update enhances error reporting for the Egyptian localization drivers by capturing and logging complete error details instead of just error messages. This improvement helps support teams diagnose and resolve issues more quickly by providing full context when problems occur in the IoT system.
Original PR description
Before this commit: l10nEGDrivers errors can be ambiguous as we only receive the error string. After this commit: The full traceback alongside an error message is logged in the IoT opw-3915843 Forward-Port-Of: odoo/odoo#165726
Fixed a technical issue that caused an error when users clicked the print button on survey responses. The problem occurred because comment fields were being incorrectly counted as answers when calculating survey statistics. The fix ensures that only actual answers are counted, not optional comments, allowing users to successfully print their survey participation records.
Original PR description
Purpose ======= Fix the traceback appearing when clicking on the print button for a survey participation. Specifications ============== When preparing the print page statistics, the number of correct/skipped/partial/incorrect answers are computed based on the user input lines. The issue is that when the user input lines are retrieved, the comments are also taken into account. So when the user input lines for a simple choice question are accessed, a traceback appears as we got 2 input lines (the simple choice answer and the comment) where we expected only 1. Fixing the issue by removing from the considered user input lines the ones related to comments if they're not considered as being an answer. (the comment_count_as_answer field on the question is False). related PR: odoo/odoo#120629 Task-3893199 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163346
Popups were not appearing on the Point of Sale login page because the login page had a higher display priority (z-index). This fix increases the popup priority so they now display correctly on top of all other elements, ensuring users can see important notifications and dialogs.
Original PR description
Prior to this commit, popups would not appear on the login page due to its z-index being set to 1000. This commit resolves the issue by setting the staring z-index of the popups to 10000, ensuring that popups are displayed on top. opw-3930943 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix resolves an issue where long footer text was not wrapping properly in boxed document layouts, causing text to overflow. An outdated CSS rule that was originally designed for a different footer format has been removed, allowing footers to display correctly regardless of length.
Original PR description
If the footer is too long in a boxed layout, it's not properly wrapped. This css rule was introduced in saas-15 in 4c8a806a23f7d0da8f43c0bb5ebf7307776bf000 to fix an issue where the phone/vat fields of the footers could be wrongly displayed. (in those older versions, you had harcoded company fields in the footer, like phone and vat) Now footer is a simple text, so this css line is not relevant anymore. steps to reproduce: - go to settings, click on "configure document layout" - select boxed - add a really long one-line footer - check the preview (or download the pdf preview) before this commit:  after this commit:  opw-3871778 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162921