Tuesday, December 19, 2023
32 changes · 17.0
Resolved issues and error corrections
Public visitors can now see booth category images on event pages without needing to log in. This fixes missing images for anonymous website users and helps event booth listings display correctly to all potential attendees or exhibitors.
Original PR description
[FIX] website_event_booth: make images of booth categories accessible by public user Currently, categories' images can only be seen while logged in. This fix will allow public user to have access to images. Description of the issue/feature this PR addresses: add access rights for booth category for public user Current behavior before PR: images of booths' are not loading if not logged in Desired behavior after PR is merged: images of booths' are loading regardless of the user opw-3625773 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Installing POS Restaurant no longer creates an extra standard point of sale named Shop with incomplete settings. Demo data loading now skips archived POS configurations, preventing server errors when users start from the frontend.
Original PR description
Prior to this commit, when creating a database with pos_restaurant, a classic point_of_sale was created with the name Shop but without all the settings of the previous Shop that was archived by the installation of pos_restaurant. We do not want this so we remove this behaviour. We also fix another bug. The bug is that, if a starting pos config is archived and that the user wants to download the demo data from the frontend after that, the server will raise an error. This is because the pos config is archived and the pos session will try to create orders and use payment methods from the archived pos config. We also fix this in this commit by not taking into account the point_of_sale_onboarding_main_config.xml file if the pos config is inactive. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures automated rules set to run when users update fields in the interface are saved with the correct trigger fields. As a result, business workflows depending on these field changes now react as expected instead of silently failing.
Original PR description
Before this commit, and since [1], automated rules of type "on_change" (i.e. on UI update) didn't run. This because the wrong field (trigger_field_ids) was used to record fields for which the rule must be triggered. For that type of rule, the field to use is on_change_field_ids. As a consequence, those rules were not correctly created, and thus they didn't properly react to field changes. [1] odoo/odoo@8bdac7e26c961e04117149529a8c7eccd8cb734e opw 3632084 opw 3595411 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
Customers updating a shared billing and shipping address will now see the required phone number warning when the phone is missing. This prevents confusing checkout reloads and helps customers complete purchases with the needed contact information.
Original PR description
Issue: ====== The phone field is required in a billing and shipping address at the same time but no warning appears. Steps to reproduce the issue: ============================= - Install ecommerce - Log in with mitchel admin and add anything to cart then go to checkout - Update the saved address which is for shipping and billing and remove the phone - Save the adress , the page will reload and no error appears. - Add the phone and save it will works. Origin of the issue: ==================== `use_same` wasn't passed in `kw` when updating the address. Solution: ========= Force `use_same` when validating the values when we have the address is the same for shipping and billing. opw-3617720
This fix prevents a crash when opening certain mobile record creation flows that rely on the activity kanban view. It makes the view handle missing selection details safely, improving stability for customized screens.
Original PR description
When defining a selection field as field dependency, one must specify the options of that selection field (or at least an empty list if options don't matter). Because if that field isn't in the arch (which is the point of defining field dependencies), and the model has to process a value for that field, it will crash in `parseServerValue` (selection case). There's no scenario to reproduce this in standard, but one can build one: edit the project task form view arch, in the child_ids x2many, set mode="tree,kanban", but do not add the kanban nor the form view inline (s.t. default views are used). Then open the view in mobile and click to add a record in the relation. 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
Users working in languages that use a 12-hour clock, such as Arabic, can now open and edit date/time fields without errors. This improves reliability when setting deadlines or similar dates in Odoo.
Original PR description
Isssue: ======= When using a language with twelve-hour format (arabic) and open datetime_picker it will raise an error. Steps to reproduce the issue: ============================= - Change lang to arabic - Create a task in a project an try to modify the deadline Origin of the issue: ==================== When we have `props.focusDateIndex != 0` and `props.range = False` we will have only that index in the array `this.state.timeValues` , iterating over the array in `handle12HourSystem` function will result in error because it starts iterating from index 0 which is undefined. Solution: ======== Skip the undefined indexed; opw-3629657
This fix prevents an error from appearing when a user tries to replenish a product that has no replenishment rules configured. Users can now open the replenish action without disruption, improving reliability in stock workflows.
Original PR description
Currently traceback appears if no rules are available on the product. (Steps to reproduce: install sale and stock, but not purchase, go to the product and click "Replenish") Index is out of range because route_ids is an empty list. This fix will allow route_ids to be empty. Description of the issue/feature this PR addresses: Empty list of rules creates a situation where index becomes out of range in a wizard Current behavior before PR: Traceback appears when no rules are available Desired behavior after PR is merged: No traceback appears opw-3637054 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users who enter an invalid context in a view will now see a validation error instead of a technical traceback. This helps administrators understand and correct configuration mistakes without encountering disruptive error pages.
Original PR description
This issue occurs when a customer passes an invalid context in the view, at that time this error will be generated. Steps To Produce:- - Go to `Settings >Technical >User Interface >Views` - Open any…
This issue occurs when a customer passes an invalid context in the view, at that time this error will be generated.
Steps To Produce:-
- Go to `Settings >Technical >User Interface >Views`
- Open any view
- pass invalid context like `context="{'search_default_demo': active_id}, 'search_default_x_stage_id':[3]}"`
- error will be generated
sentry traceback-
```
SyntaxError: unmatched '}' (<unknown>, line 1)
File "odoo/http.py", line 2157, in __call__
response = request._serve_db()
File "odoo/http.py", line 1732, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1759, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1960, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 207, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 722, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "home/odoo/src/enterprise/17.0/web_studio/controllers/main.py", line 755, in edit_view_arch
view.write({'arch': view_arch})
File "home/odoo/src/enterprise/17.0/web_studio/models/studio_mixin.py", line 33, in write
res = super(StudioMixin, self).write(vals)
File "odoo/addons/base/models/ir_ui_view.py", line 524, in write
res = super(View, self).write(self._compute_defaults(vals))
File "odoo/models.py", line 4422, in write
fields[0].determine_inverse(real_recs)
File "odoo/fields.py", line 1397, in determine_inverse
determine(self.inverse, records)
File "odoo/fields.py", line 101, in determine
return needle(*args)
File "odoo/addons/base/models/ir_ui_view.py", line 268, in _inverse_arch
view.write(data)
File "home/odoo/src/enterprise/17.0/web_studio/models/studio_mixin.py", line 33, in write
res = super(StudioMixin, self).write(vals)
File "odoo/addons/base/models/ir_ui_view.py", line 524, in write
res = super(View, self).write(self._compute_defaults(vals))
File "odoo/models.py", line 4412, in write
real_recs._validate_fields(vals, inverse_fields)
File "odoo/models.py", line 1449, in _validate_fields
check(self)
File "odoo/addons/base/models/ir_ui_view.py", line 384, in _check_xml
view._validate_view(combined_arch, view.model)
File "odoo/addons/base/models/ir_ui_view.py", line 1353, in _validate_view
self._validate_attributes(node, name_manager, node_info)
File "odoo/addons/base/models/ir_ui_view.py", line 1649, in _validate_attributes
vnames = get_expression_field_names(expr) - {'id'}
File "odoo/tools/view_validation.py", line 243, in get_expression_field_names
item_ast = ast.parse(expression.strip(), mode='eval').body
File "ast.py", line 50, in parse
return compile(source, filename, mode, flags,
```
after this commit, we can display Validation Errors to users instead of a traceback when they make mistakes in any UI view.
sentry-4684090820The multi-record selector dropdown now uses only the space it needs instead of taking up a full line. This makes forms cleaner and easier to scan, especially where several fields appear close together.
Original PR description
### Before: Previously, the multi-record selector dropdown occupied an entire line. ### After: This PR addresses this issue by applying the `flex: 1 0 1rem;` property to the auto-complete dropdown. This adjustment confines the dropdown to the necessary space. If the space available is less than `1rem`, it will wrap to a new line. Task ID: [3607067](https://www.odoo.com/web#id=3607067&cids=2&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
The Contacts help text no longer mentions the Private Address option, which was already removed from the product. This avoids confusion for users who could not find that address type in the contact form.
Original PR description
### Steps to reproduce issue: 1. Open Contacts 2. Select a contact 3. Choose: - Add an address - Only if contact is individual: Select drop-down menu next to Address fields in form 4. Private Address doesn't show in the options ### Explanation: Private Address was intentionally deleted from `res.partner.type` in *v16.4* (cf. b1f7e56f7938649c540cab8c2feec3c6407ae47d). ### Suggested change: Remove Private Address paragraph in `res.partner.type.help`, it should not exist anymore. opw-3602922
Razorpay payment updates no longer process a duplicate authorization event when capture confirmation arrives at the same time. This prevents conflicting transaction status updates, reducing payment log errors and improving reliability for sales orders paid through Razorpay.
Original PR description
Steps: - Install razorpay and sales app. - Enable razorpay app. - Create an order. - Do a transaction for order. Issue: - Logger is showing error: `Error could not serialize access due to concurrent…
Steps:
- Install razorpay and sales app.
- Enable razorpay app.
- Create an order.
- Do a transaction for order.
Issue:
- Logger is showing error: `Error could not serialize access due to concurrent update`
- Also showing warning: `odoo.addons.payment.models.payment_transaction: tried to write on transaction with reference S00001 with illegal value for the state (previous state: done, target state: authorized, expected previous
state to be in: ('draft', 'pending'))`
Cause:
- Razorpay webhook returns both events `payment.authorize` and `payment.capture` at same time because of that
`handle_notification_data` method tries to write on transaction at same time one with `_set_authorize` and `_set_done` and because of serialization it skip authorize event on first try and directly execute second and set transaction to done now it execute authorize one even though transaction already in done state.
Fix:
- Remove authorize event handling from webhook as razorpay execute `payment.authorize` and `payment.capture` at same time so no need to handle authorize event.This update adjusts tests across several Odoo apps so they no longer depend on optional demo data being installed. That makes validation more consistent for deployments and reduces the risk of false test failures across accounting, CRM, calendar, authentication, and other business workflows.
Original PR description
Description of the issue/featureforum.post 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 fixes the website editor so column count options update only after a user finishes resizing a column, rather than during the drag. The change makes the editor behave more consistently and avoids unreliable updates caused by unfinished background processing.
Original PR description
Since [commit 1], the columns count in the options is updated while dragging the width handle of a column. That behavior relies on asynchronous code which is not awaited. This commit corrects it to be in line with the behavior of all other options: the count is updated after releasing the drag. [commit 1]: https://github.com/odoo/odoo/commit/710d000f1872fd99b41d52ec3d6923756bba7cba task-3576046
This fix corrects an issue where the 'Create Invoice' button was incorrectly appearing in field service tasks when there was nothing to invoice. The button now properly hides when the invoice status is set to 'Nothing to Invoice', preventing users from attempting to create invoices for zero-value service orders.
Original PR description
Versions: --------- - 17.0 Steps to reproduce: ------------------- - Create a sale order from the sales - In sale order product must be service type, based on delivery quantity, create order on task, project field service then - Add the product unit price is zero, then conform - Go to the task form view, mark as done - 'create invoice' button is visible Issue: ------ - In the field service task form view, the 'Create Invoice' button is visible when the invoice status is 'nothing to invoice'. Cause: ------ - In this Enterprise PR-43303 , the invoice status is set to 'Nothing to Invoice' instead of 'to Invoice', which is causing an issue Solution: --------- - By disappear the 'create invoice' buttons when the invoice status is in the 'Nothing to Invoice'. task-3491748
This update fixes a language-switching issue in the frontdesk module and adds phone and email contact fields to the visitor form. These improvements enhance the frontdesk functionality by making it easier to capture and manage visitor contact information while resolving a technical issue that affected users switching between languages.
Original PR description
1) Fix the traceback when we switch the language 2) Add phone and email widget in frontdesk visitor task-3524198
This update prevents users from uploading documents or sharing files when viewing the Trash folder or the All workspace (when no shareable workspaces exist). These buttons are now properly disabled in these contexts to prevent confusion and unintended actions, improving the user experience by making the interface behavior more intuitive.
Original PR description
Before this commit: - Switch to the `Trash` folder. The `Upload` and the `sharing Dropdown` buttons are active and functional. - When no sharable workspace exists, the `sharing Dropdown` button is enabled inside `All` workspace. After this commit: - Both the buttons are disabled when inside the `Trash` folder. - When no sharable workspace exists, the `sharing Dropdown` button is disabled inside `All` workspace. Task-3575805
This update fixes a system error that occurred when users left the product quantity field empty in the Field Service Management product view. The system now properly sets the quantity to zero instead of crashing. Additionally, the product filter in the search view has been repositioned for better organization and usability.
Original PR description
- Steps: in the FSM product view, set the value as empty, a traceback appears - Issue: Traceback should not appear and the quantity of the product should be set to 0 - Cause: in industry_fsm_sale/product_product.py set_fsm_quantity() method, we set the fsm_quantity using the float_round() method, if the value given to the float_round is None, the func tracebacks - Solution: give quantity or 0 instead of quantity to the float_round also fixed xpath for productproduct search filter This is a preventive fix since with the following PR the backend should not recieve a null value anymore https://github.com/odoo/odoo/pull/142523 Task-3599491
The bank reconciliation widget now correctly applies analytic distribution models when processing manual operations, just like it does for regular journal entries. Previously, analytic rules based on account prefixes, partners, and partner categories were ignored in bank reconciliation, but this fix ensures consistent behavior across all transaction types.
Original PR description
The analytic distribution model applies to journal entries but not to entries created in the bank recon widget. This fix applies the distribution model based on the partner, partner category and account prefix. To reproduce: - create a distribution model that applies to a particular account prefix - create an invoice with a line that uses an account containing the prefix in the code (the distribution model applies) - In bank reco, on the manual operations tab, use the same account (the distribution model doesn't apply) Solution: Override the `_compute_analytic_distribution` method from analytic.mixin in `bank.rec.widget.line` In order for this to work, the corresponding community PR removes the `precompute` attribute. manual forward port of #51343 OPW-3558060 Forward-Port-Of: odoo/enterprise#51379
This update fixes how worksheet titles display in Field Service templates. Previously, titles with spaces would wrap awkwardly to new lines and the title area was too narrow. The fix improves the title width and ensures text wraps properly, making worksheets look cleaner and more professional when technicians view them.
Original PR description
Steps: - Open Field service - In configuration worksheet template - Then Device Installation and Maintenance - Design template - In the view,show invisible Elements Then - Select text And Close,after refresh Issue: - When we enter a string without spaces, it shows as a single line. However, when we enter a string with spaces, it appears on another line. - The width of the title line is very small Cause: - Because we given the 'oe_title' class inside of the group, According to the 'Web-form group' when we given in side of the group it is effecting Fix: - Removing the group for the 'oe_title',The issue is resolved and Add the 'text-break' class the title is overflow when we given without space task-3512366 Forward-Port-Of: odoo/enterprise#47895
This fix prevents the system from sending timesheet logging reminders to archived user accounts. Previously, archived users with active email forwarding addresses would receive unnecessary spam notifications, potentially causing confusion and cluttering inboxes. This change ensures reminders are only sent to active users who actually need to log their time.
Original PR description
Especially those could have redirection emails, you know, and someone could receive tons of useless spam telling archived users to log their timesheet. Task-3335173
The Sign app's drag-and-drop feature for adding fields to signature templates was causing errors on mobile devices and tablets. This fix disables the editing feature on iOS and Android devices to prevent user confusion and errors until full mobile support can be properly implemented.
Original PR description
In the Sign app, the user can drag & drop fields onto a signature template. Sadly this feature isn't properly supported on mobile devices with touch support (like tablets) but nothing prevent the user from attempting to use it, leading to errors being thrown. Supporting this feature on those device being out of scope for a fix in a stable release, this commit disallow to edit on mobile OS (i.e. iOS/Android) to avoid user confusion. Steps to reproduce: - To to sign app on a mobile device (like a tablet) - Open a editable template - Try to drag&drop a field from the sidebar to the document viewer => error is thrown or nothing happens opw-3582695 Forward-Port-Of: odoo/enterprise#52765
This update fixes a critical issue in the Chilean Point of Sale system where users could attempt to invoice customers without entering their required RUT (tax ID) number, causing the system to freeze. The fix now makes the RUT field mandatory during customer creation in POS, preventing invoicing errors and improving the checkout experience. The update also ensures compatibility with recent community branch improvements.
Original PR description
Prior to this commit, if you try to invoice a new contact created in the PoS, but forgot to put his RUT, then you get an error and it gets stuck there "thinking". This commit adds the RUT number to the required fields in the chilean localization of the PoS, so that it is not possible to invoice without it. This commit also adapts the partner_editor override in the chilean and mexican localization to adapt it to the fix of the community branch. This fix makes it impossible for a user to modify commercial fields of a child partner. task-id: 2810741 Forward-Port-Of: odoo/enterprise#52775
A bug in the payroll system's remaining amount calculation has been fixed. The issue was in the salary attachment module where a dependency was missing from the calculation method, which could cause incorrect remaining amounts to be displayed. This fix ensures accurate payroll calculations for salary attachments.
Original PR description
Fixed `_compute_remaining_amount` method by adding missing depend Forward-Port-Of: odoo/enterprise#52433
This fix ensures that appointment booking and cancellation emails are sent with consistent sender information. Previously, public users would receive emails showing odoobot as the author while the organizer's email was used, causing confusion. Now both the author and sender email are properly set to the event organizer when available, providing a consistent and professional experience.
Original PR description
**Before this PR** For public users, we assign 'author_id' as odoobot in appointment booking and cancellation emails, which can lead to inconsistency since 'author_id' belongs to odoobot while 'email_from' belongs to the event organizer. **After this PR** Now in all cases, 'author_id' and 'email_from' are set if the organizer exists. Task-3433753 Forward-Port-Of: odoo/enterprise#52934 Forward-Port-Of: odoo/enterprise#49750
This update fixes a test in the Planning module that was failing due to incorrect timezone configuration. The test now properly sets the employee's timezone to match the test requirements, ensuring the scheduling duplication feature works correctly when preserving local times across different timezones.
Original PR description
`test_duplication_should_preserve_local_time` calls `action_copy_previous_week` with a timezone in the context. The issue is that the method get the timezone from the employee or else the context, yet the employee has a tz 'UTC', so it crashes. We this commit, we set the desired tz on the employee. Forward-Port-Of: odoo/enterprise#52928
This fix resolves a keyboard shortcut conflict in the Timesheet Grid view where pressing Alt+I was incorrectly launching the timer for a timesheet line instead of opening the 'add a line' wizard. The fix removes redundant keyboard shortcuts from individual timesheet lines since the timer launch functionality already has dedicated shortcuts, allowing the Alt+I shortcut to work correctly for adding new lines.
Original PR description
Steps: - Open Timesheets - Select alt - Shows the data-hotkeys Issue: - pressing Alt + i launches the timer for 'line i' instead of opening the 'add a line' wizard Cause: - The data-hotkey i set as both 'line i' and 'add a line' Fix: -In the Timesheets grid view, shortcut keys have already been created for launching a timer for lines, so there is no need to create data-hotkeys for them. So, data-hotkeys are removed for the lines. -And Modified some of the test cases that are related to the 'data-hotkeys'. task-3491748 Forward-Port-Of: odoo/enterprise#47497
This fix resolves an issue where role avatars were not displaying correctly in the Planning module's role configuration screen. The avatars now appear properly by adding the correct styling class and using a static image source that works even without demo data.
Original PR description
Steps: - Open Planning - Select configuration, then roles - In Roles search action - Avatars are not correctly displayed in the action helper Issue: - In action helper the avatars are not correctly displayed and avatar is not displayed when there is no demo data. Cause: - For images, we need to add the newly added 'o_avatar' class, which is currently missing in the image tag. - we use a dynamic image source link for the avatar, and that's why it doesn't display when there is no demo data Fix: - By adding the Bootstrap class to the image tag, avatars are displayed correctly. - By providing a static source link for the image, the avatar is displayed even when there is no demo data task-3491748 Forward-Port-Of: odoo/enterprise#47351
This fix resolves an error that occurred when importing the default Chart of Accounts in UAE companies with payroll enabled. The issue was caused by a payroll account being incorrectly configured as a "Payable" type instead of an "Expense" type. The fix changes the default payroll account to the "Basic Salary" account, allowing the Chart of Accounts to be exported and imported without errors.
Original PR description
*: l10n_ae_hr_payroll_account --- Description of the issue/behavior this commit fixes: When l10n_ae_hr_payroll_account is installed, trying to export the default CoA and import it just after results in an error. This is due to the default payroll account being set on a "Payable" type account while it should be an "Expense" type one. --- Steps to reproduce: 1 - Install l10n_ae_hr_payroll_account 2 - Use the AE Company 3 - Go to CoA, select all lines and export as importable data 4 - Go to import CoA, upload file, select the file of the previous step 5 - Test / Import the file 6 - An error says the import can't be performed --- Desired behavior after this commit is merged: This commit modifies the default payroll account to the "Basic Salary" one. After this, importing the default CoA does not cause an error anymore as no default account is being set to Payable anymore. --- opw-3470011 Forward-Port-Of: odoo/enterprise#52239
Fixed an issue where timesheet entries added on Saturday (the last visible day of the week in the grid view) would not automatically display without a manual page refresh. The fix removes a condition that was preventing the timesheet grid from updating when entries were created on the weekend, ensuring users see their new entries immediately after saving.
Original PR description
**HOW TO REPRODUCE:**
- Open timesheet
- Go to All timesheets
- Add a line for a user and set a date corresponding to the saturday
visible on the grid views
- save and close
**--> ISSUE**: Notification is displayed and we need a refresh to
display the created line
**FIX:**
- delete condition that prevent rerender. This condition was
checking if the selected date was the last visible day in the grid
view (i.e. saturday)
taskid:3609373
Forward-Port-Of: odoo/enterprise#51407Fixed a display issue in the Field Service portal where the sign report wizard was overlapping with the website menu. The fix improves the user experience by properly positioning the wizard using Bootstrap styling, ensuring it no longer blocks access to navigation elements when signing reports.
Original PR description
Steps: - Install Field Service and Website apps - Open Field Service - Open task then create worksheet - Then Sign report click on sign - The sign report wizard overlap Issue: - The Sign report wizard overlap the website to menu in portal Fix: - The issue will be rectified by adding the Bootstrap class task-3512366 Forward-Port-Of: odoo/enterprise#47894
The "Average Rating" option has been removed from the Measures dropdown menu in the Helpdesk Ticket Analysis report. Since both "Average Rating" and "Rating (/5)" were providing duplicate rating information, removing the redundant option streamlines the reporting interface and reduces user confusion when selecting metrics to analyze.
Original PR description
Before this PR, within the "Measures" button, We have provided both the "Average Rating" and the "Rating (/5)" as both of measures representing rating values. Therefore, we don't need "Average Rating" in the "Measures" dropdown menu any further. In this PR: removed the "Average Rating" field from the "Measures" dropdown menu. task-3475975 Forward-Port-Of: odoo/enterprise#46458
This update makes automated tests independent of demo data, ensuring they run reliably regardless of what sample data is loaded in the system. By removing these dependencies across multiple modules, tests become more stable and maintainable, reducing false failures and improving overall software quality.