Friday, June 21, 2024
33 changes · 17.0
Enhancements to existing features
This update adds automated checks for confirming sale orders when customers make partial payments. It helps ensure the payment-based confirmation flow keeps working reliably and reduces the risk of sales process regressions.
Original PR description
Adding tests to ensure that the feature that allows to automatically confirm sale orders through partial payments work correctly. See Task - 2672713 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The website header’s mobile menu button now follows the chosen text color when the header is placed over page content, preventing it from disappearing on certain backgrounds. In edit mode, the button is also no longer covered by an unnecessary overlay, making mobile preview and editing clearer.
Original PR description
**[IMP] website: match navbar toggler color to overlay header text color** Before this commit, the navbar hamburger button didn't have the same color as the text color defined for the "Over The…
**[IMP] website: match navbar toggler color to overlay header text color** Before this commit, the navbar hamburger button didn't have the same color as the text color defined for the "Over The Content" header, which led to situations where it wasn't visible. Steps to reproduce: - Go to the website edit mode. - Click on the header and choose "Over The Content" for the "Header Position" option. - Use the color picker to set the "Text Color" option to white. - Drag and drop a "Text-Image" snippet onto the page. - Apply a dark background color to the "Text-Image" snippet. - Click on the "Mobile Preview" button. => The navbar hamburger button is not visible in the header. After this commit, the navbar hamburger button in the "Over The Content" header matches the color of the header's text. task-3853573 --------------------------------- **[FIX] website: hide the overlay on the mobile menu navbar toggler** Before this commit, after clicking on the mobile menu navbar toggler in Website edit mode, the blue overlay was covering the button. This commit fixes this. Indeed, this element is not editable, so there's no need for an overlay on it. task-3853573
Survey live session charts now tilt labels to make longer answer options easier to read. This improves the presentation of live survey results during sessions, especially when responses have longer text.
Original PR description
**Description of the issue/feature this PR addresses:** This PR addresses the orientation of chart labels in survey live session. Previously, chart labels in the survey live session struggled to display longer labels effectively. Labels are now tilted by min 20 degrees for better visibility and display of longer labels in survey live sessions chart. **Task**-3884116
This update refreshes the translation file for the account follow-up module to reflect recent changes made to an email template. The translation file (POT) has been re-exported to ensure all text in the updated email template is properly available for translation across different languages and databases.
Original PR description
Followup to https://github.com/odoo/enterprise/pull/55497 re-export pot file ~~Note that because the template was changed in stable, we would prefer to keep the old template + add the new template to avoid missing translations for dbs that already have the old template loaded into them (i.e. keep the old translations), but this isn't possible due to them being model translations and duplicate entries for a model can cause issues for translations.~~ opw-3975990 Forward-Port-Of: odoo/enterprise#65134 Forward-Port-Of: odoo/enterprise#64788
This update removes outdated and inaccurate translation files for Spanish-speaking Latin American countries (except Chile) and English-speaking regions (Australia and Great Britain). The changes consolidate language support to use standardized regional variants, removing duplicate or incorrect translations that were no longer maintained. This cleanup improves translation consistency and reduces maintenance burden across the system.
Original PR description
PR does 2 things: - First round of .po file cleaning for es_xx.po files. Since v17 started using es_419 instead of the es_xx.po files, these languages are no longer accessible on Transifex for the translators to change. These files were mostly out of date/incorrect anyways though, so we delete them. The one exception to this is the es_CL.po because Chile has some specific words that differ from the rest of LATAM. This cleanup will occur in a followup PR to give translators time to double check if any of the translations in from these es_CL files should remain. - Cleanup the en_AU/en_GB.po files. There were some non-sense "translations" in them and most of them didn't add much value. Some en_AU files had specific legitimate "translations" were left (e.g. tax "GST", check = cheque), so they were only modified to remove any erroneous translations task: 3593077 COM PR: https://github.com/odoo/odoo/pull/170183
Resolved issues and error corrections
The project now uses Werkzeug versions that better match Ubuntu Noble and Debian Bookworm. This helps avoid warning messages on newer Python versions and keeps deployments smoother on supported operating systems.
Original PR description
Adapt [werkzeug version for Ubuntu Noble](https://packages.ubuntu.com/noble/python3-werkzeug) mainly to avoid deprecation warnings in python 3.12. While at it, adapt for Bookworm as it provides [python 3.11](https://packages.debian.org/bookworm/python3).
Documentation and clarification updates
An incorrect contributor license record was removed from the documentation. This keeps the project’s legal records accurate and avoids confusion caused by a mistaken and misspelled email entry.
Original PR description
The file deleted in the PR is wrong and is coming from a PR of an Odoo employee, so it shouldn't be there as his email adress should have been used. Moreover, there is a typo in the email address. related PR: odoo#169938
Miscellaneous changes
There are some small issues when transforming a normal column into a grid item: 1) When borders are set on columns, these columns do not look good when they become grid items: - In edit mode, drop the "Text-Image" snippet. - Set the columns "Border" option to a rather big number (e.g. 50px). - Toggle the grid mode. => The layout does not look good: the grid items are too small and not placed like how they were in normal mode (toggling the grid mode is supposed to place the items as close
Original PR description
There are some small issues when transforming a normal column into a grid item: 1) When borders are set on columns, these columns do not look good when they become grid items: - In edit mode, drop…
There are some small issues when transforming a normal column into a grid item: 1) When borders are set on columns, these columns do not look good when they become grid items: - In edit mode, drop the "Text-Image" snippet. - Set the columns "Border" option to a rather big number (e.g. 50px). - Toggle the grid mode. => The layout does not look good: the grid items are too small and not placed like how they were in normal mode (toggling the grid mode is supposed to place the items as close as possible as before the toggle). - Drop the "Steps" snippet and set a border on a column. - Drag the column and drop it in the "Text-Image" grid dropzone. => The content of the column overflows the grid area which does not look good. This issue happens because when computing the grid areas, the border was not taken into account, resulting in grid items being too small (-> the width/height without the borders) and not having the right position (-> the starting position of the element "inside" the borders). 2) When a column becomes a grid item, its grid area is sometimes a bit too small to contain its content, making it overflow a bit: - Drop the "Text-Image" snippet. - In the first column, drop the "Rating" snippet and delete all the other content. - Toggle the grid mode. => The "Rating" snippet overflows a bit the grid item (it is easier to see when using the browser inspector). This overflow happens because when computing the grid areas, the grid padding was not taken into account, resulting in the content overflowing if it was barely fitting or if the grid padding was really big (e.g. when dropping a normal column in a grid mode "Big Boxes" snippet). This commit fixes these issues by taking the borders and the grid padding into account in the grid areas computation when toggling the grid mode and when converting a normal column to a grid item when drag and dropping it. task-3970022 Forward-Port-Of: odoo/odoo#169090
The customer portal now only shows the “Quotations to review” alert when there is at least one quotation needing attention. This avoids confusing customers with an alert that points to zero pending quotations.
Original PR description
Problem --- Since the [portal redesign](https://github.com/odoo/odoo/commit/df8535fbd40e1e5c09dbe616a3332c76c23525c8), made the "Quotations to review" button in the portal an alert, it no longer makes sense to display it when there are 0 quotes to review opw-3991880
Razorpay payments now avoid creating extra saved payment methods when a customer pays a duplicated quotation using an already saved method. This keeps customer payment records cleaner and prevents confusion from duplicate entries.
Original PR description
Steps: - Install sale and razopay app. - Set-up razorpay provider. - Create quotation. - Pay that quotation via razorpay and save payment details. - Duplicate that quote and pay it via already saved method. Issue: - Creating duplicate token when paying via token. Cause: - Since [PR] we are creating token in odoo when razorpay give token_id in notification_data and tokenization is enabled on razorpay and in some case when we pay quote via token it return token in notification_data and since we forgot to check if transaction is already connected to token or not it always create new token :( Fix: - Add condition to check if transaction is connected to token or not and only create token if transaction is not connected to token. Additionally pass entity_data in token creation method so it pass proper data when we don't find `id` in `notification_data`. [PR]: https://github.com/odoo/odoo/pull/159250
This update removes a previously added loyalty program view change because it is not needed in Odoo 17. It helps avoid unnecessary duplicate rendering behavior while keeping gift card and e-wallet setup aligned with the current version.
Original PR description
This reverts commit ac93012e3cf954b5b3bcd4475b63ab027d461355. The gift card/ewallet programs were created without rewards or rules, and the issue is not present in 17 so no need to keep this forward-ported commit. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The live chat window can now be closed without causing an error if its related chat session or member record was deleted elsewhere. This prevents customers or operators from seeing a crash in an uncommon but disruptive scenario.
Original PR description
When user tries to close chat window when current channels/members are deleted. Steps to reproduce error: - Activate 'im_livechat' and 'website' module - Open the 'website' module and clicked Contact…
When user tries to close chat window when current channels/members
are deleted.
Steps to reproduce error:
- Activate 'im_livechat' and 'website' module
- Open the 'website' module and clicked Contact us menu
- Open chat-bot and start conversation
- Duplicate the tab and Go to the Settings>Technical>Channels/Members in second tab
- Delete the current channels/members from second tab
- Go to the first tab and close chat window
- Error will be generated
sentry traceback-
```ValueError: not enough values to unpack (expected 1, got 0)
File "odoo/models.py", line 5830, in ensure_one
_id, = self._ids
ValueError: Expected singleton: discuss.channel.member()
File "odoo/http.py", line 2157, in __call__
response = request._serve_db()
File "odoo/http.py", line 1732, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1759, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1960, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "addons/website/models/ir_http.py", line 235, in _dispatch
response = super()._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 207, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 722, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/mail/models/discuss/mail_guest.py", line 40, in wrapper
return func(self, *args, **kwargs)
File "addons/im_livechat/controllers/main.py", line 286, in visitor_leave_session
member.sudo()._rtc_leave_call()
File "addons/mail/models/discuss/discuss_channel_member.py", line 297, in _rtc_leave_call
self.ensure_one()
File "odoo/models.py", line 5833, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
Here at [1] member got empty value when current channels/members are deleted from 'discuss.channel.member' model by user.
This commit resolved the above issue by calling '_rtc_leave_call()' method when a member is available.
[1]-https://github.com/odoo/odoo/blob/952ebac37dc65b3fd62ae211cee1fd45fa63cd47/addons/im_livechat/controllers/main.py#L284-L286
sentry-4719812967
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prFixes an issue where uploaded PDF attachments on newly created invoices showed an empty preview when Document Digitalization was disabled. The invoice view now refreshes after uploads so users can immediately see the PDF preview.
Original PR description
**Steps to reproduce:** - Install Invoicing - Go to "Invoicing / Configuration / Settings" - Deactivate "Document Digitalization" - Create an invoice - Upload a PDF via paperclip button or drag and drop in the chatter **Issue:** The preview box appears but it is empty. **Cause:** In "onUploaded" function of Chatter component, the parent view is not reloaded once the attachment is uploaded because "hasParentReloadOnAttachmentsChanged" property is False. This property depends on "post_refresh" option. **Solution:** Add "post_refresh" option for "message_ids" field in the view as it is done when "account_invoice_extract" module is installed. opw-3887671 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now save Peppol invoicing settings even when the endpoint field is left empty. This prevents an unexpected error and makes the configuration flow more reliable for companies using Peppol e-invoicing.
Original PR description
This traceback arises when the user doesn't give the Peppol endpoint and tries to save it. To reproduce this issue: 1) Install `account_peppol` 2) create a `Belgium` company and switch to that company. 3) Activate `Use PEPPOL Invoicing` in invoice settings 4) Change the Peppol EAS as `0201 - Codice Univoco Unità Organizzativa iPA` 5) Remove the `Endpoint` and try to save it. Error:- ``` TypeError: expected string or bytes-like object ``` When the user makes the `endpoint` as empty its value is `False`. which leads to the above traceback, as the `endpoint` is used to match the `endpoint_rule`. https://github.com/odoo/odoo/blob/c6c0f6ea677f5cb5935d6a3766bca5990539d17a/addons/account_peppol/models/res_company.py#L113-L114 After applying this commit will resolve this issue by giving a `fallback value` and make code more robust. when thepeppol_endpoint is not given by the user. sentry-5121223884
The employee attendance kiosk now uses smaller profile images to reduce loading time. This should make the check-in experience quicker and smoother, especially on slower networks or devices.
Original PR description
In this commit, used `avatar_512` that will help to decrease load time on kiosk mode of hr attendance. 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
On some DB, it is not possible to update some modules that depend on `account` To reproduce the issue: 1. Checkout before [1] and install `account_accountant` 2. Checkout after [1] 3. Update `account_accountant` Error: a server error is displayed > Field 'code' used in domain of field 'payment_acquirer_id' ([ > ('provider', '=', code)]) must be present in view but is missing."") Commit [1] contains unstable changes: it adds a domain on the field `payment_acquirer_id` of `accoun
Original PR description
On some DB, it is not possible to update some modules that depend on `account` To reproduce the issue: 1. Checkout before [1] and install `account_accountant` 2. Checkout after [1] 3. Update…
On some DB, it is not possible to update some modules that depend on
`account`
To reproduce the issue:
1. Checkout before [1] and install `account_accountant`
2. Checkout after [1]
3. Update `account_accountant`
Error: a server error is displayed
> Field 'code' used in domain of field 'payment_acquirer_id' ([
> ('provider', '=', code)]) must be present in view but is missing."")
Commit [1] contains unstable changes: it adds a domain on the field
`payment_acquirer_id` of `account.payment.method.line` and, to make
it work, it also adds the needed field `code` on the view
`view_account_journal_form`. But, if the view is not updated on an
existing database, the domain can not work, hence the client error.
This explains why the above use case does not work:
The module `account_accountant` has a view that also inherits the
view of account `account.view_account_journal_form`. As a result,
when updating the module (and, therefore, the view of
`account_accountant`), we `:View._validate_view` the whole view, which
will lead to:
https://github.com/odoo/odoo/blob/2cbf9d840b79520854731fd6a23431c69e451775/odoo/addons/base/models/ir_ui_view.py#L2282-L2286
[1] https://github.com/odoo-dev/odoo/commit/88782d3a76fb3941b9ed7d998ec0610aa26ff611
opw-3993709
opw-3993707
sentry-5416409171
Forward-Port-Of: odoo/odoo#170212
Forward-Port-Of: odoo/odoo#169978Send reminder also to the event organizer **Example use case**: - Create an event, set an organizer (Mitchell Admin), and add as attendees Mitchell Admin and another. - Set an email reminder on the event - The event reminder will be received by all attendees (including the organizer) Current behavior before PR - Event organizer does not receive the reminder email @Tecnativa TT48356 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-
Original PR description
Send reminder also to the event organizer **Example use case**: - Create an event, set an organizer (Mitchell Admin), and add as attendees Mitchell Admin and another. - Set an email reminder on the event - The event reminder will be received by all attendees (including the organizer) Current behavior before PR - Event organizer does not receive the reminder email @Tecnativa TT48356 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165284 Forward-Port-Of: odoo/odoo#160202
**Before this PR:** - Some fields are associated with groups in XML files, but they are visible even though the groups are disabled. (Recurring Revenue is not ticked in settings, i.e., the feature is not activated). - automated_probability and message_bounce fields are visible in the measure in the pipeline graph view. **After this PR:** - recurring_revenue fields in the measure will only be visible when it is ticked in settings, i.e., only when the feature is activated. -
Original PR description
**Before this PR:** - Some fields are associated with groups in XML files, but they are visible even though the groups are disabled. (Recurring Revenue is not ticked in settings, i.e., the feature is not activated). - automated_probability and message_bounce fields are visible in the measure in the pipeline graph view. **After this PR:** - recurring_revenue fields in the measure will only be visible when it is ticked in settings, i.e., only when the feature is activated. - automated_probability and message_bounce fields will be hidden from the measure in the pipeline graph view. Task-3810415 Forward-Port-Of: odoo/odoo#160638
Currently when applying a coupon for 10% on the order on the current order, the points awarded are 100% of the points instead of 90%. The loyalty program rewarding x points per $ spent. The same behavior is also observed in the sale worflow. Steps to reproduce: ------------------- * Go to the **Point of Sale** App * Open shop session * Select a customer * Add a product (ex. Office chair 70$) * Select **Enter Code** * Enter the code `10pc` > Observation: The order will grant 700 poi
Original PR description
Currently when applying a coupon for 10% on the order on the current order, the points awarded are 100% of the points instead of 90%. The loyalty program rewarding x points per $ spent. The same…
Currently when applying a coupon for 10% on the order on the current order, the points awarded are 100% of the points instead of 90%. The loyalty program rewarding x points per $ spent.
The same behavior is also observed in the sale worflow.
Steps to reproduce:
-------------------
* Go to the **Point of Sale** App
* Open shop session
* Select a customer
* Add a product (ex. Office chair 70$)
* Select **Enter Code**
* Enter the code `10pc`
> Observation: The order will grant 700 points instead of 630. The amount paid is 63$ with the code for 10% on the order.
Settings of the **Discount & Loyalties**:
* **Code for 10% on orders**
* Rule:
* `Among` -> no restriction set
* `Minimum quantity`: 1
* `Minimum Purchase`: 0
* Reward:
* `Discount`: 10% `on` order
* **Loyalty Program**
* `Use points on`: Current & Future orders
* Rule:
* `Among` -> no restriction set
* `Minimum quantity`: 1
* `Minimum Purchase`: 0
* `Grant` 10 loyalty poins per $ spent
Idea of the fix
---------------
As discussed with DALA, discount should count toward points awarded. Here is how it should apply:
* If program_rule has no domain, all lines should count (except ewallet & gift cards)
* If program_rule has a domain, we should use all the lines where the product matches the domain (except ewallet & gift cards)
This applies for the computation of points based on the money spent.
Why the fix:
------------
https://github.com/odoo/odoo/blob/2f6f8014f79e1db53d6c4c27e0cc60ccd48fd301/addons/sale_loyalty/models/sale_order.py#L917
Sale-wise, we replace `rule_products` with `so_products_per_rule.get(rule, [])`. We also replace `order_lines` by `lines_per_rule`.
* `rule_products` don't include discounts as they are computed on `order_lines` (all lines that are not reward lines). https://github.com/odoo/odoo/blob/2f6f8014f79e1db53d6c4c27e0cc60ccd48fd301/addons/sale_loyalty/models/sale_order.py#L834-L841 https://github.com/odoo/odoo/blob/2f6f8014f79e1db53d6c4c27e0cc60ccd48fd301/addons/sale_loyalty/models/sale_order.py#L889
* `so_products_per_rule` will include the discounts if they match with the program's domain.
https://github.com/odoo/odoo/blob/2f6f8014f79e1db53d6c4c27e0cc60ccd48fd301/addons/sale_loyalty/models/sale_order.py#L844
* We don't need to exclude the free product reward lines from `lines_for_points` as the price is 0 on the SO. Shipping lines and free shipping rewards are not counted.
In pos, the fix is a bit different.
https://github.com/odoo/odoo/blob/4b9dee8fbe9aefde798c8543fef89c661cc85c57/addons/pos_loyalty/static/src/js/Loyalty.js#L908-L914
We first notice that this piece of code is never triggered as the structure of `program.id` is a number and `reward.program_id` is the following thus the last if statement is never true. A `.id` is added.
```
Proxy(Object) {id: 1, name: 'Code for 10% on orders', trigger: 'with_code', applies_on: 'current', program_type: 'promo_code', …}
```
This now means that we only count reward lines if they are from the same program.
With the following if statement, it means that only the lines that are not reward lines are counted (which excludes discounts).
https://github.com/odoo/odoo/blob/eadfa4ee290a8b62956097aa66989eacff230275/addons/pos_loyalty/static/src/js/Loyalty.js#L921-L924
We conclude that those two ifs must be changed as we want a similar behavior as the workflow in sales.
We remove `orderedProductPaid` out of the if statement since it can be impacted by reward lines. We change the first if to excludes the reward lines only from the current program or from ewallet and giftcards. With this, `orderedProductPaid` now counts the discount lines from other program. (Similar to sales, where `amount_paid` is computed with `lines_per_rule`)
`totalProductQty` still applies only on non reward lines. (Same as sales)
opw-3858286
Forward-Port-Of: odoo/odoo#169934
Forward-Port-Of: odoo/odoo#164723- In Odoo v16 and above, the Place of Supply information was not displayed on the invoice report, unlike in previous versions. - This PR rectifies the issue, ensuring that the Place of Supply is correctly printed on the invoice report, maintaining consistency with earlier versions. **task**:3983822 Forward-Port-Of: odoo/odoo#170221 Forward-Port-Of: odoo/odoo#169202
Original PR description
- In Odoo v16 and above, the Place of Supply information was not displayed on the invoice report, unlike in previous versions. - This PR rectifies the issue, ensuring that the Place of Supply is correctly printed on the invoice report, maintaining consistency with earlier versions. **task**:3983822 Forward-Port-Of: odoo/odoo#170221 Forward-Port-Of: odoo/odoo#169202
This PR aims to fix an issue with the Facebook snippet not being dynamically responsive for mobile views. Steps to reproduce 1. Drop inner content facebook (dynamic content) anywhere 2. Go to mobile view 3. Try to scroll horizontally. As you can see, facebook iframe is overflowing Before v16, the mechanism for mobile view was different. The switch between mobile and desktop views caused snippets/pages to be re-render because a new dialog for mobile was opened every time. Starting fro
Original PR description
This PR aims to fix an issue with the Facebook snippet not being dynamically responsive for mobile views. Steps to reproduce 1. Drop inner content facebook (dynamic content) anywhere 2. Go to mobile…
This PR aims to fix an issue with the Facebook snippet not being dynamically responsive for mobile views. Steps to reproduce 1. Drop inner content facebook (dynamic content) anywhere 2. Go to mobile view 3. Try to scroll horizontally. As you can see, facebook iframe is overflowing Before v16, the mechanism for mobile view was different. The switch between mobile and desktop views caused snippets/pages to be re-render because a new dialog for mobile was opened every time. Starting from version 16, we have removed the dialog and introduced a mobile frame. As a result, the rendering now occurs only when the start function is called. Consequently, the params width does not change when we switch to mobile view.  After this PR, the snippet will be re-render every time the window resizes, ensuring that the width adjustment is responsive. This enhancement also allows parameters to be provided at the time of rendering.  Task-2736174 Forward-Port-Of: odoo/odoo#170127 Forward-Port-Of: odoo/odoo#163739
When using a cover page with a duplex letter, it would print the content of the letter behind the cover page due to an extra blank page missing. Using Unicode characters in the address would result in black boxes. This is fixed by using the Lato font provided by the web module. Forward-Port-Of: odoo/odoo#155752
Original PR description
When using a cover page with a duplex letter, it would print the content of the letter behind the cover page due to an extra blank page missing. Using Unicode characters in the address would result in black boxes. This is fixed by using the Lato font provided by the web module. Forward-Port-Of: odoo/odoo#155752
Steps to reproduce ================== - Use a webkit based browser (safari or epiphany) - Go to accounting > configuration > journals - Open the cash record - Switch to the incoming payments tab - In the optional column dropdown, enable the outstanding receipts accounts => The column is hidden but should be displayed Cause of the issue ================== The table width was computed with a fixed table layout. At that point in safari, the width was not yet correctly computed.
Original PR description
Steps to reproduce ================== - Use a webkit based browser (safari or epiphany) - Go to accounting > configuration > journals - Open the cash record - Switch to the incoming payments tab - In the optional column dropdown, enable the outstanding receipts accounts => The column is hidden but should be displayed Cause of the issue ================== The table width was computed with a fixed table layout. At that point in safari, the width was not yet correctly computed. Solution ======== We can revert commit 4163f1f4ff3f28c04cfde5427e6b25323d62a857: [FIX] web: prevent inline x2many list view overflows The original issue fixed by that commit isn't present anymore. It has probably been fixed due to some unrelated code changes or browser update. opw-3869696 Forward-Port-Of: odoo/odoo#170231 Forward-Port-Of: odoo/odoo#170139
Introduced by 09f31597163a3251e58bb7b08939301574e1f65a Steps to reproduce: 1. Activate user's permission **"Discount on line"** 2. Configure a pricelist with _discount_policy_ as **"Show public price & discount to the customer"** and set _selectable_ `True`. 3. Configure a price rule for a given product (e.g. Storage Box) Storage box _Sales Price_ is set on 10$ and I set a price rule in 5$ so its like a 50% of discount in that product 4. Go to website shop + select configured pri
Original PR description
Introduced by 09f31597163a3251e58bb7b08939301574e1f65a Steps to reproduce: 1. Activate user's permission **"Discount on line"** 2. Configure a pricelist with _discount_policy_ as **"Show public price & discount to the customer"** and set _selectable_ `True`. 3. Configure a price rule for a given product (e.g. Storage Box) Storage box _Sales Price_ is set on 10$ and I set a price rule in 5$ so its like a 50% of discount in that product 4. Go to website shop + select configured pricelist + add to cart "Storage box" + Go to cart page 5. Apply a loyalty program (ie: discount code program type) configure as its reward's applicability on "Order". 6. Claim that discount code on cart page. Reward product price is 1$ when it should be 2$ Forward-Port-Of: odoo/odoo#169284
PR does 2 things: - First round of .po file cleaning for es_xx.po files. Since v17 started using es_419 instead of the es_xx.po files, these languages are no longer accessible on Transifex for the translators to change. These files were mostly out of date/incorrect anyways though, so we delete them. The one exception to this is the es_CL.po because Chile has some specific words that differ from the rest of LATAM. This cleanup will occur in a followup PR to give translators time to double check
Original PR description
PR does 2 things: - First round of .po file cleaning for es_xx.po files. Since v17 started using es_419 instead of the es_xx.po files, these languages are no longer accessible on Transifex for the…
PR does 2 things: - First round of .po file cleaning for es_xx.po files. Since v17 started using es_419 instead of the es_xx.po files, these languages are no longer accessible on Transifex for the translators to change. These files were mostly out of date/incorrect anyways though, so we delete them. The one exception to this is the es_CL.po because Chile has some specific words that differ from the rest of LATAM. This cleanup will occur in a followup PR to give translators time to double check if any of the translations in from these es_CL files should remain. - Cleanup the en_AU/en_GB.po files. There were some non-sense "translations" in them and most of them didn't add much value. Some en_AU files had specific legitimate "translations" were left (e.g. tax "GST", check = cheque), so they were only modified to remove any erroneous translations task: 3593077 ENT PR: https://github.com/odoo/enterprise/pull/65107 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The user can select between `kanban` and `default` views in `pos_restaurant`. When a selection is made, it should be kept, which is not the case now. Each time the `FloorScreen` is rerendered, the choice is lost. This commit fixes the issue. Task: 3999451 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169962
Original PR description
The user can select between `kanban` and `default` views in `pos_restaurant`. When a selection is made, it should be kept, which is not the case now. Each time the `FloorScreen` is rerendered, the choice is lost. This commit fixes the issue. Task: 3999451 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169962
### Steps to reproduce (on mobile mode): - Go to Expenses app - Create a new expense - Select 'Company' for the 'Paid By' field - Action > Create Report - Click on the field 'Payment Method' - The view displayed does not show the journals, so there can be several 'Manual' for example ### Cause: There are no kanban view for account.payment.method.line and the default one only shows the name and not the journal. ### Solution: Create a new kanban view for account.payment.method.line t
Original PR description
### Steps to reproduce (on mobile mode): - Go to Expenses app - Create a new expense - Select 'Company' for the 'Paid By' field - Action > Create Report - Click on the field 'Payment Method' - The view displayed does not show the journals, so there can be several 'Manual' for example ### Cause: There are no kanban view for account.payment.method.line and the default one only shows the name and not the journal. ### Solution: Create a new kanban view for account.payment.method.line that displays the journal. opw-3896011 Forward-Port-Of: odoo/odoo#167797
The is_explicit attribute was useful to prevent saving a session when the session_id was coming from an untrusted source (e.g. a client forged http header). We removed the feature to set explicit headers, the attribute is gone, we forgot to adapt this one. Forward-Port-Of: odoo/odoo#169185
Original PR description
The is_explicit attribute was useful to prevent saving a session when the session_id was coming from an untrusted source (e.g. a client forged http header). We removed the feature to set explicit headers, the attribute is gone, we forgot to adapt this one. Forward-Port-Of: odoo/odoo#169185
(note for reviewer: I reset my branch on 15.0) The `werkzeug.proxy_fix.orig` is set when running in --proxy-mode, it holds the original value of various headers before the ProxyFix class changed them according to the `X-Forwarded-` headers. It is a dictionnary with the following entries: orig_remote_addr = environ_get("REMOTE_ADDR") orig_wsgi_url_scheme = environ_get("wsgi.url_scheme") orig_http_host = environ_get("HTTP_HOST") "werkzeug.proxy_fix.orig": { "RE
Original PR description
(note for reviewer: I reset my branch on 15.0) The `werkzeug.proxy_fix.orig` is set when running in --proxy-mode, it holds the original value of various headers before the ProxyFix class changed them…
(note for reviewer: I reset my branch on 15.0)
The `werkzeug.proxy_fix.orig` is set when running in --proxy-mode, it holds the original value of various headers before the ProxyFix class changed them according to the `X-Forwarded-` headers.
It is a dictionnary with the following entries:
orig_remote_addr = environ_get("REMOTE_ADDR")
orig_wsgi_url_scheme = environ_get("wsgi.url_scheme")
orig_http_host = environ_get("HTTP_HOST")
"werkzeug.proxy_fix.orig": {
"REMOTE_ADDR": orig_remote_addr,
"wsgi.url_scheme": orig_wsgi_url_scheme,
"HTTP_HOST": orig_http_host,
"SERVER_NAME": environ_get("SERVER_NAME"),
"SERVER_PORT": environ_get("SERVER_PORT"),
"SCRIPT_NAME": environ_get("SCRIPT_NAME"),
}
All those sub-entries are already allow-listed by the Odoo's HTTPRequest class.
Accessing those values is handy when debugging the --proxy-mode, it allows to see at a glance if the proxy-mode was effective for this request: the `werkzeug.proxy_fix.orig` entry is present; or not: the entry is absent.
Forward-Port-Of: odoo/odoo#169446
Forward-Port-Of: odoo/odoo#168841Issue: ====== Clicking enter in a banner inside a list breaks the layout in chrome browser. Steps to reproduce the issue: ============================= - Open chrome browser - Go to to-do - Create a list and add 1 item - Click enter (Second element of the list) and add a banner in the item - Click enter - Doesn't work as expected Origin of the issue: ==================== This is a browser issue, chrome in this specific case doesn't work properly, all the events until `textInput
Original PR description
Issue: ====== Clicking enter in a banner inside a list breaks the layout in chrome browser. Steps to reproduce the issue: ============================= - Open chrome browser - Go to to-do - Create a…
Issue:
======
Clicking enter in a banner inside a list breaks the layout in chrome browser.
Steps to reproduce the issue:
=============================
- Open chrome browser
- Go to to-do
- Create a list and add 1 item
- Click enter (Second element of the list) and add a banner in the item
- Click enter
- Doesn't work as expected
Origin of the issue:
====================
This is a browser issue, chrome in this specific case doesn't work properly, all the events until `textInput` are called when clicking `enter` but the last event is never triggerged which is the `input` event. The specific case can be reproduced with this:
```
<div contenteditable="true">
<ul>
<div contenteditable="false">
<div contenteditable="true">
<p>
text[]
</p>
</div>
</div>
</ul
</div>
```
Solution:
==========
We manually trigger the `input` event in this specific case.
Issue:
======
List inside a banner under a list doesn't align correctly
steps to reproduce the issue:
=============================
- Go to do
- Add a list and first item
- Add a banner
- Add a list inside the banner
- It's not correctly centered
Origin of the issue:
====================
Since the list inside the banner is considered nested list under the top
list, the `margin-bottom` is removed.
Solution:
=========
Reassign the style again when we are inside the banner.
task-3857296
Forward-Port-Of: odoo/odoo#162204When the arguments for the creation of the SpreadsheetPivotTable are computed, an array was created for each subgroups (due to `concat`). This allows to reduce by +/- 62% the time spent in the creation of the arguments. It was done by using `push` instead of `concat`. Note that `splice` has been evaluated but it was sightly slower than `push`. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confir
Original PR description
When the arguments for the creation of the SpreadsheetPivotTable are computed, an array was created for each subgroups (due to `concat`). This allows to reduce by +/- 62% the time spent in the creation of the arguments. It was done by using `push` instead of `concat`. Note that `splice` has been evaluated but it was sightly slower than `push`. 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#170159
Incorporate Andrea Manenti (maneandrea) as Vauxoo's contributor. I confirm I have signed the CLA and read the PR guidelines at http://www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170040
Original PR description
Incorporate Andrea Manenti (maneandrea) as Vauxoo's contributor. I confirm I have signed the CLA and read the PR guidelines at http://www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170040
Open partner ledger Add a partner to the partner filter Partner lines will be filled properly Add another partner to the partner filter Issue: nothing will occur Open partner ledger Add a partner to the partner filter Partner lines will be filled properly Go to dashboard Reopen partner ledger Issue: Only previously choosen partner lines will be shown, but no partner is selected in partner filter opw-3964080 Forward-Port-Of: odoo/enterprise#64556
Original PR description
Open partner ledger Add a partner to the partner filter Partner lines will be filled properly Add another partner to the partner filter Issue: nothing will occur Open partner ledger Add a partner to the partner filter Partner lines will be filled properly Go to dashboard Reopen partner ledger Issue: Only previously choosen partner lines will be shown, but no partner is selected in partner filter opw-3964080 Forward-Port-Of: odoo/enterprise#64556