waltervargas / prestashoperpconnect

A module that permits OpenERP to connect to Prestashop.
2 stars 3 forks source link

Upgrade prestashoperpconnect code for use connector framework 2.1.1 #6

Closed waltervargas closed 10 years ago

waltervargas commented 10 years ago

Problem for 'Synchronize Metadata'

connector: 2.2.0 (branch 7.0 from github) connector_ecommerce: 2.1.0 prestashoperpconnect: 0.3

2014-07-18 21:43:10,169 5947 ERROR salling3 openerp.osv.osv: Uncaught exception
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 132, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 199, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 187, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/home/vagrant/addons/prestashoperpconnect/models/prestashop_model.py", line 116, in synchronize_metadata
    import_batch(session, model, backend_id)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 1014, in import_batch
    importer.run(filters=filters, **kwargs)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 183, in run
    record_ids = self._run_page(filters, **kwargs)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 193, in _run_page
    self._import_record(record_id, **kwargs)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 259, in _import_record
    record
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 1022, in import_record
    importer.run(prestashop_id)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 149, in run
    erp_id = self._create(record)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 98, in _create
    context=context
  File "/home/vagrant/addons/connector/producer.py", line 45, in create
    record_id = create_original(self, cr, uid, vals, context=context)
  File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 4394, in create
    if vals.pop(f, None) is not None:
AttributeError: 'MapRecord' object has no attribute 'pop'
2014-07-18 21:43:10,179 5947 ERROR salling3 openerp.netsvc: 'MapRecord' object has no attribute 'pop'
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/openerp/netsvc.py", line 296, in dispatch_rpc
    result = ExportService.getService(service_name).dispatch(method, params)
  File "/usr/lib/pymodules/python2.7/openerp/service/web_services.py", line 626, in dispatch
    res = fn(db, uid, *params)
  File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 190, in execute_kw
    return self.execute(db, uid, obj, method, *args, **kw or {})
  File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 132, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 199, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 187, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/home/vagrant/addons/prestashoperpconnect/models/prestashop_model.py", line 116, in synchronize_metadata
    import_batch(session, model, backend_id)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 1014, in import_batch
    importer.run(filters=filters, **kwargs)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 183, in run
    record_ids = self._run_page(filters, **kwargs)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 193, in _run_page
    self._import_record(record_id, **kwargs)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 259, in _import_record
    record
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 1022, in import_record
    importer.run(prestashop_id)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 149, in run
    erp_id = self._create(record)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 98, in _create
    context=context
  File "/home/vagrant/addons/connector/producer.py", line 45, in create
    record_id = create_original(self, cr, uid, vals, context=context)
  File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 4394, in create
    if vals.pop(f, None) is not None:
AttributeError: 'MapRecord' object has no attribute 'pop'
guerrerocarlos commented 10 years ago

En https://github.com/waltervargas/prestashoperpconnect/blob/master/prestashoperpconnect/unit/import_synchronizer.py#L102

reemplacen: return erp_id

por: return [erp_id]

Aparentemente se espera que devuelva es una lista a la que se le pueda hacer ".pop()" https://docs.python.org/2/tutorial/datastructures.html#more-on-lists

waltervargas commented 10 years ago

Gracias my friend, hoy pruebo.

waltervargas commented 10 years ago

Not working my friend, the same error:

  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 149, in run
    erp_id = self._create(record)
  File "/home/vagrant/addons/prestashoperpconnect/unit/import_synchronizer.py", line 98, in _create
    context=context
  File "/home/vagrant/addons/connector/producer.py", line 43, in create
    record_id = create_original(self, cr, uid, vals, context=context)
  File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 4394, in create
    if vals.pop(f, None) is not None:
AttributeError: 'MapRecord' object has no attribute 'pop'

I thing that vals is equal to None

waltervargas commented 10 years ago

Problem fixed in the commit cd261e25b9a122bab55415ebde0bbf5ed7780917