Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami
  • Pagina:
  • 1
  • 2

ARGOMENTO: [RISOLTO]: Problema con context e attributes

[RISOLTO]: Problema con context e attributes 5 Anni 5 Mesi fa #13260

  • ltpisano
  • Avatar di ltpisano
  • Offline
  • Fresh Boarder
  • Messaggi: 4
  • Karma: 0
Ciao a tutti,
ho un problema con l'uso dell'attributo context, vi posto qui di seguito il codice xml ed il sorgente python.
Premetto che si tratta di un modulo di training di un corso on-line, ma non riesco a capire perchè non passi il context con l'aggiunta della coppia chiave valore nel dictionary.

boatcompany_view.xml
"
<?xml version="1.0" encoding="utf-8"?>

<openerp>
<data>
<record id="product_product_normal_form_view" model="ir.ui.view">
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<field name="list_price" position="after">
<field name="boatlength"/>
<field name="fuelcapacity"/>
<field name="modeloptions_id"/>
</field>
</field>
</record>

<record id="sale_view_order_form" model="ir.ui.view">
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="boatmodel_id"/>
</field>
<xpath expr="//field[@name='product_id']" position="attributes">
<attribute name="context">{'boatmodel_id': parent.boatmodel_id}</attribute>
</xpath>
</field>
</record>
</data>
</openerp>
"
boatcompany.py
"
from osv import osv, fields

class product_product(osv.osv):
_inherit = "product.product"
_columns = {
'boatlength': fields.char("Boat Lenght", size=10),
'fuelcapacity': fields.char("Fuel Capacity", size=10),
'modeloptions_id': fields.many2one('product.category','Model Options')
}
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
print ">>>>>>>SEARCH >>>>>>>"
if context is None:
context = {}
print context
if context.get('boatmodel_id'):
print "Boat Model ID: " + context.get('boatmodel_id')
productobj = self.pool.get('product.product').read(cr, uid, context,)
print "Model Option ID: " + productobj[0]
args = [('categ_id','=',productobj['modeloptions_id'][0])] + args
return super(product_product, self).search(cr, uid, args, offset, limit, order, context=context, count=count)

class sale_order(osv.osv):
_inherit = "sale.order"
_columns = {
'boatmodel_id': fields.many2one('product.product', 'Boat Model', domain=[('categ_id.name','=','Boat Models')])
}

Grazie.
Ultima modifica: 5 Anni 4 Mesi fa da ltpisano.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Problema con context e attributes 5 Anni 5 Mesi fa #13266

  • django
  • Avatar di django
  • Offline
  • Junior Boarder
  • Messaggi: 33
  • Ringraziamenti ricevuti 5
  • Karma: 0
ciao,

hai provato:
<attribute name="context">{'boatmodel_id': 'parent.boatmodel_id'}</attribute> ?

dj
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Problema con context e attributes 5 Anni 5 Mesi fa #13267

  • ltpisano
  • Avatar di ltpisano
  • Offline
  • Fresh Boarder
  • Messaggi: 4
  • Karma: 0
Grazie dj,
Ho provato, il risultato non cambia, ho anche provato ad aggiungere un valore fisso nel context modificando la riga di codice inserendo un valore arbitratio ma non lo ritrovo nella stampa di verifica.
dalla riga XML sia in versione:
<attribute name="context">{'boatmodel_id': 'parent.boatmodel_id'}</attribute>
che in versione:
<attribute name="context">{'boatmodel_id': parent.boatmodel_id}</attribute>
al print del context in esecuzione:
IN SEARCH >>>>>>>
{'lang': 'en_US', 'shop': 1, 'tz': False, 'uid': 1, 'pricelist': 1, 'partner_id': 5, 'uom': 1, 'quantity': 1}

Sbaglio qualcosa ?
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Problema con context e attributes 5 Anni 5 Mesi fa #13269

  • django
  • Avatar di django
  • Offline
  • Junior Boarder
  • Messaggi: 33
  • Ringraziamenti ricevuti 5
  • Karma: 0
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Problema con context e attributes 5 Anni 5 Mesi fa #13281

  • ltpisano
  • Avatar di ltpisano
  • Offline
  • Fresh Boarder
  • Messaggi: 4
  • Karma: 0
Ciao Dj,
scusa ma non ho capito, se inserisco il codice xpath nella view XML dovrei ricevere nel context del py in esecuzione quanto ho aggiunto, perchè dorei fare (e comunque non mi è chiaro come nel mio caso dato che non è un wizard) un override della default_get ?

Dimenticavo che il campo boatmodel_id è di tipo many2one.

Grazie
Ultima modifica: 5 Anni 5 Mesi fa da ltpisano.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Problema con context e attributes 5 Anni 5 Mesi fa #13349

  • django
  • Avatar di django
  • Offline
  • Junior Boarder
  • Messaggi: 33
  • Ringraziamenti ricevuti 5
  • Karma: 0
ciao,
scusa il ritardo della risposta :)

ho provato il tuo codice, con minime modifiche funziona bene:

cambia:
productobj = self.pool.get('product.product').read(cr, uid, context,)

con:
productobj = self.pool.get('product.product').read(cr, uid, context,

poi, questa:
return super(product_product, self).search(cr, uid, args, offset, limit, order, context=context, count=count)

con:
return super(product_product, self).search(cr, uid, args=args, offset=offset, limit=limit, order=order,
context=context, count=count)


spero di non aver dimenticato nulla. :)

ciao
dj
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
Tempo creazione pagina: 0.485 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam