我已经定义了这些字段:
'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将显示id值为1&的记录。 2。
请一些建议!!
提前致谢!
答案 0 :(得分:1)
继承模块的搜索视图或使用https://www.odoo.com/documentation/8.0/reference/views.html#search
创建新的搜索视图<field name="date_beg" string="Date Beginning" filter_domain="[('date_beg', '<=', self)]" />
<field name="date_end" string="Date End" filter_domain="[('date_end', '>=', self)]" />
答案 1 :(得分: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)
最后,在我的搜索视图中:
<field name="date_search"/>