Thursday, February 13, 2025
47 changes
1 change
Miscellaneous changes
Issue addressed by this commit: An ambiguous column error occurs in the hr_holidays model when the auth_signup module is installed alongside it, due to both modules having a state field. This ambiguity arises within the _get_on_leave_ids method, affecting the execution of a SQL query designed to identify users on leave. How to reproduce the issue: Install both hr_holidays and auth_signup modules. Attempt to execute the _get_on_leave_ids method to identify users on leave. Behaviour befor
Original PR description
Issue addressed by this commit: An ambiguous column error occurs in the hr_holidays model when the auth_signup module is installed alongside it, due to both modules having a state field. This…
Issue addressed by this commit: An ambiguous column error occurs in the hr_holidays model when the auth_signup module is installed alongside it, due to both modules having a state field. This ambiguity arises within the _get_on_leave_ids method, affecting the execution of a SQL query designed to identify users on leave. How to reproduce the issue: Install both hr_holidays and auth_signup modules. Attempt to execute the _get_on_leave_ids method to identify users on leave. Behaviour before this commit: An "ambiguous column error" is raised due to the SQL query not specifying which state field to use, leading to confusion between the state fields in the hr_leave and res_users tables. Expected behaviour: The SQL query should clearly reference the state field from the hr_leave table, avoiding ambiguity and accurately identifying users on leave without errors. Solution: The SQL query within the _get_on_leave_ids method has been updated to use hr_leave.state = 'validate' for clear distinction, resolving the ambiguous column error. opw-3770758 Forward-Port-Of: odoo/odoo#158310 Forward-Port-Of: odoo/odoo#156663
13 changes
Enhancements to existing features
The Envia delivery settings now include a direct link to related delivery methods. This makes it quicker for users to review or adjust shipping options from the settings area.
The checkout payment setup for Shiprocket and UPS now records whether each payment method supports manual capture. This helps ensure payment handling aligns with carrier checkout flows and reduces the risk of using incompatible payment options.
Original PR description
task-3949151 See also: - https://github.com/odoo/odoo/pull/170541 - https://github.com/odoo/upgrade/pull/6810
Resolved issues and error corrections
This fix ensures dark mode styling files are only loaded when dark mode is used, instead of being included in the standard light mode view. It helps prevent visual inconsistencies in restaurant appointment planning screens that use Gantt views.
Original PR description
This commit fixes an asset issue with web_gantt where the dark mode specific assets from web_gantt were included in the main (light mode) assets from pos_restaurant_appointment. Part of task-4571228
The WhatsApp test coverage was updated to match recent shared platform changes around attachment handling, including voice attachments. This helps keep WhatsApp messaging behavior reliable and aligned with the latest expected workflows.
The Sign app now has the missing icon mapping needed to show the correct sidebar icons when new item types are used. This prevents errors and keeps the signing template setup experience working smoothly.
Original PR description
After #75291 we are using `icon_type` map to display the sidebar type icon if it's not defined on the item type. However the `icon_type` map wasn't defined anywhere which causes an error with new types.
Code cleanup and technical improvements
The Sign app’s selection field has been streamlined after recent interface changes. This reduces unnecessary processing and makes the feature easier to maintain, with no expected disruption for users.
Original PR description
Following recent Sign UI changes, the selection field no longer relies on the tags view. This commit refactors the selection field logic to remove the `many2many_tags_field` component. This significantly reduces overhead and improves maintainability. Unused `Many2OneField` have also been removed from SignTemplateSidebar.
Miscellaneous changes
Before this commit, the context of the action was just ignored in the grid view and so the default values stored inside that context are not taken into account during `grid_update_cell` method. Steps to reproduce the issue ---------------------------- 0. Install timesheet_grid module 1. Open Employees app 2. Click on an employee to open the form view 3. Click on the timesheets smart button to view the timesheet grid view for that employee 4. Navigate to a week that already contains hour
Original PR description
Before this commit, the context of the action was just ignored in the grid view and so the default values stored inside that context are not taken into account during `grid_update_cell` method. Steps…
Before this commit, the context of the action was just ignored in the grid view and so the default values stored inside that context are not taken into account during `grid_update_cell` method. Steps to reproduce the issue ---------------------------- 0. Install timesheet_grid module 1. Open Employees app 2. Click on an employee to open the form view 3. Click on the timesheets smart button to view the timesheet grid view for that employee 4. Navigate to a week that already contains hours for the current user 5. Update the grid cell containing a timesheet to reduce the number of hours for instance 6. Update another cell without any timesheets linked and set a hour Current Behavior ---------------- After refreshing the page and going to the same week, the changes made in step 5 and 6 are no longer applied. The reason is because those changes have generated new timesheets for the current user instead of the employee displayed in the form view before doing the step 3. Expected behavior ----------------- The grid view should be unchanged after refreshing the page, the changes made in 5 and 6 should be applied without any issues. opw-4491850 Forward-Port-Of: odoo/enterprise#79076
When installing the module, do not assign new leave type to the default company, as in multi-company context that default company may not be a UAE based company, preventing users to see/select those new leave types. This commit force no company when creating those new leave types. opw-4353549 Forward-Port-Of: odoo/enterprise#78383
Original PR description
When installing the module, do not assign new leave type to the default company, as in multi-company context that default company may not be a UAE based company, preventing users to see/select those new leave types. This commit force no company when creating those new leave types. opw-4353549 Forward-Port-Of: odoo/enterprise#78383
When the user tries to publish a job position on the job board monster, a traceback will appear. Steps to reproduce the error: - Install ``hr_recruitment_integration_monster`` module - Go to Recruitment > Applications > By Job Positions > Click on the dropdown menu of any job position > Configuration (Make sure that the job position is published on the website) - Add Salary Range > Publish on Job Board > Job Board: Monster.com > Post Traceback: ``` AttributeError: 'int' object h
Original PR description
When the user tries to publish a job position on the job board monster, a traceback will appear. Steps to reproduce the error: - Install ``hr_recruitment_integration_monster`` module - Go to Recruitment > Applications > By Job Positions > Click on the dropdown menu of any job position > Configuration (Make sure that the job position is published on the website) - Add Salary Range > Publish on Job Board > Job Board: Monster.com > Post Traceback: ``` AttributeError: 'int' object has no attribute 'monster_id' ``` https://github.com/odoo/enterprise/blob/245a38f320db56fd22d946471f626adf6cfeb397/hr_recruitment_integration_monster/wizard/hr_recruitment_post.py#L130-L146 Here, ``monster_time_unit`` is integer, it does not have ``monster_id`` attribute. sentry-6027416420 Forward-Port-Of: odoo/enterprise#73055
In odoo 18.0 the `journal_id` on `hr.payroll.structure` [became not required](https://github.com/odoo/enterprise/commit/fb59524a95b0f78112002d1e4d5ad3d6c301de7e#diff-761891fe4e3aa9cb1df74ffca5261004adaf8ac8c3df5857035953e5318be967L16-R16). And in the demo data for this module `action_payslip_done` is called, which [requires](https://github.com/odoo/enterprise/blob/4784d4a48d11c72afb05f2bc7c9062c5644bbf75/hr_payroll_account/models/hr_payslip.py#L53-L54) the payroll structure to have a journal.
Original PR description
In odoo 18.0 the `journal_id` on `hr.payroll.structure` [became not required](https://github.com/odoo/enterprise/commit/fb59524a95b0f78112002d1e4d5ad3d6c301de7e#diff-761891fe4e3aa9cb1df74ffca5261004adaf8ac8c3df5857035953e5318be967L16-R16). And in the demo data for this module `action_payslip_done` is called, which [requires](https://github.com/odoo/enterprise/blob/4784d4a48d11c72afb05f2bc7c9062c5644bbf75/hr_payroll_account/models/hr_payslip.py#L53-L54) the payroll structure to have a journal. `hr_payroll_structure_ken_employee_salary` is used as the structure for all the payslips in the demo error in runbot [build](https://runbot.odoo.com/runbot/build/73486292) Forward-Port-Of: odoo/enterprise#77365
…artner` children The `title` field was removed from `res.partner` in [this commit](https://github.com/odoo/odoo/commit/0b8bd891fad1c84607fe147a32d705917341fed7). A [previous fix](https://github.com/odoo/enterprise/commit/81338f4b417399d0636d5dfde47b46dec3a74d97) addressed the issue for the main partner record, but the `title` field was still being referenced for its `child_ids`. This commit ensures that child partners are also handled correctly. no-task Forward-Port-Of: odoo/enterp
Original PR description
…artner` children The `title` field was removed from `res.partner` in [this commit](https://github.com/odoo/odoo/commit/0b8bd891fad1c84607fe147a32d705917341fed7). A [previous fix](https://github.com/odoo/enterprise/commit/81338f4b417399d0636d5dfde47b46dec3a74d97) addressed the issue for the main partner record, but the `title` field was still being referenced for its `child_ids`. This commit ensures that child partners are also handled correctly. no-task Forward-Port-Of: odoo/enterprise#79051
Before this commit the class `TestMockedDeliveryUSPS` used `'standard', '-external'` which is the opposite of what it was supposed to do. As a result the tests were run during normal builds, and led to errors when the tests were run without demo data. This commit also removes the reference to demo data to make the tests more robust. Runbot Errors: + https://runbot.odoo.com/odoo/action-573/114550 + https://runbot.odoo.com/odoo/action-573/114551 + https://runbot.odoo.com/odoo/action-573/1
Original PR description
Before this commit the class `TestMockedDeliveryUSPS` used `'standard', '-external'` which is the opposite of what it was supposed to do. As a result the tests were run during normal builds, and led to errors when the tests were run without demo data. This commit also removes the reference to demo data to make the tests more robust. Runbot Errors: + https://runbot.odoo.com/odoo/action-573/114550 + https://runbot.odoo.com/odoo/action-573/114551 + https://runbot.odoo.com/odoo/action-573/114552 Forward-Port-Of: odoo/enterprise#78706
Currently a ``ParseError`` is arising when the user installs the ``hr_recruitment_integration_monster`` module after deleting all types from Employment Types. Steps to reproduce: --- - Install ``hr_contract`` module - Open ``Employment Types`` and delete all types - Now try to install the ``hr_recruitment_integration_monster`` module. Traceback: --- ``` ParseError: while parsing /home/odoo/src/enterprise/18.0/hr_recruitment_integration_monster/data/hr_contract_type_data.xml:8, somew
Original PR description
Currently a ``ParseError`` is arising when the user installs the ``hr_recruitment_integration_monster`` module after deleting all types from Employment Types.
Steps to reproduce:
---
- Install ``hr_contract`` module
- Open ``Employment Types`` and delete all types
- Now try to install the ``hr_recruitment_integration_monster`` module.
Traceback:
---
```
ParseError: while parsing /home/odoo/src/enterprise/18.0/hr_recruitment_integration_monster/data/hr_contract_type_data.xml:8, somewhere inside <record id="hr.contract_type_temporary" model="hr.contract.type">
<field name="monster_id">2</field>
</record>
```
This commit solves the above issue by using ``noupdate="1"`` and ``forcecreate="False"`` to bypass record creation if it violates checks.
sentry-5731062091
Forward-Port-Of: odoo/enterprise#7678233 changes
Enhancements to existing features
Payment processing can now let related modules choose which invoices should receive a notification. This helps avoid unnecessary or inappropriate invoice messages when certain invoices should be excluded.
Original PR description
Instead of directly notify the invoices link to the transaction in _log_message_on_linked_documents, the invoice return by _get_invoices_to_notify are notified. It allow other modules to exclude some invoice --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The time off app now allows leave types marked as “Other” to bypass standard date validation. This supports more flexible configurations for worked-time or special leave categories that do not need the usual strict date checks.
Original PR description
Description of the issue/feature this PR addresses: This commit modifies the `_check_date` method in the `HrLeave` model to skip the date constraint check when the leave type is set to 'Other'. - Updated `_check_date` method to bypass the standard date validation if `leave_type_time_type` is 'other'. - This allows for more flexible date configurations for specific leave types. Current behavior before PR: The _check_date method always enforces date constraints, regardless of the leave type. This prevents the use of "leave" types that do not require strict date validation as they are worked time. Desired behavior after PR is merged: The _check_date method will skip date validation when the leave_type_time_type is set to 'other', allowing for more flexible leave configurations. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Belgian fleet payroll setup no longer overrides the vehicle fuel type default to diesel. This better reflects current Belgian company car usage, where electric vehicles are now the common choice, and reduces manual adjustments for users.
Original PR description
Since electric car is the most used new cars in belgium, we don't need to change the default to 'diesel' for belgium.
Resolved issues and error corrections
This fixes a recruitment access issue that prevented users with the Interviewer role from searching applications by applicant name. Interviewers assigned to applications can now find relevant candidates more easily in the recruitment list view.
Original PR description
### Steps to reproduce: - Create a user with 'Interviewer' group - Assign that user as interviewer to few applications - Log in as this user - Go to All applications list view in Recruitment module - Search on 'Applicant' ### Cause: In https://github.com/odoo-dev/odoo/commit/de79f671150ba29737ffc92d22687463b561524d#diff-3a7fc7935e58656320cc3e13fe8311415c847ae6a4273d87ef606ed520f83754 after introducing the hr_candidate we added an access rule for interviewer group to access this class but he can only write on it and can't search on it. ### Fix: We updated the access rule of the interviewer group so hec an be able to search on Applicant name. opw-4501932
The login flow now handles missing passwords correctly by showing the expected access denied message instead of an unexpected system error. This makes failed login attempts clearer for users and avoids confusing error pages.
Original PR description
Whenever you supply no password you are supposed to get an AccessDenied error. However in this case there will no be password supplied. This happens because of: https://github.com/odoo/odoo/blob/1f9f4dd165fccfaadf06c3ae68d742f5348bc9b6/addons/web/controllers/home.py#L122 When there is no value the key will also not be present. Therefore you will receive a keyerror instead of an accessdenied. This commit fixes that behavior and now you will get the accessdenied error as was originally intended.
The Point of Sale search box now keeps the text a user is typing when connected IoT devices refresh their status. This prevents interruptions during product searches and makes cashier workflows smoother.
Original PR description
Before this commit, when an IoT device was connected, if you kept typing in the search box, the input would be reset to its previous state with each statusLoop execution. This fix cancels the debounce on re-render, ensuring that the search word is preserved. opw-4562152 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an intermittent issue in the HTML editor's automated tests where focus tracking could sometimes use outdated selection information. The change helps make editor behavior and testing more reliable without altering visible business workflows.
Original PR description
Fix a non-deterministic error happening during the HOOT unit Test. The cause seems to be related to the hoot mock selection which do not always return the latest focused element in the document.getSelection(). runbot-115550 Related to : #197287 & #197345 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Link previews in Mail now handle page text encoding more reliably, so accented characters display correctly. This improves readability when users preview shared links from sources that use different encodings.
Original PR description
### Steps to reproduce: - Open the To-do app. - Paste the link into the editor (e.g., https://drive.google.com/file/d/1oNZsDWEUjxpwbB8tkv1CRCfp-pcKHhGG/edit). - Click on the link to open the preview. - Notice that accents are displayed incorrectly. ### Solution: - Retrieved encoding from the response or detected it using `chardet`. - Decoded the content using the detected encoding or fell back to UTF-8 if decoding failed. - Processed the decoded content to parse the HTML tree. ### Description of the issue/feature this PR addresses: Accents were not displayed correctly on the preview due to encoding mismatches. ### Desired behavior after PR is merged: Accents in the preview are displayed correctly as the content is decoded using the appropriate encoding, with a fallback to UTF-8 if needed. task-4435229
This fixes an issue in the HTML editor where pressing Enter after right-to-left headings, preformatted text, or quotes created a new paragraph in the wrong left-to-right direction. Users writing in right-to-left languages now get consistent text direction when continuing their content.
Original PR description
**Current behavior before PR:** When there is a `heading`, `pre` or `blockquote` tag in `rtl` direction, pressing enter at the end of element creates a new `p` tag in `ltr` direction rather than `rtl`. **Desired behavior after PR:** Now, pressing enter at the end of `heading`, `pre` or `blockquote` tag in `rtl` direction creates a new empty paragraph tag with `rtl` direction. task-4484619 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Project kanban view now correctly shows the Assign button when users hover over task assignment tags. This restores an expected action that had disappeared after a prior layout update, making task assignment easier from the board view.
Original PR description
The 'Assign' button of the field many2many_tags_avatar is always invisible in the kanban views with the class o_kanban_project_tasks. This happens because the condition that make it appear when the line of the field is hovered is never met: the class oe_kanban_content no longer exists since the refactoring of the kanban archs (see task: 3992107). Here we modify a bit the css rule so that the 'Assign' button can become visible when appropriate.
A missing test setup link was added so recently introduced website sale collection checks are included when the test suite runs. This helps prevent future issues from slipping through, with no expected change for everyday users.
Original PR description
Commit 2d4be3a added tests but import was missed.
The blog post snippet's horizontal layout now removes the divider from the final entry as intended. This fixes a small visual inconsistency on website pages, making blog lists look cleaner and more polished.
Original PR description
`s_dynamic_snippet_blog_posts` in the horizontal layout is displaying a border on the last entry while it should not. This is due to the `record_last` instead of `data_last` introduced in https://github.com/odoo/odoo/commit/dbb72d1f68cf7f462e1d6bdf8998f29627ccc2f0 Steps to reproduce: - Add a blog post snippet `s_blog_posts` in the page - Change the template option to "Horizontal" in the editor - Scroll to the last entry, it shouldn't have a border task-4182265 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
French VAT reimbursement amounts are now recorded in the correct closed reporting period without requiring new accounting entries in that period. This helps ensure VAT declarations remain accurate after period closure.
Original PR description
When we ask for a reimbursement for the VAT that is due from the state, we close the period, then we send the declarations, with the amount that is asked as reimbursement. The issue is that we need this amount to be registered in the report of this period. But it is closed, so we can't post moves with the tag in it. Let's transform it into an external value. task-4328721 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix adjusts the calendar view styling so short or compact events display more cleanly. It helps users read and manage calendar entries with fewer visual glitches.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix avoids conflicts when automated subscription payments and payment webhooks try to update the same invoice at the same time. Payment notifications will still be recorded on the related sales order, helping keep records consistent without interrupting automated billing.
Original PR description
Scenario ======== the subscription cron that automate the payment, start a payment transaction get the response and post process the the payment. In the meanwhile, the webhook receive also the response and try to post a message on the invoice in _log_message_on_linked_documents This lead to concurrent update on the invoice Solution ======== use _get_invoices_to_notify to remove the invoice currenctly handled by the invoice cron from the payment notification. The notification won't appear on the invoice in this flow, that's not a problem. Payment notification is also set on the sale order
This fixes an issue where opening the Planning Gantt view with a start date in the link could display too many time columns. The schedule view now stays easier to read and avoids confusion for users planning shifts or resources.
Report buttons now correctly trigger the intended error action when something goes wrong. This restores behavior that was accidentally lost during a previous update, helping users get clearer guidance instead of a missing or broken response.
Original PR description
During this forward port the feature error_action was lost: https://github.com/odoo/enterprise/pull/79108 This commit aims to bring it back.
This update fixes visual issues in the appointment type kanban view so appointment cards display more consistently. It corrects ribbon spacing, standardizes empty avatar sizing, and improves mobile alignment for easier reading.
Original PR description
Purpose ======= Fix some UI issues in the appointment type kanban view. Specification ============= - The ribbon is now wrapped around a div which is messing up the kanban display. Applying some style to make it position absolute and avoid a strange spacing. - Keep UI consistency by resizing the empty avatar card for resources to match the one used for users. - On mobile view, align the appointment title with its details. Task-4518542
Subscriptions will no longer assign a salesperson as the customer contact if that salesperson has no email address. This prevents customers from seeing portal errors caused by invalid email links and keeps subscription portal access working reliably.
Original PR description
Steps to Reproduce: 1. Create a user partner without an email address. 2. Create a subscription and set the salesperson to the newly created user. 3. Confirm the subscription order. 4. Log in as the subscription partner. Issue: This happens because `sales_user.email` is `False`, leading to an invalid `mailto:` link. Cause: The system sets the salesperson as the contact person for the partner, even when the salesperson does not have an email address configured. Fix: Added a condition to ensure the salesperson's email (`subscription_user.email`) is defined before aligning the partner's `user_id` with the salesperson. This prevents setting a salesperson without an email as the partner's contact person, thereby avoiding the error. Impact: This fix ensures that the portal view does not encounter issues due to missing email addresses for salespersons.
Features or functions removed from Odoo
This update removes an unnecessary automatic tour setting from guided steps where it has no effect. It keeps internal tour behavior cleaner and helps avoid confusion in automated or interactive walkthrough definitions, with no expected change for regular users.
Original PR description
isActive: ["auto"] doesn't make sense with the "run" function in a step because tour_interactive doesn't take into account steps without the "run" function. So, in this commit, we remove all isActive: ["auto"] for steps where there is no "run" function. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update removes unused automatic activation markers from guided tour steps that do not perform an action. It reduces confusing configuration in product walkthroughs and helps keep internal tour behavior consistent without changing user-facing features.
Original PR description
isActive: ["auto"] doesn't make sense with the "run" function in a step because tour_interactive doesn't take into account steps without the "run" function. So, in this commit, we remove all isActive: ["auto"] for steps where there is no "run" function.
Code cleanup and technical improvements
This cleanup removes an unused visual pointer from Odoo's automated web tours. It simplifies the tour code without changing how business users experience the product, while keeping debugging information available in the console for developers.
Original PR description
In this commit, we remove the pointer from the tour_automatic. Indeed, it has no useful use in this part of the code. There is no point in having the pointer in the tour_automatic. If we want to see the targeted element (trigger), just open the console. Each element found is logged in the console in debug mode (tour_automatic.js:65) As the pointer is never used and has no use in the tour automatic, we remove it. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Bug === 1. Create a mailing for an event registration 2. Add that mailing to the template 3. Create a new mailing for "mailing list" => The "event registration" template is proposed and it should be. Since 5226dc972560870d03e7e4bc5a838f1951b90ac7 , we removed the JS form view, which added `mailingFilterTemplates: true` in the env. That environment variable was responsible for the HTML component to filter the templates based on the model. Task-4568452 Forward-Port-Of: odoo/odoo#197437
Original PR description
Bug === 1. Create a mailing for an event registration 2. Add that mailing to the template 3. Create a new mailing for "mailing list" => The "event registration" template is proposed and it should be. Since 5226dc972560870d03e7e4bc5a838f1951b90ac7 , we removed the JS form view, which added `mailingFilterTemplates: true` in the env. That environment variable was responsible for the HTML component to filter the templates based on the model. Task-4568452 Forward-Port-Of: odoo/odoo#197437
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197489
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197489
Having no country on a portal user would cause attempting to edit personal information through the portal to have an internal server error. Added a check to country_id to ensure that the country_id is a numerical value before casting to an int to avoid this internal server error. opw-4309159 Forward-Port-Of: odoo/odoo#186374
Original PR description
Having no country on a portal user would cause attempting to edit personal information through the portal to have an internal server error. Added a check to country_id to ensure that the country_id is a numerical value before casting to an int to avoid this internal server error. opw-4309159 Forward-Port-Of: odoo/odoo#186374
With this Commit : ---------------------------------------------------------- - In the previous implementation, components marked for manual consumption were automatically consumed, like auto-consumed components, when starting production on a manufacturing order (MO). This occurred due to missing logic and conditions in the code that failed to differentiate between manual and automatic component consumption, and it only affected the shop floor operations. - This update corrects the componen
Original PR description
With this Commit : ---------------------------------------------------------- - In the previous implementation, components marked for manual consumption were automatically consumed, like auto-consumed components, when starting production on a manufacturing order (MO). This occurred due to missing logic and conditions in the code that failed to differentiate between manual and automatic component consumption, and it only affected the shop floor operations. - This update corrects the components' consumption process and enhances production tracking's reliability, ensuring that manual components are managed according to their intended usage. Task id: 4096514 Enterprise PR: odoo/enterprise#77831 Forward-Port-Of: odoo/odoo#196973 Forward-Port-Of: odoo/odoo#175816
Before this commit: === - The `pos-receipt-order-data` class was used as an XPath reference in multiple modules (l10n_fr_pos_cert, l10n_co_pos, pos_mercury, and pos_restaurant). - In point_of_sale, first of this class was used to add a QR code (pos_qr_code) to the receipt, but it was wrapped in a t-if="pos_qr_code" condition. - Due to this, the XPath content from other modules was only visible when pos_qr_code was present. After this commit: === - Added an empty `<div class="pos-rece
Original PR description
Before this commit: === - The `pos-receipt-order-data` class was used as an XPath reference in multiple modules (l10n_fr_pos_cert, l10n_co_pos, pos_mercury, and pos_restaurant). - In point_of_sale, first of this class was used to add a QR code (pos_qr_code) to the receipt, but it was wrapped in a t-if="pos_qr_code" condition. - Due to this, the XPath content from other modules was only visible when pos_qr_code was present. After this commit: === - Added an empty `<div class="pos-receipt-order-data" />` outside the conditional block. - This ensures that the XPath reference is always available. task-4552477 Forward-Port-Of: odoo/odoo#196915
Steps to reproduce ================== - Install web_studio,mrp - Go to Manufacturing > Operations > Manufacturing Orders - Open studio - Add a related field - Select Product > Image - Change the widget to the ImageField - Exit studio - Open any record - Go to the product - Edit the image - Go back to the list view => The old image is still displayed Cause of the issue ================== We add a unique parameter in the image url with the last record update. In the case of a
Original PR description
Steps to reproduce ================== - Install web_studio,mrp - Go to Manufacturing > Operations > Manufacturing Orders - Open studio - Add a related field - Select Product > Image - Change the widget to the ImageField - Exit studio - Open any record - Go to the product - Edit the image - Go back to the list view => The old image is still displayed Cause of the issue ================== We add a unique parameter in the image url with the last record update. In the case of a related field, the record has not been updated even if the image has changed. Solution ======== We still need to pass a unique value in the URL because browser will not fetch twice the same URL in the same session. In that case, we can simply pass a random value opw-4378605 Forward-Port-Of: odoo/odoo#197140 Forward-Port-Of: odoo/odoo#192036
As of January 2025, E-Faktur submission is on a new system called Coretax, which requires different file format and content. This commit backports the refactor we did for `l10n_id_efaktur` on 18.0. 4416314 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197375 Forward-Port-Of: odoo/odoo#194791
Original PR description
As of January 2025, E-Faktur submission is on a new system called Coretax, which requires different file format and content. This commit backports the refactor we did for `l10n_id_efaktur` on 18.0. 4416314 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197375 Forward-Port-Of: odoo/odoo#194791
Problem with stock valuation rounding. Steps to reproduce: - Create a product with automated valuation in AVCO - Set the product cost to 16.83 - Update the quantity to 10 - Make a purchase order with this product: quantity 10 and unit price 20 - Receive the product - On the product, reduce the quantity to: 10 (-10), then 1 (-9), then 0 (-1) - Check the valuation, it will remain -0.05 with a quantity of 0 This commit improves the previous commit: 795ce67 by using float_compare to ch
Original PR description
Problem with stock valuation rounding. Steps to reproduce: - Create a product with automated valuation in AVCO - Set the product cost to 16.83 - Update the quantity to 10 - Make a purchase order with this product: quantity 10 and unit price 20 - Receive the product - On the product, reduce the quantity to: 10 (-10), then 1 (-9), then 0 (-1) - Check the valuation, it will remain -0.05 with a quantity of 0 This commit improves the previous commit: 795ce67 by using float_compare to check if the rounding error should be considered a rounding issue. opw-4387534 Forward-Port-Of: odoo/odoo#197499
https://github.com/odoo/odoo/pull/112800 added a fix to ignore planning done or cancelled workorders. However it introduced an issue where any unfinished workorders before the ignored workorder will also be ignored and cause a traceback in certain workflows. Steps to reproduce ----- 1. Create a manufacturing order, and add 2 workorders 2. Start and finish the 2nd workorder 3. Attempt to add a 3rd workorder 4. Traceback occurs ``` 'date_planned_start': min([workorder.leave_id.date_f
Original PR description
https://github.com/odoo/odoo/pull/112800 added a fix to ignore planning done or cancelled workorders. However it introduced an issue where any unfinished workorders before the ignored workorder will…
https://github.com/odoo/odoo/pull/112800 added a fix to ignore planning done or cancelled workorders. However it introduced an issue where any unfinished workorders before the ignored workorder will also be ignored and cause a traceback in certain workflows.
Steps to reproduce
-----
1. Create a manufacturing order, and add 2 workorders
2. Start and finish the 2nd workorder
3. Attempt to add a 3rd workorder
4. Traceback occurs
```
'date_planned_start': min([workorder.leave_id.date_from for workorder in workorders]),
TypeError: '<' not supported between instances of 'datetime.datetime' and 'bool'
```
Cause
-----
This early continue added in https://github.com/odoo/odoo/pull/112800 is too eager: https://github.com/odoo/odoo/blob/f19b61b640c6623aad3269d8f0e515b5480e6880/addons/mrp/models/mrp_workorder.py#L525-L526
Although the specified workorder should be ignored, it could potentially have children (`workorder.blocked_by_workorder_ids`) that need to be planned.
Solution
-----
Remove the early continue and keep running `_plan_workorder` on the done/cancelled workorder. All of its children `workorder.blocked_by_workorder_ids` will be correctly planned in the recursive call, and the done/cancelled workorder will still be correctly ignored afterwards in this existing early return:
https://github.com/odoo/odoo/blob/f19b61b640c6623aad3269d8f0e515b5480e6880/addons/mrp/models/mrp_workorder.py#L529-L531
Also backport the fix from https://github.com/odoo/odoo/pull/123802 to handle the null `date_planned_finished` from the ignored workorder.
opw-4497704
Forward-Port-Of: odoo/odoo#197380
Forward-Port-Of: odoo/odoo#195910With is Commit : ---------------------------------------------------------- - In the previous implementation, components marked for manual consumption were automatically consumed, like auto-consumed components, when starting production on a manufacturing order (MO). This occurred due to missing logic and conditions in the code that failed to differentiate between manual and automatic component consumption, and it only affected the shop floor operations. - This update corrects the components
Original PR description
With is Commit : ---------------------------------------------------------- - In the previous implementation, components marked for manual consumption were automatically consumed, like auto-consumed components, when starting production on a manufacturing order (MO). This occurred due to missing logic and conditions in the code that failed to differentiate between manual and automatic component consumption, and it only affected the shop floor operations. - This update corrects the components' consumption process and enhances production tracking's reliability, ensuring that manual components are managed according to their intended usage. Task id: 4096514 Community PR: odoo/odoo#175816 Forward-Port-Of: odoo/enterprise#78838 Forward-Port-Of: odoo/enterprise#77831
Before this commit the class `TestMockedDeliveryUSPS` used `'standard', '-external'` which is the opposite of what it was supposed to do. As a result the tests were run during normal builds, and led to errors when the tests were run without demo data. This commit also removes the reference to demo data to make the tests more robust. Runbot Errors: + https://runbot.odoo.com/odoo/action-573/114550 + https://runbot.odoo.com/odoo/action-573/114551 + https://runbot.odoo.com/odoo/action-573/1
Original PR description
Before this commit the class `TestMockedDeliveryUSPS` used `'standard', '-external'` which is the opposite of what it was supposed to do. As a result the tests were run during normal builds, and led to errors when the tests were run without demo data. This commit also removes the reference to demo data to make the tests more robust. Runbot Errors: + https://runbot.odoo.com/odoo/action-573/114550 + https://runbot.odoo.com/odoo/action-573/114551 + https://runbot.odoo.com/odoo/action-573/114552 Forward-Port-Of: odoo/enterprise#78706