Monday, September 25, 2023
52 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
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.
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 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
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
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 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