Friday, September 6, 2024
28 changes · master
Enhancements to existing features
This update streamlines India-specific accounting, asset, and GST report screens by removing unnecessary hidden fields from the interface setup. It helps keep these business forms easier to maintain without changing day-to-day workflows for users.
Original PR description
see https://github.com/odoo/odoo/pull/178572
Odoo Enterprise modules were updated so test-only code is no longer loaded during normal operation. This keeps runtime startup cleaner while leaving test execution to the testing framework, with no expected change for everyday users.
Original PR description
There is no need to import the module `tests`, it will be done by the testing framework and we do not need it during runtime. odoo/odoo#177671
The favorite button in marketing automation mailings has been moved from the subject field to the form header. This makes the control easier to find and keeps the subject area focused on message content.
Original PR description
Purpose ======= Move the favorite button from the subject field to the header. Task-3877116
This update prevents temporary record identifiers from being used in filtering logic, reducing the risk of errors while editing or creating records. It helps make HR contracts, payroll payslips, employee signing flows, and field service reports behave more reliably before records are fully saved.
Original PR description
odoo/odoo#177331
This update aligns several Odoo Enterprise apps with a newer shared way of searching records by display name. It should keep search behavior consistent across accounting, documents, knowledge, sign, WhatsApp, and localization features while reducing future maintenance work.
Original PR description
odoo/odoo#174967
Resolved issues and error corrections
When users add a new field to a report in Studio without a default value, it now appears immediately instead of being invisible due to having no size. This makes report editing clearer and prevents confusion when inserting fields through the powerbox.
Original PR description
With the powerbox, insert a new field in the report, without setting a default value. Before this commit, the new field is not visible, it has no size. After this commit, we make it have a size by using the oe-expression-readable attribute. task-4166586
Code cleanup and technical improvements
The Point of Sale IoT and preparation display modules were updated to align with recent underlying platform test changes. This is an internal cleanup that helps keep development and quality checks consistent without changing day-to-day user workflows.
Original PR description
In this commit we adapt the code to reflect the change in the corresponding community commit. https://github.com/odoo/odoo/pull/177754
Miscellaneous changes
Add the Colombian E-Commerce localization module that includes: * Add fields to the checkout form: City, Identification Type, Fiscal Regimen, and Obligation Type. * Validate new fields. * Change the label name for 'Vat' to 'Identification Number' * Show obligation type and fiscal regimen blocks only when the identification type is 'NIT'. * Take into account the identification type when validating the VAT in the checkout form. related: https://github.com/odoo/odoo/pull/169205 task-28
Original PR description
Add the Colombian E-Commerce localization module that includes: * Add fields to the checkout form: City, Identification Type, Fiscal Regimen, and Obligation Type. * Validate new fields. * Change the label name for 'Vat' to 'Identification Number' * Show obligation type and fiscal regimen blocks only when the identification type is 'NIT'. * Take into account the identification type when validating the VAT in the checkout form. related: https://github.com/odoo/odoo/pull/169205 task-2856566 Forward-Port-Of: odoo/enterprise#69007 Forward-Port-Of: odoo/enterprise#64786
This fix removes an empty placeholder paragraph that could appear in subscription automation rule forms when its related message was not needed. The form now uses space more cleanly, making the interface slightly tidier for users managing subscriptions.
Original PR description
Since [1] the subscriptions automations rules were extending the view_base_automation_form view by - among other changes - displaying a paragraph of text, but only under a certain condition. **Before this commit** This paragraph is present as an empty paragraph when the condition is not met, taking up a bit of space in the form view. **After this commit** The empty paragraph is no more added to the DOM. [1]: https://github.com/odoo/enterprise/commit/bbfcf24728a90b97999ce359a9d5dbf0916fa8c2
Problem: When a model is selected that the user doesn't have access to, a traceback is shown instead of a clear error message. Steps to reproduce: - Install Data Cleaning. - Go to Data Cleaning > Configuration > Duplication. - In the Model field, select "Account Chart Template". - A traceback occurs. opw-4113923 Forward-Port-Of: odoo/enterprise#68634
Original PR description
Problem: When a model is selected that the user doesn't have access to, a traceback is shown instead of a clear error message. Steps to reproduce: - Install Data Cleaning. - Go to Data Cleaning > Configuration > Duplication. - In the Model field, select "Account Chart Template". - A traceback occurs. opw-4113923 Forward-Port-Of: odoo/enterprise#68634
Steps to reproduce ================== - Open inventory > Reporting > Valuation - Open studio - Select a column - Click on "Conditionnal" next to "Invisible", "Required" or "Readonly" => crash Cause of the issue ================== Fields declared inside a groupby node are not part of the main model ```xml <groupby name="product_id"> <field name="cost_method" invisible="1" /> <field name="quantity_svl" invisible="1" /> <button name="action_revaluation" icon="fa-
Original PR description
Steps to reproduce
==================
- Open inventory > Reporting > Valuation
- Open studio
- Select a column
- Click on "Conditionnal" next to "Invisible", "Required" or "Readonly"
=> crash
Cause of the issue
==================
Fields declared inside a groupby node are not part of the main model
```xml
<groupby name="product_id">
<field name="cost_method" invisible="1" />
<field name="quantity_svl" invisible="1" />
<button name="action_revaluation" icon="fa-plus" title="Add Manual Valuation" type="object" invisible="cost_method == 'standard' or quantity_svl <= 0" />
</groupby>
```
opw-4147138
Forward-Port-Of: odoo/enterprise#69587
Forward-Port-Of: odoo/enterprise#69369Draft registrations should not receive any periodic notification until they confirm they will be attending. This avoids awkward situations where the reminder contains a ticket but their ticket isn't validated yet. task-4104891 Forward-Port-Of: odoo/enterprise#69615 Forward-Port-Of: odoo/enterprise#69529
Original PR description
Draft registrations should not receive any periodic notification until they confirm they will be attending. This avoids awkward situations where the reminder contains a ticket but their ticket isn't validated yet. task-4104891 Forward-Port-Of: odoo/enterprise#69615 Forward-Port-Of: odoo/enterprise#69529
Steps to reproduce ================== - Install project,web_studio - Go to project - Open studio > Automations - Create a new rule - Click on the top left icon to go back to the home menu - Customizations > Export - Go back to project and delete the newly create automation - Click on the top left icon to go back to the home menu - Import > Upload the generated zip => It fails because a few required fields are missing opw-4073631 Forward-Port-Of: odoo/enterprise#69427
Original PR description
Steps to reproduce ================== - Install project,web_studio - Go to project - Open studio > Automations - Create a new rule - Click on the top left icon to go back to the home menu - Customizations > Export - Go back to project and delete the newly create automation - Click on the top left icon to go back to the home menu - Import > Upload the generated zip => It fails because a few required fields are missing opw-4073631 Forward-Port-Of: odoo/enterprise#69427
When validating a payment for a subscription and the sale's setting `sale.automatic_invoice` is enabled, the invoice is send twice to the customer on subscription renewal; first with the normal template then a second time with the subscription specific template. To reproduce: - As Administrator: - Enable the "Automatic Invoice" option in the setting - Install/enable the `demo` payment provider and method - Log-in as `portal` user - Go the /shop and add the `Office Cleaning Service
Original PR description
When validating a payment for a subscription and the sale's setting `sale.automatic_invoice` is enabled, the invoice is send twice to the customer on subscription renewal; first with the normal…
When validating a payment for a subscription and the sale's setting `sale.automatic_invoice` is enabled, the invoice is send twice to the customer on subscription renewal; first with the normal template then a second time with the subscription specific template. To reproduce: - As Administrator: - Enable the "Automatic Invoice" option in the setting - Install/enable the `demo` payment provider and method - Log-in as `portal` user - Go the /shop and add the `Office Cleaning Service (SUB)` to you cart - Pay your order using the `Demo` payment method => The invoice is send once - Go to your subscription (/my/subscriptions) - Click on your new subscription - Scroll to the `Anticipate payment` section and pay for it (again choose the `Demo` payment method) - You get back the the subscription page, click on the last invoice (2nd invoice you created) => Scroll to the history section and see that the invoice is sent twice This commit ensure we're only sending invoice with the subscription specific template on renewal. OPW-3900040 Forward-Port-Of: odoo/enterprise#69376 Forward-Port-Of: odoo/enterprise#61838
Currently, when generating a DIAN document for an invoice related to a sale order, the system creates a `cac:OrderReference` tag but fails to include it's required `cbc:ID` child tag. ### Fix The `order_reference` and `sales_order_id` fields correspond to the `<cbc:ID>` and `<cbc:SalesOrderID>` tags, respectively: https://github.com/odoo/odoo/blob/72e312815f372de88388c47c612bb5f44b4d8b4e/addons/account_edi_ubl_cii/data/ubl_20_templates.xml#L438-L441 The previous code modified the standa
Original PR description
Currently, when generating a DIAN document for an invoice related to a sale order, the system creates a `cac:OrderReference` tag but fails to include it's required `cbc:ID` child tag. ### Fix The `order_reference` and `sales_order_id` fields correspond to the `<cbc:ID>` and `<cbc:SalesOrderID>` tags, respectively: https://github.com/odoo/odoo/blob/72e312815f372de88388c47c612bb5f44b4d8b4e/addons/account_edi_ubl_cii/data/ubl_20_templates.xml#L438-L441 The previous code modified the standard UBL format by setting `order_reference=False`, which caused the `<cbc:ID>` tag to be omitted from the `<cac:OrderReference>` element. However, based on official documentation, it seems that the `<cbc:SalesOrderID>` tag should be removed instead, as it is never mentioned there. Therefore, this update changes the logic to set `sales_order_id=False` instead of `order_reference=False`. opw-4124291 Forward-Port-Of: odoo/enterprise#69145
Steps to reproduce: ------------------- - create a storable product tracked by serial number; - create a serial number for this product; - add 1 quantity on hand for it; - create a rental order with the product; - add the created serial number in "Reserved lot"; - confirm and pickup; - create an other rental order; - add the product and the same "Reserved lot"; Issue: ------ There is no warning even if the serial number of the product is already out of stock. Solution: --------
Original PR description
Steps to reproduce: ------------------- - create a storable product tracked by serial number; - create a serial number for this product; - add 1 quantity on hand for it; - create a rental order with the product; - add the created serial number in "Reserved lot"; - confirm and pickup; - create an other rental order; - add the product and the same "Reserved lot"; Issue: ------ There is no warning even if the serial number of the product is already out of stock. Solution: --------- Add a check when the `reserved_lot_ids` field is modified using an onchange method. opw-3839116 Forward-Port-Of: odoo/enterprise#69590 Forward-Port-Of: odoo/enterprise#60597
Added `pos_iot` module icon. Forward-Port-Of: odoo/enterprise#69329 Forward-Port-Of: odoo/enterprise#69289
Original PR description
Added `pos_iot` module icon. Forward-Port-Of: odoo/enterprise#69329 Forward-Port-Of: odoo/enterprise#69289
**Steps to reproduce:** - Install l10n_mx_reports - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to "Accounting / Reporting / Audit Reports / Trial Balance" - Download "COA SAT (XML)" **Issue:** The certificate is not present in the XML. **Solution:** Add the EDI certificate of the company in the "COA SAT (XML)" as it was done in previous versions and as it is also done in the "SAT (XML)". opw-4076158 Forward-Port-Of: odoo/enterprise#69614 Forward-Port-Of: odoo/e
Original PR description
**Steps to reproduce:** - Install l10n_mx_reports - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to "Accounting / Reporting / Audit Reports / Trial Balance" - Download "COA SAT (XML)" **Issue:** The certificate is not present in the XML. **Solution:** Add the EDI certificate of the company in the "COA SAT (XML)" as it was done in previous versions and as it is also done in the "SAT (XML)". opw-4076158 Forward-Port-Of: odoo/enterprise#69614 Forward-Port-Of: odoo/enterprise#68887
… entries Have a studio approvals with minimum 3 rules: - 2 on level 1 - 1 on level 2 Before this commit, if one of level 1 was refused, when approving the other one, the level 2 rule created an activity for the responsible. As we don't want a level to be notified if the lower level is not fully approved, there was a bug. After this commit, we only trigger activity notification on higher level rules if the below level has been fully approved. Forward-Port-Of: odoo/enterprise#69499
Original PR description
… entries Have a studio approvals with minimum 3 rules: - 2 on level 1 - 1 on level 2 Before this commit, if one of level 1 was refused, when approving the other one, the level 2 rule created an activity for the responsible. As we don't want a level to be notified if the lower level is not fully approved, there was a bug. After this commit, we only trigger activity notification on higher level rules if the below level has been fully approved. Forward-Port-Of: odoo/enterprise#69499
### Steps to reproduce: - Enable "Units of Measure" in the settings - Inventory > Configuration > Units of Measures > UomCategories - Click on Unit and change the rounding precision from 0.01 to 0.0001 - In debug: Settings > Technical > Database Structure > Decimal Accuracy - Change the Decimal Accuracy to 4 Digits - Create and mark as to do a delivery order for 1 unit of a product 1 that you have in stock - Barcode > Operations > Delivery Orders > "your delivery" - Click on the pencil
Original PR description
### Steps to reproduce: - Enable "Units of Measure" in the settings - Inventory > Configuration > Units of Measures > UomCategories - Click on Unit and change the rounding precision from 0.01 to…
### Steps to reproduce: - Enable "Units of Measure" in the settings - Inventory > Configuration > Units of Measures > UomCategories - Click on Unit and change the rounding precision from 0.01 to 0.0001 - In debug: Settings > Technical > Database Structure > Decimal Accuracy - Change the Decimal Accuracy to 4 Digits - Create and mark as to do a delivery order for 1 unit of a product 1 that you have in stock - Barcode > Operations > Delivery Orders > "your delivery" - Click on the pencil to change the quantity of the move line to 0.0153 > You are redirected to the view of the picking and the line is displayed as: **0.015300000000000001/1.0** Cause of the issue: The float system of Odoo introduce inaccuracies at high rounding precision. When you set the qty_done of the `stock.move.line` to 0.0153 the framework is going to format this float value to be written as 0.015300000000000001. Fix: To not alter comparison using backend values we format the float in the view. opw-4110401 Forward-Port-Of: odoo/enterprise#68811
We are currently using websockets for every report action. We will now use longpolling first, then websocket if it fails. It will help reduce the amount of websockets communicating with Odoo. Task: 4106745 Forward-Port-Of: odoo/enterprise#69439 Forward-Port-Of: odoo/enterprise#68325
Original PR description
We are currently using websockets for every report action. We will now use longpolling first, then websocket if it fails. It will help reduce the amount of websockets communicating with Odoo. Task: 4106745 Forward-Port-Of: odoo/enterprise#69439 Forward-Port-Of: odoo/enterprise#68325
**Version**: 17, master **Description of the issue/feature this PR addresses**: It is necessary to restrict the fields lenght that are used to create Renewal Request to argentinean goverment. For example: It is received an error and not downloaded "Renewal Request" file if the company name lenght has more than 64 characters or if the company has a Contact with state name or city name lenght more than 128 characters. **Video showing how to replicate the error**: https://drive.google.
Original PR description
**Version**: 17, master **Description of the issue/feature this PR addresses**: It is necessary to restrict the fields lenght that are used to create Renewal Request to argentinean goverment. For…
**Version**: 17, master **Description of the issue/feature this PR addresses**: It is necessary to restrict the fields lenght that are used to create Renewal Request to argentinean goverment. For example: It is received an error and not downloaded "Renewal Request" file if the company name lenght has more than 64 characters or if the company has a Contact with state name or city name lenght more than 128 characters. **Video showing how to replicate the error**: https://drive.google.com/file/d/1JB39Njjfpf9nJExyixaBLSvcL19Ig49X/view **Steps to reproduce**: 1) Log in with admin on runbot odoo enterprise 17 instance and install l10n_ar_edi (Argentinean Electronic Invoicing) module. 2) Take position on company "Responsable Inscripto". 3) Change company name to a name with lenght more than 64 characters. 4) Go to "Accounting / Configuration / Settings" and click on "Generate Renewal Request" on "Argentinean Localization" section. It will be received this message: _"Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application."_ **Current behavior before PR**: It is received an error and not downloaded "Renewal Request" file if the company name lenght has more than 64 characters or if the company has a Contact with state name or city name lenght more than 128 characters. **Desired behavior after PR is merged**: It is downloaded "Renewal Request" file if the company name lenght has more than 64 characters or if the company has a Contact with state name or city name lenght more than 128 characters. _Ticket Adhoc side_: 78650 _Task latam_: 1246 Forward-Port-Of: odoo/enterprise#68264
This will add rules for the payroll in Alabama, Nevada, Washington and Colorado. Task: 3923285 Forward-Port-Of: odoo/enterprise#69443 Forward-Port-Of: odoo/enterprise#63481
Original PR description
This will add rules for the payroll in Alabama, Nevada, Washington and Colorado. Task: 3923285 Forward-Port-Of: odoo/enterprise#69443 Forward-Port-Of: odoo/enterprise#63481
Steps to reproduce: - Have a FEC file (see ticket) - Import it on a brand new db Issue: Crash. We try to create account move line with an xml id that does not exist because we didn't create the partner associated to the correct ref The second issue is that we will link the move to the wrong customer since the second one is not created Cause: The first issue is caused because we bypass the creation of the second partner with the same name "PARTNER 01" but different ref "PARTNER02" `
Original PR description
Steps to reproduce: - Have a FEC file (see ticket) - Import it on a brand new db Issue: Crash. We try to create account move line with an xml id that does not exist because we didn't create the partner associated to the correct ref The second issue is that we will link the move to the wrong customer since the second one is not created Cause: The first issue is caused because we bypass the creation of the second partner with the same name "PARTNER 01" but different ref "PARTNER02" `ValueError: External ID not found in the system: l10n_fr_fec_import.89_partner_PARTNER02` The reason is, when creating the move line, we assign the `partner_id` with an xml_id based on the partner_ref https://github.com/odoo/enterprise/blob/ae3820059f6ff46b0dbcd64eabb2aae5caa98e18/l10n_fr_fec_import/wizard/import_wizard.py#L474-L490 Which of course does not exist. opw-3932234 Forward-Port-Of: odoo/enterprise#69303 Forward-Port-Of: odoo/enterprise#69148
Forward-Port-Of: odoo/enterprise#69445 Forward-Port-Of: odoo/enterprise#67980
Original PR description
Forward-Port-Of: odoo/enterprise#69445 Forward-Port-Of: odoo/enterprise#67980
Versions: ----------- 15.0 Steps to Reproduce -------------- - Install industry_fsm_sale - Create a new user with these access rights. Project -> user Field Service -> user Timesheets -> User: own timesheets only - Create a new task, and assign it to the created user. - Login as user - Open the task Issue ---------- - The 'New quotation' button is visible even user has no sales access rights. Cause --------- - The user is getting access to the button from the field service g
Original PR description
Versions: ----------- 15.0 Steps to Reproduce -------------- - Install industry_fsm_sale - Create a new user with these access rights. Project -> user Field Service -> user Timesheets -> User: own timesheets only - Create a new task, and assign it to the created user. - Login as user - Open the task Issue ---------- - The 'New quotation' button is visible even user has no sales access rights. Cause --------- - The user is getting access to the button from the field service group. Fix --------- - We remove the group from the button. - We only show 'New Quotation' button if user have sales access rights. task-3827319 Forward-Port-Of: odoo/enterprise#69461 Forward-Port-Of: odoo/enterprise#60536
Create a new payslip Select Employee and contract Compute Sheet Create Draft Entry > Post Draft Entry Cancel payslip Issue: The system will attempt to reset to draft and unlink the associated invoice In some cases this is not ideal: due to regulations, we might need to preserve an audit trail to have auditable journal entries After this commit the system would unlink only draft entries and reverse already posted move, similar to what we do for expenses opw-4075244 Forward-Port-Of:
Original PR description
Create a new payslip Select Employee and contract Compute Sheet Create Draft Entry > Post Draft Entry Cancel payslip Issue: The system will attempt to reset to draft and unlink the associated invoice In some cases this is not ideal: due to regulations, we might need to preserve an audit trail to have auditable journal entries After this commit the system would unlink only draft entries and reverse already posted move, similar to what we do for expenses opw-4075244 Forward-Port-Of: odoo/enterprise#69031 Forward-Port-Of: odoo/enterprise#68044
Before this commit, as soon as this module is installed, the button to generate the Libros Registro de IVA was the main button for all the companies. Instead of having a new handler, just add the code in the default handler, and manage the buttons based on the country of the current company. Forward-Port-Of: odoo/enterprise#69320 Forward-Port-Of: odoo/enterprise#69278
Original PR description
Before this commit, as soon as this module is installed, the button to generate the Libros Registro de IVA was the main button for all the companies. Instead of having a new handler, just add the code in the default handler, and manage the buttons based on the country of the current company. Forward-Port-Of: odoo/enterprise#69320 Forward-Port-Of: odoo/enterprise#69278