Daily updates from Odoo
Navigate
Branch
Wednesday, November 20, 2019
35 changes
Enhancements to existing features
Course pages now make it easier for learners to spot when new material has been added, using a visual arrow on the courses homepage. The update also improves course ordering for completed courses and hides an irrelevant promotion option for training courses, making the learning area clearer and more useful.
Original PR description
Have a visual insight that new content has been added on the home page of the courses. TASK-ID : 2025186 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves how Odoo explains invalid view rules during validation, replacing vague messages with more specific details about what is wrong and where. This should help administrators and implementers diagnose configuration issues faster and reduce time spent troubleshooting failed updates or customizations.
This update makes inventory transfers easier to work with by simplifying detailed operation views and improving the warning shown when users try to delete a completed transfer. These small usability changes help reduce confusion and make day-to-day warehouse actions clearer.
Original PR description
Task : https://www.odoo.com/web#id=2124115&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.9ee9d8b7e319705d448a65873cd27de9 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
The course demo data was simplified so the administrator is no longer manually added and then removed as a course attendee. Some course owners were also adjusted so the administrator can still join selected courses, making demo behavior more consistent and easier to maintain.
Original PR description
[IMP] website_slides: make responsible of a course, attendee of the course in the demo data Before ====== In the demo data, we manually add ``admin`` as an attendee of his course, and then we remove it with ``_remove_membership`` because he will be added automatically in python. Now === We do not add ``admin`` as an attendee of the course, and we remove the ``_remove_membership`` call. Task #2120225
The user profile form now shows the karma value directly through the Gamification app instead of relying on the forum app. This restores a familiar field for administrators and makes the information available in a more consistent place.
Original PR description
The karma field has been removed with this PR #35587 but before it was displayed in the res_users form view through the website_forum addon under the name "Forum Karma". This task adds it directly in the gamification inherited view for more consistency. Task ID : 2116759 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The survey experience has been visually refreshed, including the first page, form styling, and thank-you screen. This makes surveys feel more polished and easier for respondents to navigate, which can help improve completion rates.
Original PR description
https://www.odoo.com/web#id=1958806&action=333&active_id=965&model=project.task&view_type=form&menu_id=4720
Belgian payroll fleet calculations now support the new company car tax deduction rules that took effect on 1 January 2020. This helps payroll teams apply the correct deduction automatically instead of relying on a fixed lookup table.
Original PR description
Starting 1st January 2020, a new way of computing car tax deduction comes into effect [1]. (It's currently a simple table lookup) This commits adds a computed field for the tax deduction. [1] https://www.fleet.be/voitures-de-societe-fiscalite-2020/?lang=fr#1_Comment_calculer_la_deductibilite_dune_voiture_de_societe_au_1er_janvier_2020 Task 2116192
The barcode inventory interface now hides the company field where it is not needed. This reduces visual clutter for users and helps them focus on the operational details that matter during stock handling.
Original PR description
Task: https://www.odoo.com/web#id=2124115&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.9ee9d8b7e319705d448a65873cd27de9
This update tidies the Helpdesk module's mail-related code by cleaning up how supporting tools are imported. It is an internal maintenance improvement that helps developers reuse shared mail utilities more easily, with no expected change for day-to-day users.
This update improves Norwegian reporting by ensuring newly created report tags are correctly included where needed. It also fixes issues with required list fields in forms and PDF generation for electronic signatures, alongside refreshed translations for several apps.
Payroll structure types now have one explicit default structure instead of relying on a checkbox that could be enabled on multiple structures. This makes payroll setup more predictable and reduces ambiguity when generating payslips across payroll localizations.
Original PR description
Purpose ====== The boolean field `regular_pay` on payslip structures is mainly used to retrieve the default structure of a structure type. This is a problem because a struture type could have multiple structures with the checkbox set to True. How to decide which is the default one then ? Currently, it takes the first found. There should be only one default structure for any structure type. Specification ========== Remove the `regular_pay` field on the payslip structure. Make the default structure (field `default_struct_id`) of a structure type a regular many2one (currently computed). Adapt data and tests.
Features or functions removed from Odoo
This change removes an unused database parameter from unsubscribe and tracking links in mass mailing emails. The links continue to work as before, but are simpler and avoid passing unnecessary information in the URL.
Original PR description
Methods _get_unsubscribe_url and _get_tracking_url create url with a db parameter (GET), but it isn't used in the targeted controller. Then we removed it. task-2087379 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
Obsolete sample messages for private mail discussions were removed because that usage is no longer supported in current versions. This reduces clutter in demo databases and technical message lists without affecting normal users or business workflows.
Original PR description
Mail contains demo data related to private discussions. However this kind of use of mail has been removed since several versions. This demo data only creates noise in mail.message without adding any real demo for any users. As messages should be linked to existing business documents, existing demo data in demo channel and additional messages coming in other applications should be sufficient. Let us remove those demo you can see only in technical menus. Task ID 2121319 PR #39907
This update removes leftover stock-related code from older barcode and forecasting views that are no longer used. It helps keep the stock module cleaner and easier to maintain without changing day-to-day business workflows.
Code cleanup and technical improvements
This change centralizes email and messaging test helpers in the core Mail module so other related modules can reuse them instead of maintaining duplicate tools. It improves consistency and reliability of future testing for messaging, notifications, and mass mailing without changing everyday user workflows.
Original PR description
PURPOSE Currently tools and asserts for mail tests are located inside test_mail module. It makes difficult to re-use them in application tests or force them to write custom quick and dirty tools and…
PURPOSE
Currently tools and asserts for mail tests are located inside test_mail
module. It makes difficult to re-use them in application tests or force them
to write custom quick and dirty tools and asserts. Purpose of this merge
is therefore to move tools classes and mocks to mail directly and use them
in various sub modules.
SPECIFICATIONS
Have class, mocks, tools and asserts available in mail so that all modules
below from mail can use them.
Including
* mock mail gateway in a clean way: mock server connection, email building
and sending;
* allow to simulate errors while sending emails to test corner cases;
* provide tools to insert emails in mail gateway;
* mock mail application to check record creation (message, notifications,
mails, ...);
* mock bus notification;
* provide clearer assert methods for bus and mail notifications;
* provide clearer emails sending and content methods;
* provide a with_user tool context manager for tests allowing to quickly
change current user given a login;
Most of those tools, asserts and mocks come from test_mail/tests/common.py.
They have been partially rewritten to be easier to use or to perform tests
more cleanly.
In this merge we gradually apply changes on existing tests in test_mail,
test_mass_mailing and test_mail_full. First commits will provide the new
classes, then tests will be updated, and finally dead classes removed.
Having it done step by step make it easier to read and understand.
LINKS
Task ID 2068986
PR #38070Work entry management has been split out so it can be used independently from Payroll, while Payroll no longer forces installation of Time Off. This gives businesses more flexibility to manage attendance and contract-based work entries without enabling the full payroll or leave stack.
Original PR description
PURPOSE ======== It isn't possible to use work entries without Payroll. And it isn't possible to use payroll without Time Off. Before this commit: 1. If we install work_entry application, we have no…
PURPOSE ======== It isn't possible to use work entries without Payroll. And it isn't possible to use payroll without Time Off. Before this commit: 1. If we install work_entry application, we have no menu neither views. And if we add a view for this model, no work entries are created. 2. If we use payroll application, Time Off application is also installed. After this commit: We have 4 different applications: 1. hr_work_entry: Basic models and views, no menu. No modification is made in this module. 2. hr_work_entry_contract: Add menu payroll with only work entries. Add work entry generation mechanism based on contract and calendars. Time off from resource.calendar.leaves are also taken in account. 3. hr_work_entry_holidays: Depends of hr_work_entry_contract, links work entries with hr_leave. Management of conflicts due to leaves not approved. 4. hr_payroll: Depends of hr_work_entry_contract. When we generate a payslip, work entries are generated for this employee. When we manually adapt work entry lines (number of work hours), amounts are re-computed. TaskID 2116977
Miscellaneous changes
Task [2075249](https://www.odoo.com/web#id=2075249&action=333&active_id=967&model=project.task&view_type=form&menu_id=4720) The commit dd627b9 added a default_get to retrieve the default analytic values. However, it was depending on self, which cannot be done in a api.model In this commit, we use an editable compute in order to update the analytic values in all the cases, and to reduce the duplication of the code. -- I confirm I have signed the CLA and read the PR guideline
Original PR description
Task [2075249](https://www.odoo.com/web#id=2075249&action=333&active_id=967&model=project.task&view_type=form&menu_id=4720) The commit dd627b9 added a default_get to retrieve the default analytic values. However, it was depending on self, which cannot be done in a api.model In this commit, we use an editable compute in order to update the analytic values in all the cases, and to reduce the duplication of the code. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#38279
— In a SO, create a section or a note; — Add an invisible modifier (with studio for example). Before this commit, the table-cells of the section/note were not aligned any more, and the delete button (trash-can icon) wasn't available. In a list, the invisible modifier uses a display: table-cell to keep table cells aligned. But in this specific case, the display is already none, because they are hidden cells. Therefore, the invisible modifier it removes the display: none in the hidden c
Original PR description
— In a SO, create a section or a note; — Add an invisible modifier (with studio for example). Before this commit, the table-cells of the section/note were not aligned any more, and the delete button (trash-can icon) wasn't available. In a list, the invisible modifier uses a display: table-cell to keep table cells aligned. But in this specific case, the display is already none, because they are hidden cells. Therefore, the invisible modifier it removes the display: none in the hidden cells, this has as outcome that the table cells are not aligned any more. Now, the hidden cells cannot have an invisible modifier. opw-2117714 Forward-Port-Of: odoo/odoo#40560
Process a workorder in the community version. Change the quantity to produce. The quantity to consume is adapted for each component. Save the workorder and the quantity to consume are rollbacked to the previous values Those quantities are readonly so not saved to the server. Task : 2127443 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
Original PR description
Process a workorder in the community version. Change the quantity to produce. The quantity to consume is adapted for each component. Save the workorder and the quantity to consume are rollbacked to the previous values Those quantities are readonly so not saved to the server. Task : 2127443 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#40557
In 13.0 odoo/odoo@6404233bb09 adds a new website_form_key field that was not taken into account when creating a form from website studio. This would cause that when editing the form, we would not see it in the list of form type, and so think it was doing another action that the current one. And if saved that could cause an issue because the form is now for doing something else and no way to change it back. With this changeset, we get back to what was before 13.0 and display a model in the "Cha
Original PR description
In 13.0 odoo/odoo@6404233bb09 adds a new website_form_key field that was not taken into account when creating a form from website studio. This would cause that when editing the form, we would not see it in the list of form type, and so think it was doing another action that the current one. And if saved that could cause an issue because the form is now for doing something else and no way to change it back. With this changeset, we get back to what was before 13.0 and display a model in the "Change Form Parameters" modal even if it has no associated form in the registry (through a website_form_key). opw-2118567 Forward-Port-Of: odoo/odoo#40533
This reverts commit 4f524dbad63dd476fcb85f8ed0d049fed782d876 that was merged with PR #36206. Those tags are unused, were added in account module by mistake (could maybe be acceptable in a l10n_xx module) and were rejected in master (at PR #35522) because of https://github.com/odoo/enterprise/pull/5052#issuecomment-540456794... Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the C
Original PR description
This reverts commit 4f524dbad63dd476fcb85f8ed0d049fed782d876 that was merged with PR #36206. Those tags are unused, were added in account module by mistake (could maybe be acceptable in a l10n_xx module) and were rejected in master (at PR #35522) because of https://github.com/odoo/enterprise/pull/5052#issuecomment-540456794... 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#40564
Using the debug mode on carrier and validate a picking with a carrier will block and run until request's timeout. It happens because log_xml create a new cursor and a new environement. So it should be flush before the ir.logging creation since it's in another env. Forward-Port-Of: odoo/odoo#40448
Original PR description
Using the debug mode on carrier and validate a picking with a carrier will block and run until request's timeout. It happens because log_xml create a new cursor and a new environement. So it should be flush before the ir.logging creation since it's in another env. Forward-Port-Of: odoo/odoo#40448
The sequence on product supplier info (vendor list) has the handle widget to be adjusted but was readonly. task-2123442 Forward-Port-Of: odoo/odoo#40435
Original PR description
The sequence on product supplier info (vendor list) has the handle widget to be adjusted but was readonly. task-2123442 Forward-Port-Of: odoo/odoo#40435
Task : https://www.odoo.com/web#id=2124093&action=327&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.206fb7fc5e31fb2f6c125a109ac3c028 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#40390
Original PR description
Task : https://www.odoo.com/web#id=2124093&action=327&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.206fb7fc5e31fb2f6c125a109ac3c028 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#40390
This is a weird situation, but the python handles it. Let's assume a many2one field F1 on model M1 with comodel M2, and on M2 the name field (which is the _rec_name) being itself a many2one, and the following scenario: - create a new record for M1 - for field F1, select 'Create and Edit': it opens a form view for M2 in a dialog - type something in F2 input, and click 'Quick create' - save the dialog Before this rev., the value of F1 was [object Object]. Now, the new value is p
Original PR description
This is a weird situation, but the python handles it. Let's assume a many2one field F1 on model M1 with comodel M2, and on M2 the name field (which is the _rec_name) being itself a many2one, and the following scenario: - create a new record for M1 - for field F1, select 'Create and Edit': it opens a form view for M2 in a dialog - type something in F2 input, and click 'Quick create' - save the dialog Before this rev., the value of F1 was [object Object]. Now, the new value is properly displayed. OPW 2091106 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#40493 Forward-Port-Of: odoo/odoo#40469
Before this commit, the key from the sales_timesheet.progressbar was in the translation terms, if one of this was translated, then an error was raised, the translated key wasn't expected into the function. Now, only the labels can be translated. opw-2123570 Forward-Port-Of: odoo/odoo#40486
Original PR description
Before this commit, the key from the sales_timesheet.progressbar was in the translation terms, if one of this was translated, then an error was raised, the translated key wasn't expected into the function. Now, only the labels can be translated. opw-2123570 Forward-Port-Of: odoo/odoo#40486
### Description of the issue/feature this PR addresses: If there is an error in AFIP with validation an electronic invoice related to AFIP code of the country of the partner, we are not able to check, consult or fix the AFIP code in the country. ### Current behavior before PR: There is not way to consult the AFIP code of a country if we have an edi error, also this code can not be set or edited if need to be fixed, if create new countries we can not set AFIP code field because is not sh
Original PR description
### Description of the issue/feature this PR addresses: If there is an error in AFIP with validation an electronic invoice related to AFIP code of the country of the partner, we are not able to…
### Description of the issue/feature this PR addresses: If there is an error in AFIP with validation an electronic invoice related to AFIP code of the country of the partner, we are not able to check, consult or fix the AFIP code in the country. ### Current behavior before PR: There is not way to consult the AFIP code of a country if we have an edi error, also this code can not be set or edited if need to be fixed, if create new countries we can not set AFIP code field because is not show to the user. ### Desired behavior after PR is merged: This PR add the AFIP code field to both tree (for consult) and form view (in developer mode only) to let the user the possibility to set/edit this field for any of the next cases: * need to consult the code. * need to be changed. * need to create a new country that exist in AFIP list and not in odoo and need to add the related AFIP code -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#39542
Forward-Port-Of: odoo/odoo#40452 Forward-Port-Of: odoo/odoo#40416
Original PR description
Forward-Port-Of: odoo/odoo#40452 Forward-Port-Of: odoo/odoo#40416
Steps to reproduce the bug: - Install Inventory, Sales - In General Settings/Inventory/Traceability tick "Lots & Serial Numbers" - Create a stockable product A (e.g. duplicate Apple E-COM08) tracked by lots - Update Qty on Hand: put the quantity inside a lot - Change Demo User's settings: remove Inventory access - Connect as Demo, create a quotation with A, try to confirm sale Bug: An access error was raised. opw:2092809 Forward-Port-Of: odoo/odoo#40436
Original PR description
Steps to reproduce the bug: - Install Inventory, Sales - In General Settings/Inventory/Traceability tick "Lots & Serial Numbers" - Create a stockable product A (e.g. duplicate Apple E-COM08) tracked by lots - Update Qty on Hand: put the quantity inside a lot - Change Demo User's settings: remove Inventory access - Connect as Demo, create a quotation with A, try to confirm sale Bug: An access error was raised. opw:2092809 Forward-Port-Of: odoo/odoo#40436
The structure of website forms has been changed in: - odoo/odoo@1f9b416878 - odoo/odoo@6404233bb0 Since it has not been adapted for the website forms created in studio, when a field is added after studio created a form, it would not have the same structure => so this was ugly visually. opw-2118567 Forward-Port-Of: odoo/enterprise#6797
Original PR description
The structure of website forms has been changed in: - odoo/odoo@1f9b416878 - odoo/odoo@6404233bb0 Since it has not been adapted for the website forms created in studio, when a field is added after studio created a form, it would not have the same structure => so this was ugly visually. opw-2118567 Forward-Port-Of: odoo/enterprise#6797
Fix for TB when generating 281.45 form: File "/data/build/enterprise/l10n_be_hr_payroll/wizard/hr_payroll_281_45_wizard.py", line 50, in action_generate_file_281_45 employee.message_post(body=_("The 281.45 sheet has been generated"), attachments=[(filename, pdf)]) TypeError: 'str' object is not callable Forward-Port-Of: odoo/enterprise#6136
Original PR description
Fix for TB when generating 281.45 form:
File "/data/build/enterprise/l10n_be_hr_payroll/wizard/hr_payroll_281_45_wizard.py", line 50, in action_generate_file_281_45
employee.message_post(body=_("The 281.45 sheet has been generated"), attachments=[(filename, pdf)])
TypeError: 'str' object is not callable
Forward-Port-Of: odoo/enterprise#6136The field `EXTXVAL` must be rounded with 2 decimals, which might not always be the case because of float representation. opw-2122955 Forward-Port-Of: odoo/enterprise#6798
Original PR description
The field `EXTXVAL` must be rounded with 2 decimals, which might not always be the case because of float representation. opw-2122955 Forward-Port-Of: odoo/enterprise#6798
…tion Forward-Port-Of: odoo/enterprise#6780
Original PR description
…tion Forward-Port-Of: odoo/enterprise#6780
…on payslip Forward-Port-Of: odoo/enterprise#6779
Original PR description
…on payslip Forward-Port-Of: odoo/enterprise#6779
Usecase is rather simple do a delivery order with UPS in a production environement. The return label and object on UPS created are samples. It's due to [1] that update suds to zeep and ''' security['location'] = '%s%s' % (self.endurl, api) ''' just do nothing so the processShipment call will take the wsdl soap address that is the test server url. Fix it by creating a service with the correct production url or test url. [1] commit 8744f072168d653a4dfa9d6e0cf62c80321d2688 opw-21
Original PR description
Usecase is rather simple do a delivery order with UPS in a production environement. The return label and object on UPS created are samples. It's due to [1] that update suds to zeep and ''' security['location'] = '%s%s' % (self.endurl, api) ''' just do nothing so the processShipment call will take the wsdl soap address that is the test server url. Fix it by creating a service with the correct production url or test url. [1] commit 8744f072168d653a4dfa9d6e0cf62c80321d2688 opw-2125049 Forward-Port-Of: odoo/enterprise#6769