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
Ricordati di dichiarare la versione di Odoo a cui riferisce la domanda
  • Pagina:
  • 1
  • 2

ARGOMENTO: Field one2many obbligatorio (required)

Field one2many obbligatorio (required) [RISOLTO] 4 Anni 3 Mesi fa #18049

  • angelov
  • Avatar di angelov
  • Offline
  • Fresh Boarder
  • Messaggi: 11
  • Karma: 0
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! :type:
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Field one2many obbligatorio (required) 4 Anni 3 Mesi fa #18053

  • LeartS
  • Avatar di LeartS
  • Offline
  • Expert Boarder
  • Messaggi: 95
  • Ringraziamenti ricevuti 24
  • Karma: 3
IMO la soluzione "corretta" è, come già detto, readonly=True nel modello. Se non funziona bisognerebbe vedere se effettivamente non funziona (magari hai solo dimenticato di fare -u modulo!) e nel caso segnalarlo su GitHub.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
Tempo creazione pagina: 0.118 secondi

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

Protected by R Antispam