Daily updates from Odoo
Friday, December 6, 2024
67 changes · 18.0
New functionality added to Odoo
Maltese businesses can now download the compliance letter needed when requesting an EXO number directly from Odoo. The feature is installed by default for Malta and is available from the Reporting menu, making the required document easier to access.
Original PR description
- Created a new module `l10n_mt_pos` to provide a compliance letter required by Maltese businesses for requesting an EXO number. - Automatically installs for Malta by default. - Added a menu item under "Reporting" > "Compliance Letter" to allow users to download the document. Task ID: 4373339 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This adds a localized accounting setup for businesses operating in South Korea, including standard accounts, taxes, tax reports, address formatting, and VAT validation references. It helps South Korean companies configure accounting in Odoo more quickly and align reporting with local requirements.
Original PR description
Add basic support for South Korean accounting: - Chart of Account - Taxes and tax report - Address format on partner view - VAT Validation references Task ID: 4262097 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Adds standard Profit and Loss and Balance Sheet reports for South Korean accounting. This helps businesses operating in South Korea review key financial statements in a localized format within Odoo.
Original PR description
Add basic support for South Korean financial reports: - Profit and Loss - Balance Sheet Task ID: 4018370
Enhancements to existing features
PayPal payment requests now include a safeguard that prevents the same payment attempt from being processed twice. If a payment response is missed, retrying the same attempt retrieves the original result, while a deliberate new retry creates a separate request.
Original PR description
An idempotency key was added to avoid processing a payment request twice. If the payment attempt fails and result wasn't received, sending the same request again will return the result of the first executed request. If User decides to retry, another request is made with the same parameters but a different idempotent id, thus resulting in a new request. task-2894752 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The emoji picker has received small visual refinements to make it cleaner and more pleasant to use. This improves the everyday messaging experience without changing how users interact with the feature.
The accounting lock dates wizard now uses clearer labels, improved guidance, and more visible exception messaging. This helps users better understand which accounting periods are being locked and reduces confusion when configuring exceptions.
Original PR description
This commit is part of a bigger commit in the enterprise PR. This commit improves the UX of the Lock Dates Wizard with the following changes: - Reworded the tooltips of all 5 lock date fields - Change label for "Lock Everyone" to "Lock Everything" - Move the Exception to the bottom and highlight it in an alert - Make it so that the relevant field of the exceptions are highlighted with an info class (using `decoration-info`) In addition, it also changes the help and string of other related invisible fields (even though it's not needed) to keep it the same everywhere in the code. related enterprise-PR: https://github.com/odoo/enterprise/pull/74262 task-id: 4297145
Video calls now handle focused participants more clearly when cameras or screen sharing are turned on. This keeps the main call view consistent, reducing confusion by showing the most relevant video or shared screen in the center.
Original PR description
Backport of https://github.com/odoo/odoo/pull/185215
Before this commit:
When a participant turned on their video while they're focused in a call, their video appeared in the corner, while their profile card remained visible in the center.
After this commit:
1. When a participant is in focus and screen sharing begins, their video will be in focus even after screen sharing ends.
2. When a participant turns on their video while they're focused in a call:
-Screen Sharing Off:
The participant's video will replace the profile card,
appearing in the center of the screen, while the profile card will be hidden.
-Screen Sharing On:
The shared screen will remain focused in the center, and the participant's
video will stay in the corner, maintaining existing behavior.
task-4195731Event visitors now get clearer favorite-track actions, email reminders with calendar links, and a prompt to provide an email address when needed. The agenda also avoids sending users to empty track pages, improving the browsing experience around event sessions.
Original PR description
Impacted version: - 18.0 Impacted code: -Module: website_event_track -Edition of event.track model -Edition of EventTrack controller -New mail template added -New widget for the email reminder modal…
Impacted version: - 18.0 Impacted code: -Module: website_event_track -Edition of event.track model -Edition of EventTrack controller -New mail template added -New widget for the email reminder modal -Edition of wigdet of favorites button (in shape of a bell) -New test tours -Edition of the wevent_register_tour Description of the issue/feature this PR addresses: This task aims to improve the UX of the agenda on the website. 1. There is an hover effect has been added to the bell button to set tracks as favorite. 2. Click on the bell button must send an email to visitors with url that give them the possibility to add tracks to their external calendars (Outlook, Appel, Yahoo and Google). For logged visitors the mail is send when they click on the bell button. For unlogged visitors a mal is displayed to allow them to indicate their email address, if they haven't already provided it. The modal had to appear only if the bell is filled up, if visitor is unlogged and do not have already sumbitted is email address. 3. When the mail is sent, a toaster with a notification is display. This last one is "Track successfully added to your favorites. Check your email to add them to your agenda.". The toaster must stay visible even if the user is scrolling down. 4. The track that do not have description nor biography must not be clickable both on the sidebar of track detail page and on the event agenda.So it prevent blank page. Current behavior before PR: The bell only add or remove tracks from favorite. Desired behavior after PR is merged: -When a button of favorites, is empty, it change of color when the cursor pass on it to invite users to click on it. They often do not understand that they can do it. -Creation of the modal for unlogged visitor allow them to indicate their email address, if they do not have already submit it. -When users add tracks to their favorites, they receive a mail that allow them to create reminders in their Appel, Google, Outlook and Yahoo calendars. -The message of the toast, when a track is added to favorite, is changed by "Track successfully added to your favorites. Check your email to add them to agenda.". -The toasts, generated when user clicks on the favorite button, stays at the same place in the window of the browser when user scrolls. -In the agenda and in the 'Other talk' section of the track page, it is not possible to click on the track that does not have description nor partner bigraphy. That prevent blank page. -Unit tests have been created to verify that the modal, which allow visitors to indicate their email for reminders, is displayed and to verify that emails with reminders are sent to visitors and logged users. task-4246975 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Lock Dates Wizard now uses clearer wording, better field labels, and a more visible exceptions section. This helps accounting users understand which lock dates apply and spot exceptions more easily before making changes.
Original PR description
This commit improves the UX of the Lock Dates Wizard with the following changes: - Reworded the tooltips of all 5 lock date fields - Change label for "Lock Everyone" to "Lock Everything" - Move the Exception to the bottom and highlight it in an alert - Make it so that the relevant field of the exceptions are highlighted with an info class (using `decoration-info`) In addition, it also changes the help and string of other related invisible fields (even though it's not needed) to keep it the same everywhere in the code. related community-PR: https://github.com/odoo/odoo/pull/188017 task-id: 4297145
Resolved issues and error corrections
This fixes an issue in Point of Sale where opening a shared restaurant table from another session could fail because the system looked for currency details in an order that was not fully loaded. The checkout flow now uses the current Point of Sale configuration currency, helping staff access shared tables reliably.
Original PR description
Before this commit, when opening a shared table from another session, it tried to get the currency from the other order while the session and config record were not loaded, causing an error. opw-4381857 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where the cursor could appear in the wrong place after inserting a line break near linked text in Chrome. Users editing website or document content should now see the cursor remain where expected, reducing confusion while typing.
Original PR description
Steps:
- place the cursor at the end of a paragraph containing a link among other text, e.g.:
`<p>abc <a href="#">some link</a> def[]</p>`
- press shift + enter
- the cursor is displayed in an odd position, e.g.: `<p>abc <a href="#">some link</a>[] def<br><br></p>`
There seems to be a bug in Chrome that renders the selection in a different position than the one returned by document.getSelection() in some cases. Setting the selection (even if it's the same as the current one) seems to solve the issue.
In the example above involving a link, after updating ZWNBSP (zero-width non-breaking space) nodes around the link, preserveSelection's restore is called but, when about to set the document selection, setBaseAndExtent is skipped because the selection is the same as the current one. This commit ensures that setBaseAndExtent is always called when restoring the selection.
task-4360915This fix updates the Kazakhstan localization so product categories use an expense account instead of a current asset account. This ensures related costs are reflected correctly in profit and loss reporting.
Original PR description
Before this commit the account that was set was a current assets but this prevents its impact on the P/L. task: 4369691 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents accounting reports from using an incorrect exchange rate when a company currency has no rate recorded outside the selected reporting period. The system now falls back to an available in-period rate, or a neutral rate when no rate exists, improving accuracy in multi-company financial reporting.
Original PR description
A rate calculation error occurs when a currency without an exchange rate outside the selected period is used. Steps to reproduce: 1. Create two companies with different currencies. 2. Create a…
A rate calculation error occurs when a currency without an exchange rate outside the selected period is used. Steps to reproduce: 1. Create two companies with different currencies. 2. Create a journal entry in company 1. 3. Select both companies and select the second company. 4. Go to the Trial Balance report in the accounting module. 5. Check and remove all entries in `res.currency.rate` that fall outside the selected report period. For example, if 2024 is displayed, delete all other years entries. 6. The exchange rate will be incorrect. The issue stems from the SQL query in the `_get_table_builder_average` function. The query assumes the `out_period_rate` always exists, but it doesn't in some cases. The fix is to use the `in_period_rate` when the `out_period_rate` is missing, and if both are unavailable, default to 1. A temporary workaround is to add an exchange rate for each currency outside the period (similar to the Runbot, which has entries from 2010 and avoids the issue). opw-4321063.
This fix prevents sales users from seeing an access error when adding products to a sales order for customers with credit limits enabled. It keeps the credit limit check working while allowing sales teams without invoicing permissions to create orders as expected.
Original PR description
**Steps to reproduce:** - Install Sales - Go to Invoicing settings - Enable "Sales Credit limit" - Create a user with Sales rights and no Invoicing rights - Connect with the created user - Create a SO **Issue:** When a customer is set, an access error on "credit_limit" field is raised when adding a product. **Cause:** "credit_limit" is a company-dependent field. Since the refactoring of the company-dependent fields, the value is not retrieved with "sudo()" anymore. opw-4280420 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixed an accounting currency calculation that could incorrectly treat early days in a reporting period as having a zero exchange rate when no rate record existed yet. This ensures average currency rates use the proper default value, improving accuracy in financial reports and currency-related computations.
Original PR description
If a period containing some res.currency.rate object starts by some sub-period without any range, the average rate computation considered this sub-period as having a rate of 0. It's wrong; it should be 1.
This change relaxes restrictions that were preventing users from creating, updating, or deleting analytic items linked to journal entries. It restores the ability to mass edit these analytic items while a better synchronization approach is being developed.
Original PR description
The constrains introduced in 7bc8c8be44396a8a54466fe7fa48afad4a52c201 are too restrictive for users and avoid them to mass edit there analytic items. Another solution for keeping the analytic items and their analytic distribution synchronized is in progress. task-3977961
This fix aligns the accounting tax calculation logic used in the browser with the logic used on the server. It helps ensure users see consistent tax amounts throughout Odoo, reducing discrepancies in invoices or accounting screens.
Original PR description
Adapt the js-side of taxes computations according: https://github.com/odoo/odoo/commit/e43044582cce69ec3abc9838aa9afba06e073a80 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes a point of sale issue where orders shared between different POS configurations could fail because the original configuration was not available in the current session. Currency information is now accessed in a way that works across shared orders, improving reliability for stores using multiple POS setups.
Original PR description
Config should not be accessed directly from the order since it can came from another config that isn't loaded in all session. For example with shared order between config, when an order is created on config A and loaded on config B, the config A link will not be available on config B. runbot err: 109327
A code update script was corrected so it no longer changes web addresses that contain the word “tree.” This prevents valid links from being accidentally rewritten during upgrade-related code changes.
Original PR description
[FIX] cli/*: fix script converting tree to list (don't change urls) issue: https://example.com/base/server/tree/master => https://example.com/base/server/list/master
This fixes an issue that prevented Point of Sale sessions from opening when they used a currency different from the company currency. Businesses can now operate PoS setups in alternate currencies without running into a loading error.
Original PR description
Before this commit, it wasn't possible to open a PoS in a different currency than the company currency. opw-4378523 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Mobile users can now start typing immediately after tapping the search button, without needing an extra tap inside the search field. This removes a small but noticeable friction point when searching records on smaller devices, while keeping the existing behavior on larger touch screens.
Original PR description
This commit fixes the desired behavior when touching the SearchBarToggler. Before the fix, the input was not focused, and the user had to touch the search input once after having touched the toggler, which makes one step redundant. Now, the input is automatically focused when the search bar is mounted on small devices (the only one having the toggler), to keep the current behavior that don't focus the input on touch devices when using the medium/large UI. task-4269494
Accounting screens now show account codes and company names more consistently when users work across multiple companies. The change also prevents users from selecting accounts that do not belong to the current invoice, bill, or journal entry company, reducing data entry mistakes in financial documents.
Original PR description
- Fixed the `_field_to_sql` method so that `placeholder_code` doesn't show the company name if the account belongs to the active company; - Fixed `_field_to_sql` to add a space in `placeholder_code`;…
- Fixed the `_field_to_sql` method so that `placeholder_code` doesn't show the company name if the account belongs to the active company; - Fixed `_field_to_sql` to add a space in `placeholder_code`; - Allow searching on `placeholder_code` with the `=` operator - this allows the `account_id.placeholder_code` field to be used as a grouping key on reports. - Changed the account's display_name so that if it belongs to other companies than the active one, the company names are displayed (in parentheses). - Changed the `placeholder_code` so that it shows the code for one of the active companies (if the account is visible, then it must have a code in at least one of the active companies) rather than for one of the companies accessible to the user. - Fix the `_field_to_sql` for `placeholder_code` so that we do a LEFT JOIN on the first company of the account that is in the environment. This avoids excluding accounts simply because none of the account's `company_ids` is present among the active companies (e.g. a search might be done with `sudo` in which case the active companies shouldn't restrict the results returned). Enterprise PR: https://github.com/odoo/enterprise/pull/71813 task-4259552
Creating or linking a candidate to a recruitment application now preserves any tags already added to that application. This prevents recruiters from losing classification details during candidate setup and keeps application tracking more reliable.
Original PR description
Issue: When creating an Application, creating a new Candidate removes all tags already in use. Steps to reproduce: - Install Recruitment app - Create a new Application - Add a tag - Create a new Candidate Cause: The tags of an Application are stored in the 'categ_ids' variable. This variable is changed by the '_compute_categ_ids' method, which sets them to those of the Candidate. Since categ_ids is empty for new Candidates, as of right now, this method is effectively removing all tags for new Candidates. Desired Behaviour: Adding a Candidate should add it's tags to the Applicant's. Removing a Candidate should not change the Applicant's tags. Ticket: opw-4351837 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an error that could prevent sales-related invoices from calculating tax totals correctly. The change uses the correct total value name, avoiding server errors and helping invoices process reliably.
Original PR description
**Description of the issue/feature this PR addresses:** The value `move.tax_totals` is defined in `/addons/account/models/account_move.py` by calling the function `_get_tax_totals_summary` from…
**Description of the issue/feature this PR addresses:** The value `move.tax_totals` is defined in `/addons/account/models/account_move.py` by calling the function `_get_tax_totals_summary` from `account_tax`: https://github.com/odoo/odoo/blob/5714ee114fb5c4b9d1342159b07efa27f16a7c8d/addons/account/models/account_move.py#L1551 The `_get_tax_totals_summary` generates a dict with the total amount stored as `total_amount` and not `amount_total` https://github.com/odoo/odoo/blob/5714ee114fb5c4b9d1342159b07efa27f16a7c8d/addons/account/models/account_tax.py#L1870 https://github.com/odoo/odoo/blob/5714ee114fb5c4b9d1342159b07efa27f16a7c8d/addons/account/models/account_tax.py#L2052-L2053 **Current behavior before PR:** Server throws a KeyError as `amount_total` doesn't exist in `move.tax_totals` **Desired behavior after PR is merged:** `move.tax_totals` is computed correctly Fixes https://github.com/odoo/odoo/issues/184408 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Adds a safeguard test to ensure financial reports calculate average currency rates correctly when a reporting period starts without a specific rate range. This helps prevent inaccurate report figures from returning in future updates.
Original PR description
If a period containing some res.currency.rate object starts by some sub-period without any range, the average rate computation considered this sub-period as having a rate of 0. It's wrong; it should be 1. The fix itself is in the corresponding community commit ; this one adds a check ensuring this doesn't break again in the future.
This change restores restrictions that prevent creating, editing, or deleting analytic items when they are tied to a journal item. It helps keep accounting and analytic reporting data consistent and reduces the risk of accidental changes to posted financial information.
Original PR description
Reverts 9ae263696efff17a872e848b03a7b08ba84cdca2 Community PR: odoo/odoo#189440 task-3977961
Users can now drag a read-only document into a folder they can edit without causing a failed move. The system creates a shortcut instead, making document organization smoother while preserving access restrictions.
Original PR description
This commit allows one to drag and drop a readonly document into another editable folder by creating a shortcut instead of moving it.
The search button now places the cursor directly in the search field on mobile screens for Gantt, Grid, and Map views. This removes an extra tap and makes searching faster and smoother for users working on smaller devices.
Original PR description
*: web_grid, web_map This commit contains the enterprise adaptations, using the new props 'toggler' for the SearchBar component. This will make the component automatically be focused on mobile devices. task-4269494
Knowledge's automated guidance now handles cases where the email composer adds a user signature at the end. This prevents the related Knowledge tour from failing, improving reliability for users and testers without changing day-to-day functionality.
Original PR description
The full mail composer now appends the user's signature at the end of the editor. Currently, parts of the Knowledge tour rely on the selector `.odoo-editor-editable > p:last-child` to select the last paragraph in the mail composer editable zone. Due to the addition of the signature, the last direct child of the editable zone is no longer a `p` element, causing the selector to fail and breaking the tour. To resolve this issue, we will replace the `:last-child` pseudo class with `:last-of-type`, ensuring it targets the last `p` element within the editable zone. This adjustment will allow the signature to be ignored, so it no longer interferes with the tour. see: https://github.com/odoo/odoo/pull/184695 task-4273520
Miscellaneous changes
Before this fix: As the default log level if set to INFO, having a 400 on mercado pago notification log does not help to further investigate the case After this fix: Unusual situatution logs that were in debug level were increased to WARNING level instead to be by default in logs files opw-4349957 Forward-Port-Of: odoo/odoo#189894
Original PR description
Before this fix: As the default log level if set to INFO, having a 400 on mercado pago notification log does not help to further investigate the case After this fix: Unusual situatution logs that were in debug level were increased to WARNING level instead to be by default in logs files opw-4349957 Forward-Port-Of: odoo/odoo#189894
Added base localization package for Lebanon 🇱🇧 , it includes the following: - Chart of Accounts - Taxes - Fiscal Positions Task: - 3927914 --- Forward-Port-Of: odoo/odoo#184602
Original PR description
Added base localization package for Lebanon 🇱🇧 , it includes the following: - Chart of Accounts - Taxes - Fiscal Positions Task: - 3927914 --- Forward-Port-Of: odoo/odoo#184602
Steps to reproduce: - open burndown chart of any project - add open/closed task filter Issue: - filters don't return anything in the burndown chart even though project contains open/closed tasks Sol: - add correct domain in open/closed task filter task-4295668 Forward-Port-Of: odoo/odoo#185850
Original PR description
Steps to reproduce: - open burndown chart of any project - add open/closed task filter Issue: - filters don't return anything in the burndown chart even though project contains open/closed tasks Sol: - add correct domain in open/closed task filter task-4295668 Forward-Port-Of: odoo/odoo#185850
current behaviour: when buggy server action is introduced, we don't handle it well, eg: ``` name = record.name if name != record.partner_id: raise UserError("Datatype") ``` here, comparing `name` and `record.partner_id` doesn't make sense, therefore our ORM default behaviour is to return false and rise `AttributeError`, but the problem occurs when pypdf2 attempts to format the warning message, which rises an error which isn't being handled: ``` File "/home/odoo/.local/lib/python3.
Original PR description
current behaviour: when buggy server action is introduced, we don't handle it well, eg: ``` name = record.name if name != record.partner_id: raise UserError("Datatype") ``` here, comparing `name` and…
current behaviour:
when buggy server action is introduced, we don't handle it well, eg:
```
name = record.name
if name != record.partner_id:
raise UserError("Datatype")
```
here, comparing `name` and `record.partner_id` doesn't make sense, therefore our ORM default behaviour is to return false and rise `AttributeError`, but the problem occurs when pypdf2 attempts to format the warning message, which rises an error which isn't being handled:
```
File "/home/odoo/.local/lib/python3.10/site-packages/PyPDF2/pdf.py", line 1069, in _showwarning
file.write(formatWarning(message, category, filename, lineno, line))
File "/home/odoo/.local/lib/python3.10/site-packages/PyPDF2/utils.py", line 69, in formatWarning
file = filename.replace("/", "\\").rsplit("\\", 1)[1] # find the file name
IndexError: list index out of range
```
it is problematic since it is server action.
expected behaviour:
Even when buggy code is introduced, comparision should return False and error should be handled well.
steps to reproduce:
1) Create new database from scratch and create server action with the buggy code above, set model to `sale.orde` and add it to `contextual action`
2) Go to any `sale.order` record and trigger the action. 3) it outputs the error.
4) please note that, if you restart the server, error doesn't happen, because places where override happens doesn't get invoked.
task-4365106
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#189688This commit fixes the wrong use of the contenteditable attribute inside the useSpellcheck implementation. Now, the isContentEditable attribute is used to find the right element. A test has been added too, using the contenteditable='true' attribute. Forward-Port-Of: odoo/odoo#189784 Forward-Port-Of: odoo/odoo#189728
Original PR description
This commit fixes the wrong use of the contenteditable attribute inside the useSpellcheck implementation. Now, the isContentEditable attribute is used to find the right element. A test has been added too, using the contenteditable='true' attribute. Forward-Port-Of: odoo/odoo#189784 Forward-Port-Of: odoo/odoo#189728
For `l10n_cg`, some taxes are unarchived. For `l10n_syscohada`, the type of some accounts is changed from Equity to Current liabilities or Current Asset. A missing account is also added. task-3848455 Forward-Port-Of: odoo/odoo#189491 Forward-Port-Of: odoo/odoo#163380
Original PR description
For `l10n_cg`, some taxes are unarchived. For `l10n_syscohada`, the type of some accounts is changed from Equity to Current liabilities or Current Asset. A missing account is also added. task-3848455 Forward-Port-Of: odoo/odoo#189491 Forward-Port-Of: odoo/odoo#163380
Normally, when using document versioning, the attachments linked to a record are re-attached to the document when changing the version. This is not compatible with the requirement for audit trail in Germany (GoBD) as we want to be sure that the document won't be deleted. This is ensure by making sure all the attachments stay attached, and can't be deleted. To reproduce: * Install Accounting and Documents, as well as l10n_de * Select/configure a German company * Create new document folder s
Original PR description
Normally, when using document versioning, the attachments linked to a record are re-attached to the document when changing the version. This is not compatible with the requirement for audit trail in Germany (GoBD) as we want to be sure that the document won't be deleted. This is ensure by making sure all the attachments stay attached, and can't be deleted. To reproduce: * Install Accounting and Documents, as well as l10n_de * Select/configure a German company * Create new document folder settings for Customer Invoices * Create a new invoice * Send & Print * Delete it from the attachments (it should "detach it") * Send & Print again [opw-4095549](https://www.odoo.com/odoo/project.task/4095549) Forward-Port-Of: odoo/odoo#189197 Forward-Port-Of: odoo/odoo#176360
Versions -------- - 16.0+ Steps (18.0+) ------------- 1. Have the `account_tax_python` module installed; 2. define a sales tax using "Custom Formula"; 3. define a formula based on `product.standard_price`; 4. have the tax enabled for products in eCommerce; 5. as a Public User, go to the eCommerce page. Issue ----- > 403: Forbidden Cause ----- Commit de302c2 changed the way company dependent fields are handled. Instead of computing them via `_compute_company_dependent`, they
Original PR description
Versions -------- - 16.0+ Steps (18.0+) ------------- 1. Have the `account_tax_python` module installed; 2. define a sales tax using "Custom Formula"; 3. define a formula based on `product.standard_price`; 4. have the tax enabled for products in eCommerce; 5. as a Public User, go to the eCommerce page. Issue ----- > 403: Forbidden Cause ----- Commit de302c2 changed the way company dependent fields are handled. Instead of computing them via `_compute_company_dependent`, they are now stored in the database. Before this this change, any `groups` restriction added to a field wasn't actually checked. After this change, it does get checked, leading to the 403 error. Solution -------- When computing taxes, pass `product` with `sudo` to ensure access to all necessary fields. opw-4354321 Forward-Port-Of: odoo/odoo#189490 Forward-Port-Of: odoo/odoo#189186
Steps to reproduce the bug (only on Safari): - Drag and drop 4-5 "Text" blocks onto the page. - Hide all of them in desktop view by clicking the "Hide on desktop" button for each one. This should create a list of "Invisible Elements" at the bottom of the right panel. - Drag and drop a "Text - Image" block onto the page. - Click the image in the "Text - Image" block. - In the image options, click the "Shape" selector. - Bug: The "Shape" selector is partially hidden behind the "Invisible E
Original PR description
Steps to reproduce the bug (only on Safari): - Drag and drop 4-5 "Text" blocks onto the page. - Hide all of them in desktop view by clicking the "Hide on desktop" button for each one. This should create a list of "Invisible Elements" at the bottom of the right panel. - Drag and drop a "Text - Image" block onto the page. - Click the image in the "Text - Image" block. - In the image options, click the "Shape" selector. - Bug: The "Shape" selector is partially hidden behind the "Invisible Elements" list, and it is not possible to scroll to the bottom of the "shapes" list to access the last shapes. After investigation, we found that the issue comes from the backdrop, which is positioned as sticky behind the shape selector. Since the backdrop isn't needed for the "shape selector" (it covers the entire right panel), we simply disabled it for the "shape selector". opw-4357397 Forward-Port-Of: odoo/odoo#189591
When having Accounting installed with a company without chart template, we can not create a partner as bot `property_account_payable_id` and `property_account_receivable_id` are required. With this commit we add a non stored computed field to handle the `required` attribute on the partner view. Note: a computed field with an `api.depends_context('company')` could no be used, because it wasn't not triggered at partner creation. It's a known ORM limitation. opw-4323694 Forward-Port-Of
Original PR description
When having Accounting installed with a company without chart template,
we can not create a partner as bot `property_account_payable_id` and
`property_account_receivable_id` are required.
With this commit we add a non stored computed field to handle the
`required` attribute on the partner view.
Note: a computed field with an `api.depends_context('company')` could no be used, because it wasn't not triggered at partner creation. It's a known ORM limitation.
opw-4323694
Forward-Port-Of: odoo/odoo#189487
Forward-Port-Of: odoo/odoo#189341Commit a94321b7e3eb5d056ca58d3d1b81c22999292ffb introduced a bug where purchase DIN 5008 templates for RFQs and purchase orders failed to render `din5008_document_information`, `din5008_address_block`, `din5008_document_title` because of incorrect use of `t-set` within the template inheritance structure, which prevented the values from being displayed. This fix relocates the `t-set` declarations to a scope where they can be properly executed and used. task-4089521 Forward-Port-Of: odoo/od
Original PR description
Commit a94321b7e3eb5d056ca58d3d1b81c22999292ffb introduced a bug where purchase DIN 5008 templates for RFQs and purchase orders failed to render `din5008_document_information`, `din5008_address_block`, `din5008_document_title` because of incorrect use of `t-set` within the template inheritance structure, which prevented the values from being displayed. This fix relocates the `t-set` declarations to a scope where they can be properly executed and used. task-4089521 Forward-Port-Of: odoo/odoo#188683
Commit 1e0183d506d265c978de61e5316e8d35fcbacb05 made sure that child addresses where the commercial fields (vat, company name, ...) are not displayed are considered valid since those fields will be taken from the commercial partner (parent contact). Nevertheless, the code in the argentinian localization doesn't handle the cases where those values are not provided, which led to a traceback being displayed to the customers, which shouldn't ever happen in the ecommerce checkout: > if afip_res
Original PR description
Commit 1e0183d506d265c978de61e5316e8d35fcbacb05 made sure that child addresses where the commercial fields (vat, company name, ...) are not displayed are considered valid since those fields will be taken from the commercial partner (parent contact). Nevertheless, the code in the argentinian localization doesn't handle the cases where those values are not provided, which led to a traceback being displayed to the customers, which shouldn't ever happen in the ecommerce checkout: > if afip_resp.code not in ['5', '9'] and id_type != cuit_id_type 'bool' object has no attribute 'code' This commit skips the validation in case those fields are not given. Either they are required and the main validation ensures they are provided (and they'll be verified by the override), or they are not provided and shouldn't be, in which case the validation can be skipped here. opw-4373610 Fixes #189227 Forward-Port-Of: odoo/odoo#189820 Forward-Port-Of: odoo/odoo#189312
**Steps to reproduce:** - Install Accounting and l10n_de - Switch to a German company - Configure the customer invoice journal to enable "XRechnung UBL (Germany)" - Create a German contact: * with a complete address * with an email address * without a VAT number - Create an invoice for the created contact - Confirm the invoice - Generate the electronic invoice - Validate the generated XML on an online XRechnung ValidationError **Issue:** The XRechnung (UBL Invoice) is not va
Original PR description
**Steps to reproduce:** - Install Accounting and l10n_de - Switch to a German company - Configure the customer invoice journal to enable "XRechnung UBL (Germany)" - Create a German contact: * with a…
**Steps to reproduce:** - Install Accounting and l10n_de - Switch to a German company - Configure the customer invoice journal to enable "XRechnung UBL (Germany)" - Create a German contact: * with a complete address * with an email address * without a VAT number - Create an invoice for the created contact - Confirm the invoice - Generate the electronic invoice - Validate the generated XML on an online XRechnung ValidationError **Issue:** The XRechnung (UBL Invoice) is not valid because the buyer electronic address is missing (cbc:EndpointID). **Cause:** `<cbc:EndpointID>` gets its value from contact's VAT, but the contact has no VAT. **Solution:** Since XRechnung 3.0.1, the email address can be used as electronic address with "EM" as schemeID. So, fallback on email address if contact has no VAT. **Reference:** https://www.e-rechnung-bund.de/standard-xrechnung-3-0-1/ https://blog.seeburger.com/xrechnung-version-3-0-1-comes-into-force-on-february-1-2024/ https://erechnungsvalidator.service-bw.de/ opw-4261026 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189183
Versions -------- - 16.0+ Steps ----- 1. Activate a second language; 2. create a new quotation template; 3. add a note & save change; 4. add a translation for the note & save change; 5. create a new sales order; 6. select the created quotation template; 7. set customer to a partner using the second language. Issue ----- The note is still displayed in English. Cause ----- The translation is saved on the `sale.order.template.line` model, so it has to get fetched from there.
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Activate a second language; 2. create a new quotation template; 3. add a note & save change; 4. add a translation for the note & save change; 5. create a new sales order; 6. select the created quotation template; 7. set customer to a partner using the second language. Issue ----- The note is still displayed in English. Cause ----- The translation is saved on the `sale.order.template.line` model, so it has to get fetched from there. Currently there is no logic in place to do this when changing the customer. Solution -------- Add an `onchange` method which reloads the template if no lines were added or removed. opw-4260006 Forward-Port-Of: odoo/odoo#188038
Versions -------- - 16.0+ Steps ----- 1. Schedule the "Calendar: Event Reminder" to run once a day; 2. create an event that started 2 hours ago, and ended 1 hour ago; 3. run the event reminder cron. Issue ----- A reminder email is sent, event though the event has passed. Cause ----- The alarm manager doesn't check whether the reminders it sends are still relevant. Solution -------- When looking querying events to send reminders for, ensure their `stop` date is before the
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Schedule the "Calendar: Event Reminder" to run once a day; 2. create an event that started 2 hours ago, and ended 1 hour ago; 3. run the event reminder cron. Issue ----- A reminder email is sent, event though the event has passed. Cause ----- The alarm manager doesn't check whether the reminders it sends are still relevant. Solution -------- When looking querying events to send reminders for, ensure their `stop` date is before the current time. opw-4191612 Forward-Port-Of: odoo/odoo#189479 Forward-Port-Of: odoo/odoo#189340
When `location_id` is None in `_get_rule` the line `while locations[-1].location_id` raises an IndexError. This commit fixes that by returning early with an empty recordset of stock.rule in case location_id is None. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188953
Original PR description
When `location_id` is None in `_get_rule` the line `while locations[-1].location_id` raises an IndexError. This commit fixes that by returning early with an empty recordset of stock.rule in case location_id is None. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188953
Versions -------- - saas-17.4+ Steps ----- 1. Create a pricelist; 2. add a rule using a cost-based formula; 3. add a 50% markup; 4. export pricelist, then delete or archive it; 5. import pricelist; 6. use pricelist on a quotation. Issue ----- The markup isn't applied. Cause ----- Commit 06d0053763cd added the `price_markup` field to `product.pricelist.item`. Whenever the markup is set/changed, the `price_discount` field is supposed to get set to its negative value. Currentl
Original PR description
Versions -------- - saas-17.4+ Steps ----- 1. Create a pricelist; 2. add a rule using a cost-based formula; 3. add a 50% markup; 4. export pricelist, then delete or archive it; 5. import pricelist;…
Versions -------- - saas-17.4+ Steps ----- 1. Create a pricelist; 2. add a rule using a cost-based formula; 3. add a 50% markup; 4. export pricelist, then delete or archive it; 5. import pricelist; 6. use pricelist on a quotation. Issue ----- The markup isn't applied. Cause ----- Commit 06d0053763cd added the `price_markup` field to `product.pricelist.item`. Whenever the markup is set/changed, the `price_discount` field is supposed to get set to its negative value. Currently this only happens in an `onchange` method, which does not get called during import: https://github.com/odoo/odoo/blob/9905de54a55b6d77f67772dde7b2d0ea21adaff1/addons/product/models/product_pricelist_item.py#L322-L325 The value of `price_discount` is what eventual price calculations are based on, so if this isn't updated along with `price_markup`, any price mark-up gets ignored. Solution -------- Ensure `price_markup` & `price_discount` are consistent with each other on using `_compute_price_markup` and `_inverse_price_markup`. opw-4282087 Forward-Port-Of: odoo/odoo#189017
Since [1], the `tel://` protocol was adopted instead of `tel:`. However, URIs cannot contain space characters, which can lead to invalid URIs in certain cases. Steps to reproduce: - Open the website editor. - Attempt to edit the phone number in the header. - The URI becomes invalid due to the presence of a space character. This commit resolves the issue by removing space characters from the URI, ensuring it remains valid. [1]: https://github.com/odoo/odoo/commit/6d4a3b3ab5c0f3
Original PR description
Since [1], the `tel://` protocol was adopted instead of `tel:`. However, URIs cannot contain space characters, which can lead to invalid URIs in certain cases.
Steps to reproduce:
- Open the website editor.
- Attempt to edit the phone number in the header.
- The URI becomes invalid due to the presence of a space character.
This commit resolves the issue by removing space characters from the URI, ensuring it remains valid.
[1]:
https://github.com/odoo/odoo/commit/6d4a3b3ab5c0f3361d1d681d05b974e295dcbabe
opw-4354614
Forward-Port-Of: odoo/odoo#188964Steps to reproduce ================== - In 18, install documents,project - Open a project then a task - Switch to a mobile view and refresh the page - The lightning icon is smaller than the cog icon Cause of the issue ================== https://github.com/odoo/odoo/pull/188986 An overflow was applied on the entire oe_stat_button Solution ======== We can move the overflow to the `o_field_statinfo` This is better than before as now the ellipsis is visible. task-4377703
Original PR description
Steps to reproduce ================== - In 18, install documents,project - Open a project then a task - Switch to a mobile view and refresh the page - The lightning icon is smaller than the cog icon Cause of the issue ================== https://github.com/odoo/odoo/pull/188986 An overflow was applied on the entire oe_stat_button Solution ======== We can move the overflow to the `o_field_statinfo` This is better than before as now the ellipsis is visible. task-4377703 Forward-Port-Of: odoo/odoo#189780
The issue: Starting with version 17.4, the Odoo banner displaying the invoice name on original bills is only added if the attached PDF uses US Letter paper size and is oriented vertically. How to reproduce the issue: -Upload any invoice with a non-standard format -Print -> Original Bills Explanation: Since saas-17.4, the PyPDF2 library version was upgraded from 1.26.0 to 2.12.1. In version 1.26.0, the canvas dimensions were automatically adjusted when merging with non-standard page siz
Original PR description
The issue: Starting with version 17.4, the Odoo banner displaying the invoice name on original bills is only added if the attached PDF uses US Letter paper size and is oriented vertically. How to reproduce the issue: -Upload any invoice with a non-standard format -Print -> Original Bills Explanation: Since saas-17.4, the PyPDF2 library version was upgraded from 1.26.0 to 2.12.1. In version 1.26.0, the canvas dimensions were automatically adjusted when merging with non-standard page sizes. However, in version 2.12.1, this behavior no longer occurs, resulting in the banner not appearing correctly on non-standard formats. opw-4278031 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186947
With this commit, the useless scroll bar in refuse reason wizard is removed. task-4270277 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#189320 Forward-Port-Of: odoo/odoo#184539
Original PR description
With this commit, the useless scroll bar in refuse reason wizard is removed. task-4270277 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#189320 Forward-Port-Of: odoo/odoo#184539
before this commit, when users applied a filter Invoice or Other in the My Invoices portal and then changed the page number, the selected filter was removed, resetting to the default view. This commit resolves the issue by ensuring the filterby parameter is preserved in the pager's url_args, allowing the selected filter to persist across pagination. opw-4367525 Forward-Port-Of: odoo/odoo#188930
Original PR description
before this commit, when users applied a filter Invoice or Other in the My Invoices portal and then changed the page number, the selected filter was removed, resetting to the default view. This commit resolves the issue by ensuring the filterby parameter is preserved in the pager's url_args, allowing the selected filter to persist across pagination. opw-4367525 Forward-Port-Of: odoo/odoo#188930
The Profit&Loss and Balance Sheet have now a "Note" column, that contains a code that will help cross reference the Note Report (currently not implemented in odoo). Also, "Gross" and "Depreciation" columns are added to the Balance Sheet. Community PR: https://github.com/odoo/odoo/pull/163380 task-3848455 Forward-Port-Of: odoo/enterprise#75087 Forward-Port-Of: odoo/enterprise#61473
Original PR description
The Profit&Loss and Balance Sheet have now a "Note" column, that contains a code that will help cross reference the Note Report (currently not implemented in odoo). Also, "Gross" and "Depreciation" columns are added to the Balance Sheet. Community PR: https://github.com/odoo/odoo/pull/163380 task-3848455 Forward-Port-Of: odoo/enterprise#75087 Forward-Port-Of: odoo/enterprise#61473
Versions -------- - 17.0+ Steps ----- 1. Create an appointment type with availability base on resources; 2. have multiple resources to select from; 3. copy share URL; 4. open URL; 5. select a different resource. Issue ----- The resource name in the right column doesn't update to the selected resource. Cause ----- There's no logic in place to update it after selecting a different resource. Solution -------- For user-based appointments, this part isn't shown as long as th
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Create an appointment type with availability base on resources; 2. have multiple resources to select from; 3. copy share URL; 4. open URL; 5. select a different resource. Issue ----- The resource name in the right column doesn't update to the selected resource. Cause ----- There's no logic in place to update it after selecting a different resource. Solution -------- For user-based appointments, this part isn't shown as long as there's multiple options available. Expand this logic to also work for resource-based appointments. Also modify it to now show details on date selection step unless there's only one option to select from (instead of unless pictures should be shown). With `website_appointment`, this is also the case when a separate selection screen was shown beforehand. opw-4355438 Forward-Port-Of: odoo/enterprise#75247 Forward-Port-Of: odoo/enterprise#75006
Normally, when using document versioning, the attachments linked to a record are re-attached to the document when changing the version. This is not compatible with the requirement for audit trail in Germany (GoBD) as we want to be sure that the document won't be deleted. This is ensure by making sure all the attachments stay attached, and can't be deleted. To reproduce: * Install Accounting and Documents, as well as l10n_de * Select/configure a German company * Create new document folder s
Original PR description
Normally, when using document versioning, the attachments linked to a record are re-attached to the document when changing the version. This is not compatible with the requirement for audit trail in Germany (GoBD) as we want to be sure that the document won't be deleted. This is ensure by making sure all the attachments stay attached, and can't be deleted. To reproduce: * Install Accounting and Documents, as well as l10n_de * Select/configure a German company * Create new document folder settings for Customer Invoices * Create a new invoice * Send & Print * Delete it from the attachments (it should "detach it") * On the document, change the main history version, or on the invoice, navigate through the attachments [opw-4095549](https://www.odoo.com/odoo/project.task/4095549) Forward-Port-Of: odoo/enterprise#68235
When having Accounting installed with a company without chart template, we can not create a partner as bot `property_account_payable_id` and `property_account_receivable_id` are required. With ff54822738925d5b5b952520bbfbd4a76c876809 we add a non stored computed field to handle the `required` attribute on partner view. We use this field to make the `Accounting Entries` group invisble when it is not needed. opw-4323694 Forward-Port-Of: odoo/enterprise#75084 Forward-Port-Of: odoo/enterprise#749
Original PR description
When having Accounting installed with a company without chart template, we can not create a partner as bot `property_account_payable_id` and `property_account_receivable_id` are required. With ff54822738925d5b5b952520bbfbd4a76c876809 we add a non stored computed field to handle the `required` attribute on partner view. We use this field to make the `Accounting Entries` group invisble when it is not needed. opw-4323694 Forward-Port-Of: odoo/enterprise#75084 Forward-Port-Of: odoo/enterprise#74994
In a production setup: - Create an invoice and sign it - Ask for a cancellation rejected by the customer => an invoice_request_cancel document is created - Ask for another cancellation request => another invoice_request_cancel document is created - Trigger the SAT to approve the second cancellation request => The first invoice_request_cancel document is unlink. Forward-Port-Of: odoo/enterprise#74753
Original PR description
In a production setup: - Create an invoice and sign it - Ask for a cancellation rejected by the customer => an invoice_request_cancel document is created - Ask for another cancellation request => another invoice_request_cancel document is created - Trigger the SAT to approve the second cancellation request => The first invoice_request_cancel document is unlink. Forward-Port-Of: odoo/enterprise#74753
Withholding tax information is missing when printing report 'Delivery Guide SII DTE 52 (CL)' from a delivery Steps to reproduce: - With a CL Company setup - Have a product with main 19% tax and a withholding tax - Create a SO with the product - Confirm - Open Delivery - Validate - Print menu > Delivery Guide SII DTE 52 (CL) Issue: Only VAT 19% tax is present in the report, withholding tax is missing (even if the total is correct) This occurs because the 'withholding' var is inside
Original PR description
Withholding tax information is missing when printing report 'Delivery Guide SII DTE 52 (CL)' from a delivery Steps to reproduce: - With a CL Company setup - Have a product with main 19% tax and a withholding tax - Create a SO with the product - Confirm - Open Delivery - Validate - Print menu > Delivery Guide SII DTE 52 (CL) Issue: Only VAT 19% tax is present in the report, withholding tax is missing (even if the total is correct) This occurs because the 'withholding' var is inside another dict Issue2: 'tax_name' is not present in the rendered data, so we need to add it Issue3: withholding amount will be shown without associated currency opw-4214377 Forward-Port-Of: odoo/enterprise#75196 Forward-Port-Of: odoo/enterprise#73926
Since `xlrd >= 2.0` dropped XLSX support, we use `openpyxl` to open XLSX files if the `xlrd >= 2.0` is installed.[^1] However, the tests in `account_base_import` are skipped unless `xlrd.xlsx` can be imported. As a result, they are not run on runbot, where `xlrd >= 2.0` is installed. We therefore need to avoid skipping them if openpyxl is installed. runbot-108001 [^1]: https://github.com/odoo/odoo/pull/169245 Forward-Port-Of: odoo/enterprise#74676 Forward-Port-Of: odoo/enterprise#74
Original PR description
Since `xlrd >= 2.0` dropped XLSX support, we use `openpyxl` to open XLSX files if the `xlrd >= 2.0` is installed.[^1] However, the tests in `account_base_import` are skipped unless `xlrd.xlsx` can be imported. As a result, they are not run on runbot, where `xlrd >= 2.0` is installed. We therefore need to avoid skipping them if openpyxl is installed. runbot-108001 [^1]: https://github.com/odoo/odoo/pull/169245 Forward-Port-Of: odoo/enterprise#74676 Forward-Port-Of: odoo/enterprise#74608
### Before this PR: If you create new internal transfer with src location WH/Stock and than you scan a package that is on a sublocation of WH/Stock , the source location on the line is not set as the location of the package so when you validate in this situation an error pops because Odoo try to take the package from a different location of the package ### After this PR: The right location id is taken from the stock.quant and put on the line created Forward-Port-Of: odoo/enterprise#75169 F
Original PR description
### Before this PR: If you create new internal transfer with src location WH/Stock and than you scan a package that is on a sublocation of WH/Stock , the source location on the line is not set as the location of the package so when you validate in this situation an error pops because Odoo try to take the package from a different location of the package ### After this PR: The right location id is taken from the stock.quant and put on the line created Forward-Port-Of: odoo/enterprise#75169 Forward-Port-Of: odoo/enterprise#74704
steps to reproduce: - Install documents_account - In Settings -> File centralization -> Activate "Accounting" - Then click on Journals below - Then add Jounal: Vendor Bill, Workspace: Finance - Then upload a file in the app Documents, in the workspace Finance - Select that file and update the partner to Azure Interior - Click on the action "Create Vendor Bill" The partner "Azure Interior" is not set on the created account move while it should. For fixing this adding ``partner_id`` o
Original PR description
steps to reproduce: - Install documents_account - In Settings -> File centralization -> Activate "Accounting" - Then click on Journals below - Then add Jounal: Vendor Bill, Workspace: Finance - Then…
steps to reproduce: - Install documents_account - In Settings -> File centralization -> Activate "Accounting" - Then click on Journals below - Then add Jounal: Vendor Bill, Workspace: Finance - Then upload a file in the app Documents, in the workspace Finance - Select that file and update the partner to Azure Interior - Click on the action "Create Vendor Bill" The partner "Azure Interior" is not set on the created account move while it should. For fixing this adding ``partner_id`` of document if present. Now question may arise why account.move having null partner_id. because it being [set](https://github.com/odoo/enterprise/blob/64fc38a80520cfeeb81c0bb329c6b24c3e9454e1/documents_account/models/documents_workflow_rule.py#L77) after creating [attachment](https://github.com/odoo/enterprise/blob/64fc38a80520cfeeb81c0bb329c6b24c3e9454e1/documents_account/models/documents_workflow_rule.py#L76) and during create attachment ``document.partner_id`` is set to null and issue is raised. opw-4077356 Forward-Port-Of: odoo/enterprise#74875
Before this commit, when opening a table with an order, the draft order would not be shown. This was because, when there was no order to sync, the sync function was not called to retrieve the orders from the server. This is needed in the restaurant module. opw-4370055 Forward-Port-Of: odoo/enterprise#74909
Original PR description
Before this commit, when opening a table with an order, the draft order would not be shown. This was because, when there was no order to sync, the sync function was not called to retrieve the orders from the server. This is needed in the restaurant module. opw-4370055 Forward-Port-Of: odoo/enterprise#74909
Add check if date string is not equal to "000000" before parsing it, in record types that were missing this check. Some banks provide CODA files with the date set to "000000" which caused the `_parse_bank_statement_file` method to raise an exception and fail to parse such files. Using the `statement['date']` as a fallback in such case, as it is already used for `balance_start_date` and `transactionDate` fields. task-4348031 Forward-Port-Of: odoo/enterprise#74640
Original PR description
Add check if date string is not equal to "000000" before parsing it, in record types that were missing this check. Some banks provide CODA files with the date set to "000000" which caused the `_parse_bank_statement_file` method to raise an exception and fail to parse such files. Using the `statement['date']` as a fallback in such case, as it is already used for `balance_start_date` and `transactionDate` fields. task-4348031 Forward-Port-Of: odoo/enterprise#74640
There are several issues with the company of the folders and the field `documents_spreadsheet_folder_id` of a company. To reproduce the issue 01: 1. Create a second company 2. Documents > Configuration > Workspaces, edit "Spreadsheet": - Set a company Step 01, `documents_spreadsheet_folder_id` of the second company is set to "Spreadsheet" folder thanks to a default value on the field. But, looking at the DB after the second step, there is an error: both companies still have the f
Original PR description
There are several issues with the company of the folders and the field `documents_spreadsheet_folder_id` of a company. To reproduce the issue 01: 1. Create a second company 2. Documents >…
There are several issues with the company of the folders and the field `documents_spreadsheet_folder_id` of a company. To reproduce the issue 01: 1. Create a second company 2. Documents > Configuration > Workspaces, edit "Spreadsheet": - Set a company Step 01, `documents_spreadsheet_folder_id` of the second company is set to "Spreadsheet" folder thanks to a default value on the field. But, looking at the DB after the second step, there is an error: both companies still have the folder "Spreadsheet" defined on `documents_spreadsheet_folder_id`, but this folder is now specific to one company. Step 2 should not be possible, a constraint is missing. To reproduce the issue 02: 1. Repeat above steps 1-2 2. Create a third company Looking at the DB, there is also an error with the third company: the default value has been used for it, even though the folder is now company-specific and can't be used anymore. The default value should be improved to handle this situation. Also, it should not be possible to use such record on the field. Since there is already the attribute `check_company=True` on `documents_spreadsheet_folder_id`, we could therefore add the attribute `_check_company_auto` on the model and take advantage of the ORM: https://github.com/odoo/odoo/blob/f323896028114acb36848b605732797b67fd7da4/odoo/models.py#L614-L618 However, this change would be too invasive on stable, hence the ORM constraint as alternative. OPW-4281530 Forward-Port-Of: odoo/enterprise#74845 Forward-Port-Of: odoo/enterprise#74189
Issue: When printing PDF reports, long account names cause the report to overflow out of the page. Steps to reproduce: - Install the accounting app - Enable "Analytic Accounting" in the settings - Create one (or more) analytic account(s) with very long names - Open either "Balance Sheet" or "Profit and Loss" reporting - Do an "Analytic Group By" with the created account(s) - Print the PDF Cause: The default style in the associated scss file does not use wrapping. https://github.co
Original PR description
Issue: When printing PDF reports, long account names cause the report to overflow out of the page. Steps to reproduce: - Install the accounting app - Enable "Analytic Accounting" in the settings -…
Issue: When printing PDF reports, long account names cause the report to overflow out of the page. Steps to reproduce: - Install the accounting app - Enable "Analytic Accounting" in the settings - Create one (or more) analytic account(s) with very long names - Open either "Balance Sheet" or "Profit and Loss" reporting - Do an "Analytic Group By" with the created account(s) - Print the PDF Cause: The default style in the associated scss file does not use wrapping. https://github.com/odoo/enterprise/blob/bf6c64b8fd5591f271e9b0f18f40d205a64cd5bd/account_reports/static/src/scss/account_pdf_export_template.scss#L41 Solution: Override the default style by using the "o_overflow_name" class. This is the class already used for handling overflow in the tables' content lines. This gives a more readable result than just editing the "white-space" field (see below for comparison). The proposed solution gives the following result:  As opposed to just editing to "white-space: wrap;"  Ticket: opw-4277596 Forward-Port-Of: odoo/enterprise#74927 Forward-Port-Of: odoo/enterprise#73761
useEffect hook on pdf_manager generates file urls from documents ids, before this commit documents comming from activity view didn't have id key set. Reproduce --- - install document - open documents activity view, schedule an activity with a document (that is possible to split) - attempt to split the document -> Traceback opw-4163726 Forward-Port-Of: odoo/enterprise#70531
Original PR description
useEffect hook on pdf_manager generates file urls from documents ids, before this commit documents comming from activity view didn't have id key set. Reproduce --- - install document - open documents activity view, schedule an activity with a document (that is possible to split) - attempt to split the document -> Traceback opw-4163726 Forward-Port-Of: odoo/enterprise#70531
To reproduce: ============= 1. Go to Documents app 2. Upload a PDF file (one of the attached on the opw) 3. Click on the file to open it 4. Click on the "Split" button the pages on the preview are not displayed correctly Problem: ======== these pdf files, the pages are rotated by 270 degrees so when splitting the pages, the rotation is not taken into account and set to 0 degrees Solution: ========= - set the rotation of the pages to the original rotation when splitting the pdf
Original PR description
To reproduce: ============= 1. Go to Documents app 2. Upload a PDF file (one of the attached on the opw) 3. Click on the file to open it 4. Click on the "Split" button the pages on the preview are not displayed correctly Problem: ======== these pdf files, the pages are rotated by 270 degrees so when splitting the pages, the rotation is not taken into account and set to 0 degrees Solution: ========= - set the rotation of the pages to the original rotation when splitting the pdf opw-4216158 Forward-Port-Of: odoo/enterprise#75011
Steps: - Create a new helpdesk team. - Open tickets of that team. - Delete all ticket stages Issue: - If all the stages are deleted then the blank screen appears instead of shadow data. Cause: - Only `helpdesk.ticket` was being validated, but `helpdesk.stage.delete.wizard` was not included in the check. Fix: - The issue has been fixed by replacing active_model with default_team_id. task-4290529 Forward-Port-Of: odoo/enterprise#75229 Forward-Port-Of: odoo/enterprise#72954
Original PR description
Steps: - Create a new helpdesk team. - Open tickets of that team. - Delete all ticket stages Issue: - If all the stages are deleted then the blank screen appears instead of shadow data. Cause: - Only `helpdesk.ticket` was being validated, but `helpdesk.stage.delete.wizard` was not included in the check. Fix: - The issue has been fixed by replacing active_model with default_team_id. task-4290529 Forward-Port-Of: odoo/enterprise#75229 Forward-Port-Of: odoo/enterprise#72954