mirror of
https://github.com/vinta/awesome-python.git
synced 2026-11-08 02:15:12 -06:00
docs: rewrite ERP category intro
The ERP category lists one project, Odoo, but the intro's "How to choose" list compared Odoo editions and hosting options as if they were picks. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,19 +1,13 @@
|
||||
Out of the box, Odoo's CRM, eCommerce, and accounting apps run alone or combine into a full Python ERP. Anything they lack, you add as a module.
|
||||
Install several Odoo apps, like CRM, accounting, and inventory, and they combine into an open source Python ERP that your own modules extend.
|
||||
|
||||
How to choose:
|
||||
In Odoo, [everything starts and ends with modules](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/01_architecture.html#odoo-modules): each app you install is one, and so is each change you make. [Odoo Community is the free and open source edition](https://www.odoo.com/documentation/latest/administration.html#editions). Enterprise is [extra modules installed on top of Community](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/01_architecture.html#odoo-editions), and its license [allows running it only with an Enterprise subscription](https://www.odoo.com/documentation/latest/legal/licenses.html#odoo-enterprise-license).
|
||||
|
||||
- Trying Odoo, or customizing it without code: Odoo Online
|
||||
- Writing your own modules: a source install
|
||||
- Hosting your own modules in the cloud: Odoo.sh
|
||||
- Free and open source: Odoo Community
|
||||
- More features, with support and upgrades: Odoo Enterprise
|
||||
Where you host Odoo decides whether your own Python code runs on it. [Odoo Online doesn't run custom modules](https://www.odoo.com/documentation/latest/administration/odoo_online.html), but [Studio customizes Odoo there without code](https://www.odoo.com/documentation/latest/applications/studio.html). Odoo.sh, Odoo's official cloud platform, [deploys your modules from a branch of your GitHub repository](https://www.odoo.com/documentation/latest/administration/odoo_sh/getting_started/create.html#push-modules-in-production). Your own server runs whatever modules its addons path points to.
|
||||
|
||||
Everything in Odoo starts and ends with modules, and [the main user-facing ones are flagged as Apps](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/01_architecture.html#odoo-modules). Odoo Enterprise is [extra modules installed on top of Community](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/01_architecture.html#odoo-editions). [Community is free and open source under the LGPL](https://www.odoo.com/documentation/latest/administration.html#editions). Enterprise is shared source, and its license [ties running it to an Enterprise subscription](https://www.odoo.com/documentation/latest/legal/licenses.html).
|
||||
To develop modules, Odoo's developer docs prefer [a source install](https://www.odoo.com/documentation/latest/developer/tutorials/setup_guide.html), which runs Odoo from its source code. Keep your modules in a directory of their own, and [start the server with `odoo-bin`](https://www.odoo.com/documentation/latest/administration/on_premise/source.html#install-source-running-odoo), adding that directory to `--addons-path`. Then work through [Server framework 101](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101.html), which builds one module from scratch.
|
||||
|
||||
[Odoo Online](https://www.odoo.com/documentation/latest/administration/odoo_online.html) runs in your browser with nothing to install, and handles customizations that need no code. Your own modules need Odoo.sh or your own server. Odoo.sh is Odoo's official cloud platform, and it [builds your modules from a GitHub repository](https://www.odoo.com/documentation/latest/administration/odoo_sh/create_module.html).
|
||||
A module is a Python package whose `__manifest__.py` [names the module and the modules it depends on](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/02_newapp.html#prepare-the-addon-directory). Business objects are [Python classes extending `Model`](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/03_basicmodel.html#object-relational-mapping), whose fields the ORM maps to database columns. Give each model access rights, since [without them, no user can access its data](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/04_securityintro.html#access-rights).
|
||||
|
||||
To develop modules, Odoo's developer docs prefer [a source install](https://www.odoo.com/documentation/latest/developer/tutorials/setup_guide.html), which runs Odoo straight from its code. Odoo's logic is [written in Python, and it stores data only in PostgreSQL](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/01_architecture.html#multitier-application). Keep your modules in a directory of their own, and [start the server with `odoo-bin`](https://www.odoo.com/documentation/latest/administration/on_premise/source.html#running-odoo), adding that directory to `--addons-path`. Then work through [Server framework 101](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101.html), which builds one module chapter by chapter.
|
||||
To change an app Odoo ships, extend it from your own module instead of editing its code. [Model inheritance](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/12_inheritance.html#model-inheritance) adds fields and overrides methods on a model another module defines, and [view inheritance](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/12_inheritance.html#view-inheritance) applies your extension views on top of the originals. When a feature joins two apps, put it in [a link module](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/13_other_module.html#link-module), so each app still installs on its own.
|
||||
|
||||
A module can [add new business logic or change what's already there](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/01_architecture.html#odoo-modules). To change a standard model, extend it from your own module: [model inheritance](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/12_inheritance.html#model-inheritance) adds fields and overrides methods on a model another module defines. Screens work the same way: [view inheritance](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/12_inheritance.html#view-inheritance) applies your extension views on top of the originals instead of overwriting them.
|
||||
|
||||
Before you write a module, [check whether Odoo already covers the case](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/02_newapp.html). A database with custom modules [can't be upgraded until they're ready for the new version](https://www.odoo.com/documentation/latest/administration/upgrade.html), so [cut what duplicates the standard modules](https://www.odoo.com/documentation/latest/developer/howtos/upgrade_custom_db.html#step-1-stop-the-developments).
|
||||
Before you write a module, [check whether Odoo already covers the case](https://www.odoo.com/documentation/latest/developer/tutorials/server_framework_101/02_newapp.html#the-real-estate-advertisement-module). A database with custom modules [can't be upgraded until they're ready for the new version](https://www.odoo.com/documentation/latest/administration/upgrade.html), so each module you skip is one less to port.
|
||||
|
||||
Reference in New Issue
Block a user