Monday, September 25, 2023
60 changes · master
Enhancements to existing features
Point-of-sale users can now choose the display order of combo options instead of relying on the system's default ID order. This makes combo menus easier to organize and present in the intended sequence for staff and customers.
Original PR description
Prior to this commit the combo choices were displayed in their ID order. This commit add a sequence field that allows the user to choose the order of the combo choices.
Help Center menus are now handled so backend users can see them even when they are not published. Related website blog performance checks were adjusted to account for the additional page requests this can create.
Original PR description
This commit adapts website_blog tests to change in website_helpdesk. The method _compute_visible of model website.menu is modified to display help team menus to backend user, even if they are unpublished. This potentially add extra requests when rendering a website page. Therefore, the performance tests are adapted accordingly. task-3186564
The split payment functionality for Italian public administration e-invoicing has been consolidated into the main Italian e-invoicing module. This simplifies module management and ensures related invoicing features are maintained in one place without changing the business purpose of the functionality.
Original PR description
Module `l10n_it_edi_pa` was created for Split Payment because stored fields couldn't be added to an existing module. We are amending this by merging it into module `l10n_it_edi`. Upgrade PR: odoo/upgrade#5169 Task link: https://www.odoo.com/web#id=3513075&model=project.task task-3513075
Users who cannot access a course are now redirected to the main Slides page instead of seeing a generic error page. This provides a clearer experience by showing the relevant error message in the Slides area and helping users continue browsing courses.
Original PR description
Purpose ======= When a user tries to reach a course, an AccessError can occur when we unslug the URL. Instead of the traditional error page, we want to redirect the users to /slides, and the error will be displayed there. Task-3477630
User avatar fields are now only clickable when viewed in a form. This avoids unintended navigation from list-style screens and makes readonly views behave more predictably.
Original PR description
This commit changes the canOpen prop of the many2oneAvatar field to be set to true only when in form view. The field will therefore stop being a link in readonly when outside of form view.
The self-order setup for mobile and kiosk has been combined into one shared flow, reducing duplicated configuration and code. This should make the feature easier to maintain and improve while keeping the ordering experience consistent across devices.
Original PR description
Previously, the self-order code and parameters were split into two parts mobile and kiosk. Now kiosk and mobile have been merged with each other to simplify maintainability.
Odoo now keeps view context data separate from record field values when evaluating view rules, reducing ambiguity and preventing unintended access patterns. This makes form, list, and kanban behavior more predictable while preserving common user context access such as user and company information.
Original PR description
This commit removes a loophole in the evalContext used in form, list and kanban views to evaluate python expressions (modifiers, domains and contexts). Before this commit, the evalContext was a mix…
This commit removes a loophole in the evalContext used in form,
list and kanban views to evaluate python expressions (modifiers,
domains and contexts). Before this commit, the evalContext was a
mix of different things:
- keys of the current context (which also contained keys from the
user context);
- a key for each field in the view (allowing to use field values);
- a "parent" key in the case of x2many records (allowing to go up
to the parent record values).
- "active_id", "active_ids", "active_model", "current_company_id".
All those keys were mixed in the evalContext, and they could
obviously conflict (e.g. if there was in the context a key which
was also the name of a field).
Even though the evalContext didn't contain an explicit "context"
key, expressions like `context.get("x")` worked. This was because
the python evaluator automatically adds the whole evalContext as
value for the "context" key if this one doesn't exist. This allowed
people to also access field values with `context.get("fieldName")`
and thus bypassing the view validation, which ensures that
everything used in those expressions is either a py builtin
supported by pyjs, a field name which is in the view or some other
whitelisted keys ("uid", "allowed_company_ids"...). Fun fact:
people did it, in a form view that is used on two different models
(product.product and product.template).
With this commit, the context (and user context) keys are no longer
spread into the evalContext. Instead, a "context" key is added.
Two special user context keys can still be accessed directly though,
without doing `context.get("...")`: "uid" and "allowed_company_ids".
The reason why we keep them is simple: those were the two only keys
that could be used directly as they were whitelisted by the view
validation. The client also evaluates domains and contexts coming
from actions and from search view filters. In those cases, the
evalContext is simply the context, and those two keys are widely
used. So it's easier if we know that, e.g. "uid" can be always
directly accessed, whether we're in an action domain, in a search
view or in a form/list/kanban view.
To summarize, accessing a context key must always be done through
`context.get("...")` except for "uid" and "allowed_company_ids",
which can still be accessed directly. This doesn't change from
before. What changes is that a record field can no longer be
accessed with `context.get("...")` (which kind of allowed to bypass
the view validation).Odoo Studio was updated to align with a core platform change in how record context is handled. This keeps editing related record views working reliably and avoids hidden dependencies on older internal behavior.
Original PR description
PR https://github.com/odoo/odoo/pull/135782 explicitly adds the "context" key into the
evalContext, whereas before the whole evalContex was considered as
being the context. Studio relied on that loophole to handle the
edition of x2many views, by adding a key "parent" in the context,
which could thus be accessed in expressions without doing
context.get("..."). This commit refactors the way Studio makes the
created datapoint aware of their parent record, without relying on
the context.
Moreover, with https://github.com/odoo/odoo/pull/135782, datapoints makes the assumption
that there's a context in their config, which wasn't the case for
the fake group created in Studio. We thus had to set it.This change removes the older CFDI 3.3 electronic invoicing format and consolidates the CFDI 4.0 functionality into the main Mexican localization modules. Businesses using Mexican e-invoicing get a simpler setup aligned with the current regulatory version, with fewer separate add-on modules to manage.
Original PR description
- cfdi 3.3 is removed - The modules "_40" are merged so we have 4 modules less task-2957927
This update removes unused log fields from subscription sales records. It simplifies the underlying data model, reducing clutter and making future maintenance easier without changing day-to-day user workflows.
Original PR description
taskid: 3274815
Help Center pages are now easier to personalize, with the search field moved out of the banner so teams can edit the page design like other website pages. Publishing controls for help and ticket submission pages have been moved to the standard website toolbar, and teams can more easily open and edit linked knowledge articles.
Original PR description
Impacted modules: - helpdesk - website_helpdesk - website_helpdesk_knowledge This commit introduces various improvements in the Help Center on the website. Banner Edition ============== Purpose:…
Impacted modules: - helpdesk - website_helpdesk - website_helpdesk_knowledge This commit introduces various improvements in the Help Center on the website. Banner Edition ============== Purpose: allow users to customize the help webpage, as it is possible for other web pages Currently the banner of the help center is not editable by the user as it contains a search field. The search fields is moved out of the cover to allow the the user to personalize it. Publish Button ============== Purpose: move the published button to the systray to be coherent with what is usually done in website + we don't need it anymore now that we have 1 help web page per helpdesk team. - help webpage: move the published button to the systray - ticket submission webpage: move the published button to the systray Knowledge Article ================= Purpose: allow users to easily edit the article set on the team from there. - helpdesk.team form view > knowledge feature > display the external link icon next to the article field task-3186564
The Field Service task form now hides the Navigate button when no customer or partner is assigned. This prevents users from clicking an action that cannot work and avoids confusing invalid field errors.
Original PR description
In this commit, the functionality of the 'Navigate' button in the FSM task form has been improved. The 'Navigate to' button is now enhanced to better interact with the task. Specifically, the button is hidden when no partner is assigned to the task. This enhancement prevents the 'Navigate to' button from causing an 'invalid field' error when clicked, as it's not applicable in such cases. Task: 3460000
Resolved issues and error corrections
This fix prevents a rare page editor error that could occur when a page is reloaded at the same time the editor is updating content. It improves reliability by safely ignoring editor elements that are no longer present.
Original PR description
There is a traceback that could happen in a race condition when reloading the page. The reason is because `_intersectionObserverCallback` is async and could be called after an element has been removed in `_updateHooks`. This commit ensures the existence of the element to avoid a traceback. task-3519508 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Code cleanup and technical improvements
Spreadsheet dashboards now load group information and dashboard names in a single request instead of two. This reduces waiting time and improves efficiency when opening dashboard views.
Original PR description
Previously, the dashboard action needed two RPC calls to be ready: 1. load the dashboard groups (with the dashboards ids in the groups) 2. load the dashboard display names Now, with the new `web_search_read` we can load both at the same time, saving one http request. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Use the `archParseBoolean` method instead of `JSON.parse` to interpret boolean attributes in the view xml, to avoid a traceback being triggered by the presence of python-like values in these attributes. opw-3473254 Forward-Port-Of: odoo/odoo#133402
Original PR description
Use the `archParseBoolean` method instead of `JSON.parse` to interpret boolean attributes in the view xml, to avoid a traceback being triggered by the presence of python-like values in these attributes. opw-3473254 Forward-Port-Of: odoo/odoo#133402
Graph reports now handle empty or missing data point values correctly instead of crashing. This improves reliability when users view charts that include incomplete data.
Original PR description
This commit fixes a crash that could happen in graph view when the value of a datapoint is false and passed to the formatFloat method. In this case, it should use the field version of the formatFloat method to handle the case where the value is false properly.
Fixed an issue in the web editor where changing the color of an entire table cell could leave previously colored text unchanged. This makes table formatting more consistent and avoids confusing mixed colors when users update cell styling.
Original PR description
[FIX] web editor: color of whole cell should change This commit fixes the issue of partial coloring of table cells. Before this commit, if one colors part of the text in the cell and then seeks to color the whole cell, the last coloring would not apply on the previously colored text. We do that by preventing the cell coloring to be done differently than other elements except if we want to change the background color. Task-3454903
Fixed an issue in the website editor where clicking the table menu icon could cause an error instead of opening the menu. Users can now edit tables more reliably without interruptions.
Original PR description
**Current behaviour before commit:** In table, when clicking table menu icon it throws traceback. **Desired behaviour after commit:** Now, clicking table menu icon opens table menu without any traceback. task-3503806 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes a display issue where an internal sales order line field appeared in the task timesheet section. Users creating or reviewing task timesheets will now see a cleaner screen with only relevant information.
Original PR description
Steps: Install Project ,timesheet_grid & sale_timesheet Open project module Click on projects card In list view ,create a new task Then in timesheet notebook page Issue: Unnecessary field in timesheet notebook page Cause: There was some unnecessary field issue. Fix: added hide optional in sale_timesheet module. task-3474577 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 fixes a broken link in the manufacturing product view that could prevent users from opening related manufacturing orders. The button now uses the current manufacturing order action, restoring expected navigation after an older action was removed.
Original PR description
In 6698406b92a598f24fa0a778a28b6ef727adc008, we removed action mrp.mrp_production_report. action_view_mos still using this action, we change it to use mrp.mrp_production_action instead. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Cashiers can now close Point of Sale sessions even when the POS setup does not include a cash payment method. This prevents a silent blocking error and keeps store closing workflows running smoothly, especially in databases without demo data.
Original PR description
Since a869ee87f28c517c67d782b132b65aaf86309d1e, the cashier can no longer close a session from the frontend UI if the POS config has not a cash payment method. Steps to reproduce: - Remove any cash payment method from the POS config you want to use - Open a POS session for the previous POS config - Make an order - Try to close the session A (silent) error is raised, the user cannot close the session. This error is particularly noticeable when we don't use demo data (--without-demo=True). The fix consists in correctly checking if there is a cash payment method or not. task-id: 3519547
This fixes an issue that prevented restaurant point-of-sale onboarding demo data from loading in databases created without demo data. Businesses can now use the guided demo setup without encountering an error caused by an incorrectly assigned food category logo.
Original PR description
The onboarding demo data cannot be loaded since f96ea753f35355e8344a30623f2b21aa284972f2. Steps to reproduce: - Start a database without demo data (--without-demo=True) - Open a POS session for the default shop - Click to load demo (onboarding) data An error is raised. The error is due to a mistake in the XML, the food category logo is not assigned to the right record. task-id: 3519677
This update fixes a problem in project portal testing where certain test assets were expected in a place where they are not loaded. It helps keep automated checks reliable without changing the customer-facing project sharing experience.
Original PR description
Step to reproduce: Go on [URL]/my/projects/[ID]/project_sharing with the assets tests activated. The project.webclient doesn't load the whole backend assets that tests depend on, so the dependencies for the tours have to be ignored. The tour didn't crash because the content of the iframe was present (below the traceback message) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where editing a related record in a form could trigger a failed automatic update on the parent record and leave the edited field in an unsafe state. The form now restores the previous valid value, helping users avoid inconsistent data after an error.
Original PR description
When the onchange triggered by an x2m fails on the parent record, we want to reuse a valid value (the one before the onchange).
How to reproduce:
- Go to a form view with an x2m (onchange=true) that contains at least one record
- Edit the record in the x2m
- onchange on parent record fails
Before this commit:
The value is unchanged.
After this commit:
The value of the edited field is replaced by its old value.
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-prThis fixes how Italian electronic invoices decide whether they can be reset to draft, avoiding an incorrect cancellation flow. It matters because Italian EDI rules do not allow invoice cancellation, so users should be guided toward compliant correction steps such as issuing a full refund credit note.
Original PR description
In the odoo/odoo#122194 PR I incorrectly used the `need_cancel_request` flag instead of the `show_reset_to_draft_button` one. Italian EDI doesn't allow any sort of cancellation (in case of error you have to a full refund credit note).
This fix prevents two extra columns from appearing twice in the journal report. It keeps the report layout clearer and avoids confusion when reviewing accounting entries.
Original PR description
The function '_get_move_line_additional_col' adds the additional_col_1 and additional_col_2. In '_get_first_move_line' and '_get_aml_line' when we loop through the columns in the options, we have to break the loop when we arrive to the additional columns otherwise they are added twice.
The planning magnifier view no longer shows the resource color field column. This removes an unnecessary internal detail from the view, making the planning interface cleaner for users.
Original PR description
Description of the issue: resource color field column was visible in planning magnifier Desired behavior after PR is merged: resource color field column will be invisible in planning magnifier task-3484290
The async methods of field service were not declared in its key async. This would allow destroyed components to process the results of those methods (despite an initial call to useService). We fix that. Forward-Port-Of: odoo/odoo#125890
Original PR description
The async methods of field service were not declared in its key async. This would allow destroyed components to process the results of those methods (despite an initial call to useService). We fix that. Forward-Port-Of: odoo/odoo#125890
current behavior: When a product with tax included is sold with a fiscal position that match the tax to a tax of 0%, then when you refund this order the fiscal is applied a second time. This result in the 15% tax removed 2 times and the price of the product is incorrect. steps to reproduce: - Create a product with 15% tax included - Create a fiscal position that match the tax to a tax of 0% - Create a POS with this fiscal position - Open PoS, and make an order with the product - Apply t
Original PR description
current behavior: When a product with tax included is sold with a fiscal position that match the tax to a tax of 0%, then when you refund this order the fiscal is applied a second time. This result in the 15% tax removed 2 times and the price of the product is incorrect. steps to reproduce: - Create a product with 15% tax included - Create a fiscal position that match the tax to a tax of 0% - Create a POS with this fiscal position - Open PoS, and make an order with the product - Apply the fiscal position - Refund the order - The price of the product is not the same as the one of the original order. opw-3371028 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#135999 Forward-Port-Of: odoo/odoo#133620
Before this commit, when `a` tag is in a td, the color of text ellipsis (3 dots) is different than the text because the text-ellipsis is set on the parent element, that is `td` element and the color is set on the `a`. This commit sets the right color on td element when that element has `a` element. Limitation (only for td inside element with `o_portal_my_doc_table` class): if the `td` element contains `a` tag and another element then the color has to be set to that other html element
Original PR description
Before this commit, when `a` tag is in a td, the color of text ellipsis (3 dots) is different than the text because the text-ellipsis is set on the parent element, that is `td` element and the color is set on the `a`. This commit sets the right color on td element when that element has `a` element. Limitation (only for td inside element with `o_portal_my_doc_table` class): if the `td` element contains `a` tag and another element then the color has to be set to that other html element otherwise, the color will be the one of the a tag. task-3251721 Forward-Port-Of: odoo/odoo#124447
**Steps to reproduce the bug:** cherry-pick of https://github.com/odoo/odoo/commit/a4904fb4889c16322494981f5a1be586683704bd - Create a storable product “P1” - costing method: avco - Create a PO: - Add the product “P1”: - Line 1: Qty= 10, price= $50 - Line 2: Qty=1, price= $10 - Confirm the PO and receive the product - Go to purchase → Reporting → Purchase Analysis **Problem:** The average price is incorrect, the current calculation is: (50 + 10)
Original PR description
**Steps to reproduce the bug:**
cherry-pick of https://github.com/odoo/odoo/commit/a4904fb4889c16322494981f5a1be586683704bd
- Create a storable product “P1”
- costing method: avco
- Create a PO:
- Add the product “P1”:
- Line 1: Qty= 10, price= $50
- Line 2: Qty=1, price= $10
- Confirm the PO and receive the product
- Go to purchase → Reporting → Purchase Analysis
**Problem:**
The average price is incorrect, the current calculation is:
(50 + 10) / 2 = 30
The average should take into account the quantities purchased in each
line, And not simply the number of line, so the correct calculation
should be:
((10 * 50) + (10 * 1)) / 11 = 46.36
The SQL query is correct, it is when applying the read_group that the
calculation is incorrect, we should override it to make a personalized
calculation of the average.
opw-3136406
Forward-Port-Of: odoo/odoo#135365
Forward-Port-Of: odoo/odoo#135267Description of the issue/feature this PR addresses: When calling action_repair_done on a Repair Order that has been created from a Sale Order (which is done by adding a product.template with field 'create_repair' set to True), we should update the delivered quantity of the product responsible of the creation of the Repair Order if and only if this product Invoicing Policy is in ['Ordered Quantities', 'Delivered Quantities', 'Prepaid/Fixed Price']. Current behavior before PR: Whenever a Re
Original PR description
Description of the issue/feature this PR addresses: When calling action_repair_done on a Repair Order that has been created from a Sale Order (which is done by adding a product.template with field 'create_repair' set to True), we should update the delivered quantity of the product responsible of the creation of the Repair Order if and only if this product Invoicing Policy is in ['Ordered Quantities', 'Delivered Quantities', 'Prepaid/Fixed Price']. Current behavior before PR: Whenever a Repair Order was created from a Sale Order by a product of type service, we update the qty delivered of the product when setting the Repair Order as done. Desired behavior after PR is merged: We only update the delivered qty of the product if its invoicing policy is is in ['Ordered Quantities','Delivered Quantities', 'Prepaid/Fixed Price']. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#135520
The `safeConvert` function in the `useDateTimePicker` hook will call `parseDate` with an undefined format when no format option was provided to the hook. Before this commit, since the options object passed to `parseDate` still contained the format property, the undefined format will also be passed on to the `parseDateTime` function. This is problematic, because now the parser will use the default datetime format, and it will fail because of the absence of a time value in the input string. For
Original PR description
The `safeConvert` function in the `useDateTimePicker` hook will call `parseDate` with an undefined format when no format option was provided to the hook. Before this commit, since the options object passed to `parseDate` still contained the format property, the undefined format will also be passed on to the `parseDateTime` function. This is problematic, because now the parser will use the default datetime format, and it will fail because of the absence of a time value in the input string. For some input formats, `parseDateTime` will still yield the correct result using one of its backup parsing methods. However, a wrong result will be returned for date formats containing some textual parts (for example `MMM/dd/yyyy`). Making sure no undefined format values are passed on in the `parseDate` function resolves the problem. opw-3478797 Forward-Port-Of: odoo/odoo#133201
Steps to reproduce the bug: - Create a storable product “P1” with BoM: - Component C1: - Quantity: 2 - supplier: - add any vendor, min quantity: 3 - Create a MO to produce 1 unit - Click on the manufacture overview Problem: A user error is triggered: `“The unit of measure Units defined on the order line doesn't belong to the same category as the unit of measure False defined on the product. Please correct the unit of measure defined on the order line
Original PR description
Steps to reproduce the bug:
- Create a storable product “P1” with BoM:
- Component C1:
- Quantity: 2
- supplier:
- add any vendor, min quantity: 3
- Create a MO to produce 1 unit
- Click on the manufacture overview
Problem:
A user error is triggered:
`“The unit of measure Units defined on the order line doesn't belong to the same category as the unit of measure False defined on the product. Please correct the unit of measure defined on the order line or on the product, they should belong to the same category.”`
The _compute_quantity function is called with supplier.product_uom even though no supplier with the requested quantity is available.
opw-3495770
Forward-Port-Of: odoo/odoo#136167Description 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#135812
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 Forward-Port-Of: odoo/odoo#135812
When the user using `point_of_sale` deletes pos restaurant and tries to load demo products in pos shop then user will face error. Note: Use db without demo data steps to produce: - Install `point_of_sale`. - Point Of Sale > Configuration > Point Of Sales, delete pos restaurant. - Point Of Sale > Shop > New Session, click on `our demo products`. Traceback: ``` while parsing /home/odoo/odoo/community/addons/pos_restaurant/data/pos_restaurant_onboarding.xml:235, somewhere inside <r
Original PR description
When the user using `point_of_sale` deletes pos restaurant and tries to load demo products in pos shop then user will face error. Note: Use db without demo data steps to produce: - Install…
When the user using `point_of_sale` deletes pos restaurant and tries to load demo
products in pos shop then user will face error.
Note: Use db without demo data
steps to produce:
- Install `point_of_sale`.
- Point Of Sale > Configuration > Point Of Sales, delete pos restaurant.
- Point Of Sale > Shop > New Session, click on `our demo products`.
Traceback:
```
while parsing /home/odoo/odoo/community/addons/pos_restaurant/data/pos_restaurant_onboarding.xml:235, somewhere inside
<record model="pos.config" id="pos_config_main_restaurant">
<!-- <field name="name">Restaurant</field> -->
<field name="iface_printbill">True</field>
<field name="iface_start_categ_id" ref="food"/>
<field name="start_category">True</field>
</record>
Traceback (most recent call last):
File "/home/odoo/odoo/community/odoo/tools/convert.py", line 550, in _tag_root
f(rec)
File "/home/odoo/odoo/community/odoo/tools/convert.py", line 451, in _tag_record
record = model._load_records([data], self.mode == 'update')
File "/home/odoo/odoo/community/odoo/models.py", line 4958, in _load_records
records = self._load_records_create([data['values'] for data in to_create])
File "/home/odoo/odoo/community/odoo/models.py", line 4869, in _load_records_create
return self.create(values)
File "<decorator-gen-213>", line 2, in create
File "/home/odoo/odoo/community/odoo/api.py", line 410, in _model_create_multi
return create(self, arg)
File "/home/odoo/odoo/community/addons/pos_self_order/models/pos_config.py", line 169, in create
pos_config_ids = super().create(vals_list)
File "<decorator-gen-212>", line 2, in create
File "/home/odoo/odoo/community/odoo/api.py", line 410, in _model_create_multi
return create(self, arg)
File "/home/odoo/odoo/community/addons/pos_restaurant/models/pos_config.py", line 80, in create
return super(PosConfig, self).create(vals_list)
File "<decorator-gen-205>", line 2, in create
File "/home/odoo/odoo/community/odoo/api.py", line 410, in _model_create_multi
return create(self, arg)
File "/home/odoo/odoo/community/addons/point_of_sale/models/pos_config.py", line 378, in create
'name': _('POS Order %s', vals['name']),
KeyError: 'name'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/odoo/odoo/community/odoo/http.py", line 1724, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/home/odoo/odoo/community/odoo/service/model.py", line 133, in retrying
result = func()
File "/home/odoo/odoo/community/odoo/http.py", line 1751, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/odoo/community/odoo/http.py", line 1952, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/odoo/community/odoo/addons/base/models/ir_http.py", line 191, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/odoo/community/odoo/http.py", line 719, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/odoo/community/addons/web/controllers/dataset.py", line 24, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/odoo/odoo/community/addons/web/controllers/dataset.py", line 20, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/odoo/community/odoo/api.py", line 461, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/odoo/community/odoo/api.py", line 448, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/odoo/odoo/community/addons/point_of_sale/models/pos_session.py", line 2218, in load_product_frontend
self.sudo()._load_onboarding_data()
File "/home/odoo/odoo/enterprise/pos_restaurant_preparation_display/models/pos_session.py", line 12, in _load_onboarding_data
super()._load_onboarding_data()
File "/home/odoo/odoo/community/addons/pos_restaurant/models/pos_session.py", line 69, in _load_onboarding_data
convert.convert_file(self.env, 'pos_restaurant', 'data/pos_restaurant_onboarding.xml', None, mode='init', kind='data')
File "/home/odoo/odoo/community/odoo/tools/convert.py", line 613, in convert_file
convert_xml_import(env, module, fp, idref, mode, noupdate)
File "/home/odoo/odoo/community/odoo/tools/convert.py", line 679, in convert_xml_import
obj.parse(doc.getroot())
File "/home/odoo/odoo/community/odoo/tools/convert.py", line 599, in parse
self._tag_root(de)
File "/home/odoo/odoo/community/odoo/tools/convert.py", line 563, in _tag_root
raise ParseError('while parsing %s:%s, somewhere inside\n%s' % (
odoo.tools.convert.ParseError: while parsing /home/odoo/odoo/community/addons/pos_restaurant/data/pos_restaurant_onboarding.xml:235, somewhere inside
<record model="pos.config" id="pos_config_main_restaurant">
<!-- <field name="name">Restaurant</field> -->
<field name="iface_printbill">True</field>
<field name="iface_start_categ_id" ref="food"/>
<field name="start_category">True</field>
</record>
```
After applying our commit, if the user clicks on `our demo products` after deleting pos restaurant then the user would be atleast able to see shop demo products and other demo products which are not part of pos restaurant.
sentry-4399441443
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#133892[FIX] web_editor: persist URL-like text transformation to link [FIX] web_editor: fix link update on label change [FIX] web_editor: avoid auto transforming email URL [FIX] web_editor: allow mailto to http link conversion [FIX] web_editor: update link content on URL change [FIX] web_editor: update UI on link content change [FIX] website: add tour with missing LinkTools flow task-3284649 opw-3245501 Forward-Port-Of: odoo/odoo#135831 Forward-Port-Of: odoo/odoo#118676
Original PR description
[FIX] web_editor: persist URL-like text transformation to link [FIX] web_editor: fix link update on label change [FIX] web_editor: avoid auto transforming email URL [FIX] web_editor: allow mailto to http link conversion [FIX] web_editor: update link content on URL change [FIX] web_editor: update UI on link content change [FIX] website: add tour with missing LinkTools flow task-3284649 opw-3245501 Forward-Port-Of: odoo/odoo#135831 Forward-Port-Of: odoo/odoo#118676
Problem --------- When you go in the settings -> layout (debug mode) -> select external layout --> preview document a traceback appears Objective --------- Make external_layout not selectable in the Documents Layout setting. Solution --------- Add a filter on the domain in the view to exclude external_layout. task-3479152 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#133790
Original PR description
Problem --------- When you go in the settings -> layout (debug mode) -> select external layout --> preview document a traceback appears Objective --------- Make external_layout not selectable in the Documents Layout setting. Solution --------- Add a filter on the domain in the view to exclude external_layout. task-3479152 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#133790
This commit fixes two issues with the ´date´ argument for the ODOO.CURRENCY.RATE function. First, the helper to cast the date is `toJsDate`, not `toJSDate`. Using the wrong function name obviously crashes. Second, the date was actually given to the server as a full ISO datetime string, including timezone (UTC). For function `ODOO.CURRENCY.RATE("EUR","USD", "11-30-2020 00:00:00")`, we actually sent to the server "2020-12-30T23:00:00.000Z" (Brussels local time) Notice that it's the previo
Original PR description
This commit fixes two issues with the ´date´ argument for the ODOO.CURRENCY.RATE function.
First, the helper to cast the date is `toJsDate`, not `toJSDate`. Using the wrong function name obviously crashes.
Second, the date was actually given to the server as a full ISO datetime string, including timezone (UTC).
For function `ODOO.CURRENCY.RATE("EUR","USD", "11-30-2020 00:00:00")`, we actually sent to the server "2020-12-30T23:00:00.000Z" (Brussels local time) Notice that it's the previous day!
The field of `res.currency.date` is a date field, so it doesn't make sense to send a datetime.
Now, only the date is sent ("2020-12-31")
opw-3498115
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#136354
Forward-Port-Of: odoo/odoo#135847before this commit, in resume we are able to put end date less than start date which is not possible in real life. make change in constraint to check selected end date is greater than start date. make changes in demo data of end date which are according to new changes. task-3397726 Forward-Port-Of: odoo/odoo#136027 Forward-Port-Of: odoo/odoo#127351
Original PR description
before this commit, in resume we are able to put end date less than start date which is not possible in real life. make change in constraint to check selected end date is greater than start date. make changes in demo data of end date which are according to new changes. task-3397726 Forward-Port-Of: odoo/odoo#136027 Forward-Port-Of: odoo/odoo#127351
Before this commit: In the survey, when you start a live session and click on the URL the `copied` popover appears but doesn't go away. After this commit: Now that popover will close automatically. Reason: There was already a `tooltip` instance on the element and we try to add the `popover` on that element which causes an issue. Task- 3458901 Forward-Port-Of: odoo/odoo#136300 Forward-Port-Of: odoo/odoo#132956
Original PR description
Before this commit: In the survey, when you start a live session and click on the URL the `copied` popover appears but doesn't go away. After this commit: Now that popover will close automatically. Reason: There was already a `tooltip` instance on the element and we try to add the `popover` on that element which causes an issue. Task- 3458901 Forward-Port-Of: odoo/odoo#136300 Forward-Port-Of: odoo/odoo#132956
**Prior this commit:** The mail scheduler of the event notifies the attendees even when the event is no longer active. **After this commit:** Inactive events no longer notify attendees. **Task**-3381876 Forward-Port-Of: odoo/odoo#136324 Forward-Port-Of: odoo/odoo#130237
Original PR description
**Prior this commit:** The mail scheduler of the event notifies the attendees even when the event is no longer active. **After this commit:** Inactive events no longer notify attendees. **Task**-3381876 Forward-Port-Of: odoo/odoo#136324 Forward-Port-Of: odoo/odoo#130237
Prior to this commit, there was a spacing issue in large screens (eg. 4K screen), the form view wasn't large enough and this created a big gap between the form view and the chatter. This commit fixes this issue. task-3453381 Part of task-3326263 BEFORE:  AFTER: 
Original PR description
Prior to this commit, there was a spacing issue in large screens (eg. 4K screen), the form view wasn't large enough and this created a big gap between the form view and the chatter. This commit fixes this issue. task-3453381 Part of task-3326263 BEFORE:  AFTER:  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#130634
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#136040
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 Forward-Port-Of: odoo/odoo#136040
If somehow there is no selection but the `_handleShortcuts` handler still gets called with `CTRL+A`, `container` would be a JQUERY object instead of an element leading to a crash in `selectNodeContents` which expects a `Node`. task-3506666 Forward-Port-Of: odoo/odoo#136355 Forward-Port-Of: odoo/odoo#136289
Original PR description
If somehow there is no selection but the `_handleShortcuts` handler still gets called with `CTRL+A`, `container` would be a JQUERY object instead of an element leading to a crash in `selectNodeContents` which expects a `Node`. task-3506666 Forward-Port-Of: odoo/odoo#136355 Forward-Port-Of: odoo/odoo#136289
In the din5008, there has been problem in the display of the paper format either in the pdf or the preview. In the preview we had a part of the page on the right that wasn't used caused by the negative margin and the width of 180mm. But by removing that the pdf is broken, the header is hiding some information. To deal with that, we will add the width and negative margin only for the pdf by adding a conditional css classes. Also,it seems the footer with the company details can go out
Original PR description
In the din5008, there has been problem in the display of the paper format either in the pdf or the preview. In the preview we had a part of the page on the right that wasn't used caused by the negative margin and the width of 180mm. But by removing that the pdf is broken, the header is hiding some information. To deal with that, we will add the width and negative margin only for the pdf by adding a conditional css classes. Also,it seems the footer with the company details can go out of page, by adding a text-wrap on it, it solves this issue. (In this commit, we override part of those commit: https://github.com/odoo/odoo/commit/481f442f4ef176072edf3261415dbb06f8a3bc6f https://github.com/odoo/odoo/commit/f7812ae848e0a79adcd11f936f6cd7890da00112) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136372 Forward-Port-Of: odoo/odoo#136257
1. Backport of [1]. 2. Steps to reproduce: - Install website_crm - Connect as Admin and remove the sales rights for Demo - Check the website on a private window (to create an anonymous visit) - Connect as Demo on the normal window - Go to Website > Reporting > Visitors => It triggers an access error due to lead_ids being restricted to sales_team.group_sale_salesman. (Note: the error sometimes isn't triggered at that point. In that case, click on the visitor: the same error will trigger.)
Original PR description
1. Backport of [1]. 2. Steps to reproduce: - Install website_crm - Connect as Admin and remove the sales rights for Demo - Check the website on a private window (to create an anonymous visit) - Connect as Demo on the normal window - Go to Website > Reporting > Visitors => It triggers an access error due to lead_ids being restricted to sales_team.group_sale_salesman. (Note: the error sometimes isn't triggered at that point. In that case, click on the visitor: the same error will trigger.) Considering the computed field doesn't do anything critical as it just retrieves the email and phone number, the restriction is overridden on the field. [1]: https://github.com/odoo/odoo/commit/7de453477d7c23e607a15e0d60613080857e3371 opw-3475301 Forward-Port-Of: odoo/odoo#136194 Forward-Port-Of: odoo/odoo#135991
Upgrade (aka migration) scripts are a core part of Odoo, allowing database manipulations for modules during version changes. Any module, including custom ones can run upgrade scripts, even if the `--upgrade-path` flag (and with it, the `odoo.upgrade` sub-module) is not present. Currently only the "standard" modules benefit of easy upgrade script testing. Any custom modules that want to run tests of their upgrades have to import the tests in the usual `tests` folder, which is not ideal.
Original PR description
Upgrade (aka migration) scripts are a core part of Odoo, allowing database manipulations for modules during version changes. Any module, including custom ones can run upgrade scripts, even if the `--upgrade-path` flag (and with it, the `odoo.upgrade` sub-module) is not present. Currently only the "standard" modules benefit of easy upgrade script testing. Any custom modules that want to run tests of their upgrades have to import the tests in the usual `tests` folder, which is not ideal. Therefore, to allow TDD and programmatic testing of upgrade scripts in custom modules, the test discovery is here modified to also parse the module's `migrations` and `upgrades` sub-modules for tests. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136201 Forward-Port-Of: odoo/odoo#122569
Steps: In a website forum post without any previous scrolling, select some text. A traceback appears due the fact that there's no .o_action_manager element in website forum. This commit uses the document body as a fallback for the scroll container when the .o_action_manager element is not present. task-3506312 Forward-Port-Of: odoo/odoo#135785
Original PR description
Steps: In a website forum post without any previous scrolling, select some text. A traceback appears due the fact that there's no .o_action_manager element in website forum. This commit uses the document body as a fallback for the scroll container when the .o_action_manager element is not present. task-3506312 Forward-Port-Of: odoo/odoo#135785
This is just a typo XD --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#135608
Original PR description
This is just a typo XD --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#135608
Current behavior before PR: when selected cell is clicked, its selection collapses yet toolbar is visible. Desired behavior after PR is merged: Now toolbar is removed when selection collapses. task-3458048 Forward-Port-Of: odoo/odoo#131339
Original PR description
Current behavior before PR: when selected cell is clicked, its selection collapses yet toolbar is visible. Desired behavior after PR is merged: Now toolbar is removed when selection collapses. task-3458048 Forward-Port-Of: odoo/odoo#131339
1. Report body size was too narrow to render bootstrap .col as column, the media query consider the report as a mobile view. We unlock this limitation to let customer add column in the footer. 2.Report footer is sometimes misplaced in settings preview. We change the css to always stick to the bottom of the preview, no matter the content height. Task-3145445 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#1
Original PR description
1. Report body size was too narrow to render bootstrap .col as column, the media query consider the report as a mobile view. We unlock this limitation to let customer add column in the footer. 2.Report footer is sometimes misplaced in settings preview. We change the css to always stick to the bottom of the preview, no matter the content height. Task-3145445 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#128552
**Current behavior before PR:** Indenting list using tab inside a table used to switch to the next cell. **Desired behavior after PR is merged:** Indenting list using tab inside a table now indents a list instead of switching to the next cell. task-3470092 Forward-Port-Of: odoo/odoo#132508
Original PR description
**Current behavior before PR:** Indenting list using tab inside a table used to switch to the next cell. **Desired behavior after PR is merged:** Indenting list using tab inside a table now indents a list instead of switching to the next cell. task-3470092 Forward-Port-Of: odoo/odoo#132508
Current behavior before PR: -With selection on checklist, on unchecking it toolbar is not updating. Desired behavior after PR is merged: -Now toolbar is updated when list unchecks. task-3504398 Forward-Port-Of: odoo/odoo#135422
Original PR description
Current behavior before PR: -With selection on checklist, on unchecking it toolbar is not updating. Desired behavior after PR is merged: -Now toolbar is updated when list unchecks. task-3504398 Forward-Port-Of: odoo/odoo#135422
Steps: - Install sign without demo data - Go to Configuration/Field Types - Delete everything - Try to upload a pdf and sign it - Traceback sentry-4482596183 Forward-Port-Of: odoo/enterprise#47794 Forward-Port-Of: odoo/enterprise#47658
Original PR description
Steps:
- Install sign without demo data
- Go to Configuration/Field Types
- Delete everything
- Try to upload a pdf and sign it
- Traceback
sentry-4482596183
Forward-Port-Of: odoo/enterprise#47794
Forward-Port-Of: odoo/enterprise#47658task-3289984 Forward-Port-Of: odoo/enterprise#47013 Forward-Port-Of: odoo/enterprise#42597
Original PR description
task-3289984 Forward-Port-Of: odoo/enterprise#47013 Forward-Port-Of: odoo/enterprise#42597
When the user creates an advantage in salary package configurator keeping 'Salary Structure Type' and 'Advantage Field' same as another advantage. Now try to access salary configurator and make change on an advantage, the error will occur. To reproduce the issue: - Install Salary Configurator module. - Go to Employees module > Configuration > Advantages. - If there is an existing advantage create its duplicate or create two advantages keeping 'Salary Structure Type' and 'Advantage Field' s
Original PR description
When the user creates an advantage in salary package configurator keeping 'Salary Structure Type' and 'Advantage Field' same as another advantage. Now try to access salary configurator and make…
When the user creates an advantage in salary package configurator keeping 'Salary Structure Type' and 'Advantage Field' same as another advantage. Now try to access salary configurator and make change on an advantage, the error will occur.
To reproduce the issue:
- Install Salary Configurator module.
- Go to Employees module > Configuration > Advantages.
- If there is an existing advantage create its duplicate or create two advantages keeping 'Salary Structure Type' and 'Advantage Field' same.
- Now Go to Recruitment module > All Applications > Open one application > Generate Offer > Click on 'Configure your package' button in chatter.
- Now in Salary Configurator make changes in one of the same advantage.
Error:
```
File "odoo/models.py", line 5444, in ensure_one
_id, = self._ids
ValueError: too many values to unpack (expected 1)
File "odoo/http.py", line 2134, in __call__
response = request._serve_db()
File "odoo/http.py", line 1710, 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 1737, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1938, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "addons/website/models/ir_http.py", line 233, in _dispatch
response = super()._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 191, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 717, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "home/odoo/src/enterprise/saas-16.4/hr_contract_salary/controllers/main.py", line 743, in onchange_advantage
description = advantage.description
File "odoo/fields.py", line 1153, in __get__
record.ensure_one()
File "odoo/models.py", line 5447, in ensure_one
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: hr.contract.salary.advantage(1, 2)
```
The issue is occuring because we are getting two records in advantage over here -
https://github.com/odoo/enterprise/blob/790a6a7c6ff6e561e643553c1a8e2b15a4dfeb3e/hr_contract_salary/controllers/main.py#L734-L736
To solve this issue limit is set to one while performing search operation.
sentry-4451619732
Forward-Port-Of: odoo/enterprise#47221Prior to this commit, certain areas showed minor ui imperfections that warranted rectification. - Navbar buttons are now btn btn-lg buttons making them visually consistent and easy to tap for the user. - Sidebar used to take up a lot of room, so we shrunk it by around 25% to free up some space. (using rem, making the sidebar adapt to the overall font-size) - Within Card headers, we reducing the header to two lines from the previous three. Staff/waiter information has been elevated to t
Original PR description
Prior to this commit, certain areas showed minor ui imperfections that warranted rectification. - Navbar buttons are now btn btn-lg buttons making them visually consistent and easy to tap for the…
Prior to this commit, certain areas showed minor ui imperfections that warranted rectification. - Navbar buttons are now btn btn-lg buttons making them visually consistent and easy to tap for the user. - Sidebar used to take up a lot of room, so we shrunk it by around 25% to free up some space. (using rem, making the sidebar adapt to the overall font-size) - Within Card headers, we reducing the header to two lines from the previous three. Staff/waiter information has been elevated to the top line. - Removal of the filter actions in the action bar displaying filters when the sidebar is closed. This feature was not in the original specs and didn't match expectations. <table> <tr> <td>Before</td> <td> After</td> <tr> <td> <img width="1726" alt="Capture d’écran 2023-08-29 à 09 05 01" src="https://github.com/odoo/enterprise/assets/80678921/bcd0be43-dcfa-475a-807c-b1cfe1a9387a"> <img width="1726" src="https://github.com/odoo/enterprise/assets/80678921/8a0186cf-832c-48c3-8e65-5a83131a4eb6"> </td> <td><img width="1726" alt="Capture d’écran 2023-08-29 à 09 05 07" src="https://github.com/odoo/enterprise/assets/80678921/07dcc27a-cc3a-493b-a3f9-b2c4a4cf2c06"> <img width="1726" src="https://github.com/odoo/enterprise/assets/80678921/f555eaec-be39-4d55-940c-6223cb35b4fb"> </td> </table> task-3476495 Forward-Port-Of: odoo/enterprise#46386
Versions: --------- - saas-16.4 Steps to reproduce: ------------------- 1. install hr_appraisal_survey; 2. go to Configuration > 360 Feedback > 360 Feedback; 3. click on Registered or Participations button. Issue: ------ An Odoo Client Error occurs. Cause: ------ Views for `survey.survey` are getting passed via context in an `ir.actions.act_window`. This context gets passed down to subviews, which includes `survey.user_input` models. The error is caused by trying to access fie
Original PR description
Versions: --------- - saas-16.4 Steps to reproduce: ------------------- 1. install hr_appraisal_survey; 2. go to Configuration > 360 Feedback > 360 Feedback; 3. click on Registered or Participations button. Issue: ------ An Odoo Client Error occurs. Cause: ------ Views for `survey.survey` are getting passed via context in an `ir.actions.act_window`. This context gets passed down to subviews, which includes `survey.user_input` models. The error is caused by trying to access fields that don't exist for `survey.user_input`. Solution: --------- Instead of passing `_view_ref`s via context, use `ir.actions.act_window.view` records to specify the correct ones. opw-3509527 Forward-Port-Of: odoo/enterprise#47732
=== ISSUE === With the new design, we introduced a new way layout for the navbar. This new layout includes the module icon + the module name, while we used to simply display a nine dots icon in the past. While using Odoo on small devices, the module icon would become the old good 9 dots icon. This new layout introduced a friction for user with a reduced motion option activated on their computer. It would display the module icon plus the 9 dots icons. This would result in a weird vis
Original PR description
=== ISSUE === With the new design, we introduced a new way layout for the navbar. This new layout includes the module icon + the module name, while we used to simply display a nine dots icon in the past. While using Odoo on small devices, the module icon would become the old good 9 dots icon. This new layout introduced a friction for user with a reduced motion option activated on their computer. It would display the module icon plus the 9 dots icons. This would result in a weird visual render, even if it does not really cause any accessibility issue. === AFTER === We define a behaviour for our animation when `reduced-motion` is activated. To do so, we define some of the style before the media-query to not write it twice. <img width="102" alt="image" src="https://github.com/odoo/enterprise/assets/128030743/c5ce175d-6f09-4258-ae8d-04e724d123ee"> task-3473413 part of task-3326263 Forward-Port-Of: odoo/enterprise#46025