[drupalday2017] - DevOps: strumenti di automazione per Drupal8DrupalDay
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
di Luca Cracco
This is a simple power point for basic introduction of odoo. Very first facts and figures about the company and software plus the reasons odoo is a good ERP for SMB and even big enterprises.
This document outlines the documentation process at Odoo, including contributing to the documentation forum, promoting forum topics to documentation posts, undergoing quality review, and translating documentation. Forum topics can be answered, promoted to documentation, reviewed for quality, and translated with Gengo before being published. The goal is to continually improve documentation through community contributions.
Event: Giffoni Open Makers Day 2013
Speaker: Fabrizio Lapiello
Questo talk è strutturato "Step by Step" per presentare in modo semplice ed intuitivo il framework Django, gli step sono incentrati sugli aspetti più appetibili e funzionali del framework fornendo informazioni di base su come utilizzarlo in ambiente Google App Engine.
[drupalday2017] - DevOps: strumenti di automazione per Drupal8DrupalDay
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
di Luca Cracco
This is a simple power point for basic introduction of odoo. Very first facts and figures about the company and software plus the reasons odoo is a good ERP for SMB and even big enterprises.
This document outlines the documentation process at Odoo, including contributing to the documentation forum, promoting forum topics to documentation posts, undergoing quality review, and translating documentation. Forum topics can be answered, promoted to documentation, reviewed for quality, and translated with Gengo before being published. The goal is to continually improve documentation through community contributions.
Event: Giffoni Open Makers Day 2013
Speaker: Fabrizio Lapiello
Questo talk è strutturato "Step by Step" per presentare in modo semplice ed intuitivo il framework Django, gli step sono incentrati sugli aspetti più appetibili e funzionali del framework fornendo informazioni di base su come utilizzarlo in ambiente Google App Engine.
Non solo Django: MVC orientato agli oggetti con Plone e Zope ToolkitMaurizio Delmonte
Direzioni fondamentali per entrare rapidamente nella comprensione di Plone e del suo mondo, e costruire il vostro sistema di gestione contenuti in capo a pochi giorni.
Node.js REST interface for MongoDB, we modified mongodb-rest (https://github.com/tdegrunt/mongodb-rest) to manage more operation:
counting elements
"distinct" operations
excel/csv export
list of available db collection
list of keys of a specific query
Multithreading support
It's now also possible to search by date range and are managed sort operations.
Qt Lezione3: un visualizzatore di immaginiPaolo Sereno
Questa lezione sul toolkit Qt permette di scrivere una semplice applicazione di visualizzazione immagini, i formati sono quelli più comunemente usati: JPG, BMP, PNG etc.
Il 10 novembre 2015 viene rilasciato TYPO3 CMS 7.6, la nuova versione LTS con supporto fino al 2018. Queste le differenze con la versione 7.5 e fra qualche giorno i documenti con tutte le differenze tra TYPO3 CMS 6.2 LTS e TYPO3 CMS 7 LTS
Iniziamo il nostro percorso che ci porterà a conoscere i segreti dello sviluppo dei temi per WordPress.
Questo primo incontro in particolare sarà dedicato a scoprire la gerarchia dei temi di WordPress, il dettaglio dei file che compongono un tema e le priorità che ciascun file possiede.
In seguito vedremo cosa sono e come creare i child theme, le loro potenzialità e importanza nell'ecosistema WordPress e infine, inizieremo ad entrare nel vivo dello sviluppo di un tema WordPress scoprendo quali sono i framework più importanti e maggiormente utilizzati dagli sviluppatori nella creazione di un tema WordPress.
A fine 2015 è stato lanciato lo sviluppo della nuova major release di TYPO3 CMS. A marzo 2016 il rilascio della prima sprint release. In questo documento si trovano tutte le novità di TYPO3 CMS 8.0
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018Marco Chiesi
Se sei un programmatore interessato a WordPress ma non hai mai sviluppato un plugin, il WordCamp Bologna è l’occasione giusta per iniziare. Seguendo questo talk introduttivo avrai modo di scoprire i concetti di base, le convenzioni, le buone pratiche, le misure di sicurezza, l’architettura e le principali funzionalità messe a disposizione dalla piattaforma. In questo modo potrai riuscire a muovere i primi passi nel mondo dello sviluppo WordPress e a orientarti meglio in mezzo all’enorme mole di materiale informativo disponibile in rete.
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
Introduzione al framework Java Spring e Maven per realizzare API REST.
Breve introduzione all'uso di Maven per configurare un progetto SpringBoot e realizzare un server REST.
Disponibile il codice dimostrativo su github (link nelle slide, attenzione alle branch).
Valerio Radice (valix85)
Luglio 2017
Uno dei grandi problemi di chi lavora su Odoo è la difficoltà di interpretare correttamente le sigle relative alle due tipologie di licenza che Odoo S.A. ha utilizzato per le varie release del prodotto. L'intento è aiutare i neofiti dello sviluppo Odoo a evitare errori nell'interpretazione delle licenze, che potrebbero portarli a correre inconsapevolmente grandi rischi.
Buona lettura!
Non solo Django: MVC orientato agli oggetti con Plone e Zope ToolkitMaurizio Delmonte
Direzioni fondamentali per entrare rapidamente nella comprensione di Plone e del suo mondo, e costruire il vostro sistema di gestione contenuti in capo a pochi giorni.
Node.js REST interface for MongoDB, we modified mongodb-rest (https://github.com/tdegrunt/mongodb-rest) to manage more operation:
counting elements
"distinct" operations
excel/csv export
list of available db collection
list of keys of a specific query
Multithreading support
It's now also possible to search by date range and are managed sort operations.
Qt Lezione3: un visualizzatore di immaginiPaolo Sereno
Questa lezione sul toolkit Qt permette di scrivere una semplice applicazione di visualizzazione immagini, i formati sono quelli più comunemente usati: JPG, BMP, PNG etc.
Il 10 novembre 2015 viene rilasciato TYPO3 CMS 7.6, la nuova versione LTS con supporto fino al 2018. Queste le differenze con la versione 7.5 e fra qualche giorno i documenti con tutte le differenze tra TYPO3 CMS 6.2 LTS e TYPO3 CMS 7 LTS
Iniziamo il nostro percorso che ci porterà a conoscere i segreti dello sviluppo dei temi per WordPress.
Questo primo incontro in particolare sarà dedicato a scoprire la gerarchia dei temi di WordPress, il dettaglio dei file che compongono un tema e le priorità che ciascun file possiede.
In seguito vedremo cosa sono e come creare i child theme, le loro potenzialità e importanza nell'ecosistema WordPress e infine, inizieremo ad entrare nel vivo dello sviluppo di un tema WordPress scoprendo quali sono i framework più importanti e maggiormente utilizzati dagli sviluppatori nella creazione di un tema WordPress.
A fine 2015 è stato lanciato lo sviluppo della nuova major release di TYPO3 CMS. A marzo 2016 il rilascio della prima sprint release. In questo documento si trovano tutte le novità di TYPO3 CMS 8.0
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018Marco Chiesi
Se sei un programmatore interessato a WordPress ma non hai mai sviluppato un plugin, il WordCamp Bologna è l’occasione giusta per iniziare. Seguendo questo talk introduttivo avrai modo di scoprire i concetti di base, le convenzioni, le buone pratiche, le misure di sicurezza, l’architettura e le principali funzionalità messe a disposizione dalla piattaforma. In questo modo potrai riuscire a muovere i primi passi nel mondo dello sviluppo WordPress e a orientarti meglio in mezzo all’enorme mole di materiale informativo disponibile in rete.
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
Introduzione al framework Java Spring e Maven per realizzare API REST.
Breve introduzione all'uso di Maven per configurare un progetto SpringBoot e realizzare un server REST.
Disponibile il codice dimostrativo su github (link nelle slide, attenzione alle branch).
Valerio Radice (valix85)
Luglio 2017
Uno dei grandi problemi di chi lavora su Odoo è la difficoltà di interpretare correttamente le sigle relative alle due tipologie di licenza che Odoo S.A. ha utilizzato per le varie release del prodotto. L'intento è aiutare i neofiti dello sviluppo Odoo a evitare errori nell'interpretazione delle licenze, che potrebbero portarli a correre inconsapevolmente grandi rischi.
Buona lettura!
Presentiamo una overview con un esempio pratico dell’implementazione e configurazione del sistema di gestione dei magazzini in odoo 8. Parleremo anche di una Logistic Dashboard creata per una esigenza particolare di un cliente.
- Franco Tampieri -
Come se non bastasse, arriva lui: un altro POS per OpenERP / Odoo, un vero e proprio client sviluppato in Qt multipiattaforma che ha la possibilità di pilotare svariati misuratori fiscali (sarema, ditron, rch, olivetti) conformi alla normativa italiana. YAPOS si estende in Quickorder integrando anche la gestione tavoli e comande. Il vantaggio di questa configurazione è legata all’esperienza consolidata nella ristorazione da parte di HGSystem (produttrice di QO) ed all’integrazione di YAPOS o Quickorder nel flusso di gestione di OpenERP / Odoo
- Andrea Cometa - Herbert Bonaffini -
I test automatici permettono di limitare i bachi e le regressioni. In realtà,
aiutano anche la comunicazione con colleghi e clienti, la concentrazione, il
design del codice, le consegne.
Presenterò con semplici esempi i sistemi di test che ho usato con odoo, e
alcune idee su come rendere i nostri test più semplici, leggibili, efficaci e
facili da mantenere
- Leonardo Pistone -
Caso d’uso di un cliente con una gestione acquisti e vendite particolare. Vi mostreremo, uno strumento dal quale nasce tutto il processo di acquisto e vendita dei prodotti. Presenteremo le caratteristiche di una verticalizzazione che, se generalizzata, potrebbe facilitare il processo di acquisti e vendite di molte aziende
- Rosario Savarese -
Strumenti e tecniche per una tesoreria ordinata e puntuale.
Partendo dal nuovo widget per la riconciliazione bancaria manuale introdotto con Odoo 8.0, ci
soffermeremo sui vari strumenti integrati o provenienti dalla community riguardanti la gestione delle banche, con particolare riferimento alla riconciliazione dei pagamenti che a tendere andrà a predominare sempre di più sull’utilizzo dei voucher, ma che già ora ci consente di utilizzare Odoo in maniera efficiente anche su queste attività spesso poco comuni nelle PMI italiane
- Davide Corio -
Un talk per illustrare le funzionalità aggiunte alla gestione cespiti di Odoo per il calcolo degli ammortamenti e delle stampe del libro cespiti e di bilancio, meglio rispondenti alla normativa Italiana
- Giuseppe D’Alò -
Presentiamo le principali novità introdotte dalle nuove API V8, costruiremo un nuovo modulo passo dopo passo con l’intento di aiutare chi si affaccia alla programmazione di nuovi moduli su Odoo
- Nicola Malcontenti -
Modulo per la gestione della Fattura Elettronica P.A. integrato in Odoo (OpenERP) e collegato con il fornitore di servizi Digithera che si occupa di conservazione sostitutiva. Il modulo è slegato dal fornitore ed è quindi possibile scegliere un qualsiasi fornitore che possa erogare i servizi richiesti per rendere trasparente la gestione all’utente finale
- Andrea Gallina -
Dettagli sulla normativa sulla FatturaPA, il processo di funzionamento, casi speciali quali la fatturazione alle procure. Odoo 8.0 e FatturaPA. Obblighi di conservazione. Firma Digitale. Conservazione Sostitutiva, come realizzarla in casa e cosa verificare dai fornitori esterni.
- Luigi Di Naro -
What's the OCA, what are our goals ?
Why working with OCA ?
How it's working, how to contribute ?
Last update from the board and review of what we achieved so far
- Joël Grand-Guillaume -
Ovvero come contribuire all'OCA sfruttando al meglio github. Scopriremo come orientarsi tra i vari repository e come è strutturato un progetto; come muoversi tra guidelines e convenzioni; analizzeremo i principali strumenti messi a disposizione da github (issues e PRs).
Vedremo gli aspetti social che agevolano la collaborazione con la community e, non ultimo, lo scopo che anima tutto questo
- Alex Comba -
Il talk sara' incentrato sul modulo odooPLM e le varie integrazioni con i cad.
lo scopo sara' quello di far apprezzare le varie sfumature del modulo e i benefici che le aziende manufatturiere possono avere nell'utilizzo del modulo
- Matteo Boscolo -
03 Estensione delle proprietà di Odoo per la generazione di preventivi complessiAssociazione Odoo Italia
Come utilizzare i principi dei fogli di calcolo, per generare prezzi o quantità di vendita su un’offerta, tramite l’utilizzo di formule matematiche scritte in python e delle proprietà dei prodotti
- Mario Riva -
Questo modulo consente di gestire i vari tipi di ritenuta e di imputarne gli importi da versare in fase di pagamento (attraverso l’estensione del modulo voucher).
- Alessandro Camilli -
Il talk sarà un tour funzionale del C.R.M. di Odoo all'interno del ciclo dell'attivo, dall'inserimento dei lead all'assistenza post vendita. Particolare attenzione verrà data all'utilizzo di Odoo come pannello di controllo della reputazione aziendale online e HUB d'informazioni provenienti dai tre principali social network (Facebook, Twitter e Linkedin) oltre che da Google Alert. Verrà mostrato il flusso di lavoro per tracciare le quattro C della social media marketing intelligence all'interno di Odoo: clienti, competitors, competenze, costi (fornitori)
- Marco Lombardo -
4. Cosa é un modulo?
In OpenERP é una cartella con dentro dei file
specifici:
○ __init__.py
○ __openerp__.py
○ file python (optional)
○ file xml, csv, etc (optional)
Nel mondo Python si chiamano “pacchetti”
(package) o EGGs, ma sono strutturati
diversamente: sono installabili, hanno una
versione, etc.
5. Cosa é un modulo “web”?
Sempre una cartella con dentro gli stessi file,,
più qualche altro:
○ __init__.py
○ __openerp__.py
○ file Python (optional)
○ file XML, CSV, etc (optional)
○
○
○
file Javascript (optional)
file CSS (optional)
file QWEB (xml) (optional)
6. Parametri del modulo web
●
js: lista di path a risorse statiche javascript
Es: [ 'static/src/js/lib.js', ]
●
css: lista di path a risorse statiche CSS
Es: [ 'static/src/css/color.css', ]
●
qweb : lista di path a risorse statiche di tipo XML
Es: ['static/src/xml/lib.xml']
●
web_preload: booleano che dichiara che il modulo
deve essere caricato all’avvio del server
ATTUALMENTE NON UTILIZZATO, PARE :S
NOTA: per la 6.1 questo parametro non esiste, bisogna
lanciare openerp con “--load=web,nome_modulo”
8. A mano
Procedura tipica:
1.
troviamo un modulo esistente
2.
facciamo copia/incolla (o “cp -r” ;))
3.
eliminiamo le cose che non ci servono
4.
aggiungiamo le cose che ci servono
5.
facciamo un bel find/replace
RISULTATO:
●
tempo perso
●
possibilitá di errore piú alta
●
ritorno al tempo della pietra :)
9. Bootstrap automatico
non sarebbe bello poter generare, con un
semplice comando, lo scheletro di un modulo a
partire da un template prestabilito?
La risposta é:
openerp_bootstrap
questo si… un modulo Python :)
11. Installazione
https://pypi.python.org/pypi/openerp_bootstrap/
> pip install openerp_bootstrap
Una volta installato, avrete a disposizione un nuovo comando:
paster e dei template relativi ad openerp.
Paster deriva da Paste, un pacchetto python che consente di
generare, per l’appunto, scheletri di progetti. Per elencare i
template:
> paster create --list-templates
12. I template: creare modulo standard
> paster create -t openerp_newmodule
Questo comando crea uno scheletro per un
modulo standard. Attualmente questo include
semplicemente un file __init__.py e un
__openerp__.py contenente i parametri inseriti in
fase di creazione.
13. I template: creare modulo web
> paster create -t openerp_webmodule
Questo comando crea uno scheletro per un
modulo web. Vediamo meglio cosa succede…
17. Client web: come funziona?
Il client web é dviso sostanzialmente in due parti: client e
server :)
“Lato client” é scritto in javascript.
Tutto ció che é “visibile” é sostanzialmente:
●
un “widget”, un oggetto che estende
instance.web.Widget (tipo la sidebar)
Ad ogni widget é associato un template.
●
una “view”, un oggetto che estende
instance.web.View (list, tree, form, search, etc)
18. Client web: come funziona?
● widget e view interagiscono col server
tramite chiamate AJAX
● “lato server” i controllers si occupano
di restituire i dati a tali chiamate
22. Che cosa è QWEB?
È il sistema di templating del client web.
É un sistema molto modulare che consente di
estendere template esistenti (interamente o in
parte) e include anche l’internazionalizzazione.
Non ha applicazione al di fuori di OpenERP
quindi non ha una community di supporto e non
esiste una documentazione esaustiva (nel trunk
sta cambiando).
L’autore é Antony Lesuisse (OpenERP CTO).
**
25. Come trovare il template?
I template base di OpenERP stanno nel modulo
web “web” :)
Per la precisione li trovate nel seguente path:
web/addons/web/static/src/xml/base.xml
Purtroppo (o per fortuna) stanno tutti nello
stesso file :S
TIP: usate firebug (o altro inspector del browser) per trovare un
riferimento univoco nell’html e poi cercate dentro base.xml
26. Come sovrascrivere un template?
Esempio dal modulo web_nocreatedb:
T-EXTEND
seleziona il
template da
estendere
T-JQUERY
selettore jquery per
selezionare uno specifico
elemento (!!!)
T-OPERATION
operazione da effetturare
sull’elemento selezionato
OPZIONI
before
after
append
replace
web_nocreatedb/static/src/xml/web_nocreatedb.xml
28. Trovare quello che ci serve
●
documentazione1 migliorata molto ma
ancora incompleta
●
nessuna lista di widget
●
o di composizione delle viste
TIP: usate firebug (o altro inspector del browser) per
trovare un riferimento univoco nell’html, cercate il
template contenente il riferimento, infine cercate nel JS il
widget che richiama quel template.
1
https://doc.openerp.com/trunk/web/
29. Estendere viste o widget
Esempio dal modulo web_export_view:
web_export_view/static/js/web_advanced_export.js
30. Estendere viste o widget 2
Esempio dal modulo web_export_view:
web_export_view/static/xml/web_advanced_export.xml
33. Controllers
La parte “lato server” del client web é gestita da
controllers.
I controllers non sono altro che dei metodi
Python che vengono “esposti” tramite una route
(o path).
Una route non é altro che un modo per definire
un URL, banalmente:
www.server.com/path/to/something
38. Tips
●
greppare greppare greppare
●
guardare cosa fanno gli altri
●
cercare su stackoverflow
○
“How to start developing in web addons”
http://stackoverflow.com/a/11950556
●
cercare su OpenERP help
○
●
http://help.openerp.com/questions/
usare FireBug (o simili)