Technical Training - odoo-ps/pshk-process GitHub Wiki
Technical Training
The technical training requires you to have installed odoo locally on your computer first.
The training will be split into 2 parts: Backend and Frontend. It's best to focus on the backend more since not too many tasks deal with front end. (And we should keep it that way as well).
Start your backend training here.
You can ignore Advanced E: Python Unit Tests first.
Start your frontend training here.
You can try the exercises part 1 and 2.
Try to work on all these things on your own first before asking help from your peer as it will help you grow faster.
At the end of your training you might want to have a look at those ressources:
- Security
- Performance
Summary
Components:
- Models & Fields: Representation of Tables and Columns of Database
- Views: "UI" for database representation
- Action: Handling user interaction to display or do something.
- Access Rights and Record Rules: Managing user access to models/records.
OmniDB
Since all the data in Odoo is stored with postgresql, when you test/run odoo locally, you will be able to get data (outside running the program) in multiple ways. Some recommended methods:
- odoo-bin shell (discussed later)
- psql interactive shell
- PostgreSQL DB Visualization (we usually use OmniDB)
Download it here
cd /etc/postgresql/{version}/main
sudo nano pg_hba.conf
Change the bottom part to:
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
After connecting you should be able to access any db and tables.
All models represent the table where model: x.y => table x_y.
I.e.
sale.order => sale_order
sale.order.line => sale_order_line
....
Compare the models and fields with table and columns.