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 inserire la versioni di Odoo per cui poni la domanda

ARGOMENTO: KETTLE TERMINATOOOR

Re:KETTLE TERMINATOOOR 8 Anni 6 Mesi fa #2663

  • Dr.Dran
  • Avatar di Dr.Dran
  • Offline
  • Gold Boarder
  • Messaggi: 187
  • Karma: 0
Ciao Elbati!

Certo, è vero quello che hai detto, ma rimango sempre della mia posizione anche perchè per estendere un oggetto hai necessariamente bisogno di sapere su cosa e con che cosa lavori ;)

Bien il mio metodo è un quick & dirty anche per ragioni di tempo e complessità catatonica dell'organizzazione dei contatti di outlook.

Darò un guardata a quello che mi hai postato, così posso capire meglio cosa succede :)

Cheers

Franco
Franco Tampieri:
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re:KETTLE TERMINATOOOR 8 Anni 6 Mesi fa #2664

  • paleo
  • Avatar di paleo
  • Offline
  • Senior Boarder
  • Messaggi: 43
  • Karma: 0
Alas! Paladini del modello MVC... che lavoro ingrato ;-)

L'estensione di un modello, così come come dice il termine, deve partire dal modello stesso, non dalla sua implementazione. Che importa se questo poi sia implementato su un DB Postgres, un MySql, un file di testo o un antico papiro egiziano... :-D la sto esagerando, ma il concetto è che apposta per questo è stato incapsulato attraverso l'ORM, per non doversene preoccupare.

Ad ogni modo Habemus many-to-many relationship
# -*- coding: utf8 -*-
# Global parameters
conn = {
    'server_address': 'http://localhost:8069', 
    'username': 'admin',
    'pwd': 'mypwd',
    'dbname': 'mydb'
    }
# Connessione a ERP
sock_common = xmlrpclib.ServerProxy (conn['server_address'] + '/xmlrpc/common')
uid = sock_common.login(conn['dbname'], conn['username'], conn['pwd'])
sock = xmlrpclib.ServerProxy(conn['server_address'] + '/xmlrpc/object')
conn.update({'sock': sock, 'uid': uid})

dbname, sock, uid, pwd = conn['dbname'], conn['sock'], conn['uid'], conn['pwd']


# Crea due categorie
#... non li creo qui, creali manualmente nel db
# Crea due partner
#... non li creo qui, creali manualmente nel db

nome_categoria_1 = 'Customer'
nome_categoria_2 = 'Prospect'
nome_partner_1 = 'Cliente1'
nome_partner_2 = 'Cliente2'

# Trova il partner
partner_id_1 = sock.execute(dbname, uid, pwd, 'res.partner', 'search', [('name', '=', nome_partner_1)])[0]
partner_id_2 = sock.execute(dbname, uid, pwd, 'res.partner', 'search', [('name', '=', nome_partner_2)])[0]
# Trova la categoria
category_id_1 = sock.execute(dbname, uid, pwd, 'res.partner.category', 'search', [('name', '=', 'Prospect')])[0]
category_id_2 = sock.execute(dbname, uid, pwd, 'res.partner.category', 'search', [('name', '=', 'Supplier')])[0]

print partner_id_1
print category_id_1
# Associa il partner_1 a entrambe le categorie
values = {'category_id':[(6, 0, [category_id_1, category_id_2])]}
results = sock.execute(dbname, uid, pwd, 'res.partner', 'write', partner_id_1, values)
# Associa il partner_2 a entrambe le categorie
values = {'category_id':[(6, 0, [category_id_1, category_id_2])]}
results = sock.execute(dbname, uid, pwd, 'res.partner', 'write', partner_id_2, values)
Così dovrebbe andare
Ultima modifica: 8 Anni 6 Mesi fa da paleo.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re:KETTLE TERMINATOOOR 8 Anni 6 Mesi fa #2665

  • Dr.Dran
  • Avatar di Dr.Dran
  • Offline
  • Gold Boarder
  • Messaggi: 187
  • Karma: 0
Wow! grazie mille Paleo!

A parte gli scherzi anche io sono un fan del paradigma MVC :)
Ma capire come girano le cose è sempre stato un io pallino, non è il punti di dire mi studio postgres o mysql etc. etc. il punto è capire come stabilisce una relazione ad esempio se per creare una relazione many-to-many ha solo esclusivamente bisogno di creare una tabella di appoggio dove vengono associati gli id delle due tabelle in relazione e null'altro, questo può aiutarmi in caso di problemi per ripristinare solo un pezzo di db necessario, oppure anche capire che problemi ci possono essere durante una migrazione da una release all'altra... ad esempio prendiamo turbogears dalla release 1 alla release 1.1 hanno cambiato l'ORM da sqlobject a sqlalchemy, creando delle incompatibilità sulla migrazione degli oggetti, incompatibilità che vengono superate imparando a capire come funzionano i vari strumenti :D

Maddai, lasciamo perdere qui :woohoo: , come avrai capito sono un tipo un pò fatto a modo mio :D e potremmo andare a discutere all'infinito :)

La cosa importante è che ti ringrazio veramente tanto dell'aiuto! :laugh:

Cheers

Franco
Franco Tampieri:
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re:KETTLE TERMINATOOOR 8 Anni 6 Mesi fa #2666

  • enlightx
  • Avatar di enlightx
  • Online
  • Platinum Boarder
  • Messaggi: 6064
  • Ringraziamenti ricevuti 638
  • Karma: 85
La realtà è che, quando hai a che fare con degli ORM, al db e alle relazioni non dovresti proprio pensare.
Per esperienza, quando inizi a farti problemi su come viene gestito il db (e non sei uno sviluppatore del framework) sicuramente finirai in perdita al bilancio del progetto :)

Questo è per dire che i framework sono nati per astrarre i livelli sottostanti, quindi è necessario fidarsi del framework per poter produrre software con tempistiche decenti.

Per quanto riguarda le incompatibilità, sicuramente capiteranno anche in openobject con le successive versioni, ma anche qui basta ragionare con le sue API.
Ci saranno sempre i metodi create, read e write, indipendentemente dal livello sottostante.
Davide Corio
Odoo Solution Architect
email: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
web: www.davidecorio.com
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re:KETTLE TERMINATOOOR 8 Anni 6 Mesi fa #2667

  • Dr.Dran
  • Avatar di Dr.Dran
  • Offline
  • Gold Boarder
  • Messaggi: 187
  • Karma: 0
Ciao Davide!

Non posso che essere d'accordo su quello che dici, anche perchè come vedi dalle righe di codice l'esigenza è stata veramente "Quick & Dirty", per quello son andato sul db e già che c'ero mi sono fatto portare dalla mia indole di Hacker :D :D :D
Franco Tampieri:
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.151 secondi

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

Protected by R Antispam