Ciao ragazzi,
sto portando un mio modulo scritto per la 6.1 sulla v8.
Il modulo fa l'override del metodo create di product.product per generare in automatico un campo da me aggiunto e l'ean13. Adesso, il modulo product.product è scritto ancora secondo le vecchie API ma non mi passa più i valori nel context o dentro la il dict vals dichiarato.
def create(self, cr, uid, vals, context=None):
if context is None:
context = {}
ipdb.set_trace()
if vals.get('company_id', False):
ean_config = self.pool.get('product.ean13.config')
config_id = ean_config.search(cr, uid, [('company_id', '=', vals['company_id']),], context=context)
config = ean_config.browse(cr, uid, config_id[0], context=context)
if config and not config.create_ean_ok:
return super(product_product, self).create(cr, uid, vals, context)
if not str(vals.get('ean13', '')).strip():
if str(vals.get('default_code', '')).isdigit():
if len(vals.get('seller_ids', [])):
code = unicode(vals['seller_ids'][0][2]['name']).rjust(5,'0') + unicode(vals['default_code']).rjust(7, '0')
else:
code = unicode(vals['default_code']).rjust(12, '0')
vals['ean13'] = barcode.get_barcode('ean13', code).get_fullcode()
Il problema è che vals non contiene più i valori che conteneva nella 6.1. Se provo ad usare il metodo self.company_id ovvero usandolo come un recordset mi restituisce un attribute error. Questo è quello che ho tirato fuori nel debug
ipdb> self.company_id
*** AttributeError: 'product.product' object has no attribute '_ids'
ipdb> self.env
*** AttributeError: 'product.product' object has no attribute 'env'
ipdb> self._context
*** AttributeError: 'product.product' object has no attribute 'env'
ipdb> self
product.product
ipdb> self._cr
*** AttributeError: 'product.product' object has no attribute 'env'
ipdb> vals
{'product_tmpl_id': 10, 'attribute_value_ids': [(6, 0, [])]}
ipdb> context
{'lang': 'it_IT', 'search_default_filter_to_sell': 1, 'active_test': False, 'tz': 'Europe/Rome', 'uid': 1, 'create_product_variant': True}
Ora va bene .a transizione, ma qui è da delirio!
Non ho capito allora come devo fare per ricavarmi quel benedetto campo.
Qualcuno mi può dare una dritta?
P.s. naturalmente sto spulciando dentro il codice del modulo product ma non ne sono ancora venuto fuori