diff --git a/mail_environment/__openerp__.py b/mail_environment/__openerp__.py index 5da871afb..fce396f8d 100644 --- a/mail_environment/__openerp__.py +++ b/mail_environment/__openerp__.py @@ -61,7 +61,7 @@ password = openerp 'init_xml': [], 'update_xml': ['mail_view.xml'], 'demo_xml': [], - 'installable': False, + 'installable': True, 'active': False, } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mail_environment/env_mail.py b/mail_environment/env_mail.py index 59d5f5fe9..e5c8bb997 100644 --- a/mail_environment/env_mail.py +++ b/mail_environment/env_mail.py @@ -128,6 +128,29 @@ class FetchmailServer(osv.osv): res[fetchmail.id] = config_vals return res + def _type_search(self, cr, uid, obj, name, args, context={}): + result_ids = [] + # read all incomming servers values + all_ids = self.search(cr, uid, [], context=context) + results = self.read(cr, uid, all_ids, ['id','type'], context=context) + args = args[:] + i = 0 + while i < len(args): + operator = args[i][1] + if operator == '=': + for res in results: + if (res['type'] == args[i][2]) and (res['id'] not in result_ids): + result_ids.append(res['id']) + elif operator == 'in': + for search_vals in args[i][2]: + for res in results: + if (res['type'] == search_vals) and (res['id'] not in result_ids): + result_ids.append(res['id']) + else: + continue + i += 1 + return [('id', 'in', result_ids)] + _columns = { 'server': fields.function(_get_incom_conf, method=True, @@ -146,6 +169,7 @@ class FetchmailServer(osv.osv): string='Type', type="char", multi='income_mail_config', + fnct_search=_type_search, size=64, help="pop, imap, local"), 'is_ssl': fields.function(_get_incom_conf,