Ringrazio enlightx per il supporto, ma non sono stato in grado di seguire la strada indicata..
In alternativa, ho adottato la seguente soluzione.. e devo dire che funziona alla meraviglia!
# override per garantire ALMENO un fornitore associato al prodotto.
class product_template(osv.osv): # richiamo la classe originale.
def _check_seller_product(self, cr, uid, ids): # definisco una funzione.
for record in self.browse(cr, uid, ids):
id_prodotto = record.id # recupero l'id del prodotto corrente.
sql_req= """ SELECT COUNT(product_tmpl_id)
FROM product_supplierinfo
WHERE (product_tmpl_id = %d)
""" % (id_prodotto,) # conto quante occorrenze trovo nella tabella 'supplierinfo' relative al mio prodotto.
cr.execute(sql_req) # eseguo la query.
res = cr.dictfetchone() # recupero un solo valore (sicuramente sarà uno) con il relativo dizionario.
prodotto = res['count'] # assegno a 'prodotto' il nunero di occorrenze trovate.
if prodotto > 0: # controllo il numero di occorrenze trovate.
return True # Almeno un fornitore è stato associato al prodotto.
else:
return False # Nessun fornitore associato al prodotto.
_name = "product.template" # nome della classe (uguale all'originale).
_inherit = "product.template" # nome della classe collegata (stessa classe).
_constraints = [
(_check_seller_product, "Devi associare ALMENO un fornitore a questo prodotto! Vai su Approvvigionamenti->Fornitori->Aggiungi una riga.",['seller_ids']), # Se non trovo nessuna occorrenza (se non ci sono fornitori associati), non salvo la riga prodotto.
]
product_template()
Ovviamente se qualcuno ha una soluzione "semplificativa" del mio codice.. che ben venga.
Alla prox!