在年份范围内搜索odoo
Search in year ranges 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'),
他们在我的 table:
中生成整数变量
ID date_beg date_end
1 1999 2005
2 2000 2004
3 1990 1995
我的要求是,当用户在搜索视图中输入年份时,odoo 将根据范围显示今年所属的记录。
例如,如果用户在搜索视图中键入“2003”并且我有以上 table 个值,那么 odoo 将显示 ID 值为 1 和 2 的记录。
拜托,提点建议!!
提前致谢!
继承模块的搜索视图或使用 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)]" />
我是这样解决的:
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"/>
我定义了这些字段:
'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'),
他们在我的 table:
中生成整数变量ID date_beg date_end
1 1999 2005
2 2000 2004
3 1990 1995
我的要求是,当用户在搜索视图中输入年份时,odoo 将根据范围显示今年所属的记录。
例如,如果用户在搜索视图中键入“2003”并且我有以上 table 个值,那么 odoo 将显示 ID 值为 1 和 2 的记录。
拜托,提点建议!!
提前致谢!
继承模块的搜索视图或使用 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)]" />
我是这样解决的:
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"/>