-
Notifications
You must be signed in to change notification settings - Fork 2
[pull] master from odoo:master #1186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
pull
wants to merge
10,000
commits into
itpp-labs:master
Choose a base branch
from
odoo:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Description of the issue: - The image toolbar failed to open when the editable had lost focus. - Previously, focusEditable() exited early if the active element was inside the editable, even when the actual document selection wasn’t. Solution: - Updated the condition in focusEditable() to also check whether the document selection is inside the editable. - Now it only returns early when both the active element and the selection are within the editable. task-5117272 closes #234562 X-original-commit: 3cdd4f9 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Samit Bharatbhai Bhadiyadra (sbbh) <sbbh@odoo.com>
Steps to Reproduce: ------------------------- 1. Install the Website and Employees modules. 2. Create a Test User and It's Employee. 3. On the Employee record, go to Private Information, create a Bank Account with a custom Account Holder Name. 4. Log in to the Website using the Test User. 5. Navigate to My Account and click Edit Information. 6. Fill in the address details (without changing the Name) and click Save. 7. Go back to the Employee’s Bank Account and check the Account Holder Name. Observation: ------------------------- The Account Holder Name was overwritten to the partner's name. Issue: ------------------------- In `_compute_account_holder_name` method, https://github.com/odoo/odoo/blob/c3b543631bde96260082484a3baac19d942f6b9f/odoo/addons/base/models/res_bank.py#L104-L107 The Account Holder Name is always recomputed using the Partner’s name. When submitting the form from the frontend, the name field is included in the values sent to update the Partner, even if the user did not actually change the name. https://github.com/odoo/odoo/blob/be3a4283c383d187570f5a73f337030e6ae9d05c/addons/portal/controllers/portal.py#L196-L205 which re-triggers this compute and as a result, the Partner’s name overwrites the Account Holder Name on the linked Bank Account Solution: -------------------------- Prevent the Account Holder Name compute method from being triggered when updating information from the frontend if the Partner’s name has not been changed. opw-5059247 closes #234669 X-original-commit: 0110668 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com> Signed-off-by: Joyal Patel (pajo) <pajo@odoo.com>
Steps to reproduce: 1. Install the Project module. 2. Create a new project and share it with a user. 3. Log in as that user. 4. Open the shared project Kanban view and try to edit a stage. 5. Try to search for more projects. Issue: A traceback occurs when clicking on 'Search More'. Fix: Prevent stage editing in shared project Kanban view. task-5176630 closes #234664 X-original-commit: a83e8fd Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com> Signed-off-by: Maan Pankajbhai Patel (maap) <maap@odoo.com>
How to reproduce ================ Write an operation or calculation in datetime field like +1d or +=1d or copy/paste a value in field. As the focus is lost, button reappears in the field. Then, the getInputs method in useDateTimePicker hook must (as this name suggests it) return input elements. The fix ======= We filter on tagName === 'input' elements closes #234611 X-original-commit: 0d5c98b Signed-off-by: Bastien Pierre (ipb) <ipb@odoo.com> Signed-off-by: Pierre Pulinckx (pipu) <pipu@odoo.com>
The util function `isBlock` caches the display style of elements it tests so it doesn't test them twice. But the qweb plugin's normalize handler modifies some elements to give them the `data-oe-t-inline` attribute, which in turn makes them inline whereas they were blocks before. This means that if `isBlock` is called on these elements before the attribute is set, it will cache the wrong value. This ensures that the attribute is set before other normalize handlers call `isBlock`. task-4129699 Part-of: #234185 Related: odoo/enterprise#98693 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Antoine Guenet (age) <age@odoo.com>
This introduces the `system_node_selectors` resource, which represents nodes that should be ignored by the editor. In other words, if the editor had a VDOM, it would be absent from it. It allows us to refactor a little bit by better separating concerns, and paves the way for the selection placeholder plugin. task-4129699 Part-of: #234185 Related: odoo/enterprise#98693 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Antoine Guenet (age) <age@odoo.com>
This introduces the `empty_node_predicates` resource, which makes use of the previously added `system_node_selectors` to further separate concerns and refactor the remove plugin. task-4129699 Part-of: #234185 Related: odoo/enterprise#98693 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Antoine Guenet (age) <age@odoo.com>
With the introduction of selection placeholders in the next commit, inserting paragraphs when clicking on the edges of the editable will not be necessary anymore. The tests that are affected were skipped so they can be unskipped when the placeholders are introduced. task-4129699 Part-of: #234185 Related: odoo/enterprise#98693 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Antoine Guenet (age) <age@odoo.com>
Currently, there is no way to put our cursor between two `contenteditable=false` blocks, between two tables, before the first block in the editable or after the last one. This introduces placeholder blocks with no height in these places, in which the user can put their selection (which will show as a horizontal blinking line). They can then start typing and the placeholder will be persisted. At the end of the document, this is bypassed and the placeholder will be persisted as soon as the selection is in it. task-4129699 Part-of: #234185 Related: odoo/enterprise#98693 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Antoine Guenet (age) <age@odoo.com>
Since the introduction of selection placeholders, inserting paragraphs before and after banners is not necessary anymore. task-4129699 Part-of: #234185 Related: odoo/enterprise#98693 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Antoine Guenet (age) <age@odoo.com>
Since the introduction of selection placeholders, inserting paragraphs before and after captions is not necessary anymore. task-4129699 Part-of: #234185 Related: odoo/enterprise#98693 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Antoine Guenet (age) <age@odoo.com>
Since the introduction of selection placeholders, inserting paragraphs before and after columns is not necessary anymore. task-4129699 Part-of: #234185 Related: odoo/enterprise#98693 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Antoine Guenet (age) <age@odoo.com>
Since the introduction of selection placeholders, inserting paragraphs before and after tables of contents is not necessary anymore. task-4129699 Part-of: #234185 Related: odoo/enterprise#98693 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Antoine Guenet (age) <age@odoo.com>
When inserting one or more blocks with `dom.insert`, we split the current block, which can result in an empty block after the one(s) we inserted. Since before the introduction of selection placeholders, it was impossible to create a new block after a trailing unsplittable element, a `[contenteditable=false]` or a table, we were keeping these empty blocks (see commit [1]). For example: ```html <p>abc[]</p> ``` -> insert a table -> ```html <p>abc</p> <table>...</table> <p><br></p> ``` That trailing paragraph is unexpected and is now removed. Commit [1]: 4147fbb task-4129699 Part-of: #234185 Related: odoo/enterprise#98693 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Antoine Guenet (age) <age@odoo.com>
The syntax highlighting embedded component has no margin, but the `pre` it contains does. Since selection placeholders position themselves based on the margins of their neighbors, they appeared wrongly positioned in this case. This applies the `pre`'s margin to its container instead, to make things easier. task-4129699 closes #234185 Related: odoo/enterprise#98693 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Antoine Guenet (age) <age@odoo.com>
closes #234502 Signed-off-by: Didier Debondt (did) <did@odoo.com>
This reverts [1] because the is_a_bot check is not reliable. Many crawlers spoof user agents or ignore robots rules, so they still index every tag combination and overload tag clouds. We revert while we look for a better protection. [1]: 1d07b74 closes #234649 X-original-commit: f06d58e Signed-off-by: Benoit Socias (bso) <bso@odoo.com> Signed-off-by: Benjamin Vray (bvr) <bvr@odoo.com>
## Versions 17.0+ ## Issue Boleto is an offline, one-time-use payment method and cannot be tokenized with most payment providers (e.g., Adyen: https://docs.adyen.com/payment-methods/boleto-bancario/, Nuvei: https://www.nuvei.com/apm/boleto). ## Exception Stripe allows a form of tokenization by storing the customer's billing information and regenerating a new Boleto for each payment (cf. https://docs.stripe.com/payments/boleto). Technically, the Boleto itself is not reusable — Stripe simulates tokenization by associating customer info with new Boleto transactions. ## Fix To maintain consistent behavior and avoid provider-specific edge cases, tokenization is disabled for Boleto payments globally. opw-5156718 closes #234672 X-original-commit: 02e8f16 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> Signed-off-by: Pierre Lamotte (pila) <pila@odoo.com>
When a TCP connection is not closed cleanly, it can take minutes to detect a closed WebSocket connection. During this time, no messages are received. This can happen in slow or unstable network conditions. Browsers do not expose WebSocket ping/pong mechanisms. To detect dead connections quickly, periodic application level messages are sent if no messages were either sent or received within a minute. This approach ensures quicker detection compared to relying on the OS TCP timeout, which is typically set to a high value. closes #234647 X-original-commit: e9ae6c6 Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com>
… mode Issue: In this bug, barcode scanner is disabled in barcode_manual kiosk mode. To reproduce: 1- Create a db with hr_attendance installed 2- Set `Kiosk Mode` to `Barcode / RFID AND Manual Selection` 3- Open `Kiosk Mode`. As you see the scanner is disabled. `t-att-disabled` shouldn't be set to `barcode_manual` as it should not be disabled in `barcode_manual` mode. Also there is no need of `t-att-disabled` attribute at all as: https://github.com/odoo/odoo/blob/f6b430245b98fb55cac7c8303b7f5bd8a3e1c84e/addons/hr_attendance/static/src/public_kiosk/public_kiosk_app.xml#L113-L114 the `KioskBarcodeScanner` will not be mounted if the mode is manual. opw-5153954 closes #234643 X-original-commit: 0e7c068 Signed-off-by: Jurgen Gjini (jugj) <jugj@odoo.com> Signed-off-by: Mohammadmahdi Alijani (malj) <malj@odoo.com>
Steps to reproduce: 1. Connect a receipt printer to an IoT box, and pair the IoT box with Odoo. 2. In the device form for the receipt printer, click the 'Test' button. Expected behaviour: - Status receipt is printed and a 'Test page printed' notification is shown on the screen. Actual behaviour: - Status receipt is printed but no notification is shown on the screen. In #229731, a QR code was added to the test status receipt printer action. This was achieved by directly sending commands to the printer with the `escpos` library, bypassing the `print_raw` method. However, by bypassing the `print_raw` method it also bypassed the status events that are normally sent to inform the Odoo user of the outcome of the print. This commit adds back these events to the receipt test print action. closes #234629 X-original-commit: b6c23da Signed-off-by: Louis Travaux (lotr) <lotr@odoo.com> Signed-off-by: Max Whale (mawh) <mawh@odoo.com>
This commit reworks entirely the ActionSwiper component with the 'forwards' animationType. This has been done to create a more engaging animation, with the content area being moved following the user's finger on the screen. Each state value implying a rerender has been replaced by non state dependent alternatives to avoid unnnecessary redraws of the swiper content. The commit also allows to set custom content in surrounding areas, such as a preview of the item nearby that replaces the current content when the animation is done. This is used to create a continued experience in the calendar, showing other instances of the calendar arround the current period being visible instead of a blank screen. By default, no content is set (settings app for example). By improving the 'forwards' animation with a more natural UX, the props associated with a fixed swipable experience has be removed. It is also no longer useful to support a custom distance ratio before expecting the content to change, so the dedicated props has been dropped as well. Also, the 'hasTouch' check to determine whether or not the component has a true purpose or if we can simply render the main content has been directly moved inside of the component. This reduces the need of duplicated code to check the same thing. Tests have been added or adapted to assert the newest scenarios and behaviors. - Calendar helpers have been improved and now wait for fullcalendar to be interactive before dragging elements. - A few patches were previously made to disable the swiping feature, which didn't allow to test fully the standard calendar behavior, and meant the feature wasn't entirely tested. - A test verifies that the range is enlarged when the model loads - A test checks the rerender count of the controller when loading the data (after a search or a date change) A new variable value is now exported from views utils, since the same value is being used at multiple locations in the codebase, for the same use case: enabling selection after a delay when touch starts. This will improve the consistency accross views by using the same value. task-4800846 Part-of: #231638 Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
This commit makes the value being used for enabling touch selection more consistent, since we now export the same 400ms value from the views utils. It will avoid the risk of changes in behavior, by using a common value. closes #231638 Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
Versions -------- - 17.0+ Steps ----- 1. Edit the `sale.report_saleorder` report using `web_studio`. 2. Add the `amount_untaxed` field next to the "Untaxed Amount" subtitle. 3. Create or navigate to a quotation and click on the "Preview" action. Issue ----- A traceback occurs during the rendering of the `sale.sale_order_portal_template` template. ``` Error while render the template KeyError: 'doc' Template: sale.document_tax_totals Path: /t/t/tr/td[1]/span Node: <span t-field="doc.amount_untaxed"/> The error occurred while rendering the template sale.document_tax_totals and evaluating the following expression: <span t-field="doc.amount_untaxed"/> ``` Cause ----- In the `sale.report_saleorder_document` template, `doc` is used as the variable name for the current sale order. Consequently, the studio edit uses this variable name to modify the `sale.document_tax_totals` template called within `sale.report_saleorder_document`. However, the `sale.sale_order_portal_template` template, used for the portal preview, also calls `sale.document_tax_totals` but uses `sale_order` as the variable name for the current order. Solution -------- Add an alias `doc` for `sale_order` during the rendering of `sale.document_tax_totals` when called in the portal report preview. opw-5136553 closes #234458 X-original-commit: fa070bc Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com> Signed-off-by: Lionel Piraux (lipi) <lipi@odoo.com>
Before this commit, we could not jump to messages in mailboxes. This happens because the `useMessageHighlight()` hook prevented jumping to messages in thread that were not their origin thread. This commit fixes the issue by removing this limitation specifically for mailboxes. opw-4948798 opw-5087102 closes #234668 X-original-commit: 23ab654 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Steps to reproduce: - Create a Sale Order with at least one product line & confirm it. - Open the delivery - Change the picking's SO to another one Issue: A traceback will happen, as the `Command` expects an id, not a record Aside from the traceback, we need to think of what it implies to change the SO on a picking like this. If the move have a sale_line_id, it doesn't make sense to have some still related to one SO while the picking itself is linked to another one. Now tries to do a basic matching of the moves based on their product within the newly set Sale Order. sentry-6921046230 closes #234610 X-original-commit: 763400a Signed-off-by: Steve Van Essche <svs@odoo.com> Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
…page Steps to Reproduce: - Login with Admin, start a meeting, open the member list. - Join the meeting with a guest, using the invite link. - Change the guest name from the welcome page. - Admin member list doesn't show updated guest name. Before this commit, the guest appeared as `Guest` in the member list even after updating their name on the welcome page. This commit ensures the guest name is updated and displayed instantly upon joining, providing a smoother and more consistent experience. task-5062702 closes #235245 X-original-commit: 47e561b Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com>
Steps to reproduce: - open livechat support with at least 1 human agent available - click on button to open chat window - immediately close the chat window => crash This happens from welcome message triggering message seen code, which triggers access to `hasEveryoneSeen` which implies `membersThatCanSeen` being accessed in compute. When closing the chat window, the chat window is closed then the channel is deleted. Deletion of the the channel makes deletion of channel object and then the thread object. As the message is still present on channel object deletion, it retriggers compute of `hasEveryoneSeen` which also calls `membersThatCanSeen` on `thread` object still alive for a short time. In this getter, `this.channel` of `thread` was not guarded, thus it crashed. This commit fixes the issue by guarding access of `this.channel` in this flow like in the many other flows of `thread` model that accesses `this.channel`. closes #235310 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Currently performance on `_compute_amount()` is bottlenecked by `__get__()` calls on fields on `line_ids`. We tackle this bottleneck by warming the cache with `fetch()` Benchmark on reconciling 2 account moves with ~70k lines each | |Total Time|Allocated Memory|Queries| |----------|----------|----------------|-------| |Before |43.23s |2GB |993 | |After |18.60s |1GB |693 | opw-5098543 closes #235217 X-original-commit: 8cdc64b Signed-off-by: William André (wan) <wan@odoo.com>
It's impossible to create an attendance for an employee without ruleset. To solve this problem, this PR adds a default ruleset with 2 rules: one for overtime, and another one for non working days. Those data are the same as the data added in the upgrade/migrations/hr_attendance/saas~18.5.2.0 post-migrate script. task-5082628 closes #234628 X-original-commit: bc039d7 Related: odoo/enterprise#98952 Related: odoo/upgrade#8809 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Steps to reproduce:
-------------------------
1. Install the Knowledge app
2. Open any document and use `/media` to open the media dialog
3. Go to the Videos tab in the dialog
4. In another browser tab, open the Vimeo website
5. Copy any Vimeo video link and paste it into the dialog
Observation:
-------------------------
When pasting a Vimeo link, a traceback occurs:
```
TypeError: Cannot read properties of undefined (reading 'match')
at EmbeddedVideoSelector.parseTimeToSeconds
```
Issue:
-------------------------
In the following function,
https://github.com/odoo/odoo/blob/b5ed2d5a3e4ac9379ed15549dd9c8e08547181bb/addons/html_editor/static/src/main/media/media_dialog/video_selector.js#L350-L353
This happens because the code splits the Vimeo URL using `#t`. If the URL does
not contain `#t`, the result is undefined, which is then passed to the
`parseTimeToSeconds` function.
Solution:
-------------------------
Added optional chain operator in `parseTimeToSeconds` for safe validation of
`value` before calling `.match()`
opw-5221403
closes #235271
X-original-commit: 483ce81
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Signed-off-by: Joyal Patel (pajo) <pajo@odoo.com>
Re-clicking the current date filter (relative/month/quarter/year/range) triggered redundant RPCs and chart re-animations. In Custom Range, clicks inside inputs also bubbled to the dropdown item, causing unwanted updates. This commit: Stop event bubbling inside Custom Range inputs to avoid spurious updates. In GlobalFiltersCoreViewPlugin.allowDispatch(), return NoChanges when the incoming value equals the current filter value (currentFilterValue). closes #235270 Task: 5187275 X-original-commit: 654a39d Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com> Signed-off-by: Dhrutik Patel (dhrp) <dhrp@odoo.com>
*: test_website, base, website, website_blog, website_event,
website_event_track, website_payment, website_sale, test_assetsbundle
Before this commit when a module was updated all ir.asset records were
reset to their defined `active` state, if defined.
This causes assets related to old snippet versions to be made inactive
even if those old snippet versions are used inside existing pages.
It used to work when the activation of assets was made through view
inheritance because when views are defined through a `<template>` tag,
the `active` attribute is in fact ignored during updates since [1],
except for new records since [2].
This commit introduces an `<asset>` tag in the XML import format.
It is an alias of `<record ... model="ir.asset">` with the additional
feature that it avoids taking the `active` field into account during
updates for existing `ir_asset` records, just like `<template>` if the
`active` field is mentioned as attribute of the tag.
We then rely on the `website_disable_unused_snippets_assets` cron to
properly disable any unused asset at a later stage (note that the bug
being fixed here was mitigated by the fact that cron also re-enabled
assets which were disabled by mistake... but that might happen only a
few days later).
Another approach was to overload `_load_records_write` in `base`'s
`ir_asset.py` to avoid taking the `active` field into account when
updating records:
```py
def _load_records_write(self, values):
values.pop('active', None)
super()._load_records_write(values)
```
But this is not as stable because it changes the way `ir.asset` records
are imported when the `<record>` tag is used. In the end we chose to be
consistent and do exactly the same as `<template>`, as this also allows
more and should be entirely stable.
[1]: 2d296cb#diff-175c28787c272a219b9275f79262a48af9aa029e718f45077fd609737559e84eR803-R804
[2]: f1c70d4#diff-175c28787c272a219b9275f79262a48af9aa029e718f45077fd609737559e84eR801-R804
task-2963840
closes #235226
X-original-commit: 906ae8a
Related: odoo/enterprise#99233
Related: odoo/documentation#15239
Related: odoo/design-themes#1179
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Co-authored-by: qsm-odoo <qsm@odoo.com>
Before this commit, when in a discuss call in the Discuss app with sidebar not compact and a right panel open, click on Discuss sidebar would overflow horizontally the UI. This happens because the rearrange of tiles of the discuss call grid would be triggered from sidebar toggle state change, but the rearrange of tiles was mistakenly coded to preserve the height of main tile. This is a problem with discuss call sidebar because while the overall height of call view should stay unchanged, the main card must have its height reduced to compensate with discuss call sidebar when shown. This commit fixes the issue by resetting temporarily the height of call card tile in `arrangeTiles()`, so that it takes into account when it has to adapt its height. closes #235307 X-original-commit: b4ec57f Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Steps to reproduce: - Install `stock_delivery` - Have some package in stock - Create a delivery, and without saving: - Add a carrier - Click on the 'Move a Pack' button - Try to select a package to add. Issue: A ValidationError occurs, seemingly for an unsuitable company_id The main issue is that due to the `partner_id` field that is required if a carrier is set, the save that precedes the opening of the Dialog isn't done properly, and no picking can be assigned to the created move lines. In such cases, we can just avoid opening the Dialog if the picking cannot be saved. Task-5116567 X-original-commit: 39d8e8d Related: odoo/enterprise#95648 Related: odoo/enterprise#99187 Part-of: #235111 Signed-off-by: William Henrotin (whe) <whe@odoo.com> Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
Currently, the putaway rules weren't checking other levels of packages and were only checking the package directly linked to the move line. Now, we always want to consider the outermost package of each move line, rather than its direct package. Which means that if we have a putaway rule for pallets and one for boxes, if we register a picking that should move several packages on a pallet, then these should be all moved towards the pallets location. Also fixed `outermost_package_id`, as it wasn't properly recomputed when necessary. Now it always refer to a package, which can be itself if the package has no destination container. Task-5116567 X-original-commit: 82e79e7 Related: odoo/enterprise#95648 Related: odoo/enterprise#99187 Part-of: #235111 Signed-off-by: William Henrotin (whe) <whe@odoo.com> Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
As routes can be defined on package types, it's now possible to have multiple package type that could fit for a single move line. We now consider every parent package these package have to check if they have package type with routes linked to them. Task-5116567 X-original-commit: 5a2ad09 Related: odoo/enterprise#95648 Related: odoo/enterprise#99187 Part-of: #235111 Signed-off-by: William Henrotin (whe) <whe@odoo.com> Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
The Picking Operations report should also display the source/destination parent of packages along with its location. Task-5116567 X-original-commit: 851643a Related: odoo/enterprise#95648 Related: odoo/enterprise#99187 Part-of: #235111 Signed-off-by: William Henrotin (whe) <whe@odoo.com> Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
Currently, the 'Remove' button on packages from picking/batches was too strong. There was no easy way of removing just one level of package (like the outermost one). Doing it on an entire package would remove all contained packages as well, which can be very annoying, especially for moving packages from one pallet to another. It is still possible to remove all layers at the same time, but you now need to select all related packages before removing them. Task-5116567 X-original-commit: e90e5c5 Related: odoo/enterprise#95648 Related: odoo/enterprise#99187 Part-of: #235111 Signed-off-by: William Henrotin (whe) <whe@odoo.com> Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
- Keep the 'Package' stat button in the same order for pickings & batches - Avoid having less space between the fa-icon and the text when the picking is done - Display the 'Package' stat button for package histories for batches as well - Only display the 'Package' stat button for pickings when there's at least one destination package. This isn't done for batches on purpose, as we need to keep a way to add new entire packages. Task-5116567 X-original-commit: 6716ab7 Related: odoo/enterprise#95648 Related: odoo/enterprise#99187 Part-of: #235111 Signed-off-by: William Henrotin (whe) <whe@odoo.com> Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
Previously, when selecting an existing package to assign to a move line (either directly or through the put in pack wizard), we could not select a package used in the picking, even though it had the same destination. Task-5116567 X-original-commit: 29a7143 Related: odoo/enterprise#95648 Related: odoo/enterprise#99187 Part-of: #235111 Signed-off-by: William Henrotin (whe) <whe@odoo.com> Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
Currently in the put/pack in pack process, the selection of move lines through `_to_pack` would prioritize picked move lines, but only within the same "group" (i.e. all move lines that either have a pack or not) Which means that when you had the following move lines: - ML1: picked in PACK01 - ML2: not picked without package If you used the 'Put in Pack' button, it would be ML2 that would be packed, as that one didn't have any package yet. Now it would be ML1 that would be selected, until ML2 is picked as well. Task-5116567 X-original-commit: 4c2b9bb Related: odoo/enterprise#95648 Related: odoo/enterprise#99187 Part-of: #235111 Signed-off-by: William Henrotin (whe) <whe@odoo.com> Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
Steps to reproduce: - Go to any product, open its quants - Create a new line and create an empty package without name The package is displayed as 'Unnamed' until the quant is saved, where its real name is displayed. Despite having their name required, packages can be created without one. In such case, a name will be generated based on their appropriate sequence (i.e. from package type or base package sequence). However, when records are created through an auto-complete in js, the records aren't reloaded after their creation. This meant that since the name is computed python-side, there would be no name to display until the whole record is saved (as this would reload the record), thus the 'Unnamed' packages. To avoid this, we need to override some props of FromViewDialog to force the reload after creation. Task-5116567 X-original-commit: aaad780 Related: odoo/enterprise#95648 Related: odoo/enterprise#99187 Part-of: #235111 Signed-off-by: William Henrotin (whe) <whe@odoo.com> Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
- Properly displays the current source package in batches 'Moves' list. - Now uses `display_name` instead of `name` for quant's display_name. It allows to use package-specific context for autocomplete as well. Task-5116567 closes #228837 closes #235111 X-original-commit: 2a2b3c5 Related: odoo/enterprise#95648 Related: odoo/enterprise#99187 Signed-off-by: William Henrotin (whe) <whe@odoo.com> Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
This test had a bug: `self.env['hr.employee']._fields.keys()` may contain fields that do not exist in an `hr.employee` record. Now, employee fields that cannot be accessed are filtered out using `hasattr()`. To avoid further crashes. Runbot build error: https://runbot.odoo.com/odoo/runbot.build.error/233942 Bug has been introduced by task-5103739 task-5254322 closes #235323 X-original-commit: cc4472a Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
…nal change
**Steps to reproduce:**
1. Install `l10n_ar` localization.
2. Create two sales journals with the `Use documents` option enabled and
disabled.
3) Create an invoice and add a customer and change the journal to with
`use documents` and save the record
4) Now change the jornal to without `use documents` and try to save it
**Observed behavior:**
The `Document Type` and `Document Number` fields fail to show or hide
properly when switching between journals with different `Use documents`
configurations.
**Cause:**
The `_compute_l10n_latam_use_documents` method lacked the
`@api.depends` decorator with appropriate dependencies. As a result,
when the journal is changed on an invoice, the
`l10n_latam_use_documents` field was not recomputed, leading to incorrect
visibility of related fields.
**Fix:**
Add the missing `@api.depends('journal_id.l10n_latam_use_documents',
'move_type')` decorator to ensure the field recomputes whenever the
journal or its `Use documents` setting changes.
opw-5220202
closes #235352
X-original-commit: ac52095
Signed-off-by: Laurent Smet (las) <las@odoo.com>
Signed-off-by: Raj Bhuva (bhra) <bhra@odoo.com>
A journal is still excluded from the ledger even if it is archived. To reproduce: * create a new journal * create a journal entry impacting the P&L in that journal * create a Multi-Ledger (journal group) excluding this journal * archive the journal * open the P&L The journal entry is impacting the report, because the journal is not excluded. task-5251383 closes #235353 X-original-commit: dee42a4 Signed-off-by: John Laterre (jol) <jol@odoo.com> Signed-off-by: William André (wan) <wan@odoo.com>
Steps ----- 1. Have `sale_renting` but not `sale_stock_renting` installed; 2. create an event with a ticket; 3. make the ticket's product rentable; 4. change ticket's product type to Goods; 5. publish the event to website; 6. register for the event via website; 7. go to payment. Issue ----- AttributeError: 'bool' object has no attribute 'tzinfo' Cause ----- By making it a rental product, it creates a rental order, but as registering for an event via website doesn't have any way to add rental dates, rental lines cannot be processed & rendered as expected. Solution -------- Prevent users from changing the `service_tracking` away from `'event'` by adding an `api.constrains` to `product.product` on `service_tracking` and `event_ticket_ids`. opw-5207045 closes #235366 X-original-commit: afcbd98 Signed-off-by: Jérémy Hennecart (jeh) <jeh@odoo.com> Signed-off-by: Levi Siuzdak <sile@odoo.com>
Before this commit, when using livechat for visitors on mobile devices, click on input would zoom on input of about 115%. This zoom would hide send button at the very end of composer input, and would force users to pinch-to-unzoom, making the UX quite poor. This problem happens because mobile devices have an auto-zoom feature that is triggered when font-size is below 16px. The discuss UI is designed with 14px font size (web client font size), and since 14px < 16px, it zooms on input focus to about 115%. This commit fixes the issue by using a font-size of 16px specifically for livechat visitor on mobile devices, so that this doesn't auto-zoom. Note that this problem doesn't happen on the web client even though this uses a font-size of 14px because it specifically disable the autozoom feature: https://github.com/odoo/odoo/blob/17.0/addons/web/views/webclient_templates.xml#L250 This solution is not practical for livechat, for which it has to work on any external website. opw-5229076 closes #235355 X-original-commit: 0259ddb Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com> Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
If the selection of the document is not set and the user presses the delete key, the delete handler of the list plugin throws an error. Steps to reproduce (in 19.0, where the issue was discovered): - Open website builder - Drop the video inner snippet in the header - Double-click & drag from the video to just outside the video - Click once on the video - Press "delete" - Bug: Traceback task-5186954 closes #235362 X-original-commit: 300f3ad Signed-off-by: David Monjoie (dmo) <dmo@odoo.com> Signed-off-by: Sébastien Blondiau (blse) <blse@odoo.com>
## Version
18.2+
SEO Schema refactoring from task-3866937
## Issue
The markup always contains the price without taxes, no matter the website settings for pricing display (with or without taxes).
## Steps to reproduce
- Go to Website settings:
- Choose "Taxes Included" for "Display Product Prices".
- Got to the shop and select any product on which taxes apply (e.g. Customizable Desk):
- Open console and execute `JSON.parse(document.querySelectorAll('[type="application/ld+json"]')[1].innerHTML)[0]['hasVariant'][0]['offers']['price']`;
- The found price and the displayed price (visible on the page) are different
## Fix
Allow tax inclusion based on parameter to mimic template's behavior on variants too depending on the website.
https://github.com/odoo/odoo/blob/52a6d88a188d5456262428847aed229f117da8ed/addons/website_sale/models/product_template.py#L377-L430
opw-4923780
test
closes #235364
X-original-commit: eb39d0f
Signed-off-by: Valeriya Chuprina (vchu) <vchu@odoo.com>
Signed-off-by: Pierre Lamotte (pila) <pila@odoo.com>
Versions -------- - 17.0+ Steps ----- 1. Have a product with a purchase cost; 2. have sale margins enabled; 3. add a the product to a quotation; 4. change pricelist to one with a different currency; 5. note that the line's cost gets updated; 6. change order state to confirmed, then canceled, then back to draft; 7. change pricelist again. Issue ----- The purchase cost no longer update. Cause ----- The `_compute_purchase_price` override in `sale_stock_margin` doesn't pass the line to `super` if it `has_valued_move_ids`. This hook only checks for the existence of linked `move_ids` on the record with no regard for their state. Solution -------- 1. Move the `has_valued_move_ids` hook from `sale` to `sale_stock`. 2. Only return `True` if any of the moves aren't in draft or canceled. opw-5147321 closes #235176 X-original-commit: 8769725 Signed-off-by: Tiffany Chang (tic) <tic@odoo.com> Signed-off-by: Levi Siuzdak <sile@odoo.com>
Following the style revamp of the o-spreadsheet lib, we introduced a class o-input (differs from odoo o_input) in order to avoid collision with the odoo classes which tend to be altered in dark mode which spreadsheet does not support. However, we still relied on the default behaviour of odoo classes to mark specific inputs as invalid or missing. This commit ensures that missing/invalid are always marked as such while make preventing the dark mode to break the default layout. Task-4878174 closes #235387 X-original-commit: 5fb5fb4 Related: odoo/enterprise#99315 Signed-off-by: Rémi Rahir (rar) <rar@odoo.com> Signed-off-by: Pierre Rousseau (pro) <pro@odoo.com>
When writing value with the wizard, we wrote the value of related field of the company to prevent multiple write from happening. Now, we handle the write too in case the wizard is created with default value instead of created beforehand. It's also now possible to specify the fields that are to be written to handle more cases in overrides. closes #235382 X-original-commit: 26163c1 Related: odoo/enterprise#99312 Signed-off-by: Julien Alardot (jual) <jual@odoo.com> Signed-off-by: Léo Leclerc (leol) <leol@odoo.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )