openerp-india team mailing list archive
-
openerp-india team
-
Mailing list archive
-
Message #14335
[Bug 1031694] Re: Incoming Mail with attachment error
Can you explain what exactly you mean by "providing recname"?
The table mail_thread doesn't have a name attribute, that is the reason
why the name_get call throws an error. A friend of mine faced the same
issue, and as a solution added the name field to the mail_thread table.
Can you explain, how you provide "_recname"? What are the steps to do?
And is it right, that without providing _recname, you get the same
error?
--
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Addons.
https://bugs.launchpad.net/bugs/1031694
Title:
Incoming Mail with attachment error
Status in OpenERP Addons (modules):
Incomplete
Bug description:
Hi,
I have installed the stable server build openerp-6.1-20120726-233351
on ubuntu 10.04 LTS and ubuntu 12.04 LTS. If I setup an incoming
googlemail server, it works, and the mails are fetched correctly. But
if an E-Mail has an attachment, I got the following error:
================================= Begin Code:
==================================
2012-08-01 09:50:27,015 7409 ERROR ? fetchmail: Failed to fetch mail from pop server XEO Order Test
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/addons/fetchmail/fetchmail.py", line 220, in fetch_mail
context=context)
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/addons/mail/mail_thread.py", line 426, in message_process
res_id = create_record(msg)
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/addons/mail/mail_thread.py", line 400, in create_record
context=context)
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/addons/mail/mail_thread.py", line 173, in message_new
self.message_append_dict(cr, uid, [res_id], msg_dict, context=context)
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/addons/mail/mail_thread.py", line 344, in message_append_dict
context = context)
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/addons/mail/mail_thread.py", line 263, in message_append
to_attach.append(ir_attachment.create(cr, uid, data_attach, context=context))
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/addons/base_calendar/base_calendar.py", line 1633, in create
return super(ir_attachment, self).create(cr, uid, vals, context=context)
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/addons/base/ir/ir_attachment.py", line 117, in create
return super(ir_attachment, self).create(cr, uid, values, context)
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/osv/orm.py", line 4239, in create
self.pool.get(object)._store_set_values(cr, user, ids, fields2, context)
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/osv/orm.py", line 4388, in _store_set_values
result = self._columns[f].get(cr, self, ids, f, SUPERUSER_ID, context=context)
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/osv/fields.py", line 1129, in get
result = self._fnct(obj, cr, uid, ids, name, self._arg, context)
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/addons/base/ir/ir_attachment.py", line 132, in _name_get_resname
res = model_pool.name_get(cr,uid,[res_id],context)
File "/usr/local/lib/python2.7/dist-packages/openerp-6.1_20120726_233351-py2.7.egg/openerp/osv/orm.py", line 2262, in name_get
[self._rec_name], context, load='_classic_write')]
KeyError: 'name'
============================ / End Code =============================
As you see, the exception is thrown at 132 int ir_attachment.py:
model_pool = self.pool.get(model_object)
res = model_pool.name_get(cr,uid,[res_id],context)
res_name = res and res[0][1] or False
If the exception is thrown, the test res_name wont be reached. I made
a try-catch block.
129 model_pool = self.pool.get(model_object)
130 # inglorious, 1.8.12
131 try:
132 res = model_pool.name_get(cr,uid,[res_id],context)
133 except Exception, e:
134 res = False
135
136 res_name = res and res[0][1] or False
If the exception is thrown, res will be set to false. The solution
works for me.
To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/1031694/+subscriptions
References