Friday, December 6, 2024
30 changes
1 change
Resolved issues and error corrections
Stock moves are now classified more accurately when a group contains mixed availability statuses, such as some items being available while others are expected or late. This helps users see a more reliable availability status for inventory operations and plan fulfillment more confidently.
Original PR description
Currently, the availability filter for moves is too rigid. It works well for both 'Available' and 'Not Available', but it fails to consider different states when it comes to 'Expected' and 'Late' states. Let's say we have the following moves: - move 1 is 'Available' - move 2 is 'Expected' Currently, it would not consider it as 'Expected', as not *all* moves are 'Expected', which is wrong in this case. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
10 changes
Enhancements to existing features
Website editors can now choose Appointments and Knowledge Articles directly in the search bar building block's search scope options. This makes the visible choices match what is already searched under "Everything" and uses a clearer book icon for knowledge articles to avoid confusion with forums.
Original PR description
 
Specification:
- Add new objects in 'search within' option of s_searchbar
snippet.
- The list must contain all objects that are searched when
"Everything" is selected in "search within" toggler.
- Change the 'knowledge article' icon to "fa-book" from "fa-comment-o".
Before this commit:
- In search building block options, there were missing
`knowledge articles` and `Appointments` objects in
`search within` options.
After this commit:
- Added two new searchable objects "knowledge articles" and
"Appointments" in "search within" option.
- Icon for knowledge article is changed to fa-book to avoid
confusion with forums because both has same icons.
task-3060611Planning screens are easier to read with cleaner list labels, less visual noise in Gantt progress bars, and more relevant calendar filters. This helps users find planned work and their resources faster during scheduling.
Original PR description
Planning Slots: List view: - Hide resources' job title. - Rename `Start Date` column label to `Planned Date`. Gantt view: - Remove the warning in the progress bar. Calendar view: - Display the resources of the current user on top of the filter panel. task-3823383
Restaurant kitchen preparation cards now remain unchanged when an order is merged from one table into another. This prevents previously sent items from being incorrectly cancelled after merging or unmerging tables, reducing kitchen confusion and order mistakes.
Original PR description
Before this commit: ==================== - When items were ordered on Table 1 and then merged into Table 2, the preparation card for Table 1 was cancelled, and a new card was created for Table 2. After this commit: ================== - The preparation card for Table 1 remains intact even after merging its order with another table. - Upon unmerging, order lines from Table 1 are not automatically canceled and will remain intact when the order, along with any new lines, is sent back to the kitchen display for processing. Task- 4224207 Related Community PR: https://github.com/odoo/odoo/pull/188183
This update streamlines how Odoo loads and filters application menus, reducing unnecessary database checks and improving performance when menu data is cached. It also updates related tests and enterprise menu customizations to align with the improved behavior, with no expected change to day-to-day user workflows.
Original PR description
See https://github.com/odoo/odoo/pull/188278 ### [IMP] web: improve test_web_icon For the commit in community, it is important to have a realistic behavior and avoid patching the `search` method without calling the original one, because the current implementation only works with the override of `search_fetch`. ### [REF] base: refactor ir.ui.menu search_fetch Get rid of the 'ir.ui.menu.full_list' context. See community PR. ### [IMP] base: improve perf of _visible_menu_ids Improve the performance of _visible_menu_ids() to speed up load_menus() when the orm is cached. Avoid using ref because it always makes a SQL query for check the existence of the attached record. In this case, we don't care. task-4360403
Users can now copy a selected sign item and paste it elsewhere in a document using keyboard shortcuts. This makes preparing signature templates faster and reduces repetitive setup work.
Original PR description
This commit aims to add the ability of copying sign items using ctrl+c and ctrl+v. The user can: 1. click on sign item 2. hit ctrl+c 3. navigate to the desired position on any page and do a mouse click 4. hit ctrl+v and a new copy appears! task: 4069487
Gantt items now show their start and end dates only when those dates are not visible within the current timeline view. This makes schedules easier to read with dynamic date ranges and year views, while avoiding unnecessary date text when the timeline already shows the information.
Original PR description
In the past, there used to be just "static" scales (day, week, month, year) in the gantt view. For a given scale, we displayed the start and end dates of a record when it spanned across several units of that scale, because then, you couldn't see both limits at once. For example, when the scale is in weeks and the current focus is this week, we display the dates of a record if it starts this week and ends on next week, because you can't see the end of it. Now that it is possible to set the start and end date of the period that is displayed more dynamically, we want to keep this rationale "we display the dates if you can't see them graphically". So we display the start and end dates of the record if it starts before the start of the period or ends after the end of the period, no matter the "scale". task-3974394
Planning, Project, and Field Service Gantt views now display a progress bar on total rows, including selected grouped planning views. This helps managers quickly understand overall workload progress without opening individual items.
Payslips can no longer be generated for employees who do not have a valid contract covering the payslip period. This helps prevent incorrect payroll processing and reduces the risk of paying employees outside approved employment terms.
Original PR description
Before this commit, a payslip was generated for employees even if they didn't have a valid contract for the payslip duration. This commit brings a restriction on payslip generation, preventing it if the employee doesn't have a valid contract for the payslip duration. task-3810418
The Timesheets settings action now opens employees in a list that shows the billable time target fields directly. This makes it clearer what managers need to fill in and allows faster bulk updates across employees.
Original PR description
Before this commit, when the user would like to set billable time targets to his employees and clicks on `Set Employee Billable Time Targets` action displayed in `Timesheets > Configuration > Settings` when `Billing Rate Indicators` is enabled. The user will be redirected to the kanban view of employees but he does not really know which field he has to set if he tries the feature, and he has to go to the form view and find the field and set it for each employee using timesheets app. This commit reviews the action loaded in that button to directly show the list view with the fields needed. By doing that, the user will directly see the field to set for his employees and he will be able to mass edit thanks to the list view. task-4179246
Resolved issues and error corrections
Field service reports now include the time and materials section even when custom worksheets are turned off. This ensures customers and teams can still see added products in sent or downloaded reports, avoiding incomplete service documentation.
Original PR description
Steps: - Open Field Service - Open any task - Add products then go to task - Send report or download report Issue: - In field service report there is no 'time and material' section visible when 'custom worksheets' feature disabled in settings. Cause: - worksheet_custom_report_template is in industry_fsm_sale_report so when we disable 'custom worksheets' feature in settings the industry_fsm_sale_report is uninstalled so that the 'time & material' section is not visible Fix: - Add worksheet_custom_report_template in industry_fsm_sale so that it always visible when add the product. task-3484413
18 changes
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
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 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 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
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
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
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
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.
1 change
Resolved issues and error corrections
This update ensures Odoo complies with Mexican tax regulations regarding invoices for national sales. Specifically, it adds the customs emission date to invoice lines, fulfilling requirements outlined in the CFDI guide. This change is necessary for accurate tax reporting in the Mexican market.
Original PR description
To comply with Mexican tax regulations (Article 29-A, section VII of the Fiscal Code and the CFDI guide, pg. 22), both the customs number and its emission date must be included in product descriptions for national sales. This commit adds the date(s) of the emission of the customs number(s) to every customer invoice line label task-4132754 Forward-Port-Of: odoo/enterprise#74475