← Back to team overview

openobject-italia-core-devs team mailing list archive

Re: questioni sull'ereditarietà

 

Pardon,
la modifica a cui sto lavorando è legata alla localizzazione italiana (a breve la pubblico) ma effettivamente la domanda che sto facendo è strettamente tecnica. Continuo qui perchè almeno si può spostare il thread in blocco.

A classe ir_sequence definita in base
B classe ir_sequence ridefinita in account/sequence.py
C classe ir_sequence ridefinita da me in una cartella addons aggiuntiva

Da quallo che dice Davide (grazie Davide) mi aspetto che accada questo:
C eredita da B che eredita da B


Io però avrei bisogno che accadesse questo
B eredita da C che eredita da A

in questo modo il metodo ir_sequence.get_id() di B
chiama super(ir_sequence, self).get_id()
verrebbe chiamato il mio (C)



________________________________
Da: Davide Corio <davide.corio@xxxxxxxxxxxx>
A: openobject-italia-core-devs@xxxxxxxxxxxxxxxxxxx
Inviato: Lunedì 2 Maggio 2011 16:02
Oggetto: Re: [Openobject-italia-core-devs] questioni sull'ereditarietà

Il 02/05/2011 15:29, Matteo Grolla ha scritto:
> Salve
> avrei bisogno di un chiarimento su come risolvere il seguente problema
> 
> Vorrei fare una modifica al metodo ir_sequence.get_id(...) e fare in
> modo che gli altri moduli che ridefiniscono questo metodo abbiano come
> versione base il mio metodo
> 
> Es. il modulo account ridefinisce la classe ir_sequence
> nel metodo ir_sequence.get_id() del modulo account vorrei che la
> chiamata super(ir_sequence, self).get_id() facesse riferimento al mio metodo

Non esiste un modo preciso per determinare quale modulo eredita per ultimo.
cmq i moduli messi una cartella addons aggiuntiva specificata con addons-path sono guardati per ultimi. quindi se crei il tuo modulo che fa l'override li dentro sei quasi sicuro che abbia la priorità.
A meno che non ci siano altri addons che fanno lo stesso.

> E' possibile tenere la modifica in un mio modulo senza andare a
> modificare il modulo base?

devi SEMPRE fare le modifiche in un tuo modulo, mai toccare il codice di openerp. Altrimenti quando escono gli aggiornamenti perdi tutto.

PS: essendo questa lista nata per lo sviluppo della localizzazione, forse conviene spostare queste discussioni sul forum.

Gli altri che ne pensano a riguardo?

-- Davide Corio              davide.corio@xxxxxxxxxxxx
Via Alliaudi, 19 - 10064  -  Pinerolo (TO)  -  Italy
Mobile: (+39) 3663221427  -   Fax: (+39) 01214469718
Domsense Srl                http://www.domsense.com

_______________________________________________
Mailing list: https://launchpad.net/~openobject-italia-core-devs
Post to     : openobject-italia-core-devs@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~openobject-italia-core-devs
More help   : https://help.launchpad.net/ListHelp

Follow ups

References