# Odoo

Odoo (anciennement « Tiny ERP » puis « OpenERP ») est un logiciel de gestion d'affaires open source belge. À l’origine progiciel de gestion intégré (ERP), le logiciel s’est vu étendre ses fonctionnalités à des applications de front office (gestion de la relation client (CRM), CMS, e-commerce, blogs, forums, news, événements, live chat, offres d'emploi…).
Le logiciel est utilisé par plus de cinq millions d’utilisateurs pour gérer leurs entreprises à travers le monde. Odoo est décliné en deux versions : community, disponible gratuitement sous la licence LGPLv3, et entreprise, disponible sous la licence propriétaire Odoo Enterprise Edition License v1.0.

## Architecture logicielle

Odoo est conçu selon une architecture modèle-vue-contrôleur, avec des flux de travail flexibles, une interface utilisateur graphique dynamique, une interface de communication interne XML-RPC et un système de comptes-rendus personnalisable.
L’architecture technique repose sur trois composants principaux qui communiquent entre eux au moyen des protocoles XML-RPC et NET-RPC :
* le serveur odoo-server stocke ses données dans une base PostgreSQL ;
* le client odoo mobile (qui a remplacé odoo-client, abandonné depuis la v7) s'installe sur le terminal de l'utilisateur ;
* le serveur web odoo-web permet l’utilisation dans un navigateur.

## Fonctionnalités

Odoo possède des fonctionnalités qui permettent de communiquer et de s'intégrer à OpenOffice.org.
Les fonctions de veille économique intégrées permettent à des utilisateurs multiples de traiter tous les aspects du logiciel. Ceci permet de personnaliser les rapports et les flux de travail.

## Historique et notes des sorties

Le 20 janvier 2011, OpenERP SA annonçait le lancement de la version 6.0 du logiciel, qui comprend une version à la demande (SaaS). Son approche modulaire permet aux utilisateurs de commencer avec une application, puis d'ajouter d'autres modules selon leurs besoins.
En décembre 2012, la version 7.0 d'OpenERP est lancée et peut être testée en ligne, téléchargée ou vue en version de démonstration.
En mai 2014, OpenERP change de nom et devient Odoo.
Été 2014, Odoo lance la version 8. Cette version enrichit principalement le logiciel de nouvelles applications qui font d’Odoo un logiciel allant au-delà d'un ERP : marketing (gestion d'événements, d'enquêtes de satisfactions, campagnes de mails auprès de la CRM, etc.), CMS (construction d'un site internet — front-end lié au back-end — grâce au déplacement rapide et simple de blocs d'édition), e-commerce (application pour vente en ligne), etc.
* Anciennes versions ou fin de maintenance
* Anciennes versions avec maintenance étendue
* Version actuelle
* Versions en cours de développement
* Première version stable : 2004
* Version stable actuelle : 16.0
Historique des versions :
| Nom du logiciel | Version | Date de lancement | Changements significatifs |
| Tiny ERP | 1.0 | Février 2005 | Première publication |
| Tiny ERP | 2.0 | Mars 2005 | |
| Tiny ERP | 3.0 | Septembre 2005 | |
| Tiny ERP | 4.0 | Décembre 2006 | |
| OpenERP | 5.0 | | |
| OpenERP | 6.0 | Octobre 2009 | Première publication sous AGPL, premier client Web |
| OpenERP | 6.1 | | Client web en Ajax, Fin du support pour le client riche (GTK+) |
| OpenERP | 7.0 | Décembre 2012 | |
| Odoo | 8.0 | Septembre 2014 | Support pour le CMS : construction de site internet, e-commerce, point de vente, vente et business intelligence. |
| Odoo | 9.0 | Novembre 2015 | Première publication des éditions Community sous licence LGPLV3 et Enterprise sous licence propriétaire. |
| Odoo | 10.0 | Octobre 2016 | |
| Odoo | 11.0 | Octobre 2017 | Nouvelle plateforme Odoo.sh pour le développement |
| Odoo | 12.0 | Octobre 2018 | |
| Odoo | 13.0 | Octobre 2019 | |
| Odoo | 14.0 | Octobre 2020 | |
| Odoo | 15.0 | Octobre 2021 | |
| Odoo | 16.0 | Octobre 2022 | |
| Odoo | 17.0 | Octobre 2023 | |
| Odoo | 18.0 | Octobre 2024 | |

## Licence

Jusqu'à la version 6.0, le serveur et le client GTK+ étaient publiés sous la Licence Publique Générale GNU et le client-web sous la Licence Publique OpenERP (OEPL) basée sur la version 1.1 de la Mozilla Public Licence. De la version 7 à la version 8, ils ont été publiés sous la licence AGPL 3.0. À partir de la version 9.0, l'édition appelée Odoo-Community est publiée sous licence LGPLV3.

### Première ère — GPL et OEPL

Les premières versions du logiciel ont été publiées sous deux licences :
* la Licence Publique Générale GNU (GPL), pour le client GTK, pour le serveur applicatif et certains modules complémentaires ;
* la Licence Publique OpenERP (OEPL), pour le client-web.
Cette dernière est basée sur la version 1.1 de la Mozilla Public Licence avec les restrictions suivantes :
* L'utilisateur peut remplacer le logo Made by Tiny & Axelor par son propre logo, mais doit garder toutes les autres références à OpenERP telles quelles ;
* Toutes les distributions du logiciel doivent conserver le code source avec OEPL ;
* Toutes les intégrations à un autre logiciel doivent conserver le code source avec OEPL.
Tout comme la licence publique Mozilla version 1.1, ces restrictions rendent la licence du client-web incompatible avec la licence GNU GPL. De plus, cette licence n’est pas libre au sens des critères définis par la Free Software Foundation.

### Seconde ère — AGPL

À partir de la version 6.1, openerp-web remplace client-web et est publié sous licence AGPL.

## Architecture
### Version 6.1 et antérieures

Un système OpenERP est basé sur une architecture 3-tiers :
* un serveur de base de données PostgreSQL qui peut contenir plusieurs bases de données ;
* un serveur d'applications contenant les objets de gestion, le moteur de workflow, le générateur d'édition, etc. ;
* un serveur de présentation qui permet à l'utilisateur de se connecter à OpenERP avec n'importe quel navigateur Web (avec le lecteur Flash installé pour l'affichage des graphiques).
Ce dernier serveur n'est pas nécessaire si l'utilisateur utilise le client natif qui nécessite en revanche une installation sur le poste de l'utilisateur.
La partie serveur est écrite en langage Python. Les différentes briques sont organisées en modules. Un module est un dossier avec une structure prédéfinie contenant du code Python et des fichiers XML. Un module définit la structure de données, les formulaires, les rapports, les menus, les procédures, le flux de travail, etc.
Le client GTK+ est le client par défaut. Il est basé sur la plate-forme PyGTK (Python). Le client GTK était disponible jusqu'à la version 6.1 et disparaît avec la version 7.0.
Le client-web est écrit en langage Python. Il utilisait la plate-forme turboGears jusqu'à la version 5.0.1. Bien que concernant le contenu, les clients GTK+ et web soient équivalents, il existe certaines différences dans la fonctionnalité de l'interface. Par exemple, le client-web peut avoir un lien de personnalisation sur chaque formulaire, mais le client GTK+ n'a pas de fonction comparable.

### Version 7.0
## Framework OpenObject

Les fonctionnalités techniques du Framework OpenObject :
* Client/Serveur
* Workflows éditables
* Interface éditable
* Rapports personnalisables
* Traduction des interfaces, éditions, données
* Interface XML-RPC
* Server Action (action supplémentaire configurable par l'utilisateur)
** Envoi courriel/SMS à la suite de l'appui sur un bouton
** Création/Écriture dans un autre objet (table) avec les données visualisées
** Exécuter du code Python
** Exécuter une action supplémentaire côté serveur
** Exécuter une action supplémentaire côté client
** Enchaîner de multiples actions à la suite