Copyright 2018 - Odoo Inc. Technical Training Agenda 2 1 Technical Training Overview Five Days of Technical Training This course is dedicated to partners, integrators, and developers who need to grasp knowledge of the Odoo development process. This course is for Having attended this course participants should be able to: • Understand the development concepts and architecture • Install and administer an Odoo instance • Develop a new Odoo module • Know upcoming features from the framework The training covers the following technical aspects of Odoo and enables you to: • Define data models using the ORM framework • Define menus, list and form views • Extend existing data models and views • Define computed fields, default values, constraints • Define advanced views (calendar, graph, kanban, etc) • Define data and actions for models (objects) • Define reports • Set up security rules (groups, access control list, and record rules) • Support for internationalization (multiple languages) • Provide overview of web services • Learn how to use Odoo.sh Before attending this course participants must: • Understand Python - if you do not know Python visit A Byte of Python • Know how to work in a linux environment - download Ubuntu • If you do not have linux, download VirtualBox 3 • Odoo Architecture • Odoo Installation • Directory Structure Day 1 2 Daily Agenda • Module Management • Odoo UI introduction • Administration • Introduction to module Open Academy • Manifest File • Odoo model structure • Fields (basic & advance) Day 2 • Basic Views (forms, menus, list) • Environment Variables • ORM Methods • Advance Views (kanban, search, calendar, gantt and graph) • Model Inheritance Day 3 • View Inheritance • Wizard • HTTP Controllers • Authentication • qWeb Pages • Dynamic Pages Day 4 • Semantic Rules • Optional Inheritance • qWeb Report • Database Backup and Restore • Translation • Security • Groups Day 5 • Record Rules • Data Import/export • Web Services • Odoo.sh 4 Introduction ● About Odoo ● Odoo Explained ● Community vs. Enterprise Setting Up Odoo ● Installing Odoo ○ Detailed installation explained: Demo, SaaS, packaged installers, source install ● Deploying Odoo ○ Command line options, instance security, and PostgreSQL options explained ● Odoo Community → Odoo Enterprise ● Running Odoo Building an Odoo Module/App ● Composition of a module ○ Elements of an Odoo Module/App ● Module structure ○ Odoo App description and manifest ● ObjectRelational Mapping (ORM) ○ Framework explained (ORM API) 1. Model Core Object 2. Recordsets 3. Environment 4. Common ORM Methods 5. Creating Models ○ Model Fields 1. Common Field Attributes 2. Simple Fields (Boolean, Date, Char, Integer, etc.) 3. Reserved Fields 4. Special Model Attributes (_name, _rec_name) Data Files ● Basic XML Structure ● Core Operations 3 In-depth Agenda 5 Basic Views ● Generic View Declaration ○ Tree views, form views, search views ● Actions and Menus Relationships between Modules ● Relational Fields ○ Relational field types (Many2one, One2many, Many2many) Inheritance ● Model Inheritance ○ Various flavor inheritance explained to extend an existing model in a modular way ● View Inheritance ● Domains ○ Encoding conditions on records Computed Fields and Default Values ● Selfcomputed Fields ● Dependencies ● Default Values in Odoo onChange Fields Model Constraints ● Python Constraints ● SQL Constraints Business Processes/Workflows ● Implementing Business Process/Workflows ○ Basics ○ Activities ○ Transitions 6 Advanced Views ● Advanced Tree View Options ● Form Views in Detail ● Calendar Views ● Gnatt Views ● Graph Views ● Pivot Views ● Kanban Views Odoo Security ● User Login, Signup, and Authentication ● Groupbased Access Control Mechanisms ● Access Control ● Record Rules ● Workflow Transition Rules ● Field Access Wizards/Transient Model ● Defining Wizard ● Launching Wizards ● Interactive Wizard Operations Reporting ● qWeb Reports ● Dashboards Internationalization ● Odoo Module/App Translation Web Services Explained ● XML RPC ● JSON RPC Web Services Explained ● XML RPC ● JSON RPC 7 GitHub Integration Every commit, pull request, merge or fork is tested, and deployed automatically. Clear Logs Get detailed and filtered logs available in the browser, in real time. Web Shell Get a shell access to a production server or a container related to a build, in one click. Modules Dependencies Manage dependencies with third party modules with no pain; update when you want. Automated Tests Every commit goes through a battery of thousands of automated tests. Staging Branches Staging branches are built with production data, and stay alive a few weeks for testing. Track Developments Get a detailed history and logs on all development branches to track progress in real time. Continuous Integration Get a dedicated “runbot” for your project; a dash - board of all tests. SSH Register your public key and connect to any server in just a few clicks. Mail Catcher Mails are deactivated on staging & dev branches. We provide a mail catcher to read them. Manual Tests Connect on any feature branches once they are pushed in GitHub, with our instant deployment. Community Modules Install community modules to test them, in just a few clicks. (based on Git submodules) For Testers For Developers About Odoo.sh Odoo.sh allows you to easily test your developments, manage your feature-branches and beta-test your features on duplicates of your customer’s production instance. 4 Odoo.sh 8 Dev Staging Drag development branches to staging, to test them with production data. Convenience Kick off your Odoo project, with a development and hosting platform in three clicks. High Availability We manage all servers for you: monitoring, backups, emails, dns, ci, staging & production servers. Incremental Backups Incremental backups on 3 different data centers, done twice a day. Mail Servers Production or development mail servers are setup automatically for you. Great Performance PostgreSQL and Odoo are optimized for top maximum performance. Staging Production Deploy a staging branch to production in just a drag & drop, once it’s fully tested. Share Test Builds Share your builds with your customer to ease testing (public or private URLs). Monitoring Get a status of all your servers, as well as KPIs about their availability and performance. Instant Recovery Recover any backup in just a few clicks, in a production or staging branch. DNS Use your own domain for production server, and our DNS subdomains for development branches. Top Notch Security Visit www.odoo.com/page/security for further details. For Project Managers For System Administrators linkedin.com/company/odoo facebook.com/odoo twitter.com/odoo CONTACT US Americas +1 (650) 691-3277 APAC +852 39 500 600 EMEA +32 2 290 34 90 9 Odoo’s Technical Training If you have any additiona questions you can reach out to our community manager, Joseph Wright at jwr@odoo.com or by phone at +1 (650) 289-8241