Author: |
Odoo, Inc |
License: |
no license |
Branch: |
master |
Repository: |
luigisison/trainingv8 |
Dependencies: |
base,
and
mail |
Languages: |
Markdown (81, 15.9%),
Python (123, 24.2%),
and
XML (305, 59.9%) |
Other repositories: |
Abdullah-Alghoul/odoo-technical-training-2,
BradooDev/odoo-technical-training,
BradooTech/trainingv8,
GADGroup/trainingv8,
OmniAsetty/odoo-technical-training,
amco/trainingv8,
emaxet/odoo-technical-training,
fbpatel/odoo-technical-training,
flyfilly/odoo-technical-training,
hyuk81/trainingv8,
jam-odoo/odoo-technical-training,
javierg/trainingv8,
niulinlnc/odoo-technical-training,
peupontech/odoo-technical-training,
rachmataditiya/odoo-technical-training,
tate11/odoo-technical-training,
and
traviswaelbro/trainingv8 |
<h1>Technical Training Outline</h1>
<h2>Day 1</h2>
<ul>
<li>Install Odoo</li>
<li>Reference: <a href="https://www.odoo.com/documentation/9.0/reference/cmdline.html">Command Line Interface - odoo.py</a></li>
<li>ORM architecture</li>
<li>ORM API</li>
<li>MVC - Configuration options</li>
<li>Odoo Folders</li>
</ul>
<h2>Day 2</h2>
<ul>
<li>Reference: <a href="https://www.odoo.com/documentation/9.0/howtos/backend.html">Building a Module</a></li>
<li>Modules</li>
<li>Object - Base, Computed and Relational Fields</li>
<li>Reference: <a href="https://www.odoo.com/documentation/9.0/reference/views.html">Views</a></li>
<li>Action</li>
<li>Menu</li>
</ul>
<h2>Day 3</h2>
<ul>
<li>Environment - ORM API</li>
<li>Decorators</li>
<li>ORM Methods - Create, Write</li>
<li>Relational Fields - One2many, Many2one,</li>
<li>Inheritance - Model, View</li>
<li>Domain</li>
<li>onchange</li>
<li>Compute fields</li>
</ul>
<h2>Day 4</h2>
<ul>
<li>Reference: <a href="https://www.odoo.com/documentation/9.0/reference/workflows.html">Workflows</a>
Activities, Transitions</li>
<li>Buttons - Status buttons</li>
<li>Change attributes depending on </li>
<li>impt: Reporting
<ul>
<li>Qweb - https://www.odoo.com/documentation/9.0/reference/qweb.html</li>
<li>Qweb Reports - https://www.odoo.com/documentation/9.0/reference/reports.html</li>
</ul></li>
<li>impt: Wizards</li>
<li>Chatter - Thread messaging</li>
</ul>
<h2>Day 5</h2>
<ul>
<li>Security - Levels - User Login, Groups, Record Rule, Access Control List (ACL)
<ul>
<li>Specify via CSV import; CSV file name = ir.model.access.csv</li>
<li>Add as first entry in data section of <code>__openerp__.py</code>, security/ir.model.access.csv</li>
</ul></li>
<li>Website - js folder, main layout</li>
<li>Translation - Gengo module (gengo.com), Transifex (https://www.transifex.com/)</li>
<li>Import/Export</li>
</ul>
<h3>Web Services</h3>
<ul>
<li>XML-RPC (Web Service API) - https://www.odoo.com/documentation/9.0/api_integration.html</li>
<li>Reference:
<ul>
<li><a href="https://pythonhosted.org/OERPLib/">OERPLib</a>; </li>
<li><a href="https://github.com/jam-odoo/odoo-client-api">Jigar's Github</a></li>
<li><a href="https://github.com/tinyerp/erppeek">ERPpeek</a></li>
</ul></li>
</ul>
<h3>Server Actions</h3>
<ul>
<li>ir.actions.server</li>
<li><a href="https://www.odoo.com/documentation/9.0/reference/actions.html">Reference in Actions</a></li>
<li>Menu - Automated Actions</li>
<li>Install: Base import module</li>
</ul>
<h3>Scheduled Actions</h3>
<ul>
<li>ir.cron</li>
<li><em>Settings/Technical/Automation/Scheduled Actions</em></li>
<li>Example: Run server action 324</li>
<li>Object = ir.actions.server, Method=run, Arguments [324], minimum Interval Unit = 1 hour```</li>
</ul>
<h3>Company Properties - Specify value of a field for a company</h3>
<h3>View</h3>
<ul>
<li>Types: Kanban, Calendar, Graph, Pivot, Search</li>
<li>Reference: https://www.odoo.com/documentation/9.0/reference/views.html</li>
<li>Define view in ir.iu.view</li>
<li><p>Add view in ir.actions.act<em>window.view</em>mode</p></li>
<li><p>Add in module_views.xml</p></li>
<li><p>compound search: <code>filter_domain="['|', ('name, 'ilike', self), ('notes','ilike', self)]</code></p></li>
<li><p><code><separator/> #filters within the same separator define an OR operation</code></p></li>
<li><p><code><filter string="New Sessions" domain=[('state' ,"=","new")]/></code></p></li>
<li><p><code><filter string="Open Sessions" domain=[('state' ,"=","open")]</code></p></li>
<li><p><code><separator/> #new separator defines an AND operation</code></p></li>
<li><p><code><filter string="Rejected Sessions" domain=[('state' ,"=","refect")</code></p></li>
<li><p>Upcoming Sessions under Filter dropdown
<code><filter string="Upcoming Sessions" domain="start_date >+ datetime.datetime.now().strftime('%Y-%m-%d') + ' 00.00:00')]/></code></p></li>
</ul>
<h3>Course under <em>Group By</em> dropdown</h3>
<ul>
<li>Syntax
<ul>
<li><code><group expand="0" string="Group By"/></code></li>
<li><code><filter name'"course" domain="[]" string="Course" context={'group_by' : 'course_id'}/></code></li>
</ul></li>
<li>Default filter: syntax??</li>
</ul>
<h3>References</h3>
<p><a href="http://thecodeship.com/patterns/guide-to-python-function-decorators/">A guide to Python's function decorators</a>
<a href="http://odoo-new-api-guide-line.readthedocs.org/en/latest/decorator.html">Odoo New API Guidelines - Decorators</a>
<a href="https://pythonhosted.org/OERPLib/">XML-RPC in OERPLib</a></p>