搜索年份范围odoo

时间:2015-03-26 18:42:10

标签: date 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将显示id值为1&的记录。 2。

请一些建议!!

提前致谢!

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', '&lt;=', self)]" />
<field name="date_end" string="Date End" filter_domain="[('date_end', '&gt;=', 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"/>