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
  • 3

ARGOMENTO: Metodo onchange

Metodo onchange 5 Anni 5 Giorni fa #15664

  • NicoTheBrush
  • Avatar di NicoTheBrush
  • Offline
  • Platinum Boarder
  • Messaggi: 1952
  • Ringraziamenti ricevuti 156
  • Karma: 46
Questo metodo ti preclude ti potere aggiornare gli addons standard e perdere i bugfix
Modificando direttamente il file py c'è questa controindicazione. Di solito si da un modulo ad hoc che eredita funzioni e viste dal modulo ufficiale, però qui ci addentriamo nel vivo delle programmazione che non viene lontanamente toccata dal RAD di OpenERP...
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Metodo onchange 5 Anni 5 Giorni fa #15668

  • GDollorenzo
  • Avatar di GDollorenzo
  • Offline
  • Senior Boarder
  • Ingegnere Gestionale (non ufficiale), Appassionato
  • Messaggi: 47
  • Karma: 0
Si questo l'avevo capito, ora non posso aggiornare i moduli modificati.
Io non ho fatto modifiche "pesanti", ho inserito un paio di campi all'interno del db e nelle classi che lo gestiscono. Ho inoltre creato un piccolo metodo per la gestione di alcuni valori.
In tutto avrò modificato 3 file py.
Come faccio a creare un modulo che applichi queste modifiche a questi 3 file? E' programmazione assai angusta ;-) ?
Ho modificato molte viste dal client, un aggiornamento le cancellerebbe?
Grazie del tuo tempo
Ing. Giuseppe Dollorenzo
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Metodo onchange 5 Anni 5 Giorni fa #15670

  • NicoTheBrush
  • Avatar di NicoTheBrush
  • Offline
  • Platinum Boarder
  • Messaggi: 1952
  • Ringraziamenti ricevuti 156
  • Karma: 46
Avendo usato il RAD solo agli inizi (non smetterò mai di ringraziare eLBati che mi ha dato le prime dritte di creazione moduli :) ) posso dirti che mi ricordo (spero) che i campi creati hanno il prefisso "x_" particolarità che utilizza openerp per non cancellartelo durante un aggiornamento del database, idem l'inserimento di tali campi nelle viste.
Per le modifiche scritte nei files py, immagino quindi tu sia entrato nei moduli addons standard, non succede nulla finché non fai l'aggiornamento da launchpad (immaginando che tu abbia seguito la guida d'installazione nel wiki), appena la lanci però ti potrai trovare un errore di incongruenza (conflitto), in quando hai modificato parti di files py che sono state modificate anche dal creatore dell'addons, quindi occorre risolvere tali conflitti (anche perchè bzr ti crea 2 blocchi di testo dove ti fa vedere le differenze, che darebbero errore e openerp non si avvierebbe fino alla correzione)
Non voglio spaventarti ma fare modifiche a procedure già esistenti richiede un po' di esperienza, a volte si riesce a "sovrascrivere" (override) la procedura con un tuo pezzo di codice anteposto e poi una chiamata alla procedura originale. Per modifiche "intrecciate" del codice spesso si copia in toto la procedura portandola nel tuo modulo, sostituendo così quella del modulo originale...
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Metodo onchange 5 Anni 5 Giorni fa #15672

  • GDollorenzo
  • Avatar di GDollorenzo
  • Offline
  • Senior Boarder
  • Ingegnere Gestionale (non ufficiale), Appassionato
  • Messaggi: 47
  • Karma: 0
Diciamo che l'inserimento dei campi potrebbe essere risolto (ovvero gli aggiornamenti non cancellerebbero le modifiche), eliminandoli dal codice e dal db e inserendoli da client con "x_ " iniziale, giusto? se devo però aggiornare un metodo (2 righe giuste giuste) e inserire un altro di 4 righe, senza impattare il tutto come posso fare?
Ing. Giuseppe Dollorenzo
Ultima modifica: 5 Anni 5 Giorni fa da GDollorenzo.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Metodo onchange 5 Anni 3 Giorni fa #15697

  • GDollorenzo
  • Avatar di GDollorenzo
  • Offline
  • Senior Boarder
  • Ingegnere Gestionale (non ufficiale), Appassionato
  • Messaggi: 47
  • Karma: 0
Ho fatto come mi hai consigliato, creando dei campi personalizzati con prefisso "x_". Le modifiche ai file py per alcuni sono necessari, dato che ho creato un metodo, modificato un altro (primo dubbio, ho dovuto aggiungere i campi personalizzati in questo codice per farli utilizzare dai metodi).
Passando al dubbio VERO...
In un modulo ho solo inserito un campo personalizzato, non collegato con nessuno. Aggiornando il modulo non lo fa sparire, eh fin qui tutto bene.
Ma le viste??? io le ho modificate, ma l'aggiornamento cancella ogni modifica! Se provo a creare una personalizzata la si può associare solo ad un utente, quindi come faccio ad aggiornare i moduli senza intaccare le viste modificate???
Ing. Giuseppe Dollorenzo
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Metodo onchange 5 Anni 3 Giorni fa #15698

  • NicoTheBrush
  • Avatar di NicoTheBrush
  • Offline
  • Platinum Boarder
  • Messaggi: 1952
  • Ringraziamenti ricevuti 156
  • Karma: 46
Se permetti ti incanalo su qualcosa di più costruttivo:

per modificare delle viste crea un modulo (cartella):
dentro mettici:
un file py che contiene le modifiche al DB fisico, es.: partner.py
from osv import fields,osv
 
class res_partner(osv.osv):
    _inherit = 'res.partner'
    _name = 'res.partner'
 
    _columns = {
           'my_field': fields.char('Custom field', size=64),
    }

un file xml che contiene le modifiche da fare alle viste, es.: partner_view.xml
<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <record id="my_custom_form" model="ir.ui.view">
            <field name="name">Form partner modificato</field>
            <field name="model">res.partner</field>
            <field name="type">form</field>
            <field name="inherit_id" ref="base.view_partner_form"/>
            <field name="arch" type="xml">
               <field name="name" position="after">
                    <field name="my_field" />
               </field>
            </field>
        </record>
    </data>
</openerp>

in file __init__.py (sintassi python per le cartelle package), qui scrivi solo:
import partner

un file __openerp__.py contentente un dizionario python, es.:
{
    'name' : 'Mio muodulo',
    'version' : '0.1',
    'category' : 'Customization',
    'description' : """ Aggingo campi al partner """,
    'author': 'Nicola',
    'website': 'http://www.example.com',
    'license': 'AGPL-3',
    'depends' : ['base',],
    'init_xml' : [], 
    'data' : ['partner_view.xml',],
    'demo_xml' : [],
    'test': [],
    'active' : False, 
    'installable' : True, 
}

Così hai creato il tuo primo modulo, ora devi mettere questa cartella nella cartella degli addons di openerp oppure fare un link simbolico all'interno della stessa
Da openerp fai rilevare il nuovo modulo e poi installalo.
Durante l'installazione verrà aggiunto il campo al DB (file py) e nella vista form del partner dopo il campo name
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
  • 3
Tempo creazione pagina: 0.132 secondi

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

Protected by R Antispam