Tuesday, June 18, 2024
18 changes
1 change
Resolved issues and error corrections
Point of Sale now keeps the product reference on order lines even when the full product details were not loaded at startup. This prevents sale-order-linked POS lines from losing their product association, improving order accuracy and reducing checkout issues.
Original PR description
When a line has a product_id but no product, the product_id is not loaded in the line. This is a problem when the product came from a sale order and the product do not match requirement to be loaded at the initialization of the pos. This commit fix this issue by loading the product_id in the line when the product is not loaded. taskId: 3981111
1 change
Resolved issues and error corrections
The live chat bot flow has been fixed so portal users can be forwarded to an operator without the conversation failing. This improves the customer support experience by ensuring logged-in portal customers can complete automated chat handoffs reliably.
Original PR description
Before this PR, the "forward_operator" chat bot step would fail when logged in as a portal user. Indeed, this step post a message which requires reading the partner of the operator but portal users are not allowed to do so. This PR fixes the issue. opw-3987375
6 changes
Enhancements to existing features
Brazilian electronic invoice PDFs generated by Odoo now show a watermark clarifying they are not the official legal invoices. Portal users are also informed that the official documents should be downloaded through the Avatax download option, reducing confusion and compliance risk.
Original PR description
The official invoice will be retrieved via Avatax. Adding the official PDF in the portal is a bit complicated, so we instead simply add a watermark to the standard Odoo one. task-3719527
10 changes
Resolved issues and error corrections
This fix resolves an issue where users were unexpectedly redirected to the backend system when creating backorders in the barcode scanning module during manufacturing operations. Previously, when a backorder was automatically created, users would be taken away from the barcode interface instead of staying in the manufacturing operations view. Now they remain in the barcode module for continued scanning operations.
Custom and anytime appointments can now include more than one staff member, making scheduling more flexible for teams. The update also keeps appointment slots aligned when staff or resources change and restores full form validation during booking.
Original PR description
Remove the constraint preventing to set more than one user on a 'custom' / 'anytime' appointment_type. While creating it from the calendar is linked to the logged user. One could create a custom / anytime appointment in other ways and set multiple users, or add a user to one created from the calendar. Task link: https://www.odoo.com/web#model=project.task&id=3549573 Task-3549573
Adds a new deferred revenue and expense calculation option that books a full monthly amount as soon as a month has started, rather than splitting the first month by days. This gives accounting teams another way to align deferral schedules with business policies while keeping the final month adjusted to balance the total.
Original PR description
In this new computation method, when a month is started, we fully account a "equal per month" amount for it, instead of a prorata-ed amount. The last month will null to compensate for the full first month. E.g.: #### 12000 from 2024-06-05 to 2025-06-04 - 1000 for June 2024 -> Dec 2024, and Jan 2025 -> May 2025 - 0 for June 2025 #### 12000 from 2024-06-30 to 2025-06-29: - 1000 for June 2024 -> Dec 2024, and Jan 2025 -> May 2025 - 0 for June 2025 #### 12000 from 2024-07-01 -> 2025-06-30: - 1000 for July 2024 -> Dec 2024, and Jan 2025 -> June 2025 - 0 for July 2025 - same behaviour as "Equal per month" because the months are full task-id 3925925
Images uploaded to the Documents app are now kept at their original resolution instead of being automatically resized or compressed. This helps users preserve image quality when storing and sharing files through Documents, while other apps continue to use the existing optimization behavior.
Original PR description
To ensure users have access to the original high-resolution images in the Document app without quality loss, we disable the image resizing and compression post-process when uploading image in Document (feature introduced in odoo/odoo#78556). Note that this image post-process is still applied in other application unless also disabled explicitly. Task-3944609
The appointment form used from the planning timeline is easier to complete, with start and end dates shown separately and duration-related fields in a clearer order. When users change the appointment type, the meeting duration can automatically align with that appointment type, reducing manual adjustments and scheduling mistakes.
Original PR description
Improve the form view of calendar event opened on the gantt view of appointments. 1) Add onchange for duration when appointment type is changed: The duration will be aligned with the appointment one. In turn, the stop date will be updated accordingly. 2) Reorder fields to have fields related to the duration come before the duration field itself. 3) Select Date separately for start and stop instead of using the daterange widget. Task-3861242
The sign request wizard now uses clearer wording by labeling the confusing company field as a user field. It also automatically fills in the current user when available, reducing manual setup and helping users send signature requests more smoothly.
Original PR description
before this PR, user were encountering confusion regarding the company field leading to the necessity of manually setting this field, the current user wasn't automatically assigned to the company field. In this PR, the company field has been relabeled as user for clarity. Additionally, the default value for the user field is now automatically set when a user is set. task-3890179
Original PR description
### Steps to reproduce: - Enable multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Operations types - Click on Manufacturing and put "Always" on create a…
### Steps to reproduce: - Enable multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Operations types - Click on Manufacturing and put "Always" on create a backorder - Create a product P (no need for a bom) - Create and confirm a manufacturing order for 2 units of the product - Go to the barcode module > operations > manufacturing > the MO - Register only one unit of P and produce #### > A backorder is automatically created but you are redirected to the backend. Note: If you were in "ask" on create backorder or if your product had a bom and you did not register the quantities of consumed components, a pop up would appear and resolving the pop up would redirect you to the kanban view of mrp.production in the barcode module. ### Cause of the issue: The `validate` method called by clicking will execute the action if the orm call returns one and adds an 'onClose' call to its options: https://github.com/odoo/enterprise/blob/661fd61c0f50d4bf80484227c92a3fd0b9a05c68/stock_barcode/static/src/models/barcode_model.js#L475-L482 https://github.com/odoo/enterprise/blob/661fd61c0f50d4bf80484227c92a3fd0b9a05c68/stock_barcode/static/src/models/barcode_model.js#L487-L492 If the action is a popup, the onClose method will be called once the pop up is resolved. However, if the action redirects you directly to the form view of the mrp.propduction the onClose method will not be triggered and you will not be redirected to the kanban view. ### Fix: As pop ups are the only actions that we really want to trigger during the validate call we exclude actions from the base models (stock.picking and mrp.production) to avoid any redirection to the backend. #### Follow up of commit 6915741 ## opw-3890886
This update fixes an issue where VoIP calls would fail if the internet connection was temporarily lost. The system now automatically attempts to reconnect when the connection drops, ensuring users don't lose their VoIP service during brief network interruptions. This improves reliability for teams relying on VoIP for business communications.
Original PR description
Task-3610647 Forward-Port-Of: odoo/enterprise#64679 Forward-Port-Of: odoo/enterprise#64267
Fixed an issue where IoT boxes were always connecting to the first company's channel instead of their assigned company's channel. This caused printing jobs to fail when an IoT box was configured for a different company. After this fix, IoT boxes will now correctly connect to their assigned company's channel, allowing reports to print as expected.
Original PR description
Before this commit: An IoT box would always listen to the iot.channel of the first company as it did not take into account the IoT-box company field. As such, setting an IoT box on a company C2 setting a printer and report to print on this IoT and restarting it. Report will never print as the IoT listen to C1 channel After this commit: If the IoT box company is set and the IoT is restarted. It will received the correct IoT channel. So, to print IoT reports opw-3991810
This fix resolves an issue where invalid security tokens in the Chilean EDI system could cause the automated claim status verification process to fail and stop processing records. The system now automatically clears invalid tokens when detected, allowing the process to continue and obtain a new valid token on the next attempt. This ensures that document processing workflows complete successfully even when token issues occur.
Original PR description
Suppose the SII workflow cron job runs, and there are no records with the `ask_for_status` or `accepted` l10n_cl_dte_status, but there are a lot with the `claimed` status. If the token on the certificate happens to be invalid, `_l10n_cl_ask_claim_status` will raise an InvalidToken exception and abort the cron job. This prevents the records from being processed. This fix clears an invalid token if it's detected, so that when the next record is processed a new one will be created. The record raising the exception should succeed the next time the cron job runs. opw-3920273 Forward-Port-Of: odoo/enterprise#63809
This update fixes how buttons appear in appointment scheduling modals on mobile devices. The "Share" modal and appointment preview buttons were not displaying correctly due to styling issues. The fix ensures these buttons now display properly on all screen sizes, taking up full width on mobile and only necessary space on larger screens.
Original PR description
Purpose ======= Fix the modal buttons which were badly displayed on mobile. Happening on the appointment type "Share" modal and the appointment type on-boarding step 2 "Preview" button modal. Specification ============= Usual modal buttons are direct children of the footer tag. However in these 2 cases, we're using a custom widget to add a modal button. The widgets are encapsulated into a "o_widget" div which messes up the button display. Restoring a good display for these widgets buttons by making them take all the available space on mobile view and only the necessary space on higher screen sizes. Task-3981072 Forward-Port-Of: odoo/enterprise#64787 Forward-Port-Of: odoo/enterprise#64235
This fix resolves an issue where appointment availability slots were incorrectly showing as unavailable at the end of business days (like 11pm-12am). The problem was caused by tiny 1-minute gaps between scheduled slots being treated as unavailable time. Now these minimal gaps are ignored, ensuring customers can book appointments right up until closing time.
Original PR description
Current behavior: --- When looking at an appointment availability, slots are missing (ie: 11pm-12am) Steps to reproduce: --- 1. Install website_appointment 2. Go to Appointment 3. Select/Create a resource appointment 4. Make sure resources use the default calendar 5. In schedule, change 'To' to midnight (00:00) 6. Click on 'Go to Website' 7. Select the next day 8. Should be available until midnight 9. => slots missing Cause of the issue: --- When computing unavailabilities with _unavailable_intervals_batch, it takes all available slots: 12am-11:59am, 12pm-11:59pm then finds intervals between slots: 11:59am-12pm 11:59pm-12am These 1-minute intervals invalidate their respective slot => the slots 11am-12pm and 11pm-12am will show as unavailable Fix: --- Don't consider intervals that are one minute or less as unavailable Community PR: https://github.com/odoo/odoo/pull/163213 opw-3861561 Forward-Port-Of: odoo/enterprise#61403
This update corrects a styling issue in the barcode module that was unintentionally affecting the appearance of forms in other parts of the system, particularly in accounting reconciliation. The fix ensures that barcode-specific styling is applied only where intended, restoring the correct layout in other modules.
Original PR description
Prior to this PR, the padding (introduced in commit b857e39666a1f3decf67aab48c3629f2d9723d17) of `o_form_nosheet` was triggered globally if barcode was installed. It causes issues in other places (like `account_accountant` reconciliation). task-3951200 --- | Before | After | |--------|--------| |  |  |
This update fixes several technical issues in the Knowledge module that were causing display problems and inefficiencies when switching between articles. The changes improve the responsiveness of article switching, reduce visual flickering, and ensure that article titles and comments are properly managed when navigating between different articles.
Original PR description
Since the introduction of the new model/record, the `record` props of fields can be updated to another `resId` without triggering `onWillUpdateProps`. Instead a new hook called `useRecordObserver` was introduced. This PR introduces multiple technical corrections related to the new model/record. * `openArticle` can use the `Record.save` with `nextId` this will avoid re-loading the current record's data just before switching to another record. * Behaviors in an article body can be destroyed sooner using `useRecordObserver`. * Topbar, Sidebar, Comments and Cover are adjusted to properly interact with the `Record` they handle * Ensure that a title is extracted from the body at the right timings if applicable (`beforeLeave` and `openArticle`) * Reduce flickering when switching article task-3875521
When clicking on a Helpdesk Ticket from the activities list, the system now displays the correct search filters. Previously, it was showing a search view without the necessary activity deadline filters, making it harder for users to find relevant tickets. This fix ensures the proper search view is used consistently whether accessing tickets through activities or the main Tickets button.
Original PR description
Issue: ------ When we click on "Helpdesk Ticket" in the activities, we are redirected to the kanban view (`helpdesk_ticket_view_kanban`), but no filter is added. Cause: ------ When going to the…
Issue: ------ When we click on "Helpdesk Ticket" in the activities, we are redirected to the kanban view (`helpdesk_ticket_view_kanban`), but no filter is added. Cause: ------ When going to the kanban view via activities, the search view selected is `helpdesk_ticket_view_search_analysis`, which does not contain filters on the `my_activity_date_deadline` field. When we go to the kanban view via the "Tickets" button, we have the search view `helpdesk_tickets_view_search` which is correct. Via ticket button, we are taking `helpdesk_ticket_action_team` action that forces the search view with `helpdesk_tickets_view_search`. Via ticket button: helpdesk_tickets_view_search (priority: 20) Via activity: helpdesk_ticket_view_search_analysis (priority: 16) 16 is the default value for the `priority` field. Solution: --------- Set a priority lower than the default on the `helpdesk_tickets_view_search` view, to make sure it is selected. opw-3976395 Forward-Port-Of: odoo/enterprise#64756
This fix corrects a bug where overtime hours reported in the attendance module didn't match the overtime hours shown in payslips for the same period. The issue occurred when employees were in certain timezones, causing the system to incorrectly include overtime records from adjacent days in the calculation. The fix adjusts how dates are processed to ensure accurate overtime summation across both modules.
Original PR description
This commit fixes preprocessing of work_data in hr_payroll so that the sum of extra hours/overtime for a period as shown in attendance module equals the sum of overtime hours as shown in a payslip for that same period in all scenarios.