Monday, November 4, 2024
13 changes · master
Enhancements to existing features
Helpdesk and Field Service Sales onboarding tours now recognize additional user actions, such as clicks or key presses, to complete certain steps. This makes guided setup more forgiving and smoother for users who interact with the interface in slightly different ways.
Original PR description
After this commit some steps accept alternative events(usually dispatched through click or key press) to satisfy the step rather than clicking on element pointed by tour pointer. task- 4009134
This update adds automated checks to confirm that field service report sending opens the correct customer communication flow in all supported situations. It also verifies that field service document layouts use the intended report template, reducing the risk of future changes breaking customer-facing reports.
Original PR description
Before this commit, no test exists to check if the `action_send_report` method in `project.task` model returns the right action. This commit adds a test to check all the cases managed inside the `action_send_report` method to make sure the behavior of that method is fully tested. This commit also checks the methods overriden in `industry_fsm` and `industry_fsm_report` for `base.document.layout` wizard to make sure the template rendered is the one defined in `industry_fsm` module. task-4237400
Code cleanup and technical improvements
This update reorganizes internal IoT-related code by separating box, device, connection, and dialog components into clearer locations. It does not introduce new user-facing behavior, but it should make future maintenance and improvements easier and safer for the IoT, POS IoT, self-order IoT, and quality IoT areas.
Original PR description
IoT Box/IoT Device models were placed in the same file, we separated them. Additionally, the IoT Channel model, which was placed in the same file too, has been moved to the `ir_websocket` one, and the "IoT Connection Error" dialog have been moved to a `dialogs/` directory for more clarity in the `iot` module.
Miscellaneous changes
To reproduce: 1) Activate storno accounting in the settings 2) Create a new partner 3) Create a Vendor Credit Note for that partner, post it 4) Register a full payment for the credit note 5) Open the Aged Payable report ====> The partner appears in the report, even though it has an amount of 0. It shouldn't, since there is no open amount for it. This was due to the way we checked the amount of the credit note was zero. In storno, the payable line of the refund is a negative credit inst
Original PR description
To reproduce: 1) Activate storno accounting in the settings 2) Create a new partner 3) Create a Vendor Credit Note for that partner, post it 4) Register a full payment for the credit note 5) Open the Aged Payable report ====> The partner appears in the report, even though it has an amount of 0. It shouldn't, since there is no open amount for it. This was due to the way we checked the amount of the credit note was zero. In storno, the payable line of the refund is a negative credit instead of being a debit. Still, it's linked through the debit_move_id field to the partial reconcile. So, removing the debit from the debit or credit from the credit wasn't enough in that setup. opw-4166891 Forward-Port-Of: odoo/enterprise#73011 Forward-Port-Of: odoo/enterprise#72422
The field extract_word_ids is in the account move view but raises an access error when someone without invoice rights open the invoice (rights you have when you have some sales rights). As this field is not used in the view or in the associated JS, we can remove it and fix the access rights issues. Forward-Port-Of: odoo/enterprise#73147
Original PR description
The field extract_word_ids is in the account move view but raises an access error when someone without invoice rights open the invoice (rights you have when you have some sales rights). As this field is not used in the view or in the associated JS, we can remove it and fix the access rights issues. Forward-Port-Of: odoo/enterprise#73147
This commit adds a new error modal when you clicking on deleted tweets and posts. It was decided to do so in stable as properly handling deleted posts requires a more consistent approach for each social network. This work should instead be done in later versions as such work will require a lot of changes. Which is against our stable version policy. task-3999571 Forward-Port-Of: odoo/enterprise#72934 Forward-Port-Of: odoo/enterprise#69168
Original PR description
This commit adds a new error modal when you clicking on deleted tweets and posts. It was decided to do so in stable as properly handling deleted posts requires a more consistent approach for each social network. This work should instead be done in later versions as such work will require a lot of changes. Which is against our stable version policy. task-3999571 Forward-Port-Of: odoo/enterprise#72934 Forward-Port-Of: odoo/enterprise#69168
*l10n_din5008_account_followup,l10n_din5008_industry_fsm, l10n_din5008_sale_renting Related to https://github.com/odoo/odoo/pull/184790 Forward-Port-Of: odoo/enterprise#72707
Original PR description
*l10n_din5008_account_followup,l10n_din5008_industry_fsm, l10n_din5008_sale_renting Related to https://github.com/odoo/odoo/pull/184790 Forward-Port-Of: odoo/enterprise#72707
This commit aims to fix an issue in the sanitize_communication function and move its logic to the account_batch_payment module to improve reusability and testability. The function trims the communication text after removing the '/' characters. However, if the communication text contains '/' and is truncated, the '/' could end up at the end of the string (see tests for more examples). The solution is to remove the '/' after truncating the text. Additionally, the sanitize_communication funct
Original PR description
This commit aims to fix an issue in the sanitize_communication function and move its logic to the account_batch_payment module to improve reusability and testability. The function trims the communication text after removing the '/' characters. However, if the communication text contains '/' and is truncated, the '/' could end up at the end of the string (see tests for more examples). The solution is to remove the '/' after truncating the text. Additionally, the sanitize_communication function has been moved to the account_batch_payment module, since this module is a dependency for both account_sepa and account_sepa_direct_debit, these two modules can now use it as well. The functions sanitize_communication and _sanitize_communication have been marked as deprecated and will be removed in the master branch. opw-4220421 Forward-Port-Of: odoo/enterprise#72961 Forward-Port-Of: odoo/enterprise#71552
With NL Company Open "General Ledger" Hit Save > Select XAF > Click 'Export' Issue: "TypeError: argument should be a bytes-like object or ASCII string, not 'generator'" This occurs because when calling `export_report` we save the attachment and we need the actual file content. opw-3820739 Forward-Port-Of: odoo/enterprise#72294
Original PR description
With NL Company Open "General Ledger" Hit Save > Select XAF > Click 'Export' Issue: "TypeError: argument should be a bytes-like object or ASCII string, not 'generator'" This occurs because when calling `export_report` we save the attachment and we need the actual file content. opw-3820739 Forward-Port-Of: odoo/enterprise#72294
ISSUE Introduced in odoo/odoo@01b87f1230beac0568f4e3b1b76e547909506892 the payments are not always linked to account moves. As the invoicing + appointment flow was creating the meeting on reconciliation between the invoice account move line and the payment account move line, using the _invoice_paid_hook method, the flow does not work out of the box anymore. FIX Let us align ourselves to what we do with eCommerce. As the only time we create a link between the invoice and the booking is u
Original PR description
ISSUE Introduced in odoo/odoo@01b87f1230beac0568f4e3b1b76e547909506892 the payments are not always linked to account moves. As the invoicing + appointment flow was creating the meeting on reconciliation between the invoice account move line and the payment account move line, using the _invoice_paid_hook method, the flow does not work out of the box anymore. FIX Let us align ourselves to what we do with eCommerce. As the only time we create a link between the invoice and the booking is using the flow, we are creating the invoice in draft at that time, we can consider that posting the invoice is either a manual action, either done automatically when post processing transactions, which would restore the previous flow, and also give more flexibility in the backend, as manually posting the invoice will also create the meeting. Task-4251392 Forward-Port-Of: odoo/enterprise#72377
As new portal users usually have no phone, let us ease their booking flow while ensuring correct data. Their phone will be updated if logged and not set. Encourage them to sign in with a new Sign In button. Also remove propagation to ecommerce flow so that we make sure appointment form data is kept as is and description remains correct. A test and pot files are adapted accordingly. Task-4207064 Forward-Port-Of: odoo/enterprise#71473
Original PR description
As new portal users usually have no phone, let us ease their booking flow while ensuring correct data. Their phone will be updated if logged and not set. Encourage them to sign in with a new Sign In button. Also remove propagation to ecommerce flow so that we make sure appointment form data is kept as is and description remains correct. A test and pot files are adapted accordingly. Task-4207064 Forward-Port-Of: odoo/enterprise#71473
In the Appointment app, when trying to select an "Up-front payment product," products configured to create a task in a project are not available in the dropdown list. Cause of the issue: In the `appointment_type` model definition within the `appointment_account_payment` module, a domain was applied on the `product_id` field, restricting the selectable products. The domain filtered out products with the `service_tracking` field set to values other than `"no"`. As a result, products that creat
Original PR description
In the Appointment app, when trying to select an "Up-front payment product," products configured to create a task in a project are not available in the dropdown list. Cause of the issue: In the `appointment_type` model definition within the `appointment_account_payment` module, a domain was applied on the `product_id` field, restricting the selectable products. The domain filtered out products with the `service_tracking` field set to values other than `"no"`. As a result, products that create tasks in projects (which have `service_tracking` set to `"task_global_project"`) were excluded. The commit https://github.com/odoo/enterprise/commit/ff54ff6cbdf79b1c24c468b5238d8eeb91e85cb9 aim was to prevent `event` and `event_booth` product to be selectable. This commit allows other product whose `service_tracking != 'no'` to be selectable while not allowing `event` and `event_booth`. opw-4146731 Forward-Port-Of: odoo/enterprise#73092 Forward-Port-Of: odoo/enterprise#71166
Due to a quirk in the JS framework, when a device form view is opened from the IoT box form view, it opens in a dialog box where it's `js_class` is not run. This causes updates to Display URL and Keyboard layout not to sync to the IoT box. This PR works around the issue by forcing the full device form view to open, rather than the dialog box. task-4141053 Forward-Port-Of: odoo/enterprise#72541 Forward-Port-Of: odoo/enterprise#72351
Original PR description
Due to a quirk in the JS framework, when a device form view is opened from the IoT box form view, it opens in a dialog box where it's `js_class` is not run. This causes updates to Display URL and Keyboard layout not to sync to the IoT box. This PR works around the issue by forcing the full device form view to open, rather than the dialog box. task-4141053 Forward-Port-Of: odoo/enterprise#72541 Forward-Port-Of: odoo/enterprise#72351