openobject-italia-core-devs team mailing list archive
-
openobject-italia-core-devs team
-
Mailing list archive
-
Message #00319
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