Daily updates from Odoo
Navigate
Branch
Tuesday, January 21, 2020
38 changes
Enhancements to existing features
This update cleans up how document followers are managed across mail features, making the behavior clearer and easier to maintain. It also streamlines related web routes and improves follower information handling, which should support better performance and reliability in messaging workflows.
Original PR description
Follower model holds relationship between a document, and a partner or a channel. It is used mainly through dedicated routes and methods as it has been optimized for performance reasons. In this commit we go further in route and management cleaning, trying to optimize follower management using notably sudo to lessen query count.
Email Marketing and SMS Marketing activities now appear as separate entries in the activity menu instead of being grouped together. This makes the alerts clearer, uses the right app icons, and opens only the relevant email or SMS marketing activities when selected.
Original PR description
PURPOSE mass_mailing and mass_mailing_sms activities are grouped as 1 item in the systray due to them using the same model name (sms inherits and distinguishes itself with a different field.Selection value). This is confusing behavior because they are 2 separate modules and the default icon ends up mismatching the sms-related activities. SPECIFICATIONS Split mass_mailing and mass_mailing_sms activities into 2 separate items in systray. Additionally, make it so when mass_mailing and mass_mailing_sms activities are clicked on, only the relevant activities are shown to prevent confusion. In order to only show relevant activities, an optional "domain" check is needed in __systray_activity_menu.js__ for when overriding _systray_get_activities_ methods provide a domain to apply. Task: 2169498 PR #43272
This improves how Odoo gathers related record data, reducing repeated work and making better use of caching. Business users should see faster responses in areas that process large sets of records, especially where reports, lists, or automations rely on these lookups.
Original PR description
Reimplementation of (part of) #38850 TODO: - [x] Make `_RelationalMulti.__get__` use the new and improved `mapped` instead of naively reimplementing the old one
This change adds compatibility tools that let older Odoo web screens and newer Owl components work together during the ongoing interface modernization. It reduces migration risk for the web client and updates the pivot view to use the new adapter approach without aiming to change day-to-day business workflows.
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
This update speeds up common data lookups by reusing a previously calculated cache value instead of recalculating it repeatedly. It can make heavily used operations noticeably faster across Odoo, while also preventing website sale tests from changing shared environment settings unexpectedly.
Original PR description
It's caches all the way down `Field.__get__` and `BaseModel.mapped` are up to 2x faster thanks to this patch When paired with #42611, `BaseModel.mapped` becomes blazing fastererer Benchmarks will be made public later (?)
This update adds documentation for a Gantt view option that controls dynamic date ranges. It helps teams understand and use the planning view configuration more confidently, with no direct change to business workflows.
Original PR description
Add documentation about the new gantt parameters. The parameter was added in enterprise (odoo/enterprise#7640). Task #2168740
New users now receive a default profile picture, making profiles look consistent even when no photo is uploaded. Unassigned records in kanban-style views now show a clear unassigned icon and hover text, helping teams quickly distinguish missing assignments from users without photos.
Original PR description
======= Purpose ======= When you go in project (or any other module) and nobody is assigned to a task, the default 'missing image' is displayed. Because of that, there is no way of telling if the user is missing a profile picture or if nobody is assigned to the task. =========== Specifications =========== - Set a default image for new users - Each user should have a distinct backgroung color - If the record is unassigned display user-slash icon and unassigned on hover TaskID: 2060206
Swiss invoicing now supports version 2 of the QR Invoice standard planned for 2020. This improves payment accuracy by using the correct invoice payment reference and supporting QR-IBANs required for QR reference payments.
Original PR description
- [x] Depends on #35873 - [ ] for tests fixing depends on #35979 [this needs rebase] ## Description of the issue/feature this PR addresses: The QR-Invoice is planned to land in June 2020. (as it was…
- [x] Depends on #35873 - [ ] for tests fixing depends on #35979 [this needs rebase] ## Description of the issue/feature this PR addresses: The QR-Invoice is planned to land in June 2020. (as it was delayed) Since it was developed [IMP] l10n_ch: Swiss QR Invoice version 0200 Swiss QR Invoice with QR Reference (QRR) needs a special IBAN named QR-IBAN. A QRR is exactly the same as an ISR Reference. * Add a new res.partner.bank type `qr-iban` * Fix Reference on QR-invoice which was subscription number instead of QRR * Move QR code logic for report on invoice instead of res.partner.bank * Change addresses to "K", combined, in order to not have to split the building number from the addresses * Upgrade QR-Invoice to 0200 reminder: *to activate Swiss QR-code add the system parameter* **l10n_ch.print_qrcode** https://www.paymentstandards.ch/dam/downloads/ig-qr-bill-en.pdf ## Current behaviour before PR: The version was still version 1. The reference used was a the subscription number (previously badly named ISR reference on the bank). ## Desired behaviour after PR is merged: Version 2 of QR-Invoice specs. The reference on the invoice QR must be a Payment Reference in our case the ISR reference which is computed on the invoice (`l10n_ch_isr_number`) ### Current output with fixed reference  To be done later, add the optional bill information from Swico standards. Be able to print a QR code with the ISR reference of the invoice (account.move). -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change makes the employee form controller easier to customize for specific business needs. It helps organizations adapt HR workflows with less effort while keeping the standard employee management experience intact.
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
Event and website event track Gantt views now open around the relevant event or record dates instead of defaulting to calendar period starts. The view can also choose a more suitable timescale automatically and avoids an error when switching from grouped list views.
Original PR description
Purpose ======= Improve the gantt views in Event, to show relevant data. Specifications =========== We want to gantt view to start at the `initialDate`, and not at the beginning of the year/month/week. For that purpose, we added a new parameter on the gantt view, `dynamic_range`. If this attributes is set, the gantt view starts at the `initialDate` (now, or defined in the parameters) instead of starting at the beginning of the year/month/day. We also want to have an automatic scale. If all the records are on the current week, we want the scale to be "week". Fix a bug when in the tree view we group by day:hours, and then we go to the gantt view. Task 2168740
Kanban cards now clearly show when a record has no assigned person, using an unassigned icon and hover text instead of a generic missing image. New users also receive a default profile image, helping teams distinguish between missing photos and genuinely unassigned work.
Original PR description
======= Purpose ======= When you go in project (or any other module) and nobody is assigned to a task, the default 'missing image' is displayed. Because of that, there is no way of telling if the user is missing a profile picture or if nobody is assigned to the task. =========== Specifications =========== - Set a default image for new users - Each user should have a distinct backgroung color - If the record is unassigned display user-slash icon and unassigned on hover TaskID: 2060206
Accounting reports now have cleaner alignment, better spacing, and more consistent printed output. Users can also search more reports and see totals handled consistently, making financial review easier and reducing confusing display issues.
Original PR description
TODO : complete commit message
Resolved issues and error corrections
The base language list now replaces Filipino with Tagalog to better match common language naming and avoid confusion with Finnish browser language detection. This helps prevent Finnish users from being incorrectly directed to Filipino-language pages while keeping the expected Philippines language option available as Tagalog.
Original PR description
This is the second move to replace Filipino by Tagalog language Using Filipino (code fil_PH) is problematic as conflicts with Finnish (code fi_FI) and users having their browser in Finnish were…
This is the second move to replace Filipino by Tagalog language Using Filipino (code fil_PH) is problematic as conflicts with Finnish (code fi_FI) and users having their browser in Finnish were redirected to the Filipino version of the website (cf discussion at opw-2172710). This problem was also raised in other softwares like in the below discssion in Mozilla L10N groups https://groups.google.com/forum/#!topic/mozilla.dev.l10n/TW2qYyDDNoE Quoting the discussion in above thread: > Filipino is the national language of the Philippines, but it is > commonly referred to (and registered as) Tagalog, since most of the > terms therein were derived from it (Tagalog). This commit targets the master (future 14.0 as of today), adds a new Tagalog language and removes the Filipino. In 12.0, only the Tagalog was added at odoo/odoo#43633. As fil_PH is only translated on odoo-com project but remains at 0% in other Transifex project, it is assumed the language switch won't impact too many people.
This update corrects how website, sales, mailing, and web interface templates mark text for translation. It prevents layout or style text from being sent to translators while ensuring real user-facing labels are properly translatable, improving localization quality across Odoo.
Original PR description
This commit fix most `t-set` errors that either led to:
1. unwanted text to be considered as translatable.
eg: `<t t-set="classes">text-left bg-100 p4</t>` would create an
`ir.translation`.
2. text that should be translatable were not.
eg: `<t t-set="text" t-value="'Both'"/>` would not create an
`ir.translation` while it should.
If a text should be translatable, it should never be inside a `t-value`:
- `<t t-set="text">Both</t>`
If a text should not be translatable, it sould either be inside `t-value`,
`t-valuef` or the `<t>` tag should have `t-translation="off"`:
- `<t t-set="classes" t-translation="off">text-left bg-100 p4</t>`
- `<t t-set="classes" t-valuef="text-left bg-100 p4"/>`
- `<t t-set="classes" t-value="'text-left bg-100 p4'"/>`
https://github.com/odoo/odoo/pull/43660
https://github.com/odoo/enterprise/pull/7839
https://github.com/odoo/design-themes/pull/203This fixes the styling of a website button snippet so buttons display as intended again. It helps keep website pages visually consistent and prevents a small design regression from affecting visitors.
This fixes a timing issue where quickly creating a related record while editing order lines could reset or disrupt unsaved line changes. It makes sales and rental form interactions more reliable and also corrects product configurator dialogs so follow-up choices appear in front as expected.
Original PR description
Let's assume a form view containing a many2one with an onchange that updates the value of a one2many. Do a quick create in the many2one. While the name_create request is pending, add a row to the…
Let's assume a form view containing a many2one with an onchange that updates the value of a one2many. Do a quick create in the many2one. While the name_create request is pending, add a row to the one2many but do not leave it. When the name_create returns, and the onchange has been performed, the one2many is reset, and the row is no longer in edition (worse, it could be invalid, i.e. in a state that the user could not have reached in a normal situation). This commit fixes this issue by considering the whole [name_create + onchange] operation as one. This operation is executed in the mutex of the model, so the other request (adding a row to the one2many) is delayed until the many2one value has been correctly set. This fixes an issue with the sale and rental tours (on sale_order), that had been deactivated for a while. 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
This fix corrects how template text is marked for translation across several Odoo Enterprise modules. It helps prevent technical labels or styling text from appearing to translators while ensuring real user-facing words are available for translation.
Original PR description
This commit fix most `t-set` errors that either led to:
1. unwanted text to be considered as translatable.
eg: `<t t-set="classes">text-left bg-100 p4</t>` would create an
`ir.translation`.
2. text that should be translatable were not.
eg: `<t t-set="text" t-value="'Both'"/>` would not create an
`ir.translation` while it should.
If a text should be translatable, it should never be inside a `t-value`:
- `<t t-set="text">Both</t>`
If a text should not be translatable, it sould either be inside `t-value`,
`t-valuef` or the `<t>` tag should have `t-translation="off"`:
- `<t t-set="classes" t-translation="off">text-left bg-100 p4</t>`
- `<t t-set="classes" t-valuef="text-left bg-100 p4"/>`
- `<t t-set="classes" t-value="'text-left bg-100 p4'"/>`
https://github.com/odoo/odoo/pull/43660
https://github.com/odoo/enterprise/pull/7839
https://github.com/odoo/design-themes/pull/203Features or functions removed from Odoo
An old web controller that is no longer used has been removed. This keeps the web module cleaner and easier to maintain, with no expected change for users.
Original PR description
This controller is no more used, probably used in the past with calendar invitation. 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
Code cleanup and technical improvements
The cohort reporting view was updated to use newer internal compatibility tools. This keeps the feature aligned with the platform's technical direction without changing the expected user experience.
Original PR description
This commit changes CohortController base class to AbstractControllerAdapter and uses the Odoo legacy custom_events because of the adapter.
Miscellaneous changes
`AttributeError: 'tuple' object has no attribute 'startswith'` When given headers that are tuples. They are expected to be string, as per [1]. The issue was introduced with [2], indeed the code was moved from inside a dict where `,` was the usual dict separator to outside of a dict where `,` at the end made them tuples. To reproduce the issue, run the `test_mail` suite after having `website_mail_channel` installed. Issue highlighted as part of task-2178641 [1] https://docs.python
Original PR description
`AttributeError: 'tuple' object has no attribute 'startswith'` When given headers that are tuples. They are expected to be string, as per [1]. The issue was introduced with [2], indeed the code was moved from inside a dict where `,` was the usual dict separator to outside of a dict where `,` at the end made them tuples. To reproduce the issue, run the `test_mail` suite after having `website_mail_channel` installed. Issue highlighted as part of task-2178641 [1] https://docs.python.org/3/library/email.policy.html#email.policy.Policy.header_store_parse [2] cae1c3977ff2777dcb77e4c2a51deb72ee57db22 Forward-Port-Of: odoo/odoo#43688 Forward-Port-Of: odoo/odoo#43675
The `ref` field on `account.move` is not required and can yield a falsy value. This produces a TypeError while doing the comparison in sorted(). closes #42434 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#42708
Original PR description
The `ref` field on `account.move` is not required and can yield a falsy value. This produces a TypeError while doing the comparison in sorted(). closes #42434 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#42708
When a payment line is created, and then the order is reloaded, by the synchronization feature for example, the name displayed on the payment line is empty. This happens because the field name is not saved on the server, so instead of using it, we are directly taking the name of the payment method linked to the payment line. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the
Original PR description
When a payment line is created, and then the order is reloaded, by the synchronization feature for example, the name displayed on the payment line is empty. This happens because the field name is not saved on the server, so instead of using it, we are directly taking the name of the payment method linked to the payment line. 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#43453 Forward-Port-Of: odoo/odoo#43385
Steps to reproduce: - Install website_sale_wishlist,stock,sale_management,contacts - General Settings>Sales>Multiple Sales Prices per Product - Create or edit a product, assign 2 different prices in pricelists A and B - Publish it to the website - If your user is Mitchell Admin, go to its related res.partner, Sales & Purchases tab/Pricelist, choose pricelist B - Create a public user and assign it pricelist A - Go to the website/shop - Reach out the product and add to the wishlist Whe
Original PR description
Steps to reproduce: - Install website_sale_wishlist,stock,sale_management,contacts - General Settings>Sales>Multiple Sales Prices per Product - Create or edit a product, assign 2 different prices in…
Steps to reproduce: - Install website_sale_wishlist,stock,sale_management,contacts - General Settings>Sales>Multiple Sales Prices per Product - Create or edit a product, assign 2 different prices in pricelists A and B - Publish it to the website - If your user is Mitchell Admin, go to its related res.partner, Sales & Purchases tab/Pricelist, choose pricelist B - Create a public user and assign it pricelist A - Go to the website/shop - Reach out the product and add to the wishlist When the current user is internal the product page will display price of B, but if you add the product to the wishlist, whishlist displays public price Same for the portal user. This happend because to avoid returning 500 when the product is unpublished c93f371d67def785f5b6d90f96eed8343e962203 the product is filtered using sudo() but the recordset is also returned with the sudo environment. Using it just to filter solve the issue opw-2166484 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43617
PURPOSE As Certification PDF can be called on failed user input, generate a certification of failure in that case. SPECIFICATIONS In the survey_report_templates.xml, when user_input.quizz_passed is false, a certification of failure can be generated. LINKS PR Task 2148449 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.
Original PR description
PURPOSE As Certification PDF can be called on failed user input, generate a certification of failure in that case. SPECIFICATIONS In the survey_report_templates.xml, when user_input.quizz_passed is false, a certification of failure can be generated. LINKS PR Task 2148449 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#42811
1- create a group payment (10 ~ 15 invoices); 2- Open the created journal entry. The first issue we see is that the breadcrumb is too big to the size of the screen. 3- Open the 'Reconciled Entries'. Before this commit, the screen was completely shifted and not visible. This occurs also because the breadcrumb is too big. Now, the references added to the name of the entry is limited to 50 characters. opw-2166551 Forward-Port-Of: odoo/odoo#43614
Original PR description
1- create a group payment (10 ~ 15 invoices); 2- Open the created journal entry. The first issue we see is that the breadcrumb is too big to the size of the screen. 3- Open the 'Reconciled Entries'. Before this commit, the screen was completely shifted and not visible. This occurs also because the breadcrumb is too big. Now, the references added to the name of the entry is limited to 50 characters. opw-2166551 Forward-Port-Of: odoo/odoo#43614
Bug in 13.0 regarding company_id field of partners when creating them from their parent contact or when setting their parent. The field 'company_id' of res.partner is set by an onchange on 'parent_id' to that of it's parent; unfortunately the field is readonly if parent_id is set and not set to force_save. Furthermore, creating a child partner from the main one (in the 'Contact' tab of the main partner form view) does not follow the same behaviour (company_id is unset in that case, meanin
Original PR description
Bug in 13.0 regarding company_id field of partners when creating them from their parent contact or when setting their parent. The field 'company_id' of res.partner is set by an onchange on 'parent_id' to that of it's parent; unfortunately the field is readonly if parent_id is set and not set to force_save. Furthermore, creating a child partner from the main one (in the 'Contact' tab of the main partner form view) does not follow the same behaviour (company_id is unset in that case, meaning that children don't have the same company as their parent). Since the company_id is already set by an onchange when we change 'parent_id' and set to readonly in that case, I assume the expected behaviour is actually that children partners should have the same company as their parent by default. Fine tuning of aa594d1269b081339bef3d3b366580e41fa5cdd1 opw:2176384,2167106 Forward-Port-Of: odoo/odoo#43539
The discount_amount didn't consider the quantity on Sales Order Line. e.g: 100€ | 10% discount | 8 products --> discount_amount was 10 € instead of 80€ Fixes #43242 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43587
Original PR description
The discount_amount didn't consider the quantity on Sales Order Line. e.g: 100€ | 10% discount | 8 products --> discount_amount was 10 € instead of 80€ Fixes #43242 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43587
Description of the issue/feature this PR addresses: new 10% tax from October 2019 Current behavior before PR: tax does not exist Desired behavior after PR is merged: tax exists -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#42566
Original PR description
Description of the issue/feature this PR addresses: new 10% tax from October 2019 Current behavior before PR: tax does not exist Desired behavior after PR is merged: tax exists -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#42566
Steps to reproduce the bug: - Let's consider a delivery method DM with fixed price of 10€ and a margin of 20% - Let's consider a storable product P - Create a SO for P and get the rate (12€) but don't add it on the SO - Confirm the SO and process the delivery Bug: A SO line was created for the freight cost without the margin. So it was 10€ instead of 12€. opw:2144894 Forward-Port-Of: odoo/odoo#43206 Forward-Port-Of: odoo/odoo#43083
Original PR description
Steps to reproduce the bug: - Let's consider a delivery method DM with fixed price of 10€ and a margin of 20% - Let's consider a storable product P - Create a SO for P and get the rate (12€) but don't add it on the SO - Confirm the SO and process the delivery Bug: A SO line was created for the freight cost without the margin. So it was 10€ instead of 12€. opw:2144894 Forward-Port-Of: odoo/odoo#43206 Forward-Port-Of: odoo/odoo#43083
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#43570 Forward-Port-Of: odoo/odoo#43561
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 Forward-Port-Of: odoo/odoo#43570 Forward-Port-Of: odoo/odoo#43561
When writting number on the point of sale keypad, if you click on the "+/-" button, you will get 0 (with buffer "-0"), but then you need to backspace 2 times to remove "-". This seems odd since this mean that: => "+/-" "backspace" "backspace" "5" will get 5.0 units => "+/-" "backspace" "backspace" "backspace" will remove line instead of what would be expected: => "+/-" "backspace" "5" will get 5.0 units => "+/-" "backspace" "backspace" will remove the line opw-2169157 Forward-Port-Of: odoo
Original PR description
When writting number on the point of sale keypad, if you click on the "+/-" button, you will get 0 (with buffer "-0"), but then you need to backspace 2 times to remove "-". This seems odd since this mean that: => "+/-" "backspace" "backspace" "5" will get 5.0 units => "+/-" "backspace" "backspace" "backspace" will remove line instead of what would be expected: => "+/-" "backspace" "5" will get 5.0 units => "+/-" "backspace" "backspace" will remove the line opw-2169157 Forward-Port-Of: odoo/odoo#43495
Courtesy of Amy from the videos! Forward-Port-Of: odoo/enterprise#7625
Original PR description
Courtesy of Amy from the videos! Forward-Port-Of: odoo/enterprise#7625
Only show this information to contract managers. It should not be disclosed to other employees. Forward-Port-Of: odoo/enterprise#7281
Original PR description
Only show this information to contract managers. It should not be disclosed to other employees. Forward-Port-Of: odoo/enterprise#7281
### Issue - Setup a company and a customer with addresses in India (used data from task 58746) - Create a quote > confirm - Delivery note > Fedex international > Validate AttributeError: 'NoneType' object has no attribute 'Purpose' ### Cause The CommercialInvoice object is not generated. ### Solution As it was generated before, I generate it only if it doesn't exists yet. **OPW-2167301** Forward-Port-Of: odoo/enterprise#7822
Original PR description
### Issue
- Setup a company and a customer with addresses in India
(used data from task 58746)
- Create a quote > confirm
- Delivery note > Fedex international > Validate
AttributeError: 'NoneType' object has no attribute 'Purpose'
### Cause
The CommercialInvoice object is not generated.
### Solution
As it was generated before, I generate it only if it doesn't exists
yet.
**OPW-2167301**
Forward-Port-Of: odoo/enterprise#7822Planning user need to read the employee_token to generate the url but they don't have access to it. You can reproduce the issue solved by this PR on the runbot v13.0 remove all HR access right accept planning to demo user, Planning > Schedule by Employee > Send Schedule > Publish & Send get an access error. Forward-Port-Of: odoo/enterprise#7812
Original PR description
Planning user need to read the employee_token to generate the url but they don't have access to it. You can reproduce the issue solved by this PR on the runbot v13.0 remove all HR access right accept planning to demo user, Planning > Schedule by Employee > Send Schedule > Publish & Send get an access error. Forward-Port-Of: odoo/enterprise#7812
opw-2172800 Forward-Port-Of: odoo/enterprise#7798 Forward-Port-Of: odoo/enterprise#7794
Original PR description
opw-2172800 Forward-Port-Of: odoo/enterprise#7798 Forward-Port-Of: odoo/enterprise#7794
Steps to reproduce the bug: - Install l10n_mx_edi - Uninstall l10n_mx_edi - Send and print an invoice or cancel and reset to draft an invoice Bug: A traceback was raised because the function l10n_mx_edi_is_required didn't exist. opw:2155904 Forward-Port-Of: odoo/enterprise#7610 Forward-Port-Of: odoo/enterprise#7601
Original PR description
Steps to reproduce the bug: - Install l10n_mx_edi - Uninstall l10n_mx_edi - Send and print an invoice or cancel and reset to draft an invoice Bug: A traceback was raised because the function l10n_mx_edi_is_required didn't exist. opw:2155904 Forward-Port-Of: odoo/enterprise#7610 Forward-Port-Of: odoo/enterprise#7601
- Install more than one language - Do not install 'es_MX' language - Install l10n_mx accounting - Go to any contact, and change the country A crash occurs since `es_MX` is not installed. opw-2172333 Forward-Port-Of: odoo/enterprise#7807
Original PR description
- Install more than one language - Do not install 'es_MX' language - Install l10n_mx accounting - Go to any contact, and change the country A crash occurs since `es_MX` is not installed. opw-2172333 Forward-Port-Of: odoo/enterprise#7807