Community mailing list archives
No dia 26/11/2016, às 23:52, Graeme Gellatly <firstname.lastname@example.org> escreveu:
You are probably better off having a stored char function field or separate sequence. Your only reliable way of doing name search your current way is to regex the search string, extract integers and then use those in search for account analytic id. No need to chain to id in the name search.
On Sun, 27 Nov 2016 9:37 AM Arjan Duijs <email@example.com> wrote:
Í have gotten the analytic account is working, and is being displayed next to the project name.But in order to being able to search on the code as well i tried the following name_search code.
In the search method the analytic_account_id.id is generating an error because of it is being an INT.
tried casting it to str() but that even generated more errors
below is my code
def name_search(self, name='', args=None, operator='ilike', limit=100):
if operator not in ('ilike', 'like', '=', '=like', '=ilike'):
return super(AccountAnalyticAccount, self).name_search(name, args, operator, limit)
args = args or 
domain = ['|', ('analytic_account_id.id', operator, name), ('name', operator, name)]
partners = self.env['res.partner'].search([('name', operator, name)], limit=limit)
domain = ['|'] + domain + [('partner_id', 'in', partners.ids)]
recs = self.search(domain + args, limit=limit)
ProgrammingError: operator does not exist: integer ~~* unknown LINE 1: ... AND (("project_project__analytic_account_id".id ilike '' ... ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
I tried changing the operator to '=' but that didnt help either.