Thursday, August 22, 2024
33 changes · saas-17.1
Miscellaneous changes
This commit ensures that creating an invoice PDF always uses the invoice company paperformat. Invoice PDF could be generated in one of 2 ways (after clicking the invoice `send & print` button): 1. Non-cron: Either use a single invoice, or multiple invoices with the `download` option checked. 2. Cron: Create PDFs for multiple invoices with no `download` option. The 2 ways would generate differently styled PDFs if the default company had a different paperformat from that of the invoice com
Original PR description
This commit ensures that creating an invoice PDF always uses the invoice company paperformat. Invoice PDF could be generated in one of 2 ways (after clicking the invoice `send & print` button): 1. Non-cron: Either use a single invoice, or multiple invoices with the `download` option checked. 2. Cron: Create PDFs for multiple invoices with no `download` option. The 2 ways would generate differently styled PDFs if the default company had a different paperformat from that of the invoice company. This happened because the paperformat for cron-generated PDFs would be retrieved from the default company and not from the invoice company. task-4046055 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176947
This feature is not available in mobile OS at the time of this commit [1]: - Safari on iOS 17.5 - Chrome for Android 127 - Firefox for Android 127 Therefore the button should not be shown, otherwise it mistakenly gives the impression that user could make it work by enabling screen-sharing permission which is not possible on mobile OS. opw-4108833 [1]: https://caniuse.com/mdn-api_mediadevices_getdisplaymedia <img width="333" alt="Screenshot 2024-08-21 at 13 26 13" src="https://gi
Original PR description
This feature is not available in mobile OS at the time of this commit [1]: - Safari on iOS 17.5 - Chrome for Android 127 - Firefox for Android 127 Therefore the button should not be shown, otherwise it mistakenly gives the impression that user could make it work by enabling screen-sharing permission which is not possible on mobile OS. opw-4108833 [1]: https://caniuse.com/mdn-api_mediadevices_getdisplaymedia <img width="333" alt="Screenshot 2024-08-21 at 13 26 13" src="https://github.com/user-attachments/assets/ead3281d-2ef4-412e-8d4f-edab4a85b1e9"> Forward-Port-Of: odoo/odoo#177372
The technical refactor in [1] renamed the tax amount in currency from `amount_tax` to `tax_amount_currency`. However, in some instances, it was mistakenly renamed to `tax_amount`, including in the commit description. This commit corrects this minor oversight. [1]: https://github.com/odoo/odoo/commit/68fbdc96 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177318
Original PR description
The technical refactor in [1] renamed the tax amount in currency from `amount_tax` to `tax_amount_currency`. However, in some instances, it was mistakenly renamed to `tax_amount`, including in the commit description. This commit corrects this minor oversight. [1]: https://github.com/odoo/odoo/commit/68fbdc96 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177318
Currently, the editor uses the bootstrap grid system for the column layouts and the editor CSS rules changes the paddings and the margins of the columns. When the user prints a document, the columns can go one under the other but the paddings and margins set are still applied. As a result, the columns appear off-centered on printing devices. To fix that issue, we will scope the CSS rules that adjust the paddings and margins of the columns to the screen devices. This way, the rules won't be ap
Original PR description
Currently, the editor uses the bootstrap grid system for the column layouts and the editor CSS rules changes the paddings and the margins of the columns. When the user prints a document, the columns can go one under the other but the paddings and margins set are still applied. As a result, the columns appear off-centered on printing devices. To fix that issue, we will scope the CSS rules that adjust the paddings and margins of the columns to the screen devices. This way, the rules won't be applied when printing the document. task-3664950 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168814
Steps to reproduce: - Install Sign - Open Sign, add a document and put a signature box - Make the sign box have a weird aspect ratio (very short and super wide for example) Issues: When you sign with the frame, the frame will be partially hidden making the hash invisible. Solution: Put the container back just like in the 16.0, that way we don't have the weird CSS behavior that we had previously. opw-4042289 Forward-Port-Of: odoo/odoo#175819
Original PR description
Steps to reproduce: - Install Sign - Open Sign, add a document and put a signature box - Make the sign box have a weird aspect ratio (very short and super wide for example) Issues: When you sign with the frame, the frame will be partially hidden making the hash invisible. Solution: Put the container back just like in the 16.0, that way we don't have the weird CSS behavior that we had previously. opw-4042289 Forward-Port-Of: odoo/odoo#175819
- Intall website_sale_product_configurator - Create a product A with price 3 999.00 € - Add an optional product on product A - Go to shop page - Go to product A - Add to cart - A modal popup appear - Finelize cart --> Issue the price send to datalayer is 3. Because "3 999,00" is send in the json, endead 3999.00. Co-Authored-By: "Louis (loti)" <loti@odoo.com> Forward-Port-Of: odoo/odoo#177387 Forward-Port-Of: odoo/odoo#167962
Original PR description
- Intall website_sale_product_configurator - Create a product A with price 3 999.00 € - Add an optional product on product A - Go to shop page - Go to product A - Add to cart - A modal popup appear - Finelize cart --> Issue the price send to datalayer is 3. Because "3 999,00" is send in the json, endead 3999.00. Co-Authored-By: "Louis (loti)" <loti@odoo.com> Forward-Port-Of: odoo/odoo#177387 Forward-Port-Of: odoo/odoo#167962
Steps to reproduce the issue: ============================= - Install website and events - Go to events page and enable editor - Click on customize and enable sidebar - enable Follow us option - Select a social media icon and enable open in a new window option - Save - Click on the updated icon, it still opens in the same page => the changes aren't saved. Origin of the issue: ==================== The `target` attribute was ignored when saving and `arch_section`. Solution =======
Original PR description
Steps to reproduce the issue: ============================= - Install website and events - Go to events page and enable editor - Click on customize and enable sidebar - enable Follow us option - Select a social media icon and enable open in a new window option - Save - Click on the updated icon, it still opens in the same page => the changes aren't saved. Origin of the issue: ==================== The `target` attribute was ignored when saving and `arch_section`. Solution ======== Add `target` attribute to the allowed root attrs. opw-4077657 Forward-Port-Of: odoo/odoo#177269 Forward-Port-Of: odoo/odoo#177035
Ticket: 1239 Adhoc-task: 41734 Description of the issue/feature this PR addresses: This task was created to modify the demo data for Uruguay, to avoid using real partner information. 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#176807
Original PR description
Ticket: 1239 Adhoc-task: 41734 Description of the issue/feature this PR addresses: This task was created to modify the demo data for Uruguay, to avoid using real partner information. 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#176807
Before this commit, the user would get a UserError when multiple attachments are merged for export and one of them is corrupted. The error message did not contain information helping the user identify the problematic records. After this commit, the user will get a RedirectWarning stating the number of corrupted files and a link to a form view (if single) or a list view (if multiple) of problematic record(s). ### Example workflow: 1. Go to Accounting > Vendors > Bills. 2. Create a bill wi
Original PR description
Before this commit, the user would get a UserError when multiple attachments are merged for export and one of them is corrupted. The error message did not contain information helping the user…
Before this commit, the user would get a UserError when multiple attachments are merged for export and one of them is corrupted. The error message did not contain information helping the user identify the problematic records. After this commit, the user will get a RedirectWarning stating the number of corrupted files and a link to a form view (if single) or a list view (if multiple) of problematic record(s). ### Example workflow: 1. Go to Accounting > Vendors > Bills. 2. Create a bill with a corrupted attachment. 3. Select the corrupted bill amongst other bills with valid attachments. 4. Click on Print > Original Bills. 5. The error is: "Odoo is unable to merge the generated PDFs." ### Cause: Errors raised by instantiating a PdfFileReader of a corrupted file were handled with a UserError with a static error message. ### Solution: In `_merge_pdfs` method signature, add an optional callback to define the way errors are handled. The default callback reproduces the default behavior. In `_render_qweb_pdf`, a custom callback is defined to keep track of the corrupted streams and log them in the RedirectWarning popup. opw-4067992 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177228 Forward-Port-Of: odoo/odoo#174701
### Steps to reproduce: - Activate developer mode - Go in Accounting > Configuration > Accounting > Account Groups - Create 4 account groups in a specific λ configuration, for example: ``` 2 \ 21 / \ 210 211 ``` - Go in Accounting > Reporting > Audit Reports > Trial Balance - In options, select "Hierarchy and Subtotals" to see the hierarchy - The hierarchy might be wrong or not, but each time recreating the 211 group, the hierarchy will switch between these two tre
Original PR description
### Steps to reproduce: - Activate developer mode - Go in Accounting > Configuration > Accounting > Account Groups - Create 4 account groups in a specific λ configuration, for example: ``` 2 \ 21 / \…
### Steps to reproduce:
- Activate developer mode
- Go in Accounting > Configuration > Accounting > Account Groups
- Create 4 account groups in a specific λ configuration, for example:
```
2
\
21
/ \
210 211
```
- Go in Accounting > Reporting > Audit Reports > Trial Balance
- In options, select "Hierarchy and Subtotals" to see the hierarchy
- The hierarchy might be wrong or not, but each time recreating the 211 group, the hierarchy will switch between these two trees:
```
2 2
\ / \
21 <--> 210 21
/ \ \
210 211 211
```
### Cause:
The way the `parent_id` field is computed is by doing a [SQL query](https://github.com/odoo/odoo/blob/5c39004a1e37b35a47ed95933060c0aa5dd83803/addons/account/models/account_account.py#L954C9-L975C33) that will:
1. retrieve all combinations of (parent group, child group) for each child, for example [(2, 210), (21, 210)]
2. sort them in decreasing order of parent code_prefix_start length, for example [(21, 210), (2, 210)]
3. select only the first one : [(21, 210)]
4. change the `parent_id` field of the child according to the values retrieved
But a [performance improvement](https://github.com/odoo/odoo/commit/82714afa463adda2b404b4dae81a27423880e499) was applied that only selected the combinations that had `child.parent_id IS DISTINCT FROM parent.id` to avoid updating if nothing changed. This caused the retrieve combinations at step 2 to only be [(2, 210)] in the example. So when updating it breaks the hierarchy.
### Solution:
Filter the records to be updated in the UPDATE.
opw-4066976
Forward-Port-Of: odoo/odoo#176945Issue ----- Changing the color of the product's ribbon to a custome one in eCommerce has no effect outside of the editor (after clicking "Save", the background color of the ribbon returns to the default one). Change ----- Since the bg-primary class is now set on the ribbon HTML at creation. https://github.com/odoo/odoo/blob/56fd8440707a0f3f2ba298f8bf016577ca08796b/addons/website_sale/static/src/js/website_sale.editor.js#L180 Remove the bg-primary class from the ribbon. opw-4069818
Original PR description
Issue ----- Changing the color of the product's ribbon to a custome one in eCommerce has no effect outside of the editor (after clicking "Save", the background color of the ribbon returns to the default one). Change ----- Since the bg-primary class is now set on the ribbon HTML at creation. https://github.com/odoo/odoo/blob/56fd8440707a0f3f2ba298f8bf016577ca08796b/addons/website_sale/static/src/js/website_sale.editor.js#L180 Remove the bg-primary class from the ribbon. opw-4069818 Forward-Port-Of: odoo/odoo#175687
Backport of odoo/odoo#166532 Forward-Port-Of: odoo/odoo#177090 Forward-Port-Of: odoo/odoo#177052
Original PR description
Backport of odoo/odoo#166532 Forward-Port-Of: odoo/odoo#177090 Forward-Port-Of: odoo/odoo#177052
### Description of the issue/feature this PR addresses: 1. Add validation to CI and NIE identification types. 2. Improve the RUT message to more clear message about the expected format. Before this change only RUT document type was validated. With this new change we are able to validate also NIE and CI Uruguayan document types ### Current behavior before PR: 1. Trying to set an invalid NIE to a contact, there is not warning for the user and we let the user to store the number. 2. R
Original PR description
### Description of the issue/feature this PR addresses: 1. Add validation to CI and NIE identification types. 2. Improve the RUT message to more clear message about the expected format. Before this…
### Description of the issue/feature this PR addresses: 1. Add validation to CI and NIE identification types. 2. Improve the RUT message to more clear message about the expected format. Before this change only RUT document type was validated. With this new change we are able to validate also NIE and CI Uruguayan document types ### Current behavior before PR: 1. Trying to set an invalid NIE to a contact, there is not warning for the user and we let the user to store the number. 2. RUT: If we set an invalid number we receive the warning but the suggested format is not ok  ### Desired behavior after PR is merged: 1. If invalid RUT: improve error message:  2. If we set an invalid NIE to a contact we receive message warning that is not a valid one  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173451
FixImp, I often add such url assertions with bugfixes, I wanna use this new function with them Testing that we are correctly redirected to a specific URL is something recurrent in both the http framework and website. There are various competiting ways to achieve this. In this work we propose a single go-to function that (1) takes care of sanitizing both URLs to deal with missing scheme/host and (2) ouput a nice assertion message when the urls are different. It uses urllib3 because it pa
Original PR description
FixImp, I often add such url assertions with bugfixes, I wanna use this new function with them Testing that we are correctly redirected to a specific URL is something recurrent in both the http framework and website. There are various competiting ways to achieve this. In this work we propose a single go-to function that (1) takes care of sanitizing both URLs to deal with missing scheme/host and (2) ouput a nice assertion message when the urls are different. It uses urllib3 because it parses "example.com" as `netloc="example.com"` instead of urllib that parses it as `path="example.com"`. 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#176976 Forward-Port-Of: odoo/odoo#176763
Summary ----- Normally, in the load.py method, when there is an error in creating the recordset to be imported, the records are then created one by one. The following commit prevents this behavior in case of a failure to create the recordset in one go: https://github.com/odoo/odoo/pull/173094/commits/ced1ec251d361d8a3ca32ad51e8516668447ca0e. Steps to reproduce ----- Create a module that redefines the create method of the res.users model to throw an error if vals_list contains at least 2
Original PR description
Summary ----- Normally, in the load.py method, when there is an error in creating the recordset to be imported, the records are then created one by one. The following commit prevents this behavior in case of a failure to create the recordset in one go: https://github.com/odoo/odoo/pull/173094/commits/ced1ec251d361d8a3ca32ad51e8516668447ca0e. Steps to reproduce ----- Create a module that redefines the create method of the res.users model to throw an error if vals_list contains at least 2 elements. Import a file containing at least 2 users (by adding the suffix /web#model=res.users&action=import to the URL). Cause ----- The global error message has been logged since the commit cited in the summary. However, a rollback is performed if there are error messages. Fix ----- If we see that there are no errors when creating the records one by one, we then remove the logged error messages. opw-4102745 Forward-Port-Of: odoo/odoo#176901
A Factur-X XML generated in Germany should not falsely claim to be compliant to the KoSIT XRechnung. Forward-Port-Of: odoo/odoo#177330
Original PR description
A Factur-X XML generated in Germany should not falsely claim to be compliant to the KoSIT XRechnung. Forward-Port-Of: odoo/odoo#177330
Simple patch that prevent the prefetch of the oauth token Forward-Port-Of: odoo/odoo#177259
Original PR description
Simple patch that prevent the prefetch of the oauth token Forward-Port-Of: odoo/odoo#177259
**Versions:** 17.0 **Steps to reproduce:** 1. Enable debug mode. 2. Go to the calendar. 3. Create an event using the quick create form. 4. Click on the Odoo meeting link. 5. Try to clear the meeting. **Issue:** A traceback occurs when attempting to clear a meeting in debug mode. **Cause:** The 'CopyButton' component expects the content to be a string but receives `false`. **Solution:** In the form controller, set `videocall_location` to an empty string instead of `false
Original PR description
**Versions:** 17.0 **Steps to reproduce:** 1. Enable debug mode. 2. Go to the calendar. 3. Create an event using the quick create form. 4. Click on the Odoo meeting link. 5. Try to clear the meeting. **Issue:** A traceback occurs when attempting to clear a meeting in debug mode. **Cause:** The 'CopyButton' component expects the content to be a string but receives `false`. **Solution:** In the form controller, set `videocall_location` to an empty string instead of `false` in `beforeExecuteActionButton`. Task-4091314 Forward-Port-Of: odoo/odoo#175496
Steps to reproduce: - Open website menu editor - Add a child menu to a menu - Delete the parent menu - Save Old behavior: a traceback appears New behavior: no traceback, parent and children menus are correctly deleted. This commit fixes the issue by properly deleting children menus recursively before deleting the parent. opw-4119441 Forward-Port-Of: odoo/odoo#177243
Original PR description
Steps to reproduce: - Open website menu editor - Add a child menu to a menu - Delete the parent menu - Save Old behavior: a traceback appears New behavior: no traceback, parent and children menus are correctly deleted. This commit fixes the issue by properly deleting children menus recursively before deleting the parent. opw-4119441 Forward-Port-Of: odoo/odoo#177243
Steps to reproduce: - Install module 'France - Adding Mandatory Invoice Mentions' - Switch to FR company - Contacts > Create french company - Sales & Purchase tab > set SIRET value - Create an invoice for this company > Print it The SIRET number does not show up anywhere on the invoice, despite the conditions being met. The SIRET number has been mandatory since July 1st 2024 in France This sometimes happens because the xpath only edits one of the 3 possible address tags added in 16.
Original PR description
Steps to reproduce: - Install module 'France - Adding Mandatory Invoice Mentions' - Switch to FR company - Contacts > Create french company - Sales & Purchase tab > set SIRET value - Create an invoice for this company > Print it The SIRET number does not show up anywhere on the invoice, despite the conditions being met. The SIRET number has been mandatory since July 1st 2024 in France This sometimes happens because the xpath only edits one of the 3 possible address tags added in 16.0. There is no need to edit the margin because the address already has mb-0 in its classes. opw-3865644 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177060
Improving tax scopes and EC sales tax report tags for `l10n_at` Old PR: odoo/odoo#171606 Info: @wt-io-it Ticket link: https://www.odoo.com/odoo/project.task/3916300 opw-3916300 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177074 Forward-Port-Of: odoo/odoo#171702
Original PR description
Improving tax scopes and EC sales tax report tags for `l10n_at` Old PR: odoo/odoo#171606 Info: @wt-io-it Ticket link: https://www.odoo.com/odoo/project.task/3916300 opw-3916300 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177074 Forward-Port-Of: odoo/odoo#171702
Version: 17.0+ Current behavior: The default account for Deferred Expense on res.config.setting is "inappropriate". A new account should be established according to account codes by SAT mexico, http://omawww.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/codigo_agrupador.pdf Purpose of this PR: To introduce an appropriate account to be used for Deferred expenses and automatically selected upon l10n_mx installation. Steps to reproduce on Runbot: 1) install l10n_mx 2) Accoun
Original PR description
Version: 17.0+ Current behavior: The default account for Deferred Expense on res.config.setting is "inappropriate". A new account should be established according to account codes by SAT mexico, http://omawww.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/codigo_agrupador.pdf Purpose of this PR: To introduce an appropriate account to be used for Deferred expenses and automatically selected upon l10n_mx installation. Steps to reproduce on Runbot: 1) install l10n_mx 2) Accounting Settings > incorrect account selected for Deferred Expense opw-4105993 Forward-Port-Of: odoo/odoo#176681
Steps to reproduce the bug: - Enable by-porduct option in manufacturing settings - Create a storable product “P1” with a BoM: - Components: C1 - by-product: C2 tracked by serial number - Create a manufacturing order (MO) to produce one unit of P1. - Confirm the MO. - Click on the detailed operation to select the serial number for C2. Problem: the field "lot_id" should be displayed instead of "lot_name". because we should be able to create and use existing SN with byproduct mov
Original PR description
Steps to reproduce the bug: - Enable by-porduct option in manufacturing settings - Create a storable product “P1” with a BoM: - Components: C1 - by-product: C2 tracked by serial number - Create a manufacturing order (MO) to produce one unit of P1. - Confirm the MO. - Click on the detailed operation to select the serial number for C2. Problem: the field "lot_id" should be displayed instead of "lot_name". because we should be able to create and use existing SN with byproduct moves. opw-[4113887](https://www.odoo.com/web#id=4113887&view_type=form&model=project.task) Forward-Port-Of: odoo/odoo#177061
Steps to reproduce =================== 1. Install website_sale module 2. Go to any campaign in marketing_automation 3. The kanban card of the activity will have buttons misplaced in the title Issue ================= With commit https://github.com/odoo/odoo/pull/165486/commits/f46e7e8bd6dc205d83a107f62d8b5944caa3d4d5, a style was applied for website_sale form mobile view. The selector also matched marketing_automation's campaign form view which removed the required float property from th
Original PR description
Steps to reproduce =================== 1. Install website_sale module 2. Go to any campaign in marketing_automation 3. The kanban card of the activity will have buttons misplaced in the title Issue ================= With commit https://github.com/odoo/odoo/pull/165486/commits/f46e7e8bd6dc205d83a107f62d8b5944caa3d4d5, a style was applied for website_sale form mobile view. The selector also matched marketing_automation's campaign form view which removed the required float property from the element. After this commit ================= This commit makes the selector in website_sale more specific to match only the desired element. Task-4110902 Forward-Port-Of: odoo/odoo#176920
Duplicating a pricelist would copy over the price rules, but not the time-based rules. Adding copy to this field allows that to work. opw-4088788 Forward-Port-Of: odoo/enterprise#68426 Forward-Port-Of: odoo/enterprise#68066
Original PR description
Duplicating a pricelist would copy over the price rules, but not the time-based rules. Adding copy to this field allows that to work. opw-4088788 Forward-Port-Of: odoo/enterprise#68426 Forward-Port-Of: odoo/enterprise#68066
Purpose: ------- Currently, clicking several times quickly on the caret to unfold an article in the sidebar may throw an error and show the child articles several times in the sidebar. This commit fixes the issue by preventing to make a new request to load the child articles if one has already been made. Task-4099133 Forward-Port-Of: odoo/enterprise#68013
Original PR description
Purpose: ------- Currently, clicking several times quickly on the caret to unfold an article in the sidebar may throw an error and show the child articles several times in the sidebar. This commit fixes the issue by preventing to make a new request to load the child articles if one has already been made. Task-4099133 Forward-Port-Of: odoo/enterprise#68013
Steps to reproduce: - Install Sign - Open Sign, add a document and put a signature box - Make the sign box have a weird aspect ratio (very short and super wide for example) Issues: When you sign with the frame, the frame will be partially hidden making the hash invisible. Solution: Put the container back just like in the 16.0, that way we don't have the weird CSS behavior that we had previously. opw-4042289 Forward-Port-Of: odoo/enterprise#68015
Original PR description
Steps to reproduce: - Install Sign - Open Sign, add a document and put a signature box - Make the sign box have a weird aspect ratio (very short and super wide for example) Issues: When you sign with the frame, the frame will be partially hidden making the hash invisible. Solution: Put the container back just like in the 16.0, that way we don't have the weird CSS behavior that we had previously. opw-4042289 Forward-Port-Of: odoo/enterprise#68015
Forward-Port-Of: odoo/enterprise#68704
Original PR description
Forward-Port-Of: odoo/enterprise#68704
**Before this PR:** The style of some knowledge templates was broken when attempting to export or print, lacking proper formatting as per the templated structure. It seemed like there was an issue with the template's responsiveness. **After this PR:** Now, the issue has been addressed, and now the template is appropriately formatted and styled, ensuring correctness during export. **Task**-3664950 Forward-Port-Of: odoo/enterprise#56221
Original PR description
**Before this PR:** The style of some knowledge templates was broken when attempting to export or print, lacking proper formatting as per the templated structure. It seemed like there was an issue with the template's responsiveness. **After this PR:** Now, the issue has been addressed, and now the template is appropriately formatted and styled, ensuring correctness during export. **Task**-3664950 Forward-Port-Of: odoo/enterprise#56221
**Steps to reproduce** 1).Log as Mitchell, create an appointment, and set Joel as an attendee 2).Log as Joel, open the appointment page, and cancel -> Cancellation mail is not sent **Before this PR** A cancellation email is only sent when the person who books the appointment cancels the appointment. **Technical** https://github.com/odoo/enterprise/commit/46f1b8aaeaa94d3ac7b72784a8fa7120f8a3e8a5#diff-394903898ffdd9f9e1f053ecda2afd00cda86d6cc96159268fbe4fefc62f3a83R187 Before the abo
Original PR description
**Steps to reproduce** 1).Log as Mitchell, create an appointment, and set Joel as an attendee 2).Log as Joel, open the appointment page, and cancel -> Cancellation mail is not sent **Before this PR** A cancellation email is only sent when the person who books the appointment cancels the appointment. **Technical** https://github.com/odoo/enterprise/commit/46f1b8aaeaa94d3ac7b72784a8fa7120f8a3e8a5#diff-394903898ffdd9f9e1f053ecda2afd00cda86d6cc96159268fbe4fefc62f3a83R187 Before the above commit we were archiving the meeting if there are < 2 attendees in the event. So now we restore that condition with the current conditions **After this PR** Now, a Cancellation email will also be sent if an event contains less than 2 attendee after the cancellation. Task-3975493 Forward-Port-Of: odoo/enterprise#64238
### Steps to reproduce: - Create a fiscal position that converts 19% tax-inclusive into 19% tax-exclusive. - Create a product with 19% tax inclusive. - Create a contact and assign the above fiscal position. - Navigate to a field service project and add an employee with a tax-included rate in the employee mapping. - Create a new field service task for the customer with the assigned fiscal position and add one hour for the employee in the mapping. - Add the product with 19% tax included to
Original PR description
### Steps to reproduce: - Create a fiscal position that converts 19% tax-inclusive into 19% tax-exclusive. - Create a product with 19% tax inclusive. - Create a contact and assign the above fiscal…
### Steps to reproduce: - Create a fiscal position that converts 19% tax-inclusive into 19% tax-exclusive. - Create a product with 19% tax inclusive. - Create a contact and assign the above fiscal position. - Navigate to a field service project and add an employee with a tax-included rate in the employee mapping. - Create a new field service task for the customer with the assigned fiscal position and add one hour for the employee in the mapping. - Add the product with 19% tax included to the task. - Mark the task as done. #### Current Behavior: - The product unit price is calculated excluding tax. - The service unit price remains calculated as tax-included. #### Expected Behavior: Both product and service unit prices should be calculated consistently as tax-excluded when the tax is set to 19% exclusive. ### Cause of the issue: When creating a new sale order line if the unit price is not specified "product_id_change" is called which set the correct unit price after applying the fpos by calling `_update_taxes` on the line: https://github.com/odoo/odoo/blob/a09e0c651ea54faa3b41e6012b6d62f143519f07/addons/sale/models/sale_order_line.py#L617-L628 But in our case we are setting the `unit_price` to the employee rate here: https://github.com/odoo/enterprise/blob/e23e01337faeec652d400618cf14aaf3d6d47ef2/industry_fsm_sale/models/project_task.py#L408-L412 and the taxes are not taken into account. ### Fix: The unit price of the employee rate should be updated to reflect the changed taxes from fpos. However, since `_update_taxes` relies on the unit price of the product rather than on the one given to the line: https://github.com/odoo/odoo/blob/a09e0c651ea54faa3b41e6012b6d62f143519f07/addons/sale/models/sale_order_line.py#L685 we can not call the `_update_taxes` directly to update the sol. opw-3853196 Co-authored-by: waha <waha@odoo.com> Forward-Port-Of: odoo/enterprise#67730
Steps to reproduce: - Create a project and a task - Attach a file to the task - Share the task with Joel Willis (portal user) - DO NOT share the project with him - Log in as Joel Willis (portal user) - Click Tasks > '1 Document' button next to project name This redirects back to portal home menu. This happens because the button leads to projects/id/documents, which Joel Willis has not been granted access to. The expectation would be a redirection to tasks/id/documents instead, as por
Original PR description
Steps to reproduce: - Create a project and a task - Attach a file to the task - Share the task with Joel Willis (portal user) - DO NOT share the project with him - Log in as Joel Willis (portal user) - Click Tasks > '1 Document' button next to project name This redirects back to portal home menu. This happens because the button leads to projects/id/documents, which Joel Willis has not been granted access to. The expectation would be a redirection to tasks/id/documents instead, as portal > projects handles this use case, and we curently do not have a way to share documents attached to a specific task through portal. opw-4009258 Forward-Port-Of: odoo/enterprise#67849
Purpose of this PR: CoA Report trial balance test adjusted to accommodate for the new account, 173.01 Deferred expenses Community PR that adds new account: #176681 opw-4105993 Forward-Port-Of: odoo/enterprise#68578
Original PR description
Purpose of this PR: CoA Report trial balance test adjusted to accommodate for the new account, 173.01 Deferred expenses Community PR that adds new account: #176681 opw-4105993 Forward-Port-Of: odoo/enterprise#68578