Mi sto facendo uno script in python che mi aiuti nei miei smanettamenti con OpenERP: in parole povere si attacca via XML-RPC al server, DROPpa il database, lo ricrea, installa i moduli, configura l'azienda e gli utenti, infine inserisce i dati leggendoli dai DBF del gestionale attuale (no comment sul dbf per favore
)
Questo mi consente di testare e spippolare con OpenERP, con dentro i miei dati (al momento importo anagrafiche clienti e prodotti), e con la possibilità di ripartire sempre da una situazione "pulita"... decisamente comodo. Ogni volta che faccio un passo avanti con il client web e decido che mi sta bene, lo replico nello script python.
Ora la questione è l'installazione dei moduli:
for modulo in MODULI:
ids = erp('ir.module.module', 'search', [('name', '=', modulo)])
assert len(ids) == 1
logger.info('installo modulo %s' % modulo)
response = erp('ir.module.module', 'button_immediate_install', ids)
logger.debug(response)
fin tanto che non ritornano niente di particolare (es. modulo edi) oppure una semplice indicazione di refresh per il client web (es. moduli product ed email_template) io non ho niente da fare ed è facile.
Il problema giunge quando i moduli richiedono delle azioni, solitamente di configurazione, tipo il l10n_it_minimal_chart.
L'esempio in questione mi ritorna un dict fatto così:
groups_id []
domain False
help False
res_model account.installer
nodestroy False
search_view_id False
id 148
views [[284, 'form']]
src_model False
display_menu_tip False
usage False
type ir.actions.act_window
view_type form
view_id [284, 'account.installer.form']
auto_refresh 0
view_mode form
view_ids []
name Install your Chart of Accounts
multi False
target new
auto_search True
search_view {.... un botto de roba ....}
filter False
limit 80
context {'disable_log': True}
So cosa gli devo rispondere e/o come ricavarlo dalla search_view, ma come faccio a rispondergli?