Introduzione

Odoo History

Tiny ERP

OpenERP

Odoo

Links
http://blog.karmacomputing.co.uk/an-odoo-review-how-odoo-could-be-so-much-better-for-smes/

Come funziona Odoo

Links
http://bloopark.de/en_US/blog/the-bloopark-times-english-2/post/odoo-10-workflows-partial-removal-265

Moduli aggiuntivi

inherit, inherits

Links
https://www.odoo.com/forum/how-to/developers-13/whats-the-difference-between-inherit-and-inherits-52205

Modifiche di base

Aggiungere un campo

Due modalità di modificare Odoo:

Scrittura del modulo

Modifiche di base riguardano i model e i view.

Aggiungere e collegare una tabella

Tabella Animals:

L’esempio si può scaricare da:
https://github.com/andreinl/vet_clinic

Funzioni standard

Funzioni standard di un Model

http://stackoverflow.com/questions/29442993/available-domain-operator-in-openerp-odoo

Creare / aggiornare record con le connessioni One2many (Ex: Sale Order con Sale Order Lines):

Wizard

The most frequent reason for changing a view is the necessity to show newly created record. In this example we pass to a new view the invoice_id:

view = self.env['ir.model.data'].get_object_reference('account', 'invoice_form')
view_id = view and view[1] or False

return {
    'type': 'ir.actions.act_window',
    'name': _('Customer Invoices'),
    'res_model': 'account.invoice',
    'view_type': 'form',
    'view_mode': 'form',
    'view_id': [view_id],
    'target': 'current',
    'res_id': invoice_id,
    'context': "{'type':'out_invoice'}",
}

Debug

Debug con standard Python debugger

import pdb
pdb.set_trace()

Debug dentro PyCharm

Logging

Links
http://www.mindissoftware.com/Odoo-logging-configuration-usage-implementation/

Utilizzo del JSON-RPC per testare le funzioni

Links
https://www.odoo.com/documentation/8.0/howtos/backend.html

Q-Web

addons/sale/views/report_saleorder.xml

Apertura report da browser:

Links
http://odoo.guide/report-design-workshop/

Tecniche avanzate