2015-03-26 2 views
0

Я определил эти поля:Поиск в год колеблется odoo

'date_beg': fields.selection([(num, str(num)) for num in range(1900, (datetime.now().year)+1)], 'Año inicial'), 

'date_end': fields.selection([(num, str(num)) for num in range(1900, (datetime.now().year)+1)], 'Año final'), 

Они генерируют целые переменные в моей таблице:

ID   date_beg  date_end 

1   1999   2005 

2   2000   2004 

3   1990   1995 

Мое требование заключается в том, когда пользователь печатает год в целях поиска, odoo покажет записи, на которых в этом году принадлежит, основываясь на диапазонах.

Например, если типы пользователей «2003» в целях поиска и я выше табличных значений, то odoo будет отображать записи со значением идентификатора 1 & 2.

Пожалуйста, некоторые предложения !!

Заранее благодарен!

+0

Если домен, который вы хотите, подобен '('date_beg', '<=', 2003), ('date_end', '> =', 2003)', я думаю, это было бы управляемо, search view] (https://www.odoo.com/documentation/master/reference/views.html#search). –

ответ

1

мне удалось решить так:

def _search_year(self, cr, uid, obj, name, args, context): 
    x = [('cm_datebeg', '<=', args[0][2]), ('cm_dateend', '>=', args[0][2])] 
    res = self.search(cr, uid, x, context=context) 
    return [('id', 'in', res)] 

Заявленный поле, как это:

 'date_search': fields.function(lambda self: self, string='Búsqueda por año', type='integer', fnct_search=_search_year) 

И, наконец, на мой взгляд поиска:

Смежные вопросы