- May 16, 2023
-
-
Gauthier Wala (gawa) authored
- Create a Deferred Revenue Model on a Current Liability account - Create a Sale Order yourself (User 1), with Salesperson User 2 - Create the invoice from it - Remove the salesperson from the invoice and add User 3 instead - Change the account to the Revenue Model's one - Post the invoice - Post the deferred revenue created => User 2 is follower of the entries generated The problem is that the context comes from the sales order, and contains a `default_user_id` in the context. The solution provided is to remove it from the context given, as it serves no purpose (the invoices are already created). opw-3141495 closes odoo/odoo#121514 X-original-commit: 31046332 Signed-off-by:
Victor Feyens (vfe) <vfe@odoo.com> Signed-off-by:
Wala Gauthier (gawa) <gawa@odoo.com>
-
Julien Van Roy authored
When unit prices have more than 2 digits, it is currently not reflected in the UBL formats. Consequently, the line amounts are not equal to the unit price * quantity (assume there is no discount, charges or allowance) and it raises validation errors: "Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount". To fix this, we no longer round the unit prices. NB: the decimal accuracy should be set in the settings (otherwise, the default is 2 digits for unit prices). See https://docs.peppol.eu/poacc/billing/3.0/bis/#_rounding opw-3290035 task-3302904 closes odoo/odoo#121508 X-original-commit: d7d41991 Signed-off-by:
Laurent Smet <las@odoo.com> Signed-off-by:
Julien Van Roy <juvr@odoo.com>
-
roen-odoo authored
Current behavior: When you apply a promotion on a sale order, then settle it in a PoS session, the promotion will be applied two times. One time from the sale order, and one from the PoS. Steps to reproduce: - Create a promotion program with a discount of 50% with no code needed - Add the promotion program to the PoS - Create a sale order with a product of 200$ and apply the promotion - The total price of the order should be 100$ - Settle the sale order in a PoS session - The promotion is applied twice and the total price is 50$ instead of 100$ opw-3247545 closes odoo/odoo#119673 Signed-off-by:
Joseph Caburnay (jcb) <jcb@odoo.com>
-
David Tran authored
The note "Quotation viewed by customer" posted when a public/portal user access an order came with the order's partner name instead of the actual user's partner name This made confused for internal users to see something in internal note like **Colleen Diaz** with a message **Quotation viewed by customer Nicole Ford** This commit makes sure to use the right partner name except the quotation is viewed anonymously (with access token) closes odoo/odoo#121515 X-original-commit: 3489fd16 Signed-off-by:
Victor Feyens (vfe) <vfe@odoo.com>
-
Mahdi cheikh rouhou (macr) authored
When we have automatic invoicing enabled , the email sent to the user when he confirms his payment online will contain a button 'View Journal Entry' To reproduce the error : 1- Install accounting, website, ecommerce, sales apps 2- Go to website settings and activate automatic invoice 3- Install test payment method and activate it 4- Log out of the current account 5- Make a purchase of any item and confirm the payment 6- You will receive 2 emails , the second one will have the invoice and it will contain a button View journal entry The origin of the problem is not providing model_description when sending the invoice so it will take the display_name of the model 'account.move' by default which is Journal entry. opw-3271345 closes odoo/odoo#120124 Signed-off-by:
Victor Feyens (vfe) <vfe@odoo.com>
-
Preksha Chouhan authored
ValueError 'unknown colour specifier' occurs when we access export_icon_to_png(). This error occurs when we change the colour of an icon in the mailing template, because the value of alpha (opacity) in 'rgba' is in the range of 0 to 1, but PIL Image support colour opacity range 0 to 255. This commit converts the opacity value range (0 to 1) to a range (0 to 255) compatible with the PIL image library when the colour specifier is 'rgba'. sentry - 3933353285 closes odoo/odoo#116476 Signed-off-by:
David Monjoie (dmo) <dmo@odoo.com>
-
niyasraphy authored
before this commit, on validating multiple picking from the transfers tree view is raising singleton exception. * enable "Ship Later" feature in pos. * create two orders with ship later. * from inventory app, select the above two pickings are from action button click validate * exception is raised. after this commit, no traceback wont be shown. closes odoo/odoo#120787 Signed-off-by:
Joseph Caburnay (jcb) <jcb@odoo.com>
-
- May 15, 2023
-
-
Mylyna Hy authored
Problem: The error "There is no chart of accounts installed for this company..." appears for POS shop configurations if they don't have a chart template configured for the company. It doesn't take into account if the company has its own set of accounts so it will always show the error unless the chart template is set. Solution: Include an additional condition to check if the company has accounting entries which is used to check if the company has used its own set of chart of accounts for accounting. Purpose: The error will only appear if the company has no chart template set or no accounting entries. opw-3291399 closes odoo/odoo#121296 X-original-commit: b5106da3 Signed-off-by:
Laurent Smet <las@odoo.com> Signed-off-by:
Mylyna Hy (myhy) <myhy@odoo.com>
-
Nicolas Lempereur authored
Running "Numbering system" JS test on current version of chrome, two assertions fails. This is happening because of an update of localization. Related to commit: 5bfe7321 closes odoo/odoo#121431 Signed-off-by:
Nicolas Lempereur (nle) <nle@odoo.com>
-
Benjamin Vray authored
This commit fixes a bug with the navbar links in the header of a website on mobile. When the text of a link is long enough to be wider than the screen, the text does not wrap to the next line as intended, but instead overflows to the right outside of the screen, causing part of the text to be hidden. Steps to reproduce the bug: - Edit the text of one of the menu links on a website to make it longer than the width of the mobile screen. - Bug: In mobile view, part of the link text is hidden. This bug occurs with both the "default" hamburger type and the "off-canvas" hamburger type. opw-3233684 closes odoo/odoo#121377 X-original-commit: 0a575bea Signed-off-by:
Quentin Smetz (qsm) <qsm@odoo.com> Signed-off-by:
Vray Benjamin (bvr) <bvr@odoo.com>
-
Maruan Aguerdouh (magm) authored
Steps to reproduce: 1. Install CRM and dashboard module 2. Go to CRM > Reporting > Forecast > Group By: Salesperson. 3. Click on the graph icon and then on the Stacked icon. 4. Click on Favorites > Add to My dashboard > Add. 5. Go to dashboard. Issue: The graph is not displayed in the dashboard, instead we got an error "Cannot read properties of undefined", which is caused because of the new GraphView for the Forecast that's not working for this version. Solution: Added legacy ForecastGraphView as in previous similar fixes, to get the proper view. Forward bot up to saas-15.2 similar to https://github.com/odoo/odoo/pull/86571/files opw-3284731 closes odoo/odoo#120931 Signed-off-by:
Mathieu Duckerts-Antoine <dam@odoo.com>
-
Florian Charlier authored
For performance reason, we avoided computing goals for the set of users that didn't log in recently (See ec0c0f29). However, users can stay logged in for a while without having a new "log in event" (password asked), such that active internal users can keep old values in their challenges when reports are sent, which is not good. Until an improvement can be implemented in master, we drop this time constraint for active internal users. A test is added, checking the behavior of the method called by the cron. Task-3226408 closes odoo/odoo#121301 X-original-commit: 6c77dd82 Signed-off-by:
Thibault Delavallee (tde) <tde@openerp.com>
-
Arnold Moyaux authored
product variable used in the rounding precision come from the upper loop and won't work for all the quantites. opw-3229080 closes odoo/odoo#121247 X-original-commit: ea923a08 Signed-off-by:
Tiffany Chang <tic@odoo.com>
-
Benjamin Vray authored
Before this commit, links scrolling to an anchor with a special character did not work and displayed a traceback. The issue was that to check that the anchor is valid, we don't need to check that the anchor is a valid url as we have been doing since these commits [1], [2]. But we only need to check if the jQuery selector is valid to correctly target the element to which the page must scroll. Indeed, the anchor widget returns stuff like 'ok%C3%A9%25' when typing 'oké%' wich is not valid jQuery selector. It has to be encoded to '#ok\\%C3\\%A9\\%25' to be valid and that's what this commit does. We also changed the way to display a new anchor to the user in this commit. Before, we showed the anchor unencoded in a notification and now we show it encoded. That way, if the user copies the anchor from the notification, it's the real anchor. Also, this commit detect if the success URL of the redirect of a from is the current page to perform a scroll to the anchor instead of a redirect. To make this comparison, we needed to add the url code of the language of the current page to the session info. Also, before this commit, the page froze when we clicked on the "submit" button of a form that redirected to an anchor that did not exist. [1]: https://github.com/odoo/odoo/commit/0abfaeda96c2eaa868cc7fc5fa1926dfa90fc420 [2]: https://github.com/odoo/odoo/commit/b492bde6a121be1c15ed90ce0827fcfd72a12f5c task-2172312 closes odoo/odoo#119720 X-original-commit: fb087dbe Signed-off-by:
Romain Derie (rde) <rde@odoo.com>
-
- May 14, 2023
-
-
Odoo Translation Bot authored
-
- May 12, 2023
-
-
Christophe Simonis authored
Allow extending tests for any modules, regardless of existing ones in another entry of the `upgrade-path`. Bonus point: tests no longer need to be imported in the `__init__.py` file. closes odoo/odoo#121218 X-original-commit: e4d1a9e0 Signed-off-by:
Christophe Simonis <chs@odoo.com> Co-authored-by:
Alvaro Fuentes <afu@odoo.com>
-
Abdelouahab (abla) authored
To Reproduce ============ - create two Vendor Bills and attach to each one a PDF from the ones provided by the client on the ticket. - select these two bills and and try to print Original Bills an error will be raised Problem ======= while merging these PDFs, PyPDF2 throws a `TypeError` which is not caught by the server Solution ======== catch `TypeError` to raise a UserError opw-3285540 closes odoo/odoo#121212 X-original-commit: d2b97524 Signed-off-by:
abla001 <abla@odoo.com>
-
Touati Djamel (otd) authored
Steps to reproduce the bug: - Enable “subcontracting” in the mrp settings - Create a storable product “P1”: - Add a vendor: - supplier: “Azure interior” - currency: euro - price: 20 - Add a BoM: - Type: subcontracting - add any product as component - Save - Check that the currency of the company is in dollars - Click on Compute Price from BoM button in the product form Problem: The seller's price is not converted into dollars opw-3321346 closes odoo/odoo#121063 Signed-off-by:
William Henrotin (whe) <whe@odoo.com>
-
Mylyna Hy authored
Steps to Reproduce Issue for single picking: 1. Install Sales, Inventory 2. Create an SO and confirm 3. Go to the transfer, assign the done value to be less than demanded 4. Validate the transfer and cancel the backorder Current Behavior: There is no exception error on the SO chatter Expected Behavior: An exception error should be logged on the SO chatter Other Info: When cancelling a backorder for a single picking, the exception error about less quantity than expected is not logged on the SO. "process_cancel_backorder" does not call _log_less_quantities_than_expected. As defined in "process", the exception is only logged when validating multiple pickings at once but one is to backorder but the other is not. opw-3222508 closes odoo/odoo#120994 X-original-commit: 92cd7d08 Signed-off-by:
Tiffany Chang <tic@odoo.com>
-
- May 11, 2023
-
-
Claire Bretton (clbr) authored
When no new template are created in the update of taxes migration method the execution lead to an an error in the `_process_taxes_translations` method. Fixed a similar issue in l10n_ch migration that enables the taxes afterward and could possibly cash in the same way if no taxes are created. opw-3305302 closes odoo/odoo#121213 X-original-commit: 039206ec Signed-off-by:
John Laterre (jol) <jol@odoo.com> Signed-off-by:
Claire Bretton <clbr@odoo.com>
-
Christophe Simonis authored
mimic what is done for `odoo.addons` __path__. closes odoo/odoo#121147 X-original-commit: 2a981e6a Signed-off-by:
Christophe Simonis <chs@odoo.com>
-
Louis (loco) authored
Steps to reproduce the problem: - Drop a popup snippet in a page. - On another language, click on translate. - Problem -> It is impossible to translate the popup. To resolve this problem, the function `_updateInvisibleDOM` is called even in translation mode. Thanks to this function, the invisible snippets are now filled in the edit bar and the user has the opportunity to display them or to hide them. task-3098517 opw-3268592 closes odoo/odoo#112011 Signed-off-by:
Quentin Smetz (qsm) <qsm@odoo.com>
-
Goffin Simon authored
Steps to reproduce the bug: - Let's consider an analytic account AA linked to customer invoices - Open AA and click on the smart button Customer Invoies Bug: The field customer was not displayed in the account.move list view (same for Vendor Bills) opw:3179200 closes odoo/odoo#113471 Signed-off-by:
Nicolas Lempereur (nle) <nle@odoo.com>
-
niyasraphy authored
before this commit, in the mobile view, in the search bar of the website users(forum) and events leader board, the placeholder is shown as Search courses after this commit, the wrong placeholder will be updated to Search users in the placeholder as in the normal view. closes odoo/odoo#121113 X-original-commit: 6162d702 Signed-off-by:
Thibault Delavallee (tde) <tde@openerp.com>
-
Claire Bretton (clbr) authored
The taxes update migration method didn't handle properly the creation of taxes with `children_tax_ids`. Such taxes caused an infinite loop when entering the `_generate_tax` method. To fix this we have batched the creation of taxes. We also fixed the comparison method that checks whether an existing tax is close enough to the template we are evaluating to handle properly taxes with an `amount_type='group'`. If we are evaluation such a tax we ignore the usual checks on repartition lines. closes odoo/odoo#120115 Signed-off-by:
Olivier Colson (oco) <oco@odoo.com>
-
Claire Bretton (clbr) authored
Swiss taxes retrieved by module update (and the update of taxes it triggers) need to be active, even if the template data was set to inactive. Part-of: odoo/odoo#120115
-
Claire Bretton (clbr) authored
When we were updating taxes from templates in a multilang localization, newly created taxes were not translated in languages of the localization. We also need l10n_lu migration script to be run in `end` instead of `post` to have translations loaded. Related: #108667 Part-of: odoo/odoo#120115
-
Claire Bretton (clbr) authored
The tax with xmlid vat_0_import was missing its repartition lines which caused validation errors. This PR adds empty repartition lines to fix this problem. Part-of: odoo/odoo#120115
-
Claire Bretton (clbr) authored
If a tax is an aggregation of its sub-taxes it makes sense to have no repartition line. This PR relaxes the validation in that case. Part-of: odoo/odoo#120115
-
Claire Bretton (clbr) authored
Switzerland changes its rates at the beginning of next year, this change already has some implications on client's flow so we add them to the localization so they can coexist with old rates till the end of the year. Changes: - Added new taxes (2.5% -> 2.6%, 3.7% -> 3.8%, 7.7% -> 8.1%) - Added tax fiscal positions to match those taxes - Added tax groups - Adds migration script to l10n_ch to apply those changes Task: 3162286 Part-of: odoo/odoo#120115
-
Romain Derie authored
There is a historical code to return an error/404 when someone disable the website info view, see [1]. There is also a feature introduced to add an option to disable the content of this controller, see [2]. Commit [2] should probably have gotten rid of the view check in [1] which was probably the way people used to stop this page leaking their DB information. From there, regardless if you deleted or disabled the view, the page would still be referenced in the sitemap.xml, which would lead to a traceback page (case 1) or a blank page (case 2). This commit is simply conditionning the presence of this page in the sitemap so it's removed from it if you disable/remove the website info view. It will help SEO wise to not have error page in it. Note that we probably don't want to keep indexing this page, as it is a technical link which doesn't bring any value to our clients to be included in their sitemap. It might have been useful for Odoo to perform some google search / stats or something like that. But since this is a stable fix, the behavior is kept as is as much as possible. Also note that it has always been in sitemap, even if marked excplicitely since [3]. [1]: https://github.com/odoo/odoo/commit/8aca457e34bdec6257b9bfa917aebe4de053e2aa#diff-d41b2dc5ff6fd6a303373f86e1af97d055db315ccc431749b4ffac1488dea119R146-R149 [2]: https://github.com/odoo/odoo/commit/f025d3e17cbb3b1fd05152ca46af091b6e11ee20 [3]: https://github.com/odoo/odoo/commit/e19227d3ba9c9296bfc0c221ac70a863a571b9a6#diff-d41b2dc5ff6fd6a303373f86e1af97d055db315ccc431749b4ffac1488dea119L200 opw-3255831 closes odoo/odoo#120734 X-original-commit: 58e7ff40 Signed-off-by:
Quentin Smetz (qsm) <qsm@odoo.com> Signed-off-by:
Romain Derie (rde) <rde@odoo.com>
-
Romain Derie authored
The website info page was introduced with [1] where the code was apparently checking for the existence of the view (to be rendered) to be able to handle a proper error if it did not exists. It seems like it was to support the case where someone would delete this view to not leak any info on the public controller. But it's uncertain as this code is 10 years old. It was a year later improved with [2] to have an option on the page to be able to sort of disable it: it would simply show a blank page but it would still be served. As of now, the `try/except` with the `get_template()` call is crashing and rendering traceback whenever this view is deleted, making this code useless and not doing anything. It's probably not needed anyway since the option introduced with [2] but as we are in stable, this commit is making the controller return a proper 404 page instead of a traceback. Arguably, that part of the code could be removed. We will do it in the master forward port. [1]: https://github.com/odoo/odoo/commit/8aca457e34bdec6257b9bfa917aebe4de053e2aa#diff-d41b2dc5ff6fd6a303373f86e1af97d055db315ccc431749b4ffac1488dea119R145 [2]: https://github.com/odoo/odoo/commit/f025d3e17cbb3b1fd05152ca46af091b6e11ee20 opw-3255831 X-original-commit: e787fef0 Part-of: odoo/odoo#120734
-
Bruno Boi authored
In 14.0 the menu items in the navbar sections menu could have any level. Since the webclient refactoring landed in 15.0 0573acae this feature has been unintentionnally limited to two levels. More sub menus would simply not be displayed. **Before this commit** - Have a menu item with the following path: `App/Menu/Group/Sub-group/Item` - The `Sub-group` is displayed as an item. It is clickable but nothing happens. - The `Item` is not displayed. **After this commit** Works properly as it should. See screenshots on the PR description. closes odoo/odoo#121039 Signed-off-by:
Mathieu Duckerts-Antoine <dam@odoo.com> Co-authored-by:
Mathieu Duckerts-Antoine <dam@odoo.com>
-
Julien Van Roy authored
When receiving an email on a mailbox with an alias that triggers the creation of invoices, 4 bugs could occur. 1. If the xml received contains replacement characters (U+FFFD �), and the charset of the part of the email is "US-ASCII" the encoding of the string will fail, preventing the rest of the flow to be completed. Be more resilient, encode the string and ignores these characters if this case occurs. NB: sometimes, the charset is omitted for a Content-type: text/xml. This is valid but not recommended (see: https://www.ietf.org/rfc/rfc2376.txt). In this case, the default used is "US-ASCII". This means that any non-ascii char will be lost (they are replaced by the replacement character: �, see: https://github.com/python/cpython/blob/3.10/Lib/email/contentmanager.py#L67 ) when decoding the attachment. 2. When the xml attachment is created in Odoo, the mimetype is 'text/plain' (rather than 'application/xml'). Thus, the `_decode_attachment` needs to be more flexible when guessing the type of the attachment (to know which function to use to read the content of the attachment and create the invoice). 3. When creating an invoice from an email with an xml attachment, the xml is attached as the `message_main_attachment_id`. It's only later on that the content of the xml is read and we possibly find the PDF in base64 inside. When creating the PDF attachment, it was not set as the `message_main_attachment_id`, so the PDF was not rendered on the right part of the invoice form view. Add a clause to replace the `message_main_attachment_id` in such a case. 4. When the xml attachment represents a credit note, the move_type of the invoice created by the email alias needs to be changed. Indeed, the invoice is created before decoding the attachment, so we can only change the `move_type` later. opw-3144519 opw-3149649 closes odoo/odoo#120873 X-original-commit: b5214e1d Signed-off-by:
Laurent Smet <las@odoo.com> Signed-off-by:
Julien Van Roy <juvr@odoo.com>
-
- May 10, 2023
-
-
Touati Djamel (otd) authored
Steps to reproduce the bug: - Connect with the company A - Create a consumable product “P1” - Create a receipt transfer with this product - confirm the transfer - Come back to the product form - limiter le produit que a la “Company B” Problem: no user error triggered Go to inventory > operation > transfer: a Traceback is triggered Before this commit, there is no verification while changing a product's company for consumable. That can lead to an issue where some operations cannot be done because of access errors. To avoid that, this commit prevents to change the product's company if some move lines for this product exist in another company. opw-3300559 closes odoo/odoo#120947 X-original-commit: a6666de7 Signed-off-by:
Djamel Touati (otd) <otd@odoo.com>
-
Julien (jula) authored
__Current behavior before PR:__ When someone joins a call in the discuss public view and receives a message in the chatter, the part of the screen supposed to display the video streams of the participants goes black. This happens because it is trying to open a chat window in the bottom right as it is done usually. However since we are in the public view it removes it instantly together with the participants cards. __Description of the fix:__ If we are in the discuss public view, it is useless to make chat windows. This will prevent opening of chat windows. __Steps to reproduce the issue:__ 1. Open the discuss app and start a meeting. 2. Copy the Invitation Link 3. Open a new private window to join the call with a guest user. 4. Then go back to the non-guest user page and send a message in the chatter. 5. Notice that the participants cards vanished on the private window page. opw-3229747 closes odoo/odoo#119359 Signed-off-by:
Alexandre Kühn (aku) <aku@odoo.com>
-
pedrambiria authored
Previously, when conducting a refund on a table, the system would switch the active table to the table associated with the refunded order. This was not the desired behavior, as it resulted in the details of the order disappearing, requiring the user to navigate back to the refund process. Steps to reproduce the issue: - install PoS restaurant - pick a table, do an order and pay it - pick another table, refund - choose the previous order and refund -> the order details disappear directly. You have to go back to refund. opw-3301603 closes odoo/odoo#121012 Signed-off-by:
Heinz Robin (rhe) <rhe@odoo.com>
-
Laurent Smet authored
When l10n_mx_edi is installed and a payment is posted, the move_name field on account.move.line being a related to move_id.name is not well computed. That is because posting a move trigger the computed field in a protected mode due to `flush_recorset`. This mode prevents any computed field to be recomputed twice. This flush triggers `_compute_name` calling `sequence_mixin`, itself doing another `flush_recorset`. This extra flush triggers `_compute_l10n_mx_edi_cfdi_uuid` that access to `move.payment_id.reconciled_bill_ids`. This access to this field triggers its recomputation and then, `_compute_stat_buttons_from_reconciliation` is called. This method does `self.env['account.move.line'].flush_model()` that force the computation of `move_name` to `/`. `sequence_mixin` assigns the new `name` to the journal entry but `move_name` is not recomputed due to the protected environment. closes odoo/odoo#120630 X-original-commit: 29d6101c Signed-off-by:
Olivier Colson (oco) <oco@odoo.com> Signed-off-by:
Laurent Smet <las@odoo.com>
-
kir-odoo authored
Before this commit ================== when SO is confirmed and Delivery is created then add the shipping method in SO, in this case, the shipping carrier is not set in the existing undelivered delivery of that SO. After this commit ================= So in this commit, we set the shipping carrier for undelivered delivery. taskId - 2946360 closes odoo/odoo#120966 X-original-commit: 58f9139f Signed-off-by:
Tiffany Chang <tic@odoo.com>
-
Alvaro Fuentes authored
Issue 1: before this patch it was impossible to create a manual model marked as "Is blacklist". The reason is that a blacklist model implicitly need an `email` field, but such field is impossible to add in a manual model: the field must start with `x_`. Solution: append `x_` to the implicit email field. Note, in principle the user gets an error if `x_email` is not present. Solved by adding the field when creating the custom model. Ideally we should show some hint in the interface to make it more user friendly. That is out of the scope of this patch. Issue 2: when we have a manual model that is mail blacklist it's impossible to create its model class. We get an error because the MRO is not correct. The reason is that we are adding `mail.thread.blacklist` _after_ `mail.thread` in the `_inherit` list. That list is used to generated the `__bases__` of the model class[1]. According to Python's MRO rules[2], since `mail.thread.blacklist` appears after `mail.thread` as parents of the custom model class this order _must_ be respected. But `mail.thread` must appear _before_ `mail.thread.blacklist` because the latter inherits from the former. This is a contradiction and the MRO algorithm cannot succeed. To put it in a simple example: ```py class A: pass class B(A): pass # This fails: # class C(A, B): pass # The right order is: class C(B, A): pass # Equivalent to: class D(B): pass # C and D have the same MRO linearization excluding themselves assert D.mro()[1:] == C.mro()[1:] ``` Example traceback: ``` Traceback (most recent call last): File "/home/odoo/src/odoo/14.0/odoo/service/server.py", line 1201, in preload_registries registry = Registry.new(dbname, update_module=update_module) File "/home/odoo/src/odoo/14.0/odoo/modules/registry.py", line 89, in new odoo.modules.load_modules(registry._db, force_demo, status, update_module) File "/home/odoo/src/odoo/14.0/odoo/modules/loading.py", line 464, in load_modules registry.setup_models(cr) File "/home/odoo/src/odoo/14.0/odoo/modules/registry.py", line 263, in setup_models env['ir.model']._add_manual_models() File "/home/odoo/src/odoo/14.0/odoo/addons/base/models/ir_model.py", line 430, in _add_manual_models Model = model_class._build_model(self.pool, cr) File "/home/odoo/src/odoo/14.0/odoo/models.py", line 585, in _build_model ModelClass.__bases__ = tuple(bases) TypeError: Cannot create a consistent method resolution order (MRO) for bases BaseModel, mail.thread, mail.thread.blacklist, base ``` Solution: check if a model inherits from `mail.thread.blacklist` first. There is no need to add `mail.thread` if inheriting `mail.thread.blacklist` because the inheritance is already implicit. This issue was observed during upgrades. We convert custom models and fields into manual to allow upgrading without custom code. This causes issues because the MRO error appears when a custom model inherits mail blacklist. [1]: https://github.com/odoo/odoo/blob/02f820fb0eaddbb3a4269a0967184c8aaf52c363/odoo/models.py#L585 [2]: https://www.python.org/download/releases/2.3/mro/ closes odoo/odoo#120922 X-original-commit: 8848bb57 Signed-off-by:
Christophe Simonis <chs@odoo.com> Signed-off-by:
Alvaro Fuentes Suarez (afu) <afu@odoo.com>
-