Search
Navigate
Branch
Thursday, May 30, 2024
66 changes
22 changes
Resolved issues and error corrections
This fix ensures permission checks for newly created or unsaved users return a safe negative result instead of causing an error. It improves reliability in workflows where user records may be checked before they are fully saved.
Original PR description
opw-3940549 opw-3943985 opw-3943909 opw-3937897 opw-3932111
This fixes default mail activity test records so they are treated as active and can be found during standard searches. It improves the reliability of mail-related automated tests and mock data behavior without changing end-user features.
Original PR description
**Before this PR:** Default records in `mail_activity` mock model are not set active by default, as a result when you do search operation on `mail.activity` it will check `active_test` and won't return these records. **After this PR:** Setting `active` true so these records would pass `active_test`. Part of task-[3818666](https://www.odoo.com/odoo/project/1519/tasks/3818666?debug=&cids=2) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where the message chatter panel appeared inside pop-up dialogs, such as when opening a Time Off calendar entry. The change keeps dialogs cleaner and prevents users from seeing an unexpected communication panel where it should not be shown.
Original PR description
Before this commit, the chatter was shown in dialog when it should never. Steps to reproduce: - Install Time Off (`hr_holidays`) - Open Time Off app - Click on a date in the calendar view => The chatter is visible in dialog when it shouldn't This happens because the Chatter hook had a `t-if` on `!env.inDialog`, but it was overridden by another `t-if` on layout. As a result, the view template never took into consideration of `!env.inDialog`. This commit fixes the issue by properly combining the 2 `t-if` together. task-3957107
Miscellaneous changes
We prepare the following fix by adding a modelParam getter that can be overridden by sub-classes. How to reproduce: 1. Schedule an activity for a document. 2. Go to activity view. 3. Select the document to preview in the inspector. 4. Rename the document. 5. Refresh the page. The document name is not renamed. In the kanban and list view, the document is updated because multiEdit model parameter is enabled. It is not the case for the activity view. Similarly to what is done in li
Original PR description
We prepare the following fix by adding a modelParam getter that can be overridden by sub-classes. How to reproduce: 1. Schedule an activity for a document. 2. Go to activity view. 3. Select the document to preview in the inspector. 4. Rename the document. 5. Refresh the page. The document name is not renamed. In the kanban and list view, the document is updated because multiEdit model parameter is enabled. It is not the case for the activity view. Similarly to what is done in list and kanban controller, we add a modelParam getter to the activity controller to allow to override the parameters in subclasses which will allows to enable the multiEdit parameter in the document activitty controller. Task-3817795 Forward-Port-Of: odoo/odoo#164052 Forward-Port-Of: odoo/odoo#158874
34 changes
New functionality added to Odoo
This update makes it easier to create products from barcode lookup data in Point of Sale and stock barcode workflows. It enriches new products with more available details such as images, dimensions, volume, and attributes, while limiting creation to administrators and adding API key authentication checks.
10 changes
Enhancements to existing features
This update improves the Belgian payroll system by adding tracking to employee marital status information. Since marital status affects tax withholding calculations, this change ensures the system can monitor and audit changes to this critical employee data for compliance purposes.
Original PR description
This will add tracking to some employee field that have an impact on withholding taxes. Task: 3879035
Current behavior: When an iot device is linked to the PoS and invoice report, you had an error because action service and iot_websocket service where not available. Steps to reproduce: - Install pos_iot - Set an iot_device printer on the pos session - Set an iot_device on the report of the invoice - Open session, make an order and invoice it - You get an error opw-3792576 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo
Original PR description
Current behavior: When an iot device is linked to the PoS and invoice report, you had an error because action service and iot_websocket service where not available. Steps to reproduce: - Install pos_iot - Set an iot_device printer on the pos session - Set an iot_device on the report of the invoice - Open session, make an order and invoice it - You get an error opw-3792576 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165798
This commit implements a new (bridge) module that adds the spanish TBai QR code on the Point of Sale checkout order receipt. Problem: Right now, with the l10n_es_pos, it works when the EDI is SII as it creates the invoice automatically and sends it in the background. In the case of simplified invoices, we even skipped the downloading of the PDF because that takes time. But there, you do not need any response from the government to show to your client. With TicketBai however, this is differe
Original PR description
This commit implements a new (bridge) module that adds the spanish TBai QR code on the Point of Sale checkout order receipt. Problem: Right now, with the l10n_es_pos, it works when the EDI is SII as it creates the invoice automatically and sends it in the background. In the case of simplified invoices, we even skipped the downloading of the PDF because that takes time. But there, you do not need any response from the government to show to your client. With TicketBai however, this is different, as we need the QR code on the ticket. Solution: when processing the data in the PoS payment, we look for the move created and asks for the qr url right away. If it doesn't have them (because the sending is not done yet), we synchronously call the post method and get the url. This URL is then transfered to the javascript code and eventually the XML of the receipt, where the QR code is shown. task-id: 3916236 Forward-Port-Of: odoo/odoo#166019
There is a traceback when editing the `amount_currency` field in the "Journal Items" tab of an inovice. It happens when account_3way_match is installed. The commit that introduced the traceback: 87a1ebb338277e45d2367344c212d4867405b7a4 Related commit setting the `bin_size` key to `True` ebd538a1942c532bcf1c9deeab3c25efe23b6893 A test was added to the account_3way_match module in the related enterprise PR. enterprise PR: https://github.com/odoo/enterprise/pull/63339 related PR: t
Original PR description
There is a traceback when editing the `amount_currency` field in the "Journal Items" tab of an inovice. It happens when account_3way_match is installed. The commit that introduced the traceback: 87a1ebb338277e45d2367344c212d4867405b7a4 Related commit setting the `bin_size` key to `True` ebd538a1942c532bcf1c9deeab3c25efe23b6893 A test was added to the account_3way_match module in the related enterprise PR. enterprise PR: https://github.com/odoo/enterprise/pull/63339 related PR: that fixes account_3way_match: https://github.com/odoo/enterprise/pull/63336 (16.0) Forward-Port-Of: odoo/odoo#167014
Before this commit, drag-and-drop functionality for groups/records in the kanban view did not work properly if the user lacked write access. Steps to Reproduce: - Log in to Odoo as Marc Demo. - Open the Project module. - Attempt to drag and drop any group/record in the kanban view. Observed Behavior: The group in the kanban view does not reset to its original position if the user lacks the right to reorder the groups/records, rendering the group/record immovable. Expected Behavior
Original PR description
Before this commit, drag-and-drop functionality for groups/records in the kanban view did not work properly if the user lacked write access. Steps to Reproduce: - Log in to Odoo as Marc Demo. - Open the Project module. - Attempt to drag and drop any group/record in the kanban view. Observed Behavior: The group in the kanban view does not reset to its original position if the user lacks the right to reorder the groups/records, rendering the group/record immovable. Expected Behavior: The group in the kanban view should reset to its original position if the user lacks the right to reorder the groups/records. After this commit, drag-and-drop functionality for groups/records in the kanban view now works properly, even if the user does not have write access. Task ID: 3865617 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166881 Forward-Port-Of: odoo/odoo#164879
Purpose ======= Fix the course title which was truncated with a single letter in the website breadcrumbs. Specification ============= The course title breadcrumb had its width limited by a w-25 class which always prevented the title from being fully visible. Removing that class and allowing each breadcrumb to take the whole available width before being truncated. Also adding the "title" attribute on each breadcrumb so that, even truncated, hovering on it will still make them readable.
Original PR description
Purpose ======= Fix the course title which was truncated with a single letter in the website breadcrumbs. Specification ============= The course title breadcrumb had its width limited by a w-25 class which always prevented the title from being fully visible. Removing that class and allowing each breadcrumb to take the whole available width before being truncated. Also adding the "title" attribute on each breadcrumb so that, even truncated, hovering on it will still make them readable. Co-authored-by: pko-odoo pko@odoo.com Co-authored-by: amdi-odoo amdi@odoo.com Task-3876972 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#167013 Forward-Port-Of: odoo/odoo#165625
Update tax codes: - IVA 5% (411, Bienes) -> _IVA 5% (435, Bienes) (code_base: 435, code_applied: 445)_ - IVA 5% (510, Crédito IVA) -> _IVA 5% (550, Crédito IVA) (code_base: 550, code_applied: 560)_ Create Report lines: - _Ventas locales (excluye activos fijos) gravadas tarifa 5%_ - _Adquisiciones y pagos locales (excluye activos fijos) gravados con tarifa 5% (con derecho a crédito tributario)_ Forward-Port-Of: odoo/odoo#165672
Original PR description
Update tax codes: - IVA 5% (411, Bienes) -> _IVA 5% (435, Bienes) (code_base: 435, code_applied: 445)_ - IVA 5% (510, Crédito IVA) -> _IVA 5% (550, Crédito IVA) (code_base: 550, code_applied: 560)_ Create Report lines: - _Ventas locales (excluye activos fijos) gravadas tarifa 5%_ - _Adquisiciones y pagos locales (excluye activos fijos) gravados con tarifa 5% (con derecho a crédito tributario)_ Forward-Port-Of: odoo/odoo#165672
Activate Margins and Margin Analysis Create a new product [TEST] with no price set (0.0) Create a SO Add a line with [TEST] setting a unit price of 100 Margin will be 100 Confirm sale, create and confirm the invoice Go to Accounting>Reporting>Invoice Analysis Switch to pivot view Enable Margin mesure Issue: Margin for invoice will not be set This occurs because the price has not set so the sql computation for the margin will be NULL opw-3916863 Forward-Port-Of: odoo/odoo#166845
Original PR description
Activate Margins and Margin Analysis Create a new product [TEST] with no price set (0.0) Create a SO Add a line with [TEST] setting a unit price of 100 Margin will be 100 Confirm sale, create and confirm the invoice Go to Accounting>Reporting>Invoice Analysis Switch to pivot view Enable Margin mesure Issue: Margin for invoice will not be set This occurs because the price has not set so the sql computation for the margin will be NULL opw-3916863 Forward-Port-Of: odoo/odoo#166845
Before this commit: =================== Duplicate down payment lines were being generated multiple times upon clicking the order button after importing the Quotation/Order. Steps To Reproduced: ===================== - Step 1: Create order in Sales and save it - Step 2: Open POS Restaurant and click on Quotation/Order - Step 3: Select order and Settle order as Down-payment - Step 4: Once added into cart click on the order button multiple times. - Step 5: Go to back-end and open Sa
Original PR description
Before this commit: =================== Duplicate down payment lines were being generated multiple times upon clicking the order button after importing the Quotation/Order. Steps To Reproduced: ===================== - Step 1: Create order in Sales and save it - Step 2: Open POS Restaurant and click on Quotation/Order - Step 3: Select order and Settle order as Down-payment - Step 4: Once added into cart click on the order button multiple times. - Step 5: Go to back-end and open Sales order You'll see multiple down-payment entries corresponding to each click on the order button. After this commit: =================== The creation of duplicate down payment lines is prevented. task - 3877380 Forward-Port-Of: odoo/odoo#162772
- Before this commit One using an Input Method Editor (i.e. for writing hiraganas) could potentially trigger an hotkey, which does not make any sense. - After this commit While an IME is still composing, the hotkey service will ignore. opw-3633735 Forward-Port-Of: odoo/odoo#165229
Original PR description
- Before this commit One using an Input Method Editor (i.e. for writing hiraganas) could potentially trigger an hotkey, which does not make any sense. - After this commit While an IME is still composing, the hotkey service will ignore. opw-3633735 Forward-Port-Of: odoo/odoo#165229
Description of the issue/feature this PR addresses: Avoid IndexError when selecting default_dest_location in `_get_default_dest_location` when: - Adding a new line (stock.move.line) inside a Batch - User has _stock.group_stock_storage_categories_ group https://www.loom.com/share/fbe5d532cab94080b4ea3384ebaeb7c0?sid=e3115127-7153-42a5-9caf-69e871077c1a Current behavior before PR: IndexError Desired behavior after PR is merged: Allow to add an empty line without error --- OP
Original PR description
Description of the issue/feature this PR addresses: Avoid IndexError when selecting default_dest_location in `_get_default_dest_location` when: - Adding a new line (stock.move.line) inside a Batch - User has _stock.group_stock_storage_categories_ group https://www.loom.com/share/fbe5d532cab94080b4ea3384ebaeb7c0?sid=e3115127-7153-42a5-9caf-69e871077c1a Current behavior before PR: IndexError Desired behavior after PR is merged: Allow to add an empty line without error --- OPW-3916135 MT-5971 @moduon @rafaelbn @yajo @EmilioPascual --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165753
Before this commit: ========== - Tax layout of order receipt was making a bad User experience. After this commit: ========= - Improved Tax layout of order receipt. task-3933459 Forward-Port-Of: odoo/odoo#166317
Original PR description
Before this commit: ========== - Tax layout of order receipt was making a bad User experience. After this commit: ========= - Improved Tax layout of order receipt. task-3933459 Forward-Port-Of: odoo/odoo#166317
Since https://github.com/odoo/odoo/pull/143852 and the backport https://github.com/odoo/odoo/pull/163564 , we have added a lot of index for account.move, but still there are some missing left, so this commit is to add the index btree_not_null for those one. 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:
Original PR description
Since https://github.com/odoo/odoo/pull/143852 and the backport https://github.com/odoo/odoo/pull/163564 , we have added a lot of index for account.move, but still there are some missing left, so this commit is to add the index btree_not_null for those one. 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#166887
Description of the issue/feature this PR addresses: This PR addresses an issue in the attendance module. When an employee's job position is not set, the kiosk mode displays `false` in the employee kanban view when manually identified. Cause The issue arises when the job position is not set in the employee profile. Fix: This PR resolves the issue by modifying the kanban view template of employees in kiosk mode.if condition is added to ensure that the job position is displayed only if it
Original PR description
Description of the issue/feature this PR addresses: This PR addresses an issue in the attendance module. When an employee's job position is not set, the kiosk mode displays `false` in the employee kanban view when manually identified. Cause The issue arises when the job position is not set in the employee profile. Fix: This PR resolves the issue by modifying the kanban view template of employees in kiosk mode.if condition is added to ensure that the job position is displayed only if it is set for the employee. task-3892580 Forward-Port-Of: odoo/odoo#165342
This commit adds a check to ensure that the listId exists when processing the command `UPDATE_ODOO_LIST_DOMAIN` in the `beforeHandle` function. Task: 3908657 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#167199 Forward-Port-Of: odoo/odoo#166797
Original PR description
This commit adds a check to ensure that the listId exists when processing the command `UPDATE_ODOO_LIST_DOMAIN` in the `beforeHandle` function. Task: 3908657 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#167199 Forward-Port-Of: odoo/odoo#166797
Steps to reproduce: - Navigate to Product Variants list view in the Inventory module - Search for a warehouse e.g. "My Company" in the list view - Click on any storable product e.g. DESK0005 - In the product form view click on the "Forecasted" button This gives a traceback because the 'warehouse' in the context is the name and not the id. Fixes #165330 Forward-Port-Of: odoo/odoo#165934
Original PR description
Steps to reproduce: - Navigate to Product Variants list view in the Inventory module - Search for a warehouse e.g. "My Company" in the list view - Click on any storable product e.g. DESK0005 - In the product form view click on the "Forecasted" button This gives a traceback because the 'warehouse' in the context is the name and not the id. Fixes #165330 Forward-Port-Of: odoo/odoo#165934
With tens of millions of channels, the query for getting the channels of the current user goes from 1.2s to 6ms. `auto_join` makes sense as channels are almost always fetched together with member (and in particular for checking ACL of member). Forward-Port-Of: odoo/odoo#167205
Original PR description
With tens of millions of channels, the query for getting the channels of the current user goes from 1.2s to 6ms. `auto_join` makes sense as channels are almost always fetched together with member (and in particular for checking ACL of member). Forward-Port-Of: odoo/odoo#167205
Steps to reproduce: =============== - Create new POS - Tick Is a Bar/Restaurant option - Create new floor - Add a table Issue: ===== On adding a new table, table is added but does not reflect on the floor. Cause: ====== On adding new floor the length of floor was not updated which leads to the issue. Fix: === After this commit floor length is currently updated. task-3888097 Forward-Port-Of: odoo/odoo#163708
Original PR description
Steps to reproduce: =============== - Create new POS - Tick Is a Bar/Restaurant option - Create new floor - Add a table Issue: ===== On adding a new table, table is added but does not reflect on the floor. Cause: ====== On adding new floor the length of floor was not updated which leads to the issue. Fix: === After this commit floor length is currently updated. task-3888097 Forward-Port-Of: odoo/odoo#163708
The context menu (and clickable cell) `use_global_filter` should take the value of the underlying pivot formula, and apply it to the matching global filters. This works, but was supposed to work only for `ODOO.PIVOT.HEADER` formulas, and not simple `ODOO.PIVOT` formulas. This commit fixes the visibility of the `use_global_filter` option in the context menu, so that it is only visible for `ODOO.PIVOT.HEADER`. Also removed/changed tests that were testing that the menu was visible for positio
Original PR description
The context menu (and clickable cell) `use_global_filter` should take the value of the underlying pivot formula, and apply it to the matching global filters. This works, but was supposed to work only for `ODOO.PIVOT.HEADER` formulas, and not simple `ODOO.PIVOT` formulas. This commit fixes the visibility of the `use_global_filter` option in the context menu, so that it is only visible for `ODOO.PIVOT.HEADER`. Also removed/changed tests that were testing that the menu was visible for positional `ODOO.PIVOT` formulas. Task: [3714696](https://www.odoo.com/web#id=3714696&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) 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#166971
Original PR description
*: product_barcodelookup, stock_barcode_barcodelookup pos_product_barcodelookup: - Added a barcode_scanner widget inside create product form view. stock_barcode_barcodelookup: - Added a create product button inside toaster. product_barcodelookup: - Set multi-images if available. - Set volume (based on the 3 dimensions). - When creating the product based on the barcode, created all attribute values for which the attribute is defined. - Removed module stock_barcode_account_barcodelookup. - For attributes of type color, only created if color is valid - Added a functionality to check authentication of the api key. Only user with administration rights can create the product both in pos_product_barcodelookup and stock_barcode_barcodelookup. task: 3911024 Related: https://github.com/odoo/odoo/pull/166796 Upgrade: https://github.com/odoo/upgrade/pull/6087
Adds a new Colombian eInvoicing module that lets companies send invoices, credit notes, and debit notes directly to DIAN instead of using the paid Carvajal intermediary. This reduces external service dependency and cost while supporting both testing and production DIAN flows.
Original PR description
Community: https://github.com/odoo/odoo/pull/156094 -- Context -- In Colombia, it's mandatory to send every invoice, credit note, debit note to the authorities. It's currently possible using…
Community: https://github.com/odoo/odoo/pull/156094 -- Context -- In Colombia, it's mandatory to send every invoice, credit note, debit note to the authorities. It's currently possible using "Carvajal", an intermediate that defines a custom format of xml and translates it into UBL to send it to the DIAN (the National Tax and Customs Directorate). Unfortunately, Carvajal is very expensive (at the user's expense) and maintenance is complex since we depends on Carjaval's documentation rather than the DIAN's documentation. In addition, testing is complex as they blocked IPs from France and Belgium, and they also switch off their servers at night (!). We can do without Carvajal, by communicating directly with DIAN's webservices which uses standard UBL... and it's free ! This is what is done in this PR. In addition, `l10n_co_dian` dos not require `account_edi`, as it relies on the Send & Print wizard. -- How to use ? -- To use DIAN's service, a user needs to request a public and private key to the DIAN (used to authenticate the xml sent). There are 2 modes: * The habilitation mode endpoint: https://vpfe-hab.dian.gov.co/WcfDianCustomerServices.svc?wsdl 1. used to test the flow (using "SendBillSync") 2. used to be authorized to switch to the production mode (using "SendTestSetAsync") * The production mode: used to send real invoices (using "SendBillSync") endpoint: https://vpfe.dian.gov.co/WcfDianCustomerServices.svc?wsdl The testing class `TestDianFlows` contains several examples of typical flows. -- To be done later -- We cannot remove Carvajal to soon as customers have contracts with them. The plan is to keep Carvajal until 18.0. So in 18.0, we will merge `l10n_co_dian` with `l10n_co_edi`, such that only `l10n_co_edi` remains (containing the DIAN implementation). task-3141517
Adds United Kingdom payroll support so businesses can generate payslips from employee contracts and produce yearly P60 substitutes. It also supports statutory payments, student loan repayments, pension contributions, benefits in kind, and employee National Insurance letters.
Enhancements to existing features
Barcode users now hear a confirmation sound when a scan is successful, in addition to the existing screen flash. This makes it easier for warehouse and manufacturing staff to confirm scans immediately, especially in fast-paced environments.
Original PR description
Before this PR =============== When a barcode was scanned successfully, the screen flashed to indicate the successful scan, but there was no sound. This lack of auditory feedback could sometimes make it difficult for users to be sure the scan was successful. After this PR =============== Along with the flashing screen, a sound now plays when a barcode scan is successful. This provides clear and immediate feedback to users, ensuring they are aware that the scan was successful. TaskId: 3685476
When VAT units are created or updated, matching horizontal groups are now created automatically. These groups are enabled on relevant tax reports, making VAT-unit reporting more consistent while removing a debug-only menu entry that business users did not need.
Original PR description
This Pr will do multiple things: - Remove the Horizontal Groups menu items from the debug mode. - Create the horizontal group that corresponds to each VAT UNIT each time a VAT Unit is created/modified. - Activate the horizontal groups on the generic Tax Report, the EC Sales List, and the Tax reports whose company belongs to the country of the VAT Unit. task: 3918305
Shift templates can now define editable start and end hours plus a duration in days, making planned schedules more flexible. When templates are assigned, Odoo uses the resource or company calendar to calculate working dates and allocated hours more accurately.
Original PR description
This commit updates the method for calculating planned dates using shift template values. It introduces the ability to modify the start and end hours, as well as the duration in days, for which a shift template is scheduled. The allocated hours is then determined using either the user's or the company's calendar. When assigning a shift template to a resource, the planned dates are calculated according to the resource's calendar. The start and end hours from the template are retained, along with the original start date. The end date is generated based on the duration in days specified in the template. The planned dates are arranged over a timeframe that ensures the total working days match the specified days duration. taskid:3624669
Australian payroll now has more detailed payroll input and attachment categories, including clearer treatment for payment type, superannuation, and PAYG withholding. This helps payroll calculations and reporting align more consistently with Australian payroll requirements.
Original PR description
This commit revamps the input types and attachments for the l10n_au_hr_payroll module. The input types have selection fields for payment type, superanuation and paygw treatment. There are new input types added. Salary Rules have been updated to use the new input type fields. Task# 3769675
The pull request updates automated tests to match recent changes in Odoo's default internal transfer settings. This helps keep stock barcode and quality control checks reliable after related platform changes, with no direct impact on day-to-day users.
Original PR description
Following the changes wit hthe default internal picking types in the comminity side odoo/odoo#165778, adapt some tests to match the changes.
Project budgets are now calculated using analytic accounts instead of budget positions, simplifying how budget lines are configured and tracked. The update also adds committed amount tracking from purchase orders and introduces a new budget report view for clearer budget monitoring.
Original PR description
Before this commit: The Budget was counted using budget position and analytical account After this commit: Removed Budget position from the budget line. Model renamed `crossovered.budget` to `budget.analytic` and `crossovered.budget.line` to `budget.line` Removed/Renamed some fields of these models. Now the budget will be counted using a combination of analytical accounts only. Also created a new field in a budget line called committed amount which will be calculated from the analytical distribution of the purchase order line A new budget report view is created. task - 3623445
The MPS creation wizard no longer automatically picks the first bill of materials when a product is selected. This helps prevent large numbers of component records from being added unintentionally, giving users more control over planning setup.
Original PR description
The creation wizard computes the bom from the selected product by selecting the first bom available. The issue is that the MPS will add the components of the bom to the records. If a bom has 100+ components, that's a lot of records. We want the user to make that a conscious decision instead of an automated behavior.
Customers are now alerted when they already have an upcoming appointment before booking another one. This helps prevent accidental duplicate bookings while still allowing users to view the existing appointment or continue with a new booking if needed.
Original PR description
Add an "extra" step to tell the user that he already had an upcoming appointment. The idea is to be sure that the user knows that he already booked an appointment before booking another one. The upcoming appointment info is based on the info stored in the localStorage when an appointment is taken and landing on the validation page and the sale confirmation if website_appointment_sale is installed. In case it's not the public user, we don't use the list of access_token from the local storage and just check the appointments based on the appointment_booker_id. There are 2 buttons, the first one allows to reach the upcoming appointment details and the other to display the calendar to book another appointment. Clicking on the button "Add another" add a value in the local storage to ignore and don't show the upcoming block info for a day. We also add the upcoming events info of the appointment booker in the mail template. task-3773579
The Documents spreadsheet app now includes more engaging demo spreadsheets to replace examples lost when templates were removed. This gives sales teams and evaluators better sample dashboards and commission sheets to explore during demonstrations.
Original PR description
After the removal of the templates, we lost the opportunity to use them as demonstration spreadsheets. This revision adds 2 spreadsheets as demo data, with their content being more interesting than the current "Res Partner Spreadsheet". task-3908278
Australian payroll now calculates tax withholding on unused leave at termination using the employee's normal scheduled gross earnings, instead of a potentially reduced final payslip amount. This helps produce more accurate termination payments, especially when employment ends partway through a pay period, and allows manual adjustment of the gross unused leave amount when needed.
Original PR description
The amount withheld from the unused leaves payment at the time of termination depends on the normal gross earnings of an employee during their schedule pay period. This commit implements withholding variations for unused leaves. Also adds the option to assign the gross unused leaves manually. Issue: The salary rules use the gross salary computed on a regular payslip. This raises the issues when the employee is terminated in the middle of a pay period and the gross salary for the payslip changes. task# 3821959
The Sign onboarding tour now advances automatically when a user places the signature item into the document. This removes an extra click, making the first-time signing setup flow clearer and faster.
Original PR description
Before this commit, users needed to click on the signature field to move to the next step. After this commit, If a user drags the signature item and drops it into the iframe document, it will move to the next step without the need for clicking. task-3925591
The event form now shows helpful placeholder text for the Twitter Wall field. This makes it easier for users to understand what the field is for when configuring event social media display options.
Original PR description
This PR adds a placeholder to `twitter_wall_id` in order to familiarize the user about the purpose of that field. Task-[3777482](https://www.odoo.com/web#id=3777482&menu_id=4722&cids=2&action=333&active_id=965&model=project.task&view_type=form)
Resolved issues and error corrections
A Romanian SAF-T automated test was adjusted so it no longer relies on an optional Intrastat feature. This helps keep test results reliable when that optional module is not installed, without changing business functionality.
Original PR description
One of the tests was testing an `account_intrastat` related field, but the module's not a hard dependency, so we're discarding it. Related PR: odoo/enterprise#59363 runbot-66310
Preparation display orders now show the employee name when the POS HR module is installed, instead of falling back to the user name. This helps staff and managers identify who handled an order more accurately on the preparation display.
Original PR description
Before on each preprartion display order the user name was displayed instead of the employee name even when pos_hr module was installed. This commit adds the employee name to the preparation display order and when the pos_hr module is installed it will display the employee name instead of the user name. taskId: 3956671
This fixes an error that could occur when opening a storable product after searching products by warehouse in Inventory. The report context now handles the warehouse correctly, preventing a traceback and allowing users to view product details normally.
Original PR description
Steps to reproduce: - Navigate to Product Variants list view in the Inventory module - Search for a warehouse e.g. "My Company" in the list view - Click on any storable product e.g. DESK0005 This gives a traceback because the 'warehouse_id' in the context may be the name and not the id. Linked to: - https://github.com/odoo/odoo/pull/167283
Miscellaneous changes
This PR aims to convert QUnit tests which rely on mail/test_utils to hoot. Part of task-3818666 Related Community PR: https://github.com/odoo/odoo/pull/167176 Forward-Port-Of: odoo/enterprise#63430
Original PR description
This PR aims to convert QUnit tests which rely on mail/test_utils to hoot. Part of task-3818666 Related Community PR: https://github.com/odoo/odoo/pull/167176 Forward-Port-Of: odoo/enterprise#63430
Removing the VAT numbers grouping from the Dutch ICP report opw-3944815 Forward-Port-Of: odoo/enterprise#63357 Forward-Port-Of: odoo/enterprise#63186
Original PR description
Removing the VAT numbers grouping from the Dutch ICP report opw-3944815 Forward-Port-Of: odoo/enterprise#63357 Forward-Port-Of: odoo/enterprise#63186
German grammar is tricky Forward-Port-Of: odoo/enterprise#63334 Forward-Port-Of: odoo/enterprise#63317
Original PR description
German grammar is tricky Forward-Port-Of: odoo/enterprise#63334 Forward-Port-Of: odoo/enterprise#63317
## Issue: - When an invoice is related to a subscription the customer can't see it on portal due to access error (403:Forbidden) ## Steps To Reproduce: - Create a subscription and confirm it. - Run the schedule action: `Sale Subscription: generate recurring invoices and payments` - As customer, click on the button to see the invoice from the mail - Customer will land on a 403 error page ## Solution: - the access error is due to the `access_token` not being passed to `_get_extra_payme
Original PR description
## Issue: - When an invoice is related to a subscription the customer can't see it on portal due to access error (403:Forbidden) ## Steps To Reproduce: - Create a subscription and confirm it. - Run the schedule action: `Sale Subscription: generate recurring invoices and payments` - As customer, click on the button to see the invoice from the mail - Customer will land on a 403 error page ## Solution: - the access error is due to the `access_token` not being passed to `_get_extra_payment_form_values` - adding `invoice_access_token` to this method kwargs fixes the problem. - To minimize impact on other components, we resolved a naming conflict in the overload of `_get_extra_payment_form_values` by renaming invoice_id to `subscription_invoice_id` and `access_token` to `invoice_access_token`. This approach ensures the fix remains close to the bug's origin. opw-3862251 Forward-Port-Of: odoo/enterprise#61211
Cohort views were patched to allow inserting them as an embed in a Knowledge article, but `web_cohort` was not a dependency of `knowledge`. It was an issue if the `web_cohort` (which is auto_install: True) module was manually uninstalled, because it would result in a missing dependency (warning in the browser console) preventing the insertion of any external view in Knowledge. The same issue was present for Gantt views (`web_gantt`). Using an odoo runtime import, we can evaluate if
Original PR description
Cohort views were patched to allow inserting them as an embed in a Knowledge article, but `web_cohort` was not a dependency of `knowledge`. It was an issue if the `web_cohort` (which is auto_install: True) module was manually uninstalled, because it would result in a missing dependency (warning in the browser console) preventing the insertion of any external view in Knowledge. The same issue was present for Gantt views (`web_gantt`). Using an odoo runtime import, we can evaluate if the module was loaded and apply the patch at that point. If the module was not loaded, the patch is not applied. Dependencies were added in [1] to allow HOOT test to work, but this commit will remove the need for that while still allowing those views to be inserted in Knowledge. [1]: https://github.com/odoo/enterprise/commit/f1326b20c819763026424d7d92a3d5489db60bc0 task-3918938 Forward-Port-Of: odoo/enterprise#63304 Forward-Port-Of: odoo/enterprise#62181
Forward-Port-Of: odoo/enterprise#62612
Original PR description
Forward-Port-Of: odoo/enterprise#62612
Use the same condition for the modal and button to ensure both are always rendered at the same time and the button cannot be rendered if the modal is not. Forward-Port-Of: odoo/enterprise#63253
Original PR description
Use the same condition for the modal and button to ensure both are always rendered at the same time and the button cannot be rendered if the modal is not. Forward-Port-Of: odoo/enterprise#63253
Before this commit, deleting a list and updating its domain concurrently would lead to a crash. This was due to the fact that the transformation of `UPDATE_ODOO_LIST_DOMAIN` was missing. This commit adds the missing transformation. This commit also fix a test that checked the number of pivots instead of the number of lists. Task: 3908657 Forward-Port-Of: odoo/enterprise#63442 Forward-Port-Of: odoo/enterprise#63246
Original PR description
Before this commit, deleting a list and updating its domain concurrently would lead to a crash. This was due to the fact that the transformation of `UPDATE_ODOO_LIST_DOMAIN` was missing. This commit adds the missing transformation. This commit also fix a test that checked the number of pivots instead of the number of lists. Task: 3908657 Forward-Port-Of: odoo/enterprise#63442 Forward-Port-Of: odoo/enterprise#63246
Before this commit, when selecting a tax unit on the filter with some companies of the tax unit not selected, an initial reload occurred, but the options of the tax unit were not saved. This meant we had to click the filter twice to apply it. task-3954014 Forward-Port-Of: odoo/enterprise#63342
Original PR description
Before this commit, when selecting a tax unit on the filter with some companies of the tax unit not selected, an initial reload occurred, but the options of the tax unit were not saved. This meant we had to click the filter twice to apply it. task-3954014 Forward-Port-Of: odoo/enterprise#63342
There was a typo in the error message "You have to attach at **lease** one document.", where _lease_ should be _least_. This commit fixes that. We also export the latest version of the .pot file. Forward-Port-Of: odoo/enterprise#63369 Forward-Port-Of: odoo/enterprise#63051
Original PR description
There was a typo in the error message "You have to attach at **lease** one document.", where _lease_ should be _least_. This commit fixes that. We also export the latest version of the .pot file. Forward-Port-Of: odoo/enterprise#63369 Forward-Port-Of: odoo/enterprise#63051
**Current behavior:** Creating a manufacturing order for a product which is tracked via lots can cause a trace back when trying to register the lot number in the shop floor as part of the registering production flow. **Expected behavior:** No trace back. **Steps to reproduce:** 1. Create a product which is tracked with lots and a component 2. Create an MO to manufacture the lot-tracked product and confirm it 3. Open the shop floor, click on the MO line for the product to add the l
Original PR description
**Current behavior:** Creating a manufacturing order for a product which is tracked via lots can cause a trace back when trying to register the lot number in the shop floor as part of the registering production flow. **Expected behavior:** No trace back. **Steps to reproduce:** 1. Create a product which is tracked with lots and a component 2. Create an MO to manufacture the lot-tracked product and confirm it 3. Open the shop floor, click on the MO line for the product to add the lot number and check it off -> trace back **Cause of the issue:** The context prop is a 'stringified' object instead of the owl-enforced 'object' type. `MrpRegisterProductionDialog` extends `MrpQualityCheckConfirmationDialog`, where we can see context is not stringified. **Fix:** Don't stringify the context upon creation of the confirmation dialog object. opw-3876368 Forward-Port-Of: odoo/enterprise#63309 Forward-Port-Of: odoo/enterprise#62842
The aim of this commit is checking that the function `collect_global_info_data` properly checks if one of the user's companies is the one on the journal and not necessarily the one from the current company (`self.env.company`). In the mean time, we're now returning an empty string instead of a False for the balance_amount's value in the returned dict because we have a props validation on this field. no task id Forward-Port-Of: odoo/enterprise#63365
Original PR description
The aim of this commit is checking that the function `collect_global_info_data` properly checks if one of the user's companies is the one on the journal and not necessarily the one from the current company (`self.env.company`). In the mean time, we're now returning an empty string instead of a False for the balance_amount's value in the returned dict because we have a props validation on this field. no task id Forward-Port-Of: odoo/enterprise#63365
Issue: ====== Creating a MO with barcode uses the wrong quantity for the components. Steps to reproduce the issue: ============================= - Install mrp , barcode - Activate unit of measure - Create a product and assigna barcode number to it - Create a BoM for that product with a component `comp` - The `comp` product have `g` as unit of measure - Assign the unit of measure in the BoM for the `comp` as `kg` - Go to barcode -> operations -> manufacturing - Create a new order -
Original PR description
Issue: ====== Creating a MO with barcode uses the wrong quantity for the components. Steps to reproduce the issue: ============================= - Install mrp , barcode - Activate unit of measure - Create a product and assigna barcode number to it - Create a BoM for that product with a component `comp` - The `comp` product have `g` as unit of measure - Assign the unit of measure in the BoM for the `comp` as `kg` - Go to barcode -> operations -> manufacturing - Create a new order - Enter barcode manually of the product that you set up early - Click on +1 button - You can see the quantity is wrong as and not counting the difference of UoM Solution: ========= We need to fetch the uom data of the move to compare it to the one of the product and update the quantity accordingly. opw-3776896 Forward-Port-Of: odoo/enterprise#63178 Forward-Port-Of: odoo/enterprise#59131
Create an Invoice for an EC customer hading a section line and a tax on the product line Confirm the invoice Add Withholding move Go to Accounting>Reporting>Tax report Generate ATS Warning will be shown "Invoice lines should have exactly one VAT tax." ATS file will download anyway opw-3896076 Forward-Port-Of: odoo/enterprise#63363
Original PR description
Create an Invoice for an EC customer hading a section line and a tax on the product line Confirm the invoice Add Withholding move Go to Accounting>Reporting>Tax report Generate ATS Warning will be shown "Invoice lines should have exactly one VAT tax." ATS file will download anyway opw-3896076 Forward-Port-Of: odoo/enterprise#63363
See the related community PR for the fix and more info. community PR: https://github.com/odoo/odoo/pull/167014 Forward-Port-Of: odoo/enterprise#63339
Original PR description
See the related community PR for the fix and more info. community PR: https://github.com/odoo/odoo/pull/167014 Forward-Port-Of: odoo/enterprise#63339
When `test_discuss_full` and at least `web_enterprise` are installed, `test_discuss_full_enterprise` must be installed for the tests in `test_discuss_full` to pass. runbot-65732 Forward-Port-Of: odoo/enterprise#63366
Original PR description
When `test_discuss_full` and at least `web_enterprise` are installed, `test_discuss_full_enterprise` must be installed for the tests in `test_discuss_full` to pass. runbot-65732 Forward-Port-Of: odoo/enterprise#63366
Resolved issues and error corrections
A duplicate rating field was appearing in the helpdesk ticket list view. This fix hides the unused "rating_last_text" field to ensure customers only see one rating display, improving the clarity and appearance of the ticket list.
Original PR description
This commit hides the unused "rating_last_text" field from the list view of tickets, preventing a duplicate rating. Linked PR: https://github.com/odoo/enterprise/pull/52371 task-3869775
This fix enables regular users (non-administrators) to create marketing campaigns from templates, a feature that was previously restricted to admin users only. This improves workflow efficiency by allowing team members with marketing automation access to leverage pre-built campaign templates without requiring admin privileges.
Original PR description
also modified: test_marketing_automation Previously, campaign templates could not be used by non-admin users. This commit allows non-admin users with access to the marketing_automation app to create campaigns from templates as expected. task-3603400 Backport of: odoo@8fcdb85f0c4279c6a16c26aa669496cf456f0631
This fix removes VAT number grouping from the Dutch ICP (Intra-Community Purchases) report to ensure accurate reporting. The change simplifies how VAT numbers are handled in the report, improving compliance with Dutch tax reporting requirements.
Original PR description
Removing the VAT numbers grouping from the Dutch ICP report opw-3944815 Forward-Port-Of: odoo/enterprise#63357 Forward-Port-Of: odoo/enterprise#63186
This update corrects a date handling issue in the Mexican electronic invoicing system by reverting a previous change that was causing problems with invoice date processing. The fix ensures that invoice dates are properly set to the current date, resolving multiple reported issues and improving the accuracy of electronic invoice submissions to Mexican tax authorities.
Original PR description
This reverts commit 819ed2a64d0f11f33190af0c804955e380242968. opw-3955626 but there are many others
This update fixes a German grammar error in the localization files for German DATEV reports. The correction ensures that German language text displays correctly to users in Germany, improving the accuracy and professionalism of the system's German interface.
Original PR description
German grammar is tricky Forward-Port-Of: odoo/enterprise#63334 Forward-Port-Of: odoo/enterprise#63317
The cookies consent bar was blocking the content of the cookie policy page, making it difficult for users to read important information. This fix hides the cookies bar on the policy page and adds a toggle button so users can show it again if needed. This ensures the policy page remains fully readable while still allowing users to manage their cookie preferences.
Original PR description
With the popup-styled cookies bar, the cookies policy page is unreadable. It is also the case with all cookies bar with a backdrop. The "discrete" and "classic" bars can also potentially hide the last paragraph(s) of the page. To avoid that, this commit adds a button to toggle the bar on that page. Note that the cookies policy page could be on any URL, but it has to be referenced in the `a.o_cookies_bar_text_policy` link within the cookies bar. task-3733860 Forward-Port-Of: odoo/odoo#166829 Forward-Port-Of: odoo/odoo#162386
This fix resolves an issue where users could not select newly created projects when creating sale orders if those projects didn't have a company assigned. The change updates the project selection filter to allow projects without company information, enabling the normal workflow for project-based sales orders.
Original PR description
Current behavior before PR: - Cannot select projects with `company_id` = `False` when creating sale orders.  Desired behavior after PR is merged: - Allow to select projects with `company_id` = `False`.  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update optimizes how the HR Holidays module searches for leave requests by description. The change prevents large database queries from overloading the system, improving overall performance and stability when searching through holiday records.
Original PR description
**Description of the issue/feature this PR addresses:** fine tuning of https://github.com/odoo/odoo/commit/f8182fb625eb3e20c85388d4c342553af4fe7ab9 Before this commit a huge query can be overload postgress. @thle-odoo @sofiagvaladze --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix resolves a server error that occurred when updating a new Point of Sale order. Users were experiencing crashes when clicking the update button on orders in the 'New' state. The problematic button has been removed to prevent this error and improve system stability.
Original PR description
go to Point of sales -> choose menu a pos -> view order -> choose order has state 'New' -> chooose '(update)' -> server error  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr