[IMP/FIX] Added Strict value checker for the defaults and fetchmail logger fix
bzr revid: jam@tinyerp.com-20120629115233-skml2xtp79xmxvyr
This commit is contained in:
parent
b3c2a5e273
commit
1b9f3a5b74
|
@ -151,7 +151,7 @@ openerp_mailgate.py -u %(uid)d -p PASSWORD -o %(model)s -d %(dbname)s --host=HOS
|
|||
connection = server.connect()
|
||||
server.write({'state':'done'})
|
||||
except Exception, e:
|
||||
logger.exception("Failed to connect to %s server %s", server.type, server.name)
|
||||
_logger.exception("Failed to connect to %s server %s", server.type, server.name)
|
||||
raise osv.except_osv(_("Connection test failed!"), _("Here is what we got instead:\n %s") % tools.ustr(e))
|
||||
finally:
|
||||
try:
|
||||
|
@ -177,7 +177,7 @@ openerp_mailgate.py -u %(uid)d -p PASSWORD -o %(model)s -d %(dbname)s --host=HOS
|
|||
mail_thread = self.pool.get('mail.thread')
|
||||
action_pool = self.pool.get('ir.actions.server')
|
||||
for server in self.browse(cr, uid, ids, context=context):
|
||||
logger.info('start checking for new emails on %s server %s', server.type, server.name)
|
||||
_logger.info('start checking for new emails on %s server %s', server.type, server.name)
|
||||
context.update({'fetchmail_server_id': server.id, 'server_type': server.type})
|
||||
count = 0
|
||||
imap_server = False
|
||||
|
@ -198,9 +198,9 @@ openerp_mailgate.py -u %(uid)d -p PASSWORD -o %(model)s -d %(dbname)s --host=HOS
|
|||
imap_server.store(num, '+FLAGS', '\\Seen')
|
||||
cr.commit()
|
||||
count += 1
|
||||
logger.info("fetched/processed %s email(s) on %s server %s", count, server.type, server.name)
|
||||
_logger.info("fetched/processed %s email(s) on %s server %s", count, server.type, server.name)
|
||||
except Exception, e:
|
||||
logger.exception("Failed to fetch mail from %s server %s", server.type, server.name)
|
||||
_logger.exception("Failed to fetch mail from %s server %s", server.type, server.name)
|
||||
finally:
|
||||
if imap_server:
|
||||
imap_server.close()
|
||||
|
@ -222,9 +222,9 @@ openerp_mailgate.py -u %(uid)d -p PASSWORD -o %(model)s -d %(dbname)s --host=HOS
|
|||
action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]})
|
||||
pop_server.dele(num)
|
||||
cr.commit()
|
||||
logger.info("fetched/processed %s email(s) on %s server %s", numMsgs, server.type, server.name)
|
||||
_logger.info("fetched/processed %s email(s) on %s server %s", numMsgs, server.type, server.name)
|
||||
except Exception, e:
|
||||
logger.exception("Failed to fetch mail from %s server %s", server.type, server.name)
|
||||
_logger.exception("Failed to fetch mail from %s server %s", server.type, server.name)
|
||||
finally:
|
||||
if pop_server:
|
||||
pop_server.quit()
|
||||
|
|
|
@ -67,12 +67,29 @@ class mail_alias(osv.Model):
|
|||
}
|
||||
_defaults = {
|
||||
'alias_defaults': '{}',
|
||||
'alias_user_id': lambda s,c,u,ctx: u
|
||||
'alias_user_id': lambda self,cr,uid, context: uid
|
||||
}
|
||||
_sql_constraints = [
|
||||
('mailbox_uniq', 'UNIQUE(alias_name)', 'Unfortunately this mail alias is already used, please choose a unique one')
|
||||
]
|
||||
|
||||
def _check_alias_defaults(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Strick constraints checking for the alias defaults values.
|
||||
it must follow the python dict format. So message_catachall
|
||||
will not face any issue.
|
||||
"""
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
try:
|
||||
dict(eval(record.alias_defaults))
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
|
||||
_constraints = [
|
||||
(_check_alias_defaults, "Default Values are in wrong format.\nIt must be in python dictionary format e.g.{'field_name': 'value' or {}}", ['alias_defaults']),
|
||||
]
|
||||
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Return the mail alias display alias_name, inclusing the Implicit and dynamic
|
||||
|
|
|
@ -499,7 +499,7 @@ class mail_thread(osv.osv):
|
|||
else raise Exception so that mailgate script will reject the mail and
|
||||
send notification mail sender that this mailbox does not exist so your mail have been rejected.
|
||||
"""
|
||||
|
||||
|
||||
alias_pool = self.pool.get('mail.alias')
|
||||
user_pool = self.pool.get('res.users')
|
||||
mail_compose_pool = self.pool.get('mail.compose.message')
|
||||
|
@ -516,8 +516,9 @@ class mail_thread(osv.osv):
|
|||
if alias_ids:
|
||||
alias_id = alias_pool.browse(cr, uid, alias_ids[0], context)
|
||||
user_id = self._get_user( cr, uid, alias_id, context)
|
||||
alias_defaults = dict(eval(alias_id.alias_defaults or {}))
|
||||
self.message_process(cr, user_id, alias_id.alias_model_id.model, message,
|
||||
custom_values = alias_id.alias_defaults or {},
|
||||
custom_values = alias_defaults,
|
||||
thread_id = alias_id.alias_force_thread_id or False,
|
||||
context=context)
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue