Monday, November 25, 2024
39 changes · 18.0
Enhancements to existing features
This update marks more website and mail-related requests as read-only when they only need to view data. This helps the system handle those requests more efficiently and safely without changing what users see or do.
Original PR description
Another pass of marking some routes/methods as read-only, as a follow-up to #186319 and #186786
The web tour system now checks whether a target element remains stable before interacting with it. This helps detect fragile automated tours earlier, reducing inconsistent test results and improving confidence in quality checks.
Original PR description
In this commit, we add a new feature in tour engine that allows to check if there are potential indeterminisms related to the triggers. To do this, we will "simply" check if the targeted element (trigger) is not altered within a delay. If this is the case, it is then possible that we do not wait long enough before targeting the element in the tour, or that the trigger is not precise enough. 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
The Point of Sale image build setup now ignores the right generated files, preventing build artifacts from showing up as unrelated changes. This keeps development and maintenance cleaner without changing how users experience the product.
Original PR description
The `.gitignore` in `tools/posbox` was out of date, resulting in many untracked files appearing while building an image. This commit brings it up to date. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update marks selected Documents actions as read-only where they do not need to change data. It helps reduce unnecessary write access during routine document viewing or retrieval, improving reliability without changing the user experience.
Original PR description
Another pass of marking some routes/methods as read-only, as a follow-up to https://github.com/odoo/odoo/pull/186319 and https://github.com/odoo/odoo/pull/186786
Resolved issues and error corrections
This fixes a problem where Odoo could fail when processing a view that has no defined content. The system now adds a safe placeholder so views can still be combined correctly, improving reliability for configurations that leave view content empty.
Original PR description
the arch is not mandatory in the view, but in the _combine method we are assuming that there is at least a node in the arch. This commit fix the issue by adding a data node if the arch is empty to ensure the ability to combine the archs. task-4241455 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Before this commit, a KeyError would occur if 'entryPointType' was missing in the entryPoints dictionary. opw-4009884 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188002
Original PR description
Before this commit, a KeyError would occur if 'entryPointType' was missing in the entryPoints dictionary. opw-4009884 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188002
The Members screen back icon has been visually adjusted so it no longer appears disabled when it can be used. This reduces confusion and makes navigation clearer for users.
Original PR description
**Current behavior before PR:** The back icon in members looked disabled even though it wasn't **Desired behavior after PR is merged:** The back icon in members no longer looks disabled and has proper opacity task-id:[4354084](https://www.odoo.com/odoo/project/1519/tasks/4354084) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Changing only the time in a date range no longer replaces the other date with the current date. This prevents accidental changes and keeps scheduling or date range entries accurate when users adjust times.
Original PR description
Before this commit, selecting a 'time' in a daterange for the value that is _not_ focused would erase the other date with the current one. This is what the datepicker is meant to do when the date is selected, but it doesn't make sense to do that for time selection, as it is agnostic of the focused date with the help of distinct `select` elements. This commit sends the information whether the 'time' part has been changed to bypass the overwrite system in such cases. Task [4354382](https://www.odoo.com/odoo/project/133/tasks/4354382?debug=1) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A typo in the certificate module caused the system to call a non-existent method when retrieving public key information without keys already set. This fix points to the correct method, helping certificate processing work reliably in that fallback case.
Original PR description
`[certificate.certificate]._get_public_key_numbers_bytes` currently calls `[certificate.key]._get_public_key_numbers_bytes_with_key` if no keys are set in the certificate object. However, this method does not actually exists and is actually named `[certificate.key]._numbers_public_key_bytes_with_key`. This commit simply, renames the call correctly. opw-4355675 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The web app no longer blocks the browser's install prompt event unnecessarily. This keeps the existing install prompt behavior while avoiding unwanted console messages, making the experience cleaner for users and support teams.
Original PR description
It is not necessary useful to prevent the event in our case, so we can just stop doing it while maintaining the same functionality. Preventing the event writes a log in the console, and we prefer to avoid having a log if we can keep the service without it. ->Will be fw-ported from 17.0
This update fixes an automated test for the Project app so it can run reliably again. Keeping this test active helps ensure the task history feature continues to work correctly and prevents regressions from reaching users.
Original PR description
Before this commit, the tour always fails because the tour has been desactivated due to a deterministic bug. This commit alters the existing steps to be able to start the tour as before and checking if the bug in the history feature is still there. runbot-98505
This fixes an issue that could prevent certain Belgian payroll export views from loading correctly. It helps ensure payroll export configurations for Group S, Partena, and UCM remain reliable after related platform changes.
Original PR description
The inheritance with almost empty view was not working properly because the framework was not able to combine empty archs. This commit is the direct follow up of the related commit in odoo repository. task-4241455
Inventory users can now open the receipts map view even when there are no stock pickings to display. This prevents an error screen and keeps navigation smooth when records have been removed or filtered out.
Original PR description
Steps to reproduce: ------------------- 1. Install Inventory app 2. Go in Inventory > Overview > Receipts > Remove all existing pickings (or filter so that you have no pickings appearing) 3. Go in the map view 4. A traceback occurs Fix: ------------------- The traceback is caused by a TypeError: Cannot read properties of undefined (reading 'warehouse_address_id'). We should ensure that there is at least one stock picking, an additional check is added for that purpose. version-18.0 related-https://github.com/odoo/enterprise/pull/70099/commits/48401e9b083e5ecdf03b6863d4536a10f3896be7
The Norwegian VAT report now avoids decimal amounts and shows the purchase-from-abroad base as a positive value. This helps businesses produce VAT reports that better match reporting requirements and reduces the risk of submission issues.
Original PR description
VAT report cannot have decimals. VAT report should have positive base value of purchase from abroad.
The bank reconciliation screen now displays currency amounts correctly when matching existing entries, preventing the currency symbol from overlapping the amount. It also avoids an error that could occur when users selected text in the reconciliation view, making the workflow more stable.
Original PR description
This commit will fix two things: - CSS problem with currency symbol in the monetary field amount, when being on the reconciliation widget, click on a statement and then try to match an existing entries. When clicking on this line, the currency of the amount in the manual operations page was in the amount. - Fixing a traceback when selecting text, because the t-on-click was triggered but the target had no attribute. task: 4260301
### Steps to reproduce: - Install "l10n_sa" and the Arabic language - Create a product and translate its name to Arabic - Create an invoice and print it - In the invoice lines under the description column only one translation displays and not both as it should. ### Cause: The code was changed to only display the current language in this [commit](https://github.com/odoo/odoo/commit/67b041521d05cbcf5adaf04998278c10fa046790). The goal of this commit was to prevent the duplication of the pro
Original PR description
### Steps to reproduce: - Install "l10n_sa" and the Arabic language - Create a product and translate its name to Arabic - Create an invoice and print it - In the invoice lines under the description…
### Steps to reproduce: - Install "l10n_sa" and the Arabic language - Create a product and translate its name to Arabic - Create an invoice and print it - In the invoice lines under the description column only one translation displays and not both as it should. ### Cause: The code was changed to only display the current language in this [commit](https://github.com/odoo/odoo/commit/67b041521d05cbcf5adaf04998278c10fa046790). The goal of this commit was to prevent the duplication of the product name because it is already contained in line.name. ### Solution: The way line.name is computed is by taking the sales description (or purchase one) and concatenating it with the product name. It can also be changed manually in the invoice form view under "label". So to display the product name in both languages and this label without any duplicate this commit adds conditions: - the label is always displayed - the Arabic name is displayed if the label does not contains it - the English name is displayed if the label does not contains it and if it is different from the Arabic one (ie if it is translated) opw-4187577 Forward-Port-Of: odoo/odoo#188298 Forward-Port-Of: odoo/odoo#186449
This PR fixes readability issues within the forecast details table. Prior to this PR, the table was using arbitrary color that were out of our color maps, meaning that they were not dark mode proof by default. As no variation was defined for these color in dark mode, some readability issues would occur in some cases (e.g link color over that background in dark mode). To handle this issue, we go back to basics and use Bootstrap default table utility classes, easing the maintenance and pr
Original PR description
This PR fixes readability issues within the forecast details table. Prior to this PR, the table was using arbitrary color that were out of our color maps, meaning that they were not dark mode proof by default. As no variation was defined for these color in dark mode, some readability issues would occur in some cases (e.g link color over that background in dark mode). To handle this issue, we go back to basics and use Bootstrap default table utility classes, easing the maintenance and preventing. readability issues. | 16.0 | This PR | |--------|--------| | <img width="459" alt="image" src="https://github.com/user-attachments/assets/571d9dea-2f42-479d-9fb1-85c9e1afbc76"> | <img width="451" alt="image" src="https://github.com/user-attachments/assets/121ec777-5a24-48da-912e-41f51e662e7a"> | task-4344045 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188308 Forward-Port-Of: odoo/odoo#187719
In #183165 the override of the PdfReader constructor was forcing the `strict` parameter to True[1][1] in the pdf shim for PyPDF2 1.x. So, when a PdfReader is instanciated with strict set to False, with that PyPDF version installed, the strict parameter is not taken into account. In that case, it impossible to upload some PDF documents that were allowed before the shims. With this commit, the override of the constructor is removed in the 1.x shim and the PdfReader override is only made once
Original PR description
In #183165 the override of the PdfReader constructor was forcing the `strict` parameter to True[1][1] in the pdf shim for PyPDF2 1.x. So, when a PdfReader is instanciated with strict set to False,…
In #183165 the override of the PdfReader constructor was forcing the `strict` parameter to True[1][1] in the pdf shim for PyPDF2 1.x. So, when a PdfReader is instanciated with strict set to False, with that PyPDF version installed, the strict parameter is not taken into account. In that case, it impossible to upload some PDF documents that were allowed before the shims. With this commit, the override of the constructor is removed in the 1.x shim and the PdfReader override is only made once at the upper level. The `strict` parameter is defaulting to True but not enforced as it was the default behavior in PyPDF2 1.x. It should be changed later to follow the behavior of PyPDF2 >= 2.x. Also, any other parameter of the constructor are discarded as they are useless in PyPDF 1.x and not compatible at all with PyPDF >= 2.x. On the other hand, the new `password` parameter of 2.x is not backward compatible. [1]: odoo/odoo@f03a12c9296c90e6e371f0970fc3760eb5514ab1/odoo/tools/pdf/_pypdf2_1.py#L19 Forward-Port-Of: odoo/odoo#188195 Forward-Port-Of: odoo/odoo#187900
Before this commit, messages sent by OdooBot would remain unread. 1. Log in as demo user 2. Open OdooBot chat, remains unread This happens because the `_set_last_seen_message` method called by the OdooBot reply logic sets the message as seen for the user. This results in the message being marked as read before it is received, preventing it to be marked as read by the client. This commit fixes the issue by preventing the message to be mark as read if the author is not the current user. A
Original PR description
Before this commit, messages sent by OdooBot would remain unread. 1. Log in as demo user 2. Open OdooBot chat, remains unread This happens because the `_set_last_seen_message` method called by the OdooBot reply logic sets the message as seen for the user. This results in the message being marked as read before it is received, preventing it to be marked as read by the client. This commit fixes the issue by preventing the message to be mark as read if the author is not the current user. Also added missing `message_unread_counter_bus_id` from `assignedDefined` that would prevent it to be set by record inserts. task-4295630 opw-4316799 Forward-Port-Of: odoo/odoo#187588 Forward-Port-Of: odoo/odoo#186742
Before this commit, the #162167 PR changes the help into string for 2 fields since the string will not be translated and those fields are not displayed in the UI. However, those fields could be selected in custom search (when the user would like to add a custom field) and so the label displayed will be the helper. This commit makes sure the helper is inside the help instead of `string` even if the field is a technical one since the field can be selected in the custom search. opw-4348264 F
Original PR description
Before this commit, the #162167 PR changes the help into string for 2 fields since the string will not be translated and those fields are not displayed in the UI. However, those fields could be selected in custom search (when the user would like to add a custom field) and so the label displayed will be the helper. This commit makes sure the helper is inside the help instead of `string` even if the field is a technical one since the field can be selected in the custom search. opw-4348264 Forward-Port-Of: odoo/odoo#188199
* Deferred expense: 110300 Prepayments (current assets) * Deferred revenue: 210900 Accruals (current liabilities) task-4338265 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187704
Original PR description
* Deferred expense: 110300 Prepayments (current assets) * Deferred revenue: 210900 Accruals (current liabilities) task-4338265 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187704
Versions -------- - 16.0+ Steps (16.0+) ------------- 1. Create a no-variant attribute with multiple values; 2. Create a product and assign it those attributes; 3. Add an extra product media from the sales tab; 4. Go to the website and add an extra image through the web editor; 5. Go back and check the extra product media field. The only image displayed is the one you uploaded in step 3. Issue ----- Both images should be shown as this product only has no-variant attributes so th
Original PR description
Versions -------- - 16.0+ Steps (16.0+) ------------- 1. Create a no-variant attribute with multiple values; 2. Create a product and assign it those attributes; 3. Add an extra product media from the sales tab; 4. Go to the website and add an extra image through the web editor; 5. Go back and check the extra product media field. The only image displayed is the one you uploaded in step 3. Issue ----- Both images should be shown as this product only has no-variant attributes so they don't create product variants. Cause ----- In Step 4, the uploaded image is saved to the product variant based on the evaluation of the `has_configurable_attributes` field on the product template and the presence of the variant. Solution -------- Check if the attributes are all `no_variant`. In that case, no product variant is created, so the images should be saved on the product template. opw-4174331 Forward-Port-Of: odoo/odoo#188019 Forward-Port-Of: odoo/odoo#187544
Before this PR, If the deliveryslip report had many fields, say more than 5, they will be all placed on the same line, and it will be very hard to read them since they will be squashed. This is problem is more relevant when the language used for the report is a language where the words are usually long, like the german language. Now, we force at most 4 fields per line, which makes the report layout cleaner in most cases. Before <img width="613" alt="image" src="https://github.com/user-
Original PR description
Before this PR, If the deliveryslip report had many fields, say more than 5, they will be all placed on the same line, and it will be very hard to read them since they will be squashed. This is problem is more relevant when the language used for the report is a language where the words are usually long, like the german language. Now, we force at most 4 fields per line, which makes the report layout cleaner in most cases. Before <img width="613" alt="image" src="https://github.com/user-attachments/assets/49d88491-96d1-4ce3-9e06-73be713956cf"> After <img width="615" alt="image" src="https://github.com/user-attachments/assets/d20337d6-dcc1-46f0-8386-18f67091538c"> opw-4227666 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#184769
When we try to print multiple invoice who have multiple pages and have H2 title in the comments, the system treats the document as separate files, resulting in error: `AttributeError: 'NoneType' object has no attribute 'getValue'`. Steps to reproduce: - Create an invoice without any attachment. - Create another invoice, ensuring that its printout spans multiple pages, and add an H2 title in the comments (narration). - In the list view, attempt to print both invoices. - Ensure that the r
Original PR description
When we try to print multiple invoice who have multiple pages and have H2 title in the comments, the system treats the document as separate files, resulting in error: `AttributeError: 'NoneType' object has no attribute 'getValue'`. Steps to reproduce: - Create an invoice without any attachment. - Create another invoice, ensuring that its printout spans multiple pages, and add an H2 title in the comments (narration). - In the list view, attempt to print both invoices. - Ensure that the report being printed contains a value in the "Save as attachment prefix" field. The issue arises because the presence of multiple H2 headings causes the system to treat the document as separate files. Consequently, the condition `if has_same_number_of_outlines and has_top_level_heading:` is not satisfied, which results in a stream to be None. opw-4247013 Forward-Port-Of: odoo/odoo#183881
Prior to [1], when the "Name / Latest post" option was active and "Full-width" was disabled, the blogs page displayed the first blog post as a cover. However, [1] replaced this dynamic cover with a static one titled "Our latest posts," inadvertently omitting the first blog post from the page. Steps to reproduce the issue: - Navigate to the "Blog" menu. - Enable "Edit" mode. - In the "Customize" panel, disable the "Full-width" option. - The latest blog post no longer appears in the list.
Original PR description
Prior to [1], when the "Name / Latest post" option was active and "Full-width" was disabled, the blogs page displayed the first blog post as a cover. However, [1] replaced this dynamic cover with a static one titled "Our latest posts," inadvertently omitting the first blog post from the page. Steps to reproduce the issue: - Navigate to the "Blog" menu. - Enable "Edit" mode. - In the "Customize" panel, disable the "Full-width" option. - The latest blog post no longer appears in the list. This commit resolves the issue by ensuring the first blog post is displayed correctly. [1]: https://github.com/odoo/odoo/commit/05ef95d3f13ac42713bb8d8a3002f149345cc08b opw-4289735 Forward-Port-Of: odoo/odoo#187677
Steps to reproduce: 1.Drag & drop a popup 2.Click on its inner block 3.Set the visibility hidden on desktop 4.Save & enter edit mode (not really needed) 5. Click "Block" to show, popup remains hidden Issue: Nested elements do not toggle visibility correctly. Clicking "Block" fails to show the popup. Clicking the popup first, then the block, will make it visible. Key changes: Previously, only parent-child paths were stored, limiting navigation from parent to child. Now, paths from pa
Original PR description
Steps to reproduce: 1.Drag & drop a popup 2.Click on its inner block 3.Set the visibility hidden on desktop 4.Save & enter edit mode (not really needed) 5. Click "Block" to show, popup remains hidden…
Steps to reproduce: 1.Drag & drop a popup 2.Click on its inner block 3.Set the visibility hidden on desktop 4.Save & enter edit mode (not really needed) 5. Click "Block" to show, popup remains hidden Issue: Nested elements do not toggle visibility correctly. Clicking "Block" fails to show the popup. Clicking the popup first, then the block, will make it visible. Key changes: Previously, only parent-child paths were stored, limiting navigation from parent to child. Now, paths from parent to children are connected and stored. Solution: Ensure clicking a child element makes itself and its parents visible. Conversely, clicking on a parent element should hide itself and all its children. This PR aims to resolve the visibility toggle bug by creating proper parent-to-child connectivity. Clicking on an invisible element now toggles all its parents visible. Similarly, clicking on a visible element toggles all its descendants invisible. task-3806730 Forward-Port-Of: odoo/odoo#171724
Steps to reproduce: 1. open a first restaurant session on one tab => S1 2. open the same restaurant session on a second device (e.g. incognito tab) => S2 3. select a table on S2, create an order and add a product 4. open that order on S1 5. add more of the same product from S2 6. you will see negative quantities on the order button on S1 Before this commit, the callback for websocket notification "TABLE_ORDER_COUNT" was assuming we were on the floor screen and thus not updating the (pot
Original PR description
Steps to reproduce: 1. open a first restaurant session on one tab => S1 2. open the same restaurant session on a second device (e.g. incognito tab) => S2 3. select a table on S2, create an order and…
Steps to reproduce: 1. open a first restaurant session on one tab => S1 2. open the same restaurant session on a second device (e.g. incognito tab) => S2 3. select a table on S2, create an order and add a product 4. open that order on S1 5. add more of the same product from S2 6. you will see negative quantities on the order button on S1 Before this commit, the callback for websocket notification "TABLE_ORDER_COUNT" was assuming we were on the floor screen and thus not updating the (potential) opened order. The result was an inconsistency when using multiple devices, with one of the POS session detecting "negative" additions to the order. Typical use case where this causes problems: A restaurant where waiters use mobile devices to take the orders at tables and a fixed PC as the checkout to settle orders and payments. In such instances, if the waiter forgot to return to floor screen after taking an order or if someone went to check the table order from the PC and kept that view open, inconsistencies arise. After this commit, changes made to the order from another device are taken into account even when the order is already opened on this device. opw-4208794 Forward-Port-Of: odoo/odoo#184171
Computing the field in su = False was not working as assigned the variable on the sudo environment. The test in 0baa908385 was working as the read computes the display_name in sudo. Forward-Port-Of: odoo/odoo#188363 Forward-Port-Of: odoo/odoo#188310
Original PR description
Computing the field in su = False was not working as assigned the variable on the sudo environment. The test in 0baa908385 was working as the read computes the display_name in sudo. Forward-Port-Of: odoo/odoo#188363 Forward-Port-Of: odoo/odoo#188310
Before this commit, there was no check to see if the microphone was still needed when starting recording, which could leave the stream active with no reference to it. This commit fixes this issue by checking if the component is destroyed when the microphone promise is resolved. Forward-Port-Of: odoo/odoo#187979 Forward-Port-Of: odoo/odoo#187870
Original PR description
Before this commit, there was no check to see if the microphone was still needed when starting recording, which could leave the stream active with no reference to it. This commit fixes this issue by checking if the component is destroyed when the microphone promise is resolved. Forward-Port-Of: odoo/odoo#187979 Forward-Port-Of: odoo/odoo#187870
Before this commit, when an upsell order was in draft and the parent order was modified (another upsell was confirmed or the parent order was modified directly), the parent_line compute was not trigerred. It could cause issues in customizations. Forward-Port-Of: odoo/enterprise#73973
Original PR description
Before this commit, when an upsell order was in draft and the parent order was modified (another upsell was confirmed or the parent order was modified directly), the parent_line compute was not trigerred. It could cause issues in customizations. Forward-Port-Of: odoo/enterprise#73973
Steps - Have a subscription product with two variants, each having one different possible pricing. - Go to the eCommerce page of this product and add to cart the second variant (the one which is not selected by default). ** The variant is added to the cart with the wrong plan ** Cause When only 1 pricing is possible for a combination, there's no select element on the page to select a plan and we fallback on the data attribute of the `add_to_cart` button. https://github.com/odoo/enterprise
Original PR description
Steps - Have a subscription product with two variants, each having one different possible pricing. - Go to the eCommerce page of this product and add to cart the second variant (the one which is not selected by default). ** The variant is added to the cart with the wrong plan ** Cause When only 1 pricing is possible for a combination, there's no select element on the page to select a plan and we fallback on the data attribute of the `add_to_cart` button. https://github.com/odoo/enterprise/blob/e9f74bce15e564695733577c181ce3f6d6d063a8/website_sale_subscription/static/src/js/website_sale_subscription.js#L15 However, this element is only rendered once for the initial product combination and never updated when changing to a new combination. https://github.com/odoo/enterprise/blob/e9f74bce15e564695733577c181ce3f6d6d063a8/website_sale_subscription/views/templates.xml#L90-L94 opw-4197528 Forward-Port-Of: odoo/enterprise#73639
Users have encountered invoice rejections from the ISS due to an incompatible document type when creating automatic invoices. This modification ensures that the correct document type is assigned based on the customer's taxpayer type, allowing the invoice to be approved by the ISS. task-4299210 Forward-Port-Of: odoo/enterprise#73945
Original PR description
Users have encountered invoice rejections from the ISS due to an incompatible document type when creating automatic invoices. This modification ensures that the correct document type is assigned based on the customer's taxpayer type, allowing the invoice to be approved by the ISS. task-4299210 Forward-Port-Of: odoo/enterprise#73945
In case we are not in a multi currency environment the currency of the journal is falsy, so if there is not a currency set, we take the one from the company task: 4293986 Forward-Port-Of: odoo/enterprise#73006
Original PR description
In case we are not in a multi currency environment the currency of the journal is falsy, so if there is not a currency set, we take the one from the company task: 4293986 Forward-Port-Of: odoo/enterprise#73006
Currently, when an operation is loaded in the barcode app, the frontend executes a request to get_barcode_data which will perform a read on all relevant barcode data from the backend to cache it on the frontend. The problem is, when loading the records of `stock.quant.packages`, it will attempt to read all empty packages with no location id. There are cases where these packages are way too many i.e. 500K and thus to read fields on these records, it would be terribly slow. As this is done upon op
Original PR description
Currently, when an operation is loaded in the barcode app, the frontend executes a request to get_barcode_data which will perform a read on all relevant barcode data from the backend to cache it on…
Currently, when an operation is loaded in the barcode app, the frontend executes a request to get_barcode_data which will perform a read on all relevant barcode data from the backend to cache it on the frontend. The problem is, when loading the records of `stock.quant.packages`, it will attempt to read all empty packages with no location id. There are cases where these packages are way too many i.e. 500K and thus to read fields on these records, it would be terribly slow. As this is done upon opening every operation in the barcode app, it's making the app feel sluggish. To workaround the problem, this PR introduces a config paramter `stock_barcode.usable_packages_limit` which will limit the total number of empty packages being read to feed the frontend cache. This gives the option to tradeoff between cache locality and network connection. Setting this limit to a smaller number will result in more rpc calls instead of suffering a slowdown on one big rpc call to load all data once. Benchmarks: This will totally depend on the configured limit. Lower limit would mean higher speedup and vice versa. As an example, setting a limit of 1000 cut down the loading of get_barcode_data from 13.87 s to 768 ms opw-4245980 Forward-Port-Of: odoo/enterprise#74096
This commit add the export to xml button on the intrastat report for Germany. More information can be found here: - https://erhebungsportal.estatistik.de/Erhebungsportal/informationen/hilfe-zur-meldungsabgabe-3749 task-4194404 Forward-Port-Of: odoo/enterprise#74434 Forward-Port-Of: odoo/enterprise#71785
Original PR description
This commit add the export to xml button on the intrastat report for Germany. More information can be found here: - https://erhebungsportal.estatistik.de/Erhebungsportal/informationen/hilfe-zur-meldungsabgabe-3749 task-4194404 Forward-Port-Of: odoo/enterprise#74434 Forward-Port-Of: odoo/enterprise#71785
### Steps to reproduce: - Install "l10n_cl" and switch to a Chilian company - Give another user the role "Bookkeeper" - Switch to this user - Select an invoice and try to generate a Credit note - This user has not the right to create `l10n_cl.account.invoice.reference` ### Cause: The record `l10n_cl.account.invoice.reference` can only be created by managers (Accountant). ### Solution: Change the access rights to give full access on the record to users with the role "Billing". opw
Original PR description
### Steps to reproduce: - Install "l10n_cl" and switch to a Chilian company - Give another user the role "Bookkeeper" - Switch to this user - Select an invoice and try to generate a Credit note - This user has not the right to create `l10n_cl.account.invoice.reference` ### Cause: The record `l10n_cl.account.invoice.reference` can only be created by managers (Accountant). ### Solution: Change the access rights to give full access on the record to users with the role "Billing". opw-4291981 Forward-Port-Of: odoo/enterprise#74015
Users require the name of the invoice report to be the same as the xml. task-4284482 Forward-Port-Of: odoo/enterprise#73335
Original PR description
Users require the name of the invoice report to be the same as the xml. task-4284482 Forward-Port-Of: odoo/enterprise#73335
Currently, the accounting firm's VAT is used for the CodaBox connection but sometimes, accounting firms need to use a different VAT as their contract number. This adds a system parameter that if filled, is used instead of the firm's VAT. task-4335294 Forward-Port-Of: odoo/enterprise#74368 Forward-Port-Of: odoo/enterprise#73883
Original PR description
Currently, the accounting firm's VAT is used for the CodaBox connection but sometimes, accounting firms need to use a different VAT as their contract number. This adds a system parameter that if filled, is used instead of the firm's VAT. task-4335294 Forward-Port-Of: odoo/enterprise#74368 Forward-Port-Of: odoo/enterprise#73883
Issue: In the subscription order user portal, the anticipate payment included products with the invoice policy set to delivered quantity that were not delivered yet. -Enable online payment and demo payment provider in the configuration. -Create a new subscription order in the subscription module. -Add a product with its invoice policy set to ordered quantity. -Add another product with its invoice policy set to delivered quantity. -Confirm the order and click on preview to access the user
Original PR description
Issue: In the subscription order user portal, the anticipate payment included products with the invoice policy set to delivered quantity that were not delivered yet. -Enable online payment and demo payment provider in the configuration. -Create a new subscription order in the subscription module. -Add a product with its invoice policy set to ordered quantity. -Add another product with its invoice policy set to delivered quantity. -Confirm the order and click on preview to access the user portal. -Proceed with the payment through the portal. It is now not possible to pay in advance through the user portal for recurring products with an invoice policy set to delivered quantity if they haven't been delivered yet. We still allow advance payments for partially delivered products. opw-3775930 Forward-Port-Of: odoo/enterprise#72578