Saturday, August 19, 2023
26 changes · master
New functionality added to Odoo
This update adds more sample data for the Manufacturing app, making demo environments more complete and realistic. It helps business users, evaluators, and trainers better explore manufacturing workflows without needing to create example records manually.
Original PR description
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
Resolved issues and error corrections
The mobile product configurator in Point of Sale now shows quantity buttons in their previous, expected location. This fixes a layout issue from a recent interface update, making it easier for staff to adjust product quantities on mobile devices.
Original PR description
The quantity buttons of the mobile view product configurator where moved during the boostrap refactoring of the pos. This task moves them to the previous location. before:  after:  task-3446503 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
This commit simply corrects how the darkmode switch is displayed in the user menu so that the switch won't overlap with its label. task-3470052 Forward-Port-Of: odoo/odoo#132274
Original PR description
This commit simply corrects how the darkmode switch is displayed in the user menu so that the switch won't overlap with its label. task-3470052 Forward-Port-Of: odoo/odoo#132274
This fixes a display issue in Point of Sale where the closing popup could appear above the blocking overlay. The change ensures the overlay correctly covers the popup, preventing confusing or unintended interactions during closing actions.
Original PR description
The z index of the closing popup div was changed to a higher index than the blockui z index. This commit sets the z index of the closing popup to a lower value then the blockui z index. before:  after:  task-3471040 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an incorrect option value in delivery pricing rules that was changed by mistake in an earlier update. It helps ensure delivery price rules continue to work as intended without confusing or incorrect configuration behavior.
Original PR description
Oversight of view-pocalypse (odoo/odoo#104741) that wrongly changed it.
To Reproduce ============ - on project task add a property - go back to list of tasks and try to export the modified task an error is raised Problem ======= The property field is represented as dict (same for JSON fields) Which is not expected in `write_cell` Solution ======== handle `dict` type opw-3431718 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#131235
Original PR description
To Reproduce ============ - on project task add a property - go back to list of tasks and try to export the modified task an error is raised Problem ======= The property field is represented as dict (same for JSON fields) Which is not expected in `write_cell` Solution ======== handle `dict` type opw-3431718 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#131235
…n currency Suppose a very tiny rate 1:10000. l1 is expressed in company currency and has an amount of -10. l2 is expressed in foreign currency and has 1000000 in company currency for 100 in foreign currency. The reconciliation is made in foreign currency but there is nothing left to reconcile after converting -10 to the foreign currency because -10 / 10000 = 0.0001 ~= 0.0 So no partial is created. After this fix, the reconciliation fallbacks to a reconciliation in company currency if
Original PR description
…n currency Suppose a very tiny rate 1:10000. l1 is expressed in company currency and has an amount of -10. l2 is expressed in foreign currency and has 1000000 in company currency for 100 in foreign currency. The reconciliation is made in foreign currency but there is nothing left to reconcile after converting -10 to the foreign currency because -10 / 10000 = 0.0001 ~= 0.0 So no partial is created. After this fix, the reconciliation fallbacks to a reconciliation in company currency if there is nothing left to reconcile after applying the rate. issue: 128234 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#132089 Forward-Port-Of: odoo/odoo#131519
This traceback only occurs if you quickly assign and close the popover during the rerender of the popover. We call an element inside the popover already destroyed. Steps to reproduce: - Open a kanban view inside the project app - Click on the "Quick Assign icon" - Select a user A - Press directly "escape" to close the dropdown a traceback occurs => bug Forward-Port-Of: odoo/odoo#132273
Original PR description
This traceback only occurs if you quickly assign and close the popover during the rerender of the popover. We call an element inside the popover already destroyed. Steps to reproduce: - Open a kanban view inside the project app - Click on the "Quick Assign icon" - Select a user A - Press directly "escape" to close the dropdown a traceback occurs => bug Forward-Port-Of: odoo/odoo#132273
Currently, When the user is adding a double hyphen or space or anything within a comment in a view's architecture and tries to save the view, then an error occurs. To reproduce the issue: 1. Go to Settings > Technical > Views > open a view. 2. In View Architecture comment out a line. 3. Add a double hyphen or space or anything within the comment. 4. Then save manually, the error will occur. See this error: ``` Traceback (most recent call last): File "/data/build/odoo/odoo/tools
Original PR description
Currently, When the user is adding a double hyphen or space or anything within a comment in a view's architecture and tries to save the view, then an error occurs. To reproduce the issue: 1. Go to…
Currently, When the user is adding a double hyphen or space or anything within a
comment in a view's architecture and tries to save the view, then an error
occurs.
To reproduce the issue:
1. Go to Settings > Technical > Views > open a view.
2. In View Architecture comment out a line.
3. Add a double hyphen or space or anything within the comment.
4. Then save manually, the error will occur.
See this error:
```
Traceback (most recent call last):
File "/data/build/odoo/odoo/tools/translate.py", line 310, in xml_translate
root = parse_xml(value)
File "/data/build/odoo/odoo/tools/translate.py", line 288, in parse_xml
return etree.fromstring(text)
File "src/lxml/etree.pyx", line 3237, in lxml.etree.fromstring
File "src/lxml/parser.pxi", line 1896, in lxml.etree._parseMemoryDocument
File "src/lxml/parser.pxi", line 1777, in lxml.etree._parseDoc
File "src/lxml/parser.pxi", line 1082, in lxml.etree._BaseParser._parseUnicodeDoc
File "src/lxml/parser.pxi", line 615, in lxml.etree._ParserContext._handleParseResultDoc
File "src/lxml/parser.pxi", line 725, in lxml.etree._handleParseResult
File "src/lxml/parser.pxi", line 654, in lxml.etree._raiseParseError
File "<string>", line 103
lxml.etree.XMLSyntaxError: Double hyphen within comment: <!--<div id="informations" position="replace">, line 103, column 55
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/data/build/odoo/odoo/http.py", line 1699, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/data/build/odoo/odoo/service/model.py", line 133, in retrying
result = func()
File "/data/build/odoo/odoo/http.py", line 1726, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/data/build/odoo/odoo/http.py", line 1927, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/data/build/odoo/addons/website/models/ir_http.py", line 234, in _dispatch
response = super()._dispatch(endpoint)
File "/data/build/odoo/odoo/addons/base/models/ir_http.py", line 190, in _dispatch
result = endpoint(**request.params)
File "/data/build/odoo/odoo/http.py", line 716, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/data/build/odoo/addons/web/controllers/dataset.py", line 30, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/data/build/odoo/addons/web/controllers/dataset.py", line 26, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/data/build/odoo/odoo/api.py", line 461, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/data/build/odoo/odoo/api.py", line 448, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/data/build/odoo/addons/website/models/theme_models.py", line 376, in write
return super().write(vals)
File "/data/build/odoo/addons/website/models/ir_ui_view.py", line 93, in write
return super(View, self).write(vals)
File "/data/build/enterprise/web_studio/models/studio_mixin.py", line 33, in write
res = super(StudioMixin, self).write(vals)
File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 587, in write
res = super(View, self).write(self._compute_defaults(vals))
File "/data/build/odoo/odoo/models.py", line 4046, in write
fields[0].determine_inverse(real_recs)
File "/data/build/odoo/odoo/fields.py", line 1396, in determine_inverse
determine(self.inverse, records)
File "/data/build/odoo/odoo/fields.py", line 99, in determine
return needle(*args)
File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 363, in _inverse_arch_base
view_wo_lang.arch = view.arch_base
File "/data/build/odoo/odoo/fields.py", line 1320, in __set__
records.write({self.name: write_value})
File "/data/build/odoo/addons/website/models/theme_models.py", line 376, in write
return super().write(vals)
File "/data/build/odoo/addons/website/models/ir_ui_view.py", line 93, in write
return super(View, self).write(vals)
File "/data/build/enterprise/web_studio/models/studio_mixin.py", line 33, in write
res = super(StudioMixin, self).write(vals)
File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 587, in write
res = super(View, self).write(self._compute_defaults(vals))
File "/data/build/odoo/odoo/models.py", line 4046, in write
fields[0].determine_inverse(real_recs)
File "/data/build/odoo/odoo/fields.py", line 1396, in determine_inverse
determine(self.inverse, records)
File "/data/build/odoo/odoo/fields.py", line 99, in determine
return needle(*args)
File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 345, in _inverse_arch
view.write(data)
File "/data/build/odoo/addons/website/models/theme_models.py", line 376, in write
return super().write(vals)
File "/data/build/odoo/addons/website/models/ir_ui_view.py", line 93, in write
return super(View, self).write(vals)
File "/data/build/enterprise/web_studio/models/studio_mixin.py", line 33, in write
res = super(StudioMixin, self).write(vals)
File "/data/build/odoo/odoo/addons/base/models/ir_ui_view.py", line 587, in write
res = super(View, self).write(self._compute_defaults(vals))
File "/data/build/odoo/odoo/models.py", line 4014, in write
field.write(self, value)
File "/data/build/odoo/odoo/fields.py", line 1804, in write
cache_value = self.translate(lambda t: None, cache_value)
File "/data/build/odoo/odoo/tools/translate.py", line 315, in xml_translate
root = parse_html(u"<div>%s</div>" % value)
File "/data/build/odoo/odoo/tools/translate.py", line 296, in parse_html
return html.fragment_fromstring(text, parser=_HTML_PARSER)
File "/usr/local/lib/python3.10/dist-packages/lxml/html/__init__.py", line 851, in fragment_fromstring
% ', '.join([_element_name(e) for e in elements]))
TypeError: sequence item 2: expected str instance, cython_function_or_method found
```
To solve this issue the error has been handled using a try-except block in 'parse_html' method.
sentry-4306359331
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#131911
Forward-Port-Of: odoo/odoo#129969--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#132018 Forward-Port-Of: odoo/odoo#117933
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#132018 Forward-Port-Of: odoo/odoo#117933
Relative image urls have to be replaced with absolute urls in order to be able to display them in the email. This failed to be done for urls in styles attributes if they were enclosed in (unicode decimal) single quotes. opw-3452655 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#132240
Original PR description
Relative image urls have to be replaced with absolute urls in order to be able to display them in the email. This failed to be done for urls in styles attributes if they were enclosed in (unicode decimal) single quotes. opw-3452655 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#132240
This commit fixes some isues with touch behaviors in the drag and drop feature. Since commit (1), pointer events are used instead of mouse events in the draggable hook. This makes the drag and drop available with touch, but some issues appeared. The following issues have been adressed by the commit: - Scrolling in a kanban view has become difficult, since items are dragged, and columns are moved. A simple scroll in the view to show other items was nearly impossible without interacting with e
Original PR description
This commit fixes some isues with touch behaviors in the drag and drop feature. Since commit (1), pointer events are used instead of mouse events in the draggable hook. This makes the drag and drop available with touch, but some issues appeared. The following issues have been adressed by the commit: - Scrolling in a kanban view has become difficult, since items are dragged, and columns are moved. A simple scroll in the view to show other items was nearly impossible without interacting with elements. - on Windows laptops, the hasTouch helper would not return true, even on PCs and tablets with a touchscreen, because 'ontouchstart' is not present in the window object. It meant that any touch feature was not working properly (e.g. moving icons from the home screen). This commit adds a mediaQuery check right after the current check on the window object, to also consider those laptops as touch devices. task-3436591 Forward-Port-Of: odoo/odoo#130654
Add a populate module for eLearning to assess performance with lots of attendees. Forward-Port-Of: odoo/odoo#131679
Original PR description
Add a populate module for eLearning to assess performance with lots of attendees. Forward-Port-Of: odoo/odoo#131679
The currency service is responsible for reloading currency from the session_info, however it does not retrive the correct key/value. The issue can be reproduced in saas-16.4: - Activate a currency - Accounting Dashboard > Reconcile x items - Client stack trace (after hard refresh the correct currencies are loaded) With this PR, only the currencies key is taken from the session_info Forward-Port-Of: odoo/odoo#131903
Original PR description
The currency service is responsible for reloading currency from the session_info, however it does not retrive the correct key/value. The issue can be reproduced in saas-16.4: - Activate a currency - Accounting Dashboard > Reconcile x items - Client stack trace (after hard refresh the correct currencies are loaded) With this PR, only the currencies key is taken from the session_info Forward-Port-Of: odoo/odoo#131903
Before this commit, when mouse hovering on relative time of the message, it showed the datetime without the seconds. Not showing the seconds can make it hard to determine chronological order of 2 messages in different conversations. This commit fixes the issue by showing the seconds in datetime format of message when mouse hovering on relative datetime part. opw-3423016 Before / After <img width="700" alt="before" src="https://github.com/odoo/odoo/assets/6569390/ad579ca2-1741-4c42-9
Original PR description
Before this commit, when mouse hovering on relative time of the message, it showed the datetime without the seconds. Not showing the seconds can make it hard to determine chronological order of 2 messages in different conversations. This commit fixes the issue by showing the seconds in datetime format of message when mouse hovering on relative datetime part. opw-3423016 Before / After <img width="700" alt="before" src="https://github.com/odoo/odoo/assets/6569390/ad579ca2-1741-4c42-9604-e8e496276503"> <img width="703" alt="after" src="https://github.com/odoo/odoo/assets/6569390/02b7a085-9538-4870-b019-816b3626d709"> Forward-Port-Of: odoo/odoo#132270
Steps to reproduce: 1. Install l10n_at, l10n_de 2. Activate EU intra community option in accounting settings 3. Configure BSS Germany to have a foreign fiscal ID 4. Select document layout DIN 5008 5. Create and print PDF of an invoice for a german customer 6. Foreign fiscal ID does not appear Issue: the logic to handle `forced_vat` is missing in din5008 layout opw-3381688 Forward-Port-Of: odoo/odoo#131629 Forward-Port-Of: odoo/odoo#131582
Original PR description
Steps to reproduce: 1. Install l10n_at, l10n_de 2. Activate EU intra community option in accounting settings 3. Configure BSS Germany to have a foreign fiscal ID 4. Select document layout DIN 5008 5. Create and print PDF of an invoice for a german customer 6. Foreign fiscal ID does not appear Issue: the logic to handle `forced_vat` is missing in din5008 layout opw-3381688 Forward-Port-Of: odoo/odoo#131629 Forward-Port-Of: odoo/odoo#131582
The problem: - Multi-currency is allowed, although the fiscal device expects amounts only in KSh. - The amounts are converted from the invoice amounts at the moment of sending to the device. - When sending a credit note to the device, the amount of the credit note cannot exceed the amount of the original invoice (otherwise the device will throw an error). - In odoo, the journal items of the credit note are created using the current currency rate (not that of the original invoice), and thus t
Original PR description
The problem: - Multi-currency is allowed, although the fiscal device expects amounts only in KSh. - The amounts are converted from the invoice amounts at the moment of sending to the device. - When sending a credit note to the device, the amount of the credit note cannot exceed the amount of the original invoice (otherwise the device will throw an error). - In odoo, the journal items of the credit note are created using the current currency rate (not that of the original invoice), and thus the amount can exceed the original amount (depending on changes in the currency rate). This commit addresses this issue by using the currency rate from the original invoice (reversed_entry_id) in the case of a credit note. opw-3422555 Forward-Port-Of: odoo/odoo#129529
This commit allows to take domain into account for custom activity groups in the systray. Impacted modules: - test_mail - mail - mass_mailing_sms Steps ===== In debug mode: - Install module mass_mailing_sms - Add an activity for a mailing.mailing record with mailing_type set to 'sms' (i.e. a record visible in the SMS Marketing app). - Add an activity for a mailing.mailing record with mailing_type != 'sms' (i.e. a record visible in the Email Marketing app). - Open the activity menu
Original PR description
This commit allows to take domain into account for custom activity groups in the systray. Impacted modules: - test_mail - mail - mass_mailing_sms Steps ===== In debug mode: - Install module…
This commit allows to take domain into account for custom activity groups in the systray. Impacted modules: - test_mail - mail - mass_mailing_sms Steps ===== In debug mode: - Install module mass_mailing_sms - Add an activity for a mailing.mailing record with mailing_type set to 'sms' (i.e. a record visible in the SMS Marketing app). - Add an activity for a mailing.mailing record with mailing_type != 'sms' (i.e. a record visible in the Email Marketing app). - Open the activity menu Not in debug mode: - Do the same step as above - Click on the category "SMS Marketing" in the activity menu Issue ===== - In debug mode: a traceback will pop up when the activity menu is opened with an error message similar to `Got duplicate key in t-foreach: 1182`. - Not in debug mode: when clicking on the SMS Marketing category in the activity menu, all records of model mailing.mailing with activities set will be displayed and not only the one with mailing_type set to 'sms'. Cause ===== - In the method systray_get_activities, the id of each model is used to create groups of activities. In mass_mailing_sms, the same logic is used but two groups are created for the model mailing.mailing, thus with the same id. This create a traceback in debug mode when displaying the activity menu are the id of the groups are used as key for a foreach in the view template. - The methods openActivityGroup and onClickAction called when the user click on an activity group (or on the activity icon next to it) do not take the domain of the group into account correctly. Fix === As the id of the groups is not usefull elsewhere (expect for the sorting of groups), it is just replaced by integers incremented for each element of the list of groups. Instead of using model id to sort groups, the name of the activity groups is used instead. The domain of each group (if any) is combined with the domains used in openActivityGroup and onClickAction. Forward-Port-Of: odoo/odoo#132312 Forward-Port-Of: odoo/odoo#128310
The product configurator can have irrelevant disabled options if the product selected has some archived variants Steps to reproduce: 1. Install Sales and Inventory 2. Create a product with two attributes, each with two values (e.g. Color: C1, C2 and Weight: W1, W2) 3. Open one of the variant, add some stock then archive it 4. Delete the attribute Weight from the product 5. Create a SO for any customer and add the product 6. The product configurator dialog opens but the C1 color is unava
Original PR description
The product configurator can have irrelevant disabled options if the product selected has some archived variants Steps to reproduce: 1. Install Sales and Inventory 2. Create a product with two attributes, each with two values (e.g. Color: C1, C2 and Weight: W1, W2) 3. Open one of the variant, add some stock then archive it 4. Delete the attribute Weight from the product 5. Create a SO for any customer and add the product 6. The product configurator dialog opens but the C1 color is unavailable Solution: Only return the archived combinations for which all of the attribute are still used in the product opw-3427753 Forward-Port-Of: odoo/odoo#131380
disable tokenisation of payment methods that use sepa debit because it will not be supported in the future versions Forward-Port-Of: odoo/odoo#132334
Original PR description
disable tokenisation of payment methods that use sepa debit because it will not be supported in the future versions Forward-Port-Of: odoo/odoo#132334
If two peoples attempt to send a CFDI at the same time, one of them must be stopped. Otherwise, the same invoice is declared twice on the SAT. Forward-Port-Of: odoo/enterprise#45950
Original PR description
If two peoples attempt to send a CFDI at the same time, one of them must be stopped. Otherwise, the same invoice is declared twice on the SAT. Forward-Port-Of: odoo/enterprise#45950
### Current behaviour In helpdesk in a multiple company configuration, when we send a mail to a team in a company it always creates a ticket with the sequence of the default company. ### Steps to reproduce - Enable 'Custom email servers' in settings, set the domain and add a company. - Create 2 helpdesk teams in each company with a specific alias for the emails. - Go to Sequences, set two of them with 'helpdesk.ticket' as sequence code and different prefixes and companies to match your te
Original PR description
### Current behaviour In helpdesk in a multiple company configuration, when we send a mail to a team in a company it always creates a ticket with the sequence of the default company. ### Steps to…
### Current behaviour In helpdesk in a multiple company configuration, when we send a mail to a team in a company it always creates a ticket with the sequence of the default company. ### Steps to reproduce - Enable 'Custom email servers' in settings, set the domain and add a company. - Create 2 helpdesk teams in each company with a specific alias for the emails. - Go to Sequences, set two of them with 'helpdesk.ticket' as sequence code and different prefixes and companies to match your teams. - Email with the alias created for the team in the added company(you can use this lines of codes to do it locally https://github.com/odoo/odoo/blob/bfdd54e815334dbfd0f65ec6559a711b4973a6eb/addons/crm/tests/test_crm_lead_notification.py#L102-L123, then run ``self.env.cr.commit()``) - Go to Helpdesk in the added commpany and observe the created ticket ### Issue The sequence used is the one of the first company. ### Reason of the problem When creating the ticket we use the ``self.env.company`` to match the sequence, so when it's from a email it's always the default company which is used. We have to use the company of the ``Helpdesk.team`` to create it. opw-3345347 Forward-Port-Of: odoo/enterprise#45949 Forward-Port-Of: odoo/enterprise#45746
Fix indeterministic fail of the `test_mx_pos_invoice_previous_order` test due to an early ending of its tour. At the end of the tour, an order is invoiced and 2 mexican fields are filled from the POS (the `l10n_mx_edi_usage` and the `l10n_mx_edi_cfdi_to_public`), these fields are then pushed from the client to the server and the tour ends. Sometimes, the tour ends too early, preventing the synchronization of the client and the server. This results in a fail when we check `invoice.l10n_mx_edi_
Original PR description
Fix indeterministic fail of the `test_mx_pos_invoice_previous_order` test due to an early ending of its tour. At the end of the tour, an order is invoiced and 2 mexican fields are filled from the POS (the `l10n_mx_edi_usage` and the `l10n_mx_edi_cfdi_to_public`), these fields are then pushed from the client to the server and the tour ends. Sometimes, the tour ends too early, preventing the synchronization of the client and the server. This results in a fail when we check `invoice.l10n_mx_edi_usage` and `invoice.l10n_mx_edi_cfdi_to_public`. Fix: we ensure the server and the client are synchronized by ending the tour at a 'stable' state: after invoicing the order, the button 'Invoice' is renamed to 'Reprint Invoice'. See: https://runbot.odoo.com/web/#id=24103&menu_id=405&cids=1&action=573&model=runbot.build.error&view_type=form Forward-Port-Of: odoo/enterprise#45943 Forward-Port-Of: odoo/enterprise#45898
Improve the new Bank reco readibility with the Statements integration. - Realign the statements - On the separator, made only the amount clickable - Changed the font to make it more visible. task-3438349 Forward-Port-Of: odoo/enterprise#45340
Original PR description
Improve the new Bank reco readibility with the Statements integration. - Realign the statements - On the separator, made only the amount clickable - Changed the font to make it more visible. task-3438349 Forward-Port-Of: odoo/enterprise#45340
Forward-Port-Of: odoo/enterprise#45911
Original PR description
Forward-Port-Of: odoo/enterprise#45911
The file export for the XAF files works as expected when using their button, but not when using the save wizard. This is because the data is not returned as bytes while it is what is expected by the wizard. Changing it still works while exporting directly but also fixes the issue in the wizard. Also change the file_type of the tax report exports so that they keep their extension when saved in Documents via the wizard. Similar to odoo/enterprise#45674 Forward-Port-Of: odoo/enterpr
Original PR description
The file export for the XAF files works as expected when using their button, but not when using the save wizard. This is because the data is not returned as bytes while it is what is expected by the wizard. Changing it still works while exporting directly but also fixes the issue in the wizard. Also change the file_type of the tax report exports so that they keep their extension when saved in Documents via the wizard. Similar to odoo/enterprise#45674 Forward-Port-Of: odoo/enterprise#45738 Forward-Port-Of: odoo/enterprise#45680