Skip to Content
Menu
This question has been flagged
1 Reply
1740 Views

Hi there, I'm fairly new to odoo14 and I am getting this error while trying to build a new custom report.


ValueError: External ID not found in the system: account.account_tag_operating_activities

So, I created two new xml files with the respective menu and the respective tags to use, both .xml files are references in the manifest.py:

This is where the menu xml file:
xml version="1.0" encoding="utf-8"?>



id="action_report_indirect_cash_flow" model="ir.actions.client">
name="name">indirect cash flow
name="tag">account_report
name="context" eval="{'model': 'account.cash.flow.report.indirect'}"/>




id="menu_action_reports_indirect_cash_flow"
name="indirect cash flow"
action="action_report_indirect_cash_flow"
parent="account.account_reports_legal_statements_menu"
groups="account.group_account_readonly"
/>


This is the tags file:

xml version="1.0" encoding="utf-8"?>

noupdate="1">


id="account_tag_operating_activities" model="account.account.tag">
name="name">Cash Generated From Operations
name="applicability">accounts


id="account_tag_operational_free_cash" model="account.account.tag">
name="name">Free cash flow from operations
name="applicability">accounts


id="account_tag_non_operational_cash" model="account.account.tag">
name="name">Non operational cash flow
name="applicability">accounts




Here is the custom model that I'm building:


# -*- coding: utf-8 -*-
from odoo import models, fields, api, _


class AccountCashFlowReportIndirect(models.AbstractModel):
_name = 'account.cash.flow.report.indirect'
_description = 'Cash Flow Report'
_inherit = 'account.report'

filter_date = {'mode': 'range', 'filter': 'today'}
filter_comparison = None
filter_journals = True
filter_unfold_all = False
filter_all_entries = False

@api.model
def _get_tags_per_account(self, tag_ids):

tags_per_accounts = {}

query = '''
SELECT
DISTINCT account_account_id,
ARRAY_AGG(account_account_tag_id)
FROM account_account_account_tag
WHERE account_account_tag_id IN %s
GROUP BY account_account_id
'''
params = [tag_ids]

self._cr.execute(query, params)
for account_id, tags in self._cr.fetchall():
tags_per_accounts[account_id] = tags
return tags_per_accounts

@api.model
def _get_lines(self, options, line_id=None):
tag_operations = self.env.ref('account.account_tag_operating_activities').id
# tag_operational_free_cash = self.env.ref('account.account_tag_operational_free_cash').id
# tag_non_operational_cash = self.env.ref('account_tag_non_operational_cash').id
# tag_ids = (tag_operations, tag_operational_free_cash, tag_non_operational_cash)
# result = self._get_tags_per_account(tag_ids)
print(tag_operations)


So, my error is when I'm trying to get the id of any of the created tags I get the

ValueError: External ID not found in the system.


Any suggestion or idea on what I might be doing wrong? When I check the table accounts_accounts_tags I can see the tags that I've created, the same when I check ir_model_data table in my local database.


Any response is kindly appreciated.






Avatar
Discard
Best Answer

Hi,

In the python code, it seems you are looking for a record with external id: account.account_tag_operating_activities, but i think the record with id account_tag_operating_activities is created in the custom module right ?


If yes, please update the above code to your_module_name.account_tag_operating_activities instead of account.account_tag_operating_activities.


Thanks

Avatar
Discard
Related Posts Replies Views Activity
1
May 24
1572
2
May 23
3476
2
Jan 23
10527
1
May 16
2716
1
Nov 22
2701