diff --git a/yaltik_dsl/__openerp__.py b/yaltik_dsl/__openerp__.py index 62ed5b5..c127f9a 100644 --- a/yaltik_dsl/__openerp__.py +++ b/yaltik_dsl/__openerp__.py @@ -19,7 +19,7 @@ 'name': 'Yaltik Odoo DSL base module and fns', 'summary': 'Yaltik Odoo Domain Specific Language base module and functions', 'description': """ Yaltik Odoo Domain Specific Language base module and functions """, - 'version': '8.0.0.5.1', + 'version': '8.0.0.5.2', 'category': 'Yaltik', 'author': 'Fabien Bourgeois', 'license': 'AGPL-3', diff --git a/yaltik_dsl/src/odoo_dsl.coco b/yaltik_dsl/src/odoo_dsl.coco index fa9fa58..8e258a0 100644 --- a/yaltik_dsl/src/odoo_dsl.coco +++ b/yaltik_dsl/src/odoo_dsl.coco @@ -101,6 +101,17 @@ field_arch = lambda *args: field({'name': 'arch', 'type': 'xml'}, *args) filter = lambda *args: xmln('filter', *args) separator = lambda *args: xmln('separator', *args) +def filter_yes_no(field, str_yes=False, str_no=False): + """ Double filter for boolean : True and False """ + res = [] + if str_yes: + res.append(filter({'name': f'{field}_yes', 'string': str_yes, + 'domain': f"[('{field}', '=', True)]"})) + if str_no: + res.append(filter({'name': f'{field}_no', 'string': str_no, + 'domain': f"[('{field}', '=', False)]"})) + return res + # Views view = lambda xmlid, children: record({'id': xmlid, 'model': 'ir.ui.view'}, children) diff --git a/yaltik_dsl/src/odoo_dsl.py b/yaltik_dsl/src/odoo_dsl.py index c749894..800bfca 100644 --- a/yaltik_dsl/src/odoo_dsl.py +++ b/yaltik_dsl/src/odoo_dsl.py @@ -1,6 +1,6 @@ #!/usr/bin/env python2 # -*- coding: utf-8 -*- -# __coconut_hash__ = 0x62cce221 +# __coconut_hash__ = 0xf27e8c67 # Compiled with Coconut version 2.1.1 [The Spanish Inquisition] @@ -138,7 +138,17 @@ field_arch = lambda *args: field({'name': 'arch', 'type': 'xml'}, *args) filter = lambda *args: xmln('filter', *args) separator = lambda *args: xmln('separator', *args) +def filter_yes_no(field, str_yes=False, str_no=False): + """ Double filter for boolean : True and False """ + res = [] + if str_yes: + res.append(filter({'name': '{_coconut_format_0}_yes'.format(_coconut_format_0=(field)), 'string': str_yes, 'domain': "[('{_coconut_format_0}', '=', True)]".format(_coconut_format_0=(field))})) + if str_no: + res.append(filter({'name': '{_coconut_format_0}_no'.format(_coconut_format_0=(field)), 'string': str_no, 'domain': "[('{_coconut_format_0}', '=', False)]".format(_coconut_format_0=(field))})) + return res + # Views + view = lambda xmlid, children: record({'id': xmlid, 'model': 'ir.ui.view'}, children) def view_def(xmlid, name, model, arch):