Tuesday, June 18, 2024
66 changes · master
Enhancements to existing features
The timesheet portal now hides the total section when entries are not grouped. This keeps the page simpler and avoids showing a misleading or unnecessary total label to customers and employees viewing timesheets.
Original PR description
-In this PR, we remove the total label in the portal view, if the timesheets are not grouped. task-3908815
Project copies now start without being marked as a favourite, avoiding confusion when duplicating existing work. New projects also automatically use the company's default email alias domain, making setup more consistent and reducing manual configuration.
Original PR description
This PR addresses two points: - When duplicating a favourite project, the copy project will not be favourite. - When creating a new project, the alias domain will be automatically set as the company's default alias domain. task-3940556
The message seen indicator is now darker when everyone has seen a message, making it easier for users to notice at a glance. This small visual improvement helps reduce ambiguity in conversations and improves readability in the messaging interface.
Original PR description
This PR improves the visibility of the message seen indicator color by removing the opacity-50 when everyone has seen the message. Before  After  Task-3915958
The Indian tax reports now only show the TDS report when the related setting is turned on. This keeps the tax reporting menu cleaner for companies that do not use TDS and helps users focus on relevant reports.
Original PR description
This PR ensures that the TDS report in Tax Report will only be displayed if the `l10n_in_tds_toggle` field in settings is set to true. **task**-3980324 **COM PR**: https://github.com/odoo/odoo/pull/169757
Resolved issues and error corrections
Users can now leave Discuss channels without triggering an error. The change prevents the departing user from receiving the channel leave notification that caused the problem, improving the reliability of channel management.
Original PR description
**Current behavior before PR:** when leaving discuss channel from discuss it results in error because leave notification is send to the leaving person itself. **Desired behavior after PR is merged:** The issue was resolved by replacing the logic. Now, before sending a notification to the channel, we remove the channel member and the channel itself from the thread of the person leaving. task-3893498 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Code cleanup and technical improvements
This update streamlines how Odoo defines when guided tour steps should appear, replacing several older settings with one clearer rule. It mainly benefits maintainers by making tours easier to update and test across mobile, desktop, editions, and automated flows, with limited direct impact on day-to-day users.
Original PR description
In order to simplify the tour API, it was decided to replace the API mobile, auto, edition and skip_trigger keys with isActive key. The key step.isActive receives an array and allows you to activate (or not) the step. By default, when a step does not have an isActive key, it is active. Examples : ```javascript isActive: ["auto"] ``` The step is active only in auto mode (and not in manual). ```javascript isActive: ["community", "mobile"] ``` The step is active only in mobile view and for community editing. ```javascript isActive: ["desktop"] ``` Step is active in desktop view for both editions. ```javascript isActive: ["body:not(:has(.old_skip_trigger))"] ``` Step is skipped if .old_skip_trigger is in DOM task~3974087
Miscellaneous changes
Before this PR, only model-defined methods could be called by the `parent` helper function given to callbacks of `onRpc` in tests. This meant that callbacks registered through the `mock_rpc` registry couldn't use this inheritance system (i.e a callback defined after another couldn't call the previous one). This PR makes it so that all listeners are aligned in a queue and a call to `parent` will simply call the next callback (eventually falling back to the model-defined methods), allowing r
Original PR description
Before this PR, only model-defined methods could be called by the `parent` helper function given to callbacks of `onRpc` in tests. This meant that callbacks registered through the `mock_rpc` registry couldn't use this inheritance system (i.e a callback defined after another couldn't call the previous one). This PR makes it so that all listeners are aligned in a queue and a call to `parent` will simply call the next callback (eventually falling back to the model-defined methods), allowing registry-defined methods to be called in between. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169596
Product variant lists opened from a product page will now show the expected filtered list without automatically grouping items by product template. This prevents a confusing default view and helps users review variants more directly.
Original PR description
Inventory B2B 16 7 task introduced grouping by product template ID. When the product variants list is accessed from the product page, this grouping is enabled by default, although it shouldn't be: https://github.com/odoo/odoo/pull/135104#issuecomment-2162505672 The reason is that using `search_default_product_tmpl_id` in the action's context not only filters by the product template, but also activates the "Group By" filter. A quick fix for this problem is to rename the grouping. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes the layout of product variant cards so the product image appears beside the card content instead of underneath it. The change restores the intended visual presentation, making product variants easier to scan in kanban views.
Original PR description
Commit [1] reworked the layout of product and variants kanban cards, following the framework changes aiming to simplify kanban archs [2]. However, we kind of forgot to adapt the variant view to the last changes of specs. As a consequence, the image of the product was displayed below the content of the card, instead of being on the side. [1] odoo/odoo@0279c53930735b65e9342ca66fbb62ff61ac65f6 [2] odoo/odoo#167751 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
Partner cards now show avatars properly on mobile screens without cutting them off when the image is taller than the card content. This improves the readability and polish of contact views for users working from phones or small screens.
Original PR description
This commit fixes the mobile layout of the partner kanban cards, to prevent the avatar from being cropped if it bigger than the content of the card. Following the revamp of kanban archs [1] [1] odoo/odoo#167751 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds missing translated text in spreadsheet list and pivot features. It helps users working in other languages see consistent, localized labels across spreadsheet tools.
This update keeps field service stock operations aligned with a related platform change. It removes an outdated technical workaround so stock movements in field service continue to work reliably without unnecessary processing.
This fix removes unintended white placeholder cards from the PLM kanban dashboard. It improves the visual cleanliness of the dashboard without changing business workflows or data.
Original PR description
task-3996625 ------- This PR aims to fix an issue about the `kanban_ghost` elements within PLM having a visible white background. Commit[1] introduced a simplified version of our kanban archs. Within…
task-3996625 ------- This PR aims to fix an issue about the `kanban_ghost` elements within PLM having a visible white background. Commit[1] introduced a simplified version of our kanban archs. Within this commit, a white background is applied on `.o_kanban_record:not(.o_legacy_kanban_record)`, meaning this also applies to `o_kanban_ghost` elements. To avoid this, a `max-height` was set to `O` on `o_kanban_ghost` elements to prevent them from being visible. While this handle most of the scenario, it appears that there is a specific rule within the `mrp_plm` module that sets a `min-height` to `o_kanban_record`, making them visible due to the white background. To handle this issue, we set the `min-height` property only to other elements that are not `o_kanban_ghost`. Commit[1]: https://github.com/odoo/odoo/pull/167751/commits/89954730117fef5f5766cd6735a6debf3357171f | Master | This PR | |--------|--------| |  |  | Related to https://github.com/odoo/odoo/pull/167751
Problem --- When printing invoices involving different tax groups (from the actions in the invoice form view), the text baseline for the word 'on' and the rest of the text ("<tax_name> on <corresponding_amount>") in the taxes summary are different. (ie the word is misaligned) Steps --- IMPORTANT: the bug only appears on newer (~`0.13`) versions of `wkhtmltopdf` * create an invoice for 2 products, * make the products use different taxes, form at least 2 different tax groups (if needed co
Original PR description
Problem
---
When printing invoices involving different tax groups (from the actions in the invoice form view), the text baseline for the word 'on' and the rest of the text ("<tax_name> on <corresponding_amount>") in the taxes summary are different. (ie the word is misaligned)
Steps
---
IMPORTANT: the bug only appears on newer (~`0.13`) versions of `wkhtmltopdf`
* create an invoice for 2 products,
* make the products use different taxes, form at least 2 different tax groups (if needed configure in Accounting > Configuration > Taxes)
* Actions (cog) > print > Invoices => on the generated pdf the word 'on' is misaligned
Note
---
Fix tested on `wkhtmtopdf 0.13`.
On `wkhtmltopdf 0.12.6` -> already worked, but fix has no visual effect
---
opw-3940888
Forward-Port-Of: odoo/odoo#169443
Forward-Port-Of: odoo/odoo#167247- On a record A; - Click on a link to open a record B (with an old style URL); - The record B is open; Before this commit, the record A is missing on the browser history. This occurs because, when an old style URL is converted into a canonical URL, a replacement of the current URL is done. This replacement was done to update the old URL when the URL was copy/paste on the browser. In this particular case, the replacement is not necessary, because the current URL is the one of the record
Original PR description
- On a record A; - Click on a link to open a record B (with an old style URL); - The record B is open; Before this commit, the record A is missing on the browser history. This occurs because, when an old style URL is converted into a canonical URL, a replacement of the current URL is done. This replacement was done to update the old URL when the URL was copy/paste on the browser. In this particular case, the replacement is not necessary, because the current URL is the one of the record A. Doing the replacement, will remove the record A from the browser history. Now, the URL retro-compatibility will only update the URL, if the URL in the browser is the one with the old style. Forward-Port-Of: odoo/odoo#167474
As the selection badge is not checking if a badge is selected to set the value, when clicking to a badge that is selected yet, is updating the value to itself, so the value does not change.  By checking if the badge is trying to assign the same value, we can set the badge to false.  cc @Te
Original PR description
As the selection badge is not checking if a badge is selected to set the value, when clicking to a badge that is selected yet, is updating the value to itself, so the value does not change.  By checking if the badge is trying to assign the same value, we can set the badge to false.  cc @Tecnativa --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#167823 Forward-Port-Of: odoo/odoo#140544
Steps to reproduce: - Install l10n_ph modules - Configure Vendor Tax ID - Create Vendor Bill - Set the Vendor with Tax ID - Set a invoice lines with withholding tax - Action > Download BIR 2307 XLS Current behaviour: - Exception raised Expected behaviour: - Generate a BIR 2307 XLS file Explanation: From SaaS 17.2+, account.tax doesn't have _compute_amount anymore. It is replaced by compute_all method. opw-3991609 Forward-Port-Of: odoo/odoo#169389
Original PR description
Steps to reproduce: - Install l10n_ph modules - Configure Vendor Tax ID - Create Vendor Bill - Set the Vendor with Tax ID - Set a invoice lines with withholding tax - Action > Download BIR 2307 XLS Current behaviour: - Exception raised Expected behaviour: - Generate a BIR 2307 XLS file Explanation: From SaaS 17.2+, account.tax doesn't have _compute_amount anymore. It is replaced by compute_all method. opw-3991609 Forward-Port-Of: odoo/odoo#169389
step: -install l10n_it and account_peppol without demo data -setup a peppol demo account -give your company a codigo fiscal -settings > Italian Electronic Invoicing > check "Allow Odoo to process invoices" -> constraint This happens because when creating demo edi, the id_client is set as "demo{company_id}", but the id_client must be unique so when registering two edi services for the same company, there is a collision. After this PR, we avoid the collision by adding the proxy_type to t
Original PR description
step:
-install l10n_it and account_peppol without demo data -setup a peppol demo account
-give your company a codigo fiscal
-settings > Italian Electronic Invoicing > check "Allow Odoo to process invoices"
-> constraint
This happens because when creating demo edi, the id_client is set as "demo{company_id}", but the id_client must be unique so when registering two edi services for the same company, there is a collision.
After this PR, we avoid the collision by adding the proxy_type to the demo id_client.
opw-3983974
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#169385## Issue: - The stock valuation for discounted purchase orders is incorrectly based on the original unit price instead of the price. ## Steps To Reproduce: - Create a storable product with AVCO costing method. - In its purchase tab set control policy "On ordered quantities". - Create RFQ for a product 10 qty with 10 unit price and add a 10% discount. - Create a vendor bill and confirm it. - Receive the product. - See the valuation, it will show 100 instead of 90. ## Solution: - I f
Original PR description
## Issue: - The stock valuation for discounted purchase orders is incorrectly based on the original unit price instead of the price. ## Steps To Reproduce: - Create a storable product with AVCO costing method. - In its purchase tab set control policy "On ordered quantities". - Create RFQ for a product 10 qty with 10 unit price and add a 10% discount. - Create a vendor bill and confirm it. - Receive the product. - See the valuation, it will show 100 instead of 90. ## Solution: - I fixed the issue by updating the `_get_price_unit` method to consider discounts when calculating the invoiced value. opw-3895448 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169363 Forward-Port-Of: odoo/odoo#168619
### Steps to reproduce: - Install **POS** app. - Go to **POS** > **Products** > **Discount & Loyalty** - Create a New program with: - **Program Type:** Loyalty Cards - Conditional rules: - **Minimum Quantity:** 2 - **Grant:** 1 Loyalty Points per unit paid - Rewards: - **Reward Type:** Discount - **Discount:** 100 % one Cheapest Product - **In exchange of:** 2 Loyalty Points - Start a new POS session - Select a Customer - A
Original PR description
### Steps to reproduce: - Install **POS** app. - Go to **POS** > **Products** > **Discount & Loyalty** - Create a New program with: - **Program Type:** Loyalty Cards - Conditional rules: - **Minimum…
### Steps to reproduce:
- Install **POS** app.
- Go to **POS** > **Products** > **Discount & Loyalty**
- Create a New program with:
- **Program Type:** Loyalty Cards
- Conditional rules:
- **Minimum Quantity:** 2
- **Grant:** 1 Loyalty Points per unit paid
- Rewards:
- **Reward Type:** Discount
- **Discount:** 100 % one Cheapest Product
- **In exchange of:** 2 Loyalty Points
- Start a new POS session
- Select a Customer
- Add two different products.
- Notice the Loyalty Points of **+2** shown. This is _Correct_
- Click on the **Reward** button
- Notice how the Loyalty Points are now **+3** which is obviously _wrong_ given we only have two products. Basically it's as if the reward line (100% discount) is taken into consideration as the cheapest product.
### Investigation:
- Inside `_updatePrograms`, `pointsForPrograms()` are calculated.
- we sum the lines quantities regardless of whether it's a reward line or not https://github.com/odoo/odoo/blob/e5c3ba58964f47cfd41d337e39e1bf25eaa25379/addons/pos_loyalty/static/src/js/Loyalty.js#L906
- By doing so, the reward lines are taken into consideration and the rule is triggerd by skipping this if clause https://github.com/odoo/odoo/blob/e5c3ba58964f47cfd41d337e39e1bf25eaa25379/addons/pos_loyalty/static/src/js/Loyalty.js#L917-L921
opw-3855323
Forward-Port-Of: odoo/odoo#169105
Forward-Port-Of: odoo/odoo#161503This commit just add a new tour method used in another commit opw-3902869 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168580 Forward-Port-Of: odoo/odoo#168150
Original PR description
This commit just add a new tour method used in another commit opw-3902869 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168580 Forward-Port-Of: odoo/odoo#168150
When using the action_view_opportunity for assigned partners we should be able to see the lost leads when filtering by 'Lost', but if we don't set the active_test to False for the context we won't be able to see them in this view. So since we retrieve the leads with `self.env['crm.lead'].with_context(**action_context_origin)` we need to make sure the active_test is False to get all the leads related to the partner. ## Steps to reproduce: 1. Install website_crm_partner_assign. 2. Create at
Original PR description
When using the action_view_opportunity for assigned partners we should be able to see the lost leads when filtering by 'Lost', but if we don't set the active_test to False for the context we won't be able to see them in this view. So since we retrieve the leads with `self.env['crm.lead'].with_context(**action_context_origin)` we need to make sure the active_test is False to get all the leads related to the partner. ## Steps to reproduce: 1. Install website_crm_partner_assign. 2. Create at least 2 leads (one active and one lost) for a new partner. 3. Make sure we have set this partner as assigned partner. 4. Now on the partner form go to the leads action to see the leads related to the partner. opw-3903070 Forward-Port-Of: odoo/odoo#166832
The "Reload Chart Template" button currently doesn't work with the argentinian localization. It is due to some python constrains that don't allow to modify some fields if there are accounting entries. The issue is that the constrains will be raised, when any writing on those fields is done, even if the new value is the same as the old one. When reloading the chart template it is re-writing the values, but they are not different, so no exception should be raised. The fix here is
Original PR description
The "Reload Chart Template" button currently doesn't work with the argentinian localization. It is due to some python constrains that don't allow to modify some fields if there are accounting entries. The issue is that the constrains will be raised, when any writing on those fields is done, even if the new value is the same as the old one. When reloading the chart template it is re-writing the values, but they are not different, so no exception should be raised. The fix here is to move those constrains into the `def write` override, where there's more control (as we have the new values as argument). task-3878511 Forward-Port-Of: odoo/odoo#168995 Forward-Port-Of: odoo/odoo#166537
- Replace "middle rate" & "average rate" by "medium rate" - Fix misusage of accounts in taxes See: https://github.com/Skatteetaten/saf-t fixes odoo/odoo#161396 task-3864178 Co-Authored-By: Henrik Norlin <henrik.norl@gmail.com> **Enterprise PR:** odoo/enterprise#64363 Forward-Port-Of: odoo/odoo#161517
Original PR description
- Replace "middle rate" & "average rate" by "medium rate" - Fix misusage of accounts in taxes See: https://github.com/Skatteetaten/saf-t fixes odoo/odoo#161396 task-3864178 Co-Authored-By: Henrik Norlin <henrik.norl@gmail.com> **Enterprise PR:** odoo/enterprise#64363 Forward-Port-Of: odoo/odoo#161517
Some part of the `action_send_chat_request` method has been wrongly indented in [1]. As a result, this block is executed as part of a loop while it should not. This PR put the block of code out of the loop. [1]: https://github.com/odoo/odoo/pull/129770 Forward-Port-Of: odoo/odoo#169454 Forward-Port-Of: odoo/odoo#169379
Original PR description
Some part of the `action_send_chat_request` method has been wrongly indented in [1]. As a result, this block is executed as part of a loop while it should not. This PR put the block of code out of the loop. [1]: https://github.com/odoo/odoo/pull/129770 Forward-Port-Of: odoo/odoo#169454 Forward-Port-Of: odoo/odoo#169379
This implements a new approach to solve selection issues around links (allowing the cursor at the inner _and_ outer edges of links). In the sanitization process, every link now receives 4 zero-width non-breaking spaces (unicode FEFF characters, hereafter referred to as ZWNBSP): - one before the link - one as the link's first child - one as the link's last child - one after the link like so: `//ZWNBSP//<a>//ZWNBSP//label//ZWNBSP//</a>//ZWNBSP`. An advantage of ZWNBSP over regular ZWS
Original PR description
This implements a new approach to solve selection issues around links (allowing the cursor at the inner _and_ outer edges of links). In the sanitization process, every link now receives 4 zero-width…
This implements a new approach to solve selection issues around links (allowing the cursor at the inner _and_ outer edges of links). In the sanitization process, every link now receives 4 zero-width non-breaking spaces (unicode FEFF characters, hereafter referred to as ZWNBSP): - one before the link - one as the link's first child - one as the link's last child - one after the link like so: `//ZWNBSP//<a>//ZWNBSP//label//ZWNBSP//</a>//ZWNBSP`. An advantage of ZWNBSP over regular ZWSP (unicode 200B) is they're less likely to be used deliberately by the user, so much so that we can safely assume all of them are technical and can be removed indiscriminately. ZWSP and ZWNBSP are used to mark a separation between words in languages that don't use spaces for that purpose (eg, Lao). ZWNBSP are to ZWSP what NBSP (unicode 00A0) are to regular spaces. Because of that advantage, we don't need to track the ZWNBSP (so there is no need to wrap them in `span` elements), simplifying the code considerably. We therefore now remove all ZWNBSP when saving. There is a possibility to introduce "orphaned" ZWNBSP during the editing process, if for instance the link has a big enough padding or margin that it's possible to click between two of a link's ZWNBSP (one outer, the other inner). Inserting a character or a paragraph break in such a position will move the ZWNBSP to a place where it's not useful anymore. The sanitizer will then reintroduce the useful ZWNBSP in their rightful places. We remove the orphaned ZWNBSP from the sanitizer whenever that is possible without risking to break the selection. To properly deal with this change, we also change the handlers for the delete/backspace/deleteRange, enter and arrow keys. This PR also makes some indirectly related changes: - It fixes a bug with Bootstrap buttons in the "backend" where it's currently impossible to put the selection within them (and the wrong cursor appears) because of a Boostrap CSS. - It introduces a debugging utility function to log the selection. - It slightly modifies the way the `enter` key handler works at the inner edges of links so that a paragraph break will never be inserted at the end of the link (creating an empty link). Co-authored-by: Sébastien Geelen <sge@odoo.com> task-3604728 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165470 Forward-Port-Of: odoo/odoo#157200
Previously, when the attempting to decode a pdf or xml file as EDI attachment, if an xml or pdf file was malformed, we would log a warning (for pdf) or error (for xml). There are tests in which we post messages to the chatter with an XML file with embedded PDF which is actually a generated report. These tests don't actually generate a valid PDF because wkhtmltopdf isn't available in those tests, but these tests also do not particularly care that the PDF is valid. Similarly, there are tests th
Original PR description
Previously, when the attempting to decode a pdf or xml file as EDI attachment, if an xml or pdf file was malformed, we would log a warning (for pdf) or error (for xml). There are tests in which we…
Previously, when the attempting to decode a pdf or xml file as EDI attachment, if an xml or pdf file was malformed, we would log a warning (for pdf) or error (for xml). There are tests in which we post messages to the chatter with an XML file with embedded PDF which is actually a generated report. These tests don't actually generate a valid PDF because wkhtmltopdf isn't available in those tests, but these tests also do not particularly care that the PDF is valid. Similarly, there are tests that post messages with xml attachments that don't contain valid xml but they also do not care that the xml in valid in those flows. The linked enterprise PR adds an override of _message_post that will attempt to decode posted attachments so that it can take some action based on their contents. While this works perfectly fine and doesn't break any behaviour, as the decoding methods will simply return an empty list when the attachments are malformed, because they log warnings or errors, it causes tests/runbot to fail. The information that an invalid xml or pdf was uploaded is not particularly useful or urgent information for the server admin, and users already get a notification when uploading a malformed file. As such, this commit changes these warning/exception logs to simple info logs. This means this information remains available but isn't given disporoportionate importance in the logs, and doesn't cause tests that work perfecly fine to fail. task-3731034 Forward-Port-Of: odoo/odoo#169152 Forward-Port-Of: odoo/odoo#166459
This fixes a bug introduced in 96638eb, where lines with discount apply it twice. Backport of https://github.com/odoo/odoo/pull/168212 cc @robinengels --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168819
Original PR description
This fixes a bug introduced in 96638eb, where lines with discount apply it twice. Backport of https://github.com/odoo/odoo/pull/168212 cc @robinengels --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168819
Currently people wanting to use a bank journal for their credit card transactions have to use a hack to set the default account as a credit card account, since the domain does not allow this. To make the life of people easier, we now allow selecting a credit card account on bank journals. [task-3891250](https://www.odoo.com/web#id=3891250&model=project.task) Forward-Port-Of: odoo/odoo#167188 Forward-Port-Of: odoo/odoo#163947
Original PR description
Currently people wanting to use a bank journal for their credit card transactions have to use a hack to set the default account as a credit card account, since the domain does not allow this. To make the life of people easier, we now allow selecting a credit card account on bank journals. [task-3891250](https://www.odoo.com/web#id=3891250&model=project.task) Forward-Port-Of: odoo/odoo#167188 Forward-Port-Of: odoo/odoo#163947
An empty line was rendered even if no tags of variants were put on a product. And the UoM on the form view of the products is on 2 lines. The length of the size was limited (as UoM don't need to be that long). While checking this view, it was noticed that the button to change the name in other languages (when you have several activated) can be quite invasive. We decided to render it only on hover/focus (everywhere). task-3979068 --- I confirm I have signed the CLA and read the P
Original PR description
An empty line was rendered even if no tags of variants were put on a product. And the UoM on the form view of the products is on 2 lines. The length of the size was limited (as UoM don't need to be that long). While checking this view, it was noticed that the button to change the name in other languages (when you have several activated) can be quite invasive. We decided to render it only on hover/focus (everywhere). task-3979068 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169042
The counters are primarily used as boolean to determine whether or not to display the card. Therefore, as soon as you have one record, we can show the card without needing to recheck it later. In the worst-case scenario, you might see a card pointing to an empty list view. This approach helps us avoid recalculating whether there is a record for this card on each refresh. The approach is to cache the counter in the session as soon as there are more than 0 records. This way, if there are
Original PR description
The counters are primarily used as boolean to determine whether or not to display the card. Therefore, as soon as you have one record, we can show the card without needing to recheck it later. In the…
The counters are primarily used as boolean to determine whether or not to display the card. Therefore, as soon as you have one record, we can show the card without needing to recheck it later. In the worst-case scenario, you might see a card pointing to an empty list view. This approach helps us avoid recalculating whether there is a record for this card on each refresh. The approach is to cache the counter in the session as soon as there are more than 0 records. This way, if there are no invoices but a sale order is validated, the invoice counter will be recomputed, and you will see the invoice card the next time. For the duration of the same session, we won't recompute it and will always display the invoice card. We only re-request the computation if the counter in the session was 0 or if we need to show the counter, as in this case, we want to display the most precise number. This approach will also avoid flickering when the view is updated. Since we already know the count, we can display the card immediately without waiting for the RPC callback. To further reduce flickering, we have moved the spinner to the bottom, preventing the content from shifting upwards once the loader disappears. On another note, we've updated the policy for the parallel RPC requests made to /my/counter. Instead of splitting the counter into 3 RPC calls, we now allow 5 counters per RPC, with a maximum of three RPCs. An update of the view portal.portal_docs_entry is required to benefit from this cache for /my/counter, Forward-Port-Of: odoo/odoo#169492 Forward-Port-Of: odoo/odoo#169113
The tests were failing when the company currency was not USD, because the tests were using the company currency to create the products and the pricelists. This commit changes the tests to always use USD as the company currency. Runbot errors ids: 64677,64676,64675,64674,64673,64672,64671,64670,64669,64668,64667,64666,64665,64664,64663,64662,64661,64660,64659,64658,64657,64656,64655,64654,64653,64652,64651,64650,64649,64648,64647,64646,64645,64644,64643,64642,64641,64640,64639,64638,64637,64
Original PR description
The tests were failing when the company currency was not USD, because the tests were using the company currency to create the products and the pricelists. This commit changes the tests to always use USD as the company currency. Runbot errors ids: 64677,64676,64675,64674,64673,64672,64671,64670,64669,64668,64667,64666,64665,64664,64663,64662,64661,64660,64659,64658,64657,64656,64655,64654,64653,64652,64651,64650,64649,64648,64647,64646,64645,64644,64643,64642,64641,64640,64639,64638,64637,64636,64635,64634,64633,64632,64631,64630,64629,64628,64627,64626,64625,64624,64623,64622 Forward-Port-Of: odoo/odoo#169652
This error occurs when we create a new sales order, then proceed to create an invoice within that sales order, and finally attempt to open the ``Accrued Revenue Entry`` from the action button. Steps to reproduce: - Install the ``sale_management`` and ``account_accountant`` modules - Create new sales orders > ``Confirm`` > ``Create Invoice`` button > Down Payment in % > ``Confirm`` > ``Sale Order`` smart button - Go to action button > ``Accrued Revenue Entry`` Traceback : ``Asse
Original PR description
This error occurs when we create a new sales order, then proceed to create an invoice within that sales order, and finally attempt to open the ``Accrued Revenue Entry`` from the action button. Steps…
This error occurs when we create a new sales order, then proceed to create an invoice within that sales order, and finally attempt to open the ``Accrued Revenue Entry`` from the action button. Steps to reproduce: - Install the ``sale_management`` and ``account_accountant`` modules - Create new sales orders > ``Confirm`` > ``Create Invoice`` button > Down Payment in % > ``Confirm`` > ``Sale Order`` smart button - Go to action button > ``Accrued Revenue Entry`` Traceback : ``AssertionError precision_rounding must be positive, got 0.0`` At [1] within ``o.order_line``, we are encountering an issue where ``precision_rounding`` is being retrieved as zero. This is leading to an error. This commit will fix the above error by implementing a check for the ``is_downpayment`` in the order line. [1]: https://github.com/odoo/odoo/blob/34b651de35b986db404a3950866bed7bc7e1fae2/addons/account/wizard/accrued_orders.py#L174 sentry-4857910663 Forward-Port-Of: odoo/odoo#165014
Before this commit: ===================== transfer/merge tables in the floor plan multiple times resulted in a blank screen and an Owl error. Steps To Reproduced: ===================== - Step 1: Open POS Restaurant - Step 2: Open any table and add product into cart - Step 3: Open another table and add some product - Step 4: Click on transfer/Merge button from POS terminal - Step 5: Select Merge from table view and select targeted table - Step 6: Repeat above step (Step 5) Scr
Original PR description
Before this commit: ===================== transfer/merge tables in the floor plan multiple times resulted in a blank screen and an Owl error. Steps To Reproduced: ===================== - Step 1: Open POS Restaurant - Step 2: Open any table and add product into cart - Step 3: Open another table and add some product - Step 4: Click on transfer/Merge button from POS terminal - Step 5: Select Merge from table view and select targeted table - Step 6: Repeat above step (Step 5) Screen become blank and owl error occurred After this commit: =================== The Owl error has been resolved, ensuring the table merging and transferring process works smoothly without any issues. task- 3938124 Forward-Port-Of: odoo/odoo#168281
In order to fix an issue with the odoo pivot actions, we need to add a new getter to get the odoo pivot ids. Task: 3992325 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#169468
Original PR description
In order to fix an issue with the odoo pivot actions, we need to add a new getter to get the odoo pivot ids. Task: 3992325 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#169468
Steps : * Create a loyalty program of any type * Create 2 or more rewards * Create a sale order and use the loyalty program and reward we just created * Go back to the loyalty program and try to delete that reward Issue : The record cannot be deleted as another model requires the record being deleted Fix : Changed the unlink method to delete the record if this record id is not required by another model and archive the record if it is required opw : 3879031 --- I confirm I hav
Original PR description
Steps : * Create a loyalty program of any type * Create 2 or more rewards * Create a sale order and use the loyalty program and reward we just created * Go back to the loyalty program and try to delete that reward Issue : The record cannot be deleted as another model requires the record being deleted Fix : Changed the unlink method to delete the record if this record id is not required by another model and archive the record if it is required opw : 3879031 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169698 Forward-Port-Of: odoo/odoo#164293
We now allow grouping by other fields that account_id in the report, namely product_id, and product_category_id. However, for the deferral generation, we continue grouping by account_id. task-id 3925943 https://github.com/odoo/enterprise/pull/62534 Forward-Port-Of: odoo/odoo#169490 Forward-Port-Of: odoo/odoo#165592
Original PR description
We now allow grouping by other fields that account_id in the report, namely product_id, and product_category_id. However, for the deferral generation, we continue grouping by account_id. task-id 3925943 https://github.com/odoo/enterprise/pull/62534 Forward-Port-Of: odoo/odoo#169490 Forward-Port-Of: odoo/odoo#165592
Steps to reproduce: 1. As a frontend user, add a product to the cart 2. As a backend user, add a note line to the created order 3. As a frontend user, open the cart Before this commit: The note line in the order is deleted After this commit: The note line in the order is still there The note line deletion was introduced long ago with ee0199cac4f58bc8aefd0ea1410d16fb6b9f4e31, as a side-effect of deleting lines with inactive products. This commit also makes sure that notes/section
Original PR description
Steps to reproduce: 1. As a frontend user, add a product to the cart 2. As a backend user, add a note line to the created order 3. As a frontend user, open the cart Before this commit: The note line in the order is deleted After this commit: The note line in the order is still there The note line deletion was introduced long ago with ee0199cac4f58bc8aefd0ea1410d16fb6b9f4e31, as a side-effect of deleting lines with inactive products. This commit also makes sure that notes/section lines are not shown in the cart, as the current template and code are not designed to handle lines without products (it raises while trying to fetch the combination info of the soline product). Forward-Port-Of: odoo/odoo#169685 Forward-Port-Of: odoo/odoo#168521
This is a follow-up of [1]. The ability to duplicate from the list view appeared with version 17.0 and was not taken into account during the forward-port. [1]: https://github.com/odoo/odoo/commit/1688a19266809d23f525563dbbb20175cbd8da83 Forward-Port-Of: odoo/odoo#167031
Original PR description
This is a follow-up of [1]. The ability to duplicate from the list view appeared with version 17.0 and was not taken into account during the forward-port. [1]: https://github.com/odoo/odoo/commit/1688a19266809d23f525563dbbb20175cbd8da83 Forward-Port-Of: odoo/odoo#167031
Steps to reproduce: - install point of sale and HR - create some data in the point of sale app - switch the user language to arabic - open the point of sale dashboard => some cells are in error, the date cannot be recognised. The reason is that `formatDateTime` returns the date with arabic numbers, which can't be parsed by the spreadsheet engine. The option `numberingSystem` is ignored by `formatDateTime`. With this commit, we change the date numbering system before. opw-3992621
Original PR description
Steps to reproduce: - install point of sale and HR - create some data in the point of sale app - switch the user language to arabic - open the point of sale dashboard => some cells are in error, the date cannot be recognised. The reason is that `formatDateTime` returns the date with arabic numbers, which can't be parsed by the spreadsheet engine. The option `numberingSystem` is ignored by `formatDateTime`. With this commit, we change the date numbering system before. opw-3992621 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169627
The reinitialization of mappingColToColumn and mappingColToSubColumn was done too lately in computeDerivedParams. This used to invalidate some computations done in functions called by computeDerivedParams like addTo in MRPWorkorderGanttRenderer (we could get a pillDuration of let's say -3456 hours for example). Here we make sure that the mappings are reinitialized at the beginning of computeDerivedParams. Forward-Port-Of: odoo/enterprise#64888
Original PR description
The reinitialization of mappingColToColumn and mappingColToSubColumn was done too lately in computeDerivedParams. This used to invalidate some computations done in functions called by computeDerivedParams like addTo in MRPWorkorderGanttRenderer (we could get a pillDuration of let's say -3456 hours for example). Here we make sure that the mappings are reinitialized at the beginning of computeDerivedParams. Forward-Port-Of: odoo/enterprise#64888
We now allow grouping by other fields that account_id in the report, namely product_id, and product_category_id. However, for the deferral generation, we continue grouping by account_id. task-id 3925943 https://github.com/odoo/odoo/pull/165592 Forward-Port-Of: odoo/enterprise#64699 Forward-Port-Of: odoo/enterprise#62534
Original PR description
We now allow grouping by other fields that account_id in the report, namely product_id, and product_category_id. However, for the deferral generation, we continue grouping by account_id. task-id 3925943 https://github.com/odoo/odoo/pull/165592 Forward-Port-Of: odoo/enterprise#64699 Forward-Port-Of: odoo/enterprise#62534
We forgot to fix the non deterministic test "date grid and dst winterToSummer (1 cell part)" in https://github.com/odoo/enterprise/pull/64541. We finish the job here. Runbot issue: 67941 Forward-Port-Of: odoo/enterprise#64849
Original PR description
We forgot to fix the non deterministic test "date grid and dst winterToSummer (1 cell part)" in https://github.com/odoo/enterprise/pull/64541. We finish the job here. Runbot issue: 67941 Forward-Port-Of: odoo/enterprise#64849
A new field of type 'sale.subscription.pricing' was added to the 'product.template' model. This breaks product creation form for users who don't have sales permissions (e.g. stock managers). This commit fixes the issue by adding `groups` to the field. Forward-Port-Of: odoo/enterprise#64504 Forward-Port-Of: odoo/enterprise#60912
Original PR description
A new field of type 'sale.subscription.pricing' was added to the 'product.template' model. This breaks product creation form for users who don't have sales permissions (e.g. stock managers). This commit fixes the issue by adding `groups` to the field. Forward-Port-Of: odoo/enterprise#64504 Forward-Port-Of: odoo/enterprise#60912
With the introduction of alias domains in 17.0 an issue was uncovered in the helpdesk module where any additional alias names with different domains would be added as followers. This stemmed from an issue in _ticket_email_split which was not properly filtering emails out that matched the alias name because self was not yet defined when the method was called. This was not a problem before because this was immediately fed into _mail_find_partner_from_emails that would also filter out by alias_name
Original PR description
With the introduction of alias domains in 17.0 an issue was uncovered in the helpdesk module where any additional alias names with different domains would be added as followers. This stemmed from an issue in _ticket_email_split which was not properly filtering emails out that matched the alias name because self was not yet defined when the method was called. This was not a problem before because this was immediately fed into _mail_find_partner_from_emails that would also filter out by alias_name. This is no longer the case because the domain has to also match. Passing in the newly created ticket and using this to map to team_id.alias_name fixes this issue by properly filtering out alias emails even with different domains. opw-3920634 Forward-Port-Of: odoo/enterprise#63477
…odoo pivots Steps to reproduce: - Go to a spreadsheet - Insert a spreadsheet pivot - Click on menu data -> Reinsert pivot or Insert pivot cell => boom. Theses actions are now only available for odoo pivots. Task: 3992325 Forward-Port-Of: odoo/enterprise#64683
Original PR description
…odoo pivots Steps to reproduce: - Go to a spreadsheet - Insert a spreadsheet pivot - Click on menu data -> Reinsert pivot or Insert pivot cell => boom. Theses actions are now only available for odoo pivots. Task: 3992325 Forward-Port-Of: odoo/enterprise#64683
Suppose the SII workflow cron job runs, and there are no records with the `ask_for_status` or `accepted` l10n_cl_dte_status, but there are a lot with the `claimed` status. If the token on the certificate happens to be invalid, `_l10n_cl_ask_claim_status` will raise an InvalidToken exception and abort the cron job. This prevents the records from being processed. This fix clears an invalid token if it's detected, so that when the next record is processed a new one will be created. The record raisi
Original PR description
Suppose the SII workflow cron job runs, and there are no records with the `ask_for_status` or `accepted` l10n_cl_dte_status, but there are a lot with the `claimed` status. If the token on the certificate happens to be invalid, `_l10n_cl_ask_claim_status` will raise an InvalidToken exception and abort the cron job. This prevents the records from being processed. This fix clears an invalid token if it's detected, so that when the next record is processed a new one will be created. The record raising the exception should succeed the next time the cron job runs. opw-3920273 Forward-Port-Of: odoo/enterprise#63809
This commit improves the usability of excalidraw on mobile and adds other minor improvements. Here's the list of improvements made: * An info banner is added to the draw dialog to inform users on the different behaviors of each link type. * A button is added in order to open the excalidraw link in another tab. * When on mobile the iFrame's default width is set to 100% * The handles have been moved inside the iFrame in order to gain some space for the drawing. They also have a modifie
Original PR description
This commit improves the usability of excalidraw on mobile and adds other minor improvements. Here's the list of improvements made: * An info banner is added to the draw dialog to inform users on the different behaviors of each link type. * A button is added in order to open the excalidraw link in another tab. * When on mobile the iFrame's default width is set to 100% * The handles have been moved inside the iFrame in order to gain some space for the drawing. They also have a modified style. task-3859451 Forward-Port-Of: odoo/enterprise#60422
On Windows OS if a ctypes method causes a segmentation fault, it leads to an OSError instead of a crash like it does on a raspberry pi. Related Python ctypes documentation link: https://docs.python.org/3/library/ctypes.html#calling-functions  This PR wraps every ctypes C/C++ method call with a try/except OSError to properly detect, log and display an error message to the user. task-3950
Original PR description
On Windows OS if a ctypes method causes a segmentation fault, it leads to an OSError instead of a crash like it does on a raspberry pi. Related Python ctypes documentation link: https://docs.python.org/3/library/ctypes.html#calling-functions  This PR wraps every ctypes C/C++ method call with a try/except OSError to properly detect, log and display an error message to the user. task-3950652 Forward-Port-Of: odoo/enterprise#64715 Forward-Port-Of: odoo/enterprise#64124
Currently, an error occurs when uploading an XML file to generate an invoice. Step to produce: - Install the 'l10n_mx_edi' module. - Go to Accounting / Configuration / Accounting / Taxes, And delete all 'Exento' taxes. - Go to Accounting / Configuration / Accounting / Tax Groups, And delete all 'Exento' Tax Group. - Navigate to Accounting / Customers / Invoices, And upload an XML file to generate an invoice, - Ensure that the XML file contains the "TipoFactor" with a value of "Exento"
Original PR description
Currently, an error occurs when uploading an XML file to generate an invoice. Step to produce: - Install the 'l10n_mx_edi' module. - Go to Accounting / Configuration / Accounting / Taxes, And delete…
Currently, an error occurs when uploading an XML file to generate an invoice. Step to produce: - Install the 'l10n_mx_edi' module. - Go to Accounting / Configuration / Accounting / Taxes, And delete all 'Exento' taxes. - Go to Accounting / Configuration / Accounting / Tax Groups, And delete all 'Exento' Tax Group. - Navigate to Accounting / Customers / Invoices, And upload an XML file to generate an invoice, - Ensure that the XML file contains the "TipoFactor" with a value of "Exento". (use this XML file [1]). AttributeError: 'NoneType' object has no attribute 'id' An error occurs when attempting to generate an invoice by uploading an XML file because system tries to retrieve an ID from the external_id of a tax group at [2] which is not available. link [1]: https://github.com/odoo/enterprise/blob/1e3dfa7c6a57c251d77801c316818b5a9fae6cc5/l10n_mx_edi/tests/test_files/test_bill_import_extento.xml#L1 link [2]: https://github.com/odoo/enterprise/blob/1e3dfa7c6a57c251d77801c316818b5a9fae6cc5/l10n_mx_edi/models/account_move.py#L2381 To resolve the issue, Add a condition to ensure that an external_id of a tax group is available. sentry-5312222893 Forward-Port-Of: odoo/enterprise#63874 Forward-Port-Of: odoo/enterprise#62257
*l10n_ro_saft According to the related community commit, we consider the account type `liability_credit_card` also as a liquidity account for bank journals. We adapt the reconciliation wizard and Romanian SAFT code to take this into account. task-3891250 Related to https://github.com/odoo/odoo/pull/166258 Forward-Port-Of: odoo/enterprise#63437 Forward-Port-Of: odoo/enterprise#63259
Original PR description
*l10n_ro_saft According to the related community commit, we consider the account type `liability_credit_card` also as a liquidity account for bank journals. We adapt the reconciliation wizard and Romanian SAFT code to take this into account. task-3891250 Related to https://github.com/odoo/odoo/pull/166258 Forward-Port-Of: odoo/enterprise#63437 Forward-Port-Of: odoo/enterprise#63259
Steps to reproduce ================== - Go to products - Open studio - Edit the 'Product label 2x7' report - Click on 'Print preview' => Product model not defined, Please contact your administrator. Cause of the issue ================== This report is made to be edited from studio, but since the context key is missing, it fails https://github.com/odoo/odoo/blob/26de73f7c5a8fef32aaafa8c36619249caf0318d/addons/product/report/product_label_report.py#L19 Since 17.1, the user s
Original PR description
Steps to reproduce ================== - Go to products - Open studio - Edit the 'Product label 2x7' report - Click on 'Print preview' => Product model not defined, Please contact your administrator. Cause of the issue ================== This report is made to be edited from studio, but since the context key is missing, it fails https://github.com/odoo/odoo/blob/26de73f7c5a8fef32aaafa8c36619249caf0318d/addons/product/report/product_label_report.py#L19 Since 17.1, the user service is no more. This means it is no longer patched to add the studio key automatically https://github.com/odoo/enterprise/pull/52372 opw-3942356 Forward-Port-Of: odoo/enterprise#63426
Previously, you could only link a vendor bill with a CFDI invoice file by creating the bill directly from it. In a lot of cases, Odoo is unable to match bills created from the CFDI file with the corresponding purchase order for various reasons (eg: different line items, different prices, etc), and it is currently impossible to link them by hand. This commit makes it so that when you attach a CFDI invoice to a vendor bill, if that bill does not already have an associated CFDI invoice, it becom
Original PR description
Previously, you could only link a vendor bill with a CFDI invoice file by creating the bill directly from it. In a lot of cases, Odoo is unable to match bills created from the CFDI file with the corresponding purchase order for various reasons (eg: different line items, different prices, etc), and it is currently impossible to link them by hand. This commit makes it so that when you attach a CFDI invoice to a vendor bill, if that bill does not already have an associated CFDI invoice, it becomes associated with that CFDI invoice, and the fiscal folio is automatically filled in from the document. If there are lines on the vendor bill, lines from the CFDI invoice are ignored, if there are none they are filled in as normal. task-3731034 Forward-Port-Of: odoo/enterprise#64511 Forward-Port-Of: odoo/enterprise#62869
Community PR: https://github.com/odoo/odoo/pull/159995 task-3604728 Forward-Port-Of: odoo/enterprise#62474 Forward-Port-Of: odoo/enterprise#60751
Original PR description
Community PR: https://github.com/odoo/odoo/pull/159995 task-3604728 Forward-Port-Of: odoo/enterprise#62474 Forward-Port-Of: odoo/enterprise#60751
In ubuntu noble, some timezone where removed, like US/Pacific. Translate it to the equivalent: "America/Los_Angeles" runbot-67857 Forward-Port-Of: odoo/enterprise#64774 Forward-Port-Of: odoo/enterprise#64369
Original PR description
In ubuntu noble, some timezone where removed, like US/Pacific. Translate it to the equivalent: "America/Los_Angeles" runbot-67857 Forward-Port-Of: odoo/enterprise#64774 Forward-Port-Of: odoo/enterprise#64369
Currently in the help center, knowledge articles without names are not sorted out, leading to empty divs being displayed. This PR will fix this by excluding articles without name in the _compute_latest_articles(). task-3940889 Forward-Port-Of: odoo/enterprise#62994
Original PR description
Currently in the help center, knowledge articles without names are not sorted out, leading to empty divs being displayed. This PR will fix this by excluding articles without name in the _compute_latest_articles(). task-3940889 Forward-Port-Of: odoo/enterprise#62994
[FIX] helpdesk: fix activity default filter Clicking on an Activity group used to set a default filter, in effect of which user will only see helpdesk tickets with HIS activites that are overdue/today. This behaviour got temporarily removed and than reintroduced with (ref.1) (ref.1) achieves that by adding default filters to the search views, it issue persisted in the helpdesk view becase filters wern't present. This commits adds filters to the helpdesk's search view so they can be u
Original PR description
[FIX] helpdesk: fix activity default filter Clicking on an Activity group used to set a default filter, in effect of which user will only see helpdesk tickets with HIS activites that are…
[FIX] helpdesk: fix activity default filter
Clicking on an Activity group used to set a default filter, in effect of which
user will only see helpdesk tickets with HIS activites that are overdue/today.
This behaviour got temporarily removed and than reintroduced with (ref.1)
(ref.1) achieves that by adding default filters to the search views, it issue
persisted in the helpdesk view becase filters wern't present.
This commits adds filters to the helpdesk's search view so they can be used
by mechanisms (re)introdcuted in (ref.1)
(ref.1)
[FIX] mail: Fix activity default filter issue
https://github.com/odoo/odoo/commit/3d18b9faa1fdcf00d48091ad4be244ca00d33524
[Reproduce steps]
- Install helpdesk
- (optional) create a helpdesk ticket where:
- current user has a future activity
- other user has an overdue activity
- open ActivityMenu dropdown (clock icon ".fa-clock-o")
- BUG (ux issue): filters aren't present
- (if optional): created ticket is shown (beside current user not having any overdue/today activity in there)
opw-3859535
https://github.com/odoo/enterprise/assets/33809926/ca77aa45-f842-41a3-b551-d27e4b87a83b
Forward-Port-Of: odoo/enterprise#63748Fix a test in l10n_no_saft that relied on a wrong tax account being linked to the wrong input VAT tax task-3864178 **Community PR:** odoo/odoo#161517 Forward-Port-Of: odoo/enterprise#64363
Original PR description
Fix a test in l10n_no_saft that relied on a wrong tax account being linked to the wrong input VAT tax task-3864178 **Community PR:** odoo/odoo#161517 Forward-Port-Of: odoo/enterprise#64363
Since https://github.com/odoo/odoo/commit/1f438ca0e109b9e93c895824bd8342a2df170503 , the various product label reports have changed their name. Is still does not make much sense to edit them from studio, since they are composed of mostly generated data and not model fields. We thus blacklist them again. opw-3942356 Forward-Port-Of: odoo/enterprise#63425
Original PR description
Since https://github.com/odoo/odoo/commit/1f438ca0e109b9e93c895824bd8342a2df170503 , the various product label reports have changed their name. Is still does not make much sense to edit them from studio, since they are composed of mostly generated data and not model fields. We thus blacklist them again. opw-3942356 Forward-Port-Of: odoo/enterprise#63425
Current behavior: When you add a product with an internal note to an order the preparation display is not updated correctly. Steps to reproduce: - Open PoS restaurant session - Add product A, and press Order button - Add product A, add an internal note, and press Order button - Go on the preparation display, there is only one product A opw-3902869 Forward-Port-Of: odoo/enterprise#64150 Forward-Port-Of: odoo/enterprise#63879
Original PR description
Current behavior: When you add a product with an internal note to an order the preparation display is not updated correctly. Steps to reproduce: - Open PoS restaurant session - Add product A, and press Order button - Add product A, add an internal note, and press Order button - Go on the preparation display, there is only one product A opw-3902869 Forward-Port-Of: odoo/enterprise#64150 Forward-Port-Of: odoo/enterprise#63879
[IMP] account_reports: journal report: add an audit button on journal lines For better usability, we add an "audit" button on the journal lines, opening the corresponding move lines, grouped by entry. ---------------------------- [FIX] account_reports: journal report: add missing label to action Forward-Port-Of: odoo/enterprise#63994
Original PR description
[IMP] account_reports: journal report: add an audit button on journal lines For better usability, we add an "audit" button on the journal lines, opening the corresponding move lines, grouped by entry. ---------------------------- [FIX] account_reports: journal report: add missing label to action Forward-Port-Of: odoo/enterprise#63994
Before this commit, when recurring plan allow customer to renew or add product then customer can create upsell or renew subscription from portal and they can add or remove product which are added as optional product in subscription and in upsell or renew quotation optional products from parent subscription are copied in new quotation. optional product tab is getting hidden from user when subscription is confirmed so user will not able to edit optional product value anymore. after this commit
Original PR description
Before this commit, when recurring plan allow customer to renew or add product then customer can create upsell or renew subscription from portal and they can add or remove product which are added as optional product in subscription and in upsell or renew quotation optional products from parent subscription are copied in new quotation. optional product tab is getting hidden from user when subscription is confirmed so user will not able to edit optional product value anymore. after this commit, make optional product tab visible to user when subscription is 'in progress', 'paused' or 'churned' state and recurring plan allow customer to renew or add product so user will able to edit optional products for subscription. task-3858850 Forward-Port-Of: odoo/enterprise#64398 Forward-Port-Of: odoo/enterprise#61913
Issue: It is possible to select the option "hide 0 lines" in the partner ledger. For one, it does not make sense as if a partner appears, it means that there are transactions. Even if the balance is set to 0, we should display the transactions. And then, the option simply does not work in partner ledger. Solution: Put as a default value "never" so it does not show up. opw-3981939 Forward-Port-Of: odoo/enterprise#64602
Original PR description
Issue: It is possible to select the option "hide 0 lines" in the partner ledger. For one, it does not make sense as if a partner appears, it means that there are transactions. Even if the balance is set to 0, we should display the transactions. And then, the option simply does not work in partner ledger. Solution: Put as a default value "never" so it does not show up. opw-3981939 Forward-Port-Of: odoo/enterprise#64602
Issue: ------ When we click on "Helpdesk Ticket" in the activities, we are redirected to the kanban view (`helpdesk_ticket_view_kanban`), but no filter is added. Cause: ------ When going to the kanban view via activities, the search view selected is `helpdesk_ticket_view_search_analysis`, which does not contain filters on the `my_activity_date_deadline` field. When we go to the kanban view via the "Tickets" button, we have the search view `helpdesk_tickets_view_search` which is c
Original PR description
Issue: ------ When we click on "Helpdesk Ticket" in the activities, we are redirected to the kanban view (`helpdesk_ticket_view_kanban`), but no filter is added. Cause: ------ When going to the…
Issue: ------ When we click on "Helpdesk Ticket" in the activities, we are redirected to the kanban view (`helpdesk_ticket_view_kanban`), but no filter is added. Cause: ------ When going to the kanban view via activities, the search view selected is `helpdesk_ticket_view_search_analysis`, which does not contain filters on the `my_activity_date_deadline` field. When we go to the kanban view via the "Tickets" button, we have the search view `helpdesk_tickets_view_search` which is correct. Via ticket button, we are taking `helpdesk_ticket_action_team` action that forces the search view with `helpdesk_tickets_view_search`. Via ticket button: helpdesk_tickets_view_search (priority: 20) Via activity: helpdesk_ticket_view_search_analysis (priority: 16) 16 is the default value for the `priority` field. Solution: --------- Set a priority lower than the default on the `helpdesk_tickets_view_search` view, to make sure it is selected. opw-3976395 Forward-Port-Of: odoo/enterprise#64756
When task assignees have more than one task at the same time in field service, and tries to remove the planned date from one of the tasks, A traceback will appear. Steps to reproduce the error: - Go to Field Service > Create a new task with the planned date and Assignees - Create another task with the same planned date and Assignees > Save - Now try to remove the planned date Traceback: ``` AttributeError: 'bool' object has no attribute 'tzinfo' File "odoo/http.py", line 2254, i
Original PR description
When task assignees have more than one task at the same time in field service, and tries to remove the planned date from one of the tasks, A traceback will appear. Steps to reproduce the error: - Go…
When task assignees have more than one task at the same time in field service,
and tries to remove the planned date from one of the tasks,
A traceback will appear.
Steps to reproduce the error:
- Go to Field Service > Create a new task with the planned date and Assignees
- Create another task with the same planned date and Assignees > Save
- Now try to remove the planned date
Traceback:
```
AttributeError: 'bool' object has no attribute 'tzinfo'
File "odoo/http.py", line 2254, in __call__
response = request._serve_db()
File "odoo/http.py", line 1829, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1849, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1827, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1834, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2059, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 740, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 38, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/web/models/models.py", line 1011, in onchange
todo = [
File "addons/web/models/models.py", line 1014, in <listcomp>
if field_name not in done and snapshot0.has_changed(field_name)
File "addons/web/models/models.py", line 1127, in has_changed
return self[field_name] != self.record[field_name]
File "odoo/models.py", line 6608, in __getitem__
return self._fields[key].__get__(self, self.env.registry[self._name])
File "odoo/fields.py", line 1261, in __get__
self.compute_value(recs)
File "odoo/fields.py", line 1443, in compute_value
records._compute_field_value(self)
File "addons/mail/models/mail_thread.py", line 416, in _compute_field_value
return super()._compute_field_value(field)
File "odoo/models.py", line 4934, in _compute_field_value
fields.determine(field.compute, self)
File "odoo/fields.py", line 100, in determine
return needle(*args)
File "home/odoo/src/enterprise/saas-17.2/project_enterprise/models/project_task.py", line 227, in _compute_planning_overlap
absolute_min_start = utc.localize(self[0].planned_date_begin)
File "__init__.py", line 257, in localize
if dt.tzinfo is not None:
```
https://github.com/odoo/enterprise/blob/74e8fa829cf17677ddcb29d91a0521d5d5b9a1b6/project_enterprise/models/project_task.py#L229-L230 When the user removes the planned date,
"planned_date_begin" and "date_deadline" will be False.
So it will lead to the above traceback.
sentry-5444639133
Forward-Port-Of: odoo/enterprise#63976The `basic` accounting group was added to differentiate between invoicing enterprise and regular invoicing. It grants access to the bank recon and other basic accounting features, and is a hidden group. Problem ------- Since the basic group is hidden, it is not removed when downgrading a user to a group that does not imply the basic group. Therefore `Billing` users keep access to basic functions. Solution -------- Add the basic group to the Accounting category. Make Bookkeeper group
Original PR description
The `basic` accounting group was added to differentiate between invoicing enterprise and regular invoicing. It grants access to the bank recon and other basic accounting features, and is a hidden group. Problem ------- Since the basic group is hidden, it is not removed when downgrading a user to a group that does not imply the basic group. Therefore `Billing` users keep access to basic functions. Solution -------- Add the basic group to the Accounting category. Make Bookkeeper group visible again Forward-Port-Of: odoo/enterprise#64216