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: override attrs in init

override attrs in init 2 Anni 6 Mesi fa #24989

  • difra
  • Avatar di difra
  • Offline
  • Expert Boarder
  • Messaggi: 102
  • Ringraziamenti ricevuti 4
  • Karma: 0
Domanda:
nella versione 7, per cambiare ad esempio la track_visibility su tutti i field di una classe madre, può andare bene questo codice:
def __init__(self, cr, uid, context=None):
    super(partner_ext, self).__init__(cr, uid)
    for col in self._columns:
        self._columns[col].track_visibility = 'onchange'

La domanda è:
nella versione 8 come fareste?

Grazie in anticipo.
Marco
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

override attrs in init 2 Anni 6 Mesi fa #24998

  • OpenCode
  • Avatar di OpenCode
  • Offline
  • Gold Boarder
  • Vi Veri Veniversum Vivus Vici
  • Messaggi: 179
  • Ringraziamenti ricevuti 32
  • Karma: 4
_columns continua ad esistere, quindi dovrebbe funzionare tranquillamente se sulla 7 lo hai già testato
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Ringraziano per il messaggio: difra

override attrs in init 2 Anni 6 Mesi fa #25010

  • difra
  • Avatar di difra
  • Offline
  • Expert Boarder
  • Messaggi: 102
  • Ringraziamenti ricevuti 4
  • Karma: 0
si, il problema è che testandolo sulla 8 self._columns, almeno nella __init__ è vuoto.

     67         ipdb.set_trace()
---> 68         for col in self._columns:
     69             self._columns[col].track_visibility = 'onchange'

ipdb> self._columns
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

override attrs in init 2 Anni 6 Mesi fa #25019

  • OpenCode
  • Avatar di OpenCode
  • Offline
  • Gold Boarder
  • Vi Veri Veniversum Vivus Vici
  • Messaggi: 179
  • Ringraziamenti ricevuti 32
  • Karma: 4
difra ha scritto:
si, il problema è che testandolo sulla 8 self._columns, almeno nella __init__ è vuoto.

     67         ipdb.set_trace()
---> 68         for col in self._columns:
     69             self._columns[col].track_visibility = 'onchange'

ipdb> self._columns

Mmh. Interessante. Non ci sono altri attributi a cui si può accedere. Ora non ho memoria di cosa tu abbia a disposizione.

Però la domanda sorge spontanea: qual è la tua esigenza di partenza? Magari possiamo risolvere diversamente :)
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

override attrs in init 2 Anni 6 Mesi fa #25021

  • difra
  • Avatar di difra
  • Offline
  • Expert Boarder
  • Messaggi: 102
  • Ringraziamenti ricevuti 4
  • Karma: 0
OpenCode ha scritto:

Però la domanda sorge spontanea: qual è la tua esigenza di partenza? Magari possiamo risolvere diversamente :)

Impostare il track_visibility a tutti i field senza doverli dichiarare uno ad uno.
In pratica vorrei evitare questo
class invoice_ext(models.Model):
    _name = 'account.invoice'
    _inherit = 'account.invoice'

    field1 = fields.Many2one(track_visibility='onchange')
    field2 = fields.Many2one(track_visibility='onchange')
    fieldn = fields.Many2one(track_visibility='onchange')
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

override attrs in init 2 Anni 6 Mesi fa #25029

  • OpenCode
  • Avatar di OpenCode
  • Offline
  • Gold Boarder
  • Vi Veri Veniversum Vivus Vici
  • Messaggi: 179
  • Ringraziamenti ricevuti 32
  • Karma: 4
Ho fatto delle prove sulla 8 ed effettivamente il codice
def __init__(self, registry, cr, context=None):
        super(MiaClasse, self).__init__(registry, cr)
        import pdb;pdb.set_trace()

mi dice che sia _columns che _fields sono vuoti. Sarà cambiato il momento in cui viene gestita la cosa visto che ora i campi sono attributi della classe mentre prima erano chiavi di un dizionario.

P.S. ho corretto i parametri perché non viene passato l'uid ad __init__ :)
Ultima modifica: 2 Anni 6 Mesi fa da OpenCode.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Ringraziano per il messaggio: difra
  • Pagina:
  • 1
  • 2
Tempo creazione pagina: 0.151 secondi

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

Protected by R Antispam