Odoo 9 Technical Training in Arabic

ODOO 9 Technical Training in Arabic will help Arabic speaking countries and developers to start development in Odoo.
3.9 (22 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
61 students enrolled
Take This Course
  • Lectures 75
  • Length 20 hours
  • Skill Level All Levels
  • Languages Arabic
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 12/2015 Arabic

Course Description

Our highly affordable OpenERP/ODOO 9 technical training in Arabic is typically dedicated to IT professionals, developers and integrators who want to grasp a comprehensive knowledge of technical aspects of OpenERP/ODOO. We ensure that our training programs are delivered by industry professionals who possess extensive experience in technical implementation of OpenERP/ODOO and are aware of the professional challenges that one may face in an organizational environment.

Course contains video series and material used for demonstrating the course. All code developed during training and material will be provided with the outline.

This training outline is starting from setting up developer environment and installing odoo to expert level customization on Reports, Wizards and Business process workflows. Developers with basic Python knowledge can take this course and build their career in Odoo development as technical consultant.

What are the requirements?

  • Fundamental knowledge of MVC architecture
  • Fundamental knowledge of Python and Object oriented concepts
  • Basic knowledge of Odoo Product and ERP
  • Business processes knowledge will be added advantage

What am I going to get from this course?

  • Develop new addons module in odoo or enhancing existing module by extending in new custom module.
  • Understand the architecture of odoo, its core Apis and models
  • Setting up Development environment for the Odoo and install Odoo
  • Start Odoo Server as a developer to check logs of each service call
  • Developing new report and modifying existing Odoo Reports
  • Modifying business process and add approval hierarchy and role rights
  • Setting up security, groups and access rights of users
  • Adding new configuration wizards and transaction wizards using addons development
  • Understanding different views and screens layout of ODOO and developing new form, tree, kanban, graph views
  • Understand different types of fields and widgets and its attributes

Who is the target audience?

  • Technical person who want to build their career in Odoo and ERP domain
  • Odoo developer who is working on older version of Odoo and want to learn new Api of Odoo 9
  • Odoo technical expert or consultant who is expert in one vertical and want to learn Report development and designing, Business Process configurations and other technical aspects

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction

This is introductory session for the attendees.

You will get to know about history of ODOO, About the editor, About TinyERP, OpenERP, ODOO.

You will get details of ODOO Architecture and key features.

Section 2: Setting up ODOO and Your Development Environment
In this video you will learn how to set up ODOO 9 and your development Environmen
  • Installing Odoo 9 on Ubuntu 12.04
  • Installing Odoo 9 on Ubuntu 14.04
  • Odoo 9 Interface
  • Setting Up Development Environment
  • Downloading Latest Odoo Source-code
  • Completion of Setting Up Environment
  • Running Odoo 9 For the First Time
  • Running as Developer mode
Section 3: Technical Fundamental of ODOO Addons

In this video you will learn:
ODOO Addons module directory structure
__openerp__.py manifest file parameters and its usage

Different directory used to differentiate ODOO tools

Continuation of previous part.

For Module directory structure and manifest file.


In this video you will learn:

How to create basic fields.

How to use fields attributes in particular fields.


In this video you will learn:

How to create basic views like :- Form, List and Search view.

How to create Action and Menu and how to bind action on menu.


Continuation of previous part. About more view attributes and options.


In this video you will learn:
How to create relation fields, Complex fields and Functional fields.

How to create advance search view like :- Add filter using domain, Add group by on field.

(relational fields, views, action and menu)


Continuation of previous part for Relational field and its widgets

Continuation of previous part.

For Complex field and Search view with various search options.


How to set domain In action using domain field.
How to set default values on fields in action using context field

Miscellaneous topics: Recapping, a new view, sequence, button (object)

Continuation of previous part.

More on reference field

Continuation of previous part.

Make editable views


How to start web-client in developer mode. Once user can activating developer mode than user can easily debug technical information.

Widgets :- Widgets is use to change user interface. Many widgets are available in ODOO like :- Selection, URL, Radio, email, image, float_time, many2many_tags, many2onebutton, progressbar, handle, password=True, statusbar and priority.

Continuation on Progressbar, Statusbar and priority field and attributes

In this video you will learn:

-> A domain is a list of criteria used to select a subset of a model's records. Each criteria is a triple with a field name, an operator and a value. Using domain user can search specific records base on specific search criteria.

-> The attrs is an element in ODOO which is responsible to alter the attributes of a field, not the value. The 'attrs' attribute can be used to dynamically change the attributes of view components based on the value of other fields. Buttons in ODOO use states attribute for dynamic visibility, they too can be used with attrs. It can be used on field, page, group, button and notebook tags. Remember, there is no RPC call ever made because this is a pure client side attribute at view level.


In this video you will learn:

The “onchange” mechanism provides a way for the client interface to update a form whenever the user has filled in a value in a field, without saving anything to the database.


In this video you will learn:

Views define the way the records of a model are displayed. Each type of view represents a mode of visualization (a list of records, a graph of their aggregation, …). Views can either be requested generically via their type (e.g. a list of partners) or specifically via their id. For generic requests, the view with the correct type and the lowest priority will be used (so the lowest-priority view of each type is the default view for that type). Also you can learn how to use different attributes on field level and view level.


Continuation of previous part on Field Attributes: name, string, invisible, groups, widget , sum, avg, attrs, position.


Continuation of previous part on

Class: oe_inline, oe_left, oe_right, oe_read_only, oe_edit_only , oe_no_button, on_change, domain, readonly, required , nolabel, placeholder, mode , help, filename, password, style , notebook, group, newline, separator, header.


In this video you will learn:

-> The diagram view can be used to display directed graphs of records.
-> Graph views allow aggregated overview and analysis of models, their root element is <graph>. Graph views have 4 display modes, the default mode is selected using the @type attribute.

-> Calendar views display records as events in a daily, weekly or monthly calendar.


The model attributes are nothing but the attributes/ class variables. These are connected with the model. Each of the model attributes have their own significance. For e.g. name is used as the name of the model and a table is created in the database from the _name attribute. similarly _description is used to describe the model. There are list of attributes which can be used with model which are _rec_name, _inherit, _inherits, _sql_constraints, _constraints, _auto, _track and many more.

Continuation of previous part on custom, _rec_name, _parent_name, _parent_order, _date_name, _sequence, _needaction, _translate , _table, _constraints, _sql_constraints.
The fields parameters are the attributes of the fields for e.g. string will be the label of that field on the view. help would be the tool tip and required, readonly are the attributes that will decide the type of the field whether it should be mandatory or readonly. Similarly there are many other attributes and each attribute has it's own perspective.

The other set of Fields are Complex Fields. These fields are different and complex than basic fields and relational fields. The Complex fields are related field, property field and functional field.

The Related field is used to fetch another field from the relational table. The Property field is a field in which a default value is filled based on the company selected. Very useful in case of multi company environment. The Functional field is used to compute some value from existing fields.

Continuation of previous part on Related fields

In this video you will learn :

Writing and Designing Kanban view,

Set Kanban card content, add widget in Kanban Card and set colours,

Grouping Kanban cards and change record values with Drag-Drop.


Continuation of previous part on Kanban view


In this video you will learn:

Constraints are set of rules which are used for the validation process before creation, updation or deletion of a record.
There are basically two types of constraint in Odoo.
1. SQL Constraints
-> These are the constraints which will be applied on the table in database. and they will be validated when a query is fired in the database.
2. Object Constraints
-> These are the constraints which are not applied on the table but are validated via a python code method defined in the model and is validated when create(), write() or unlink() method is called.

There are some fields which are automatically created when a table is created in the database. id, create_date, create_uid, write_date, write_uid. id is the primary key of the table and other four fields are very useful to trace the records for audit trail.

Apart from the Automatic fields there are some reserved fields which are used by Odoo but they are manually created by the developer. They have certain significance in Odoo. For e.g. name field is a required field specially if the model is having many2one relationship from some other model. The M2O field displays the name of the record. active is another one, if the active field is checked only then the record will be displayed in the list else not. The others are state and sequence.

Section 4: Inheritance
There are basically two types of Inheritance in Odoo. One of them is used to update existing model's fields and it's views. This can be achieved using the _inherit attribute of the model. When you want to use View Inheritance you need to use the tag xpath with it's attributes expr and position to place the field at a specific position in the existing view.
Continuation of previous part on inheriting view and modifying existing view using xpath tag.
Section 5: ORM Methods

This session explains the core of Odoo, the ORM Methods which are responsible for the interaction of Odoo with the Postgresql. The mehods are create, write, read, browse, search, copy, unlink. These methods are used to create, update, read, search, duplicate or delete records. Using these methods you can perform the operations mentioned above in the same model as well as any other model using the object of the model.

Focus is made on new API, i.e. Odoo 8 and 9

Continuation of previous part on overriding ORM Methods in custom module.
This session shows how to use the advanced ORM methods which are different from the conventional ORM Methods which deal with the database records for creation, updation, deletion, fetching, searching etc. These method don't directly deal with the database but are still crucial for displaying the data in the GUI. Using this method we can have default values, our specified views, a string to be displayed in the M2O field can be searched with more than one field in M2O field's search etc.
Continuation of previous part on fields_get(), fields_view_get(), read_group(), search_read() Methods

This session explains how the action calls from GUI are executed and which methods are called from when any action is performed on GUI and how it reaches to the server to create, update or delete the data and sequence of methods in which manner they are being called.


Decorators are concept of python which minimizes the efforts of the developers to pass the environmental variable every now and then like Cursor, Logged in User and Context.
A Decorator itself is a method, and it uses the concept of nesting. Whenever you call a method which is decorated first the decorator is called and then the method which is decorated is called.

Focus is made on new API, i.e. Odoo 8 and 9


All the ORM methods, Functional field's method, on_change method are using the decorators from the Odoo API.

api.one, api.multi, api.model. api.constrains, api.depends, api.returns are most commonly used decorators. Using the decorators the system has become much faster than before and the code has been made simpler avoiding passing the same arguments in all methods.


In this video you will learn:
Overview of How x2many fields differ in DB operations in ORM Framework
x2Many patterns Overview, Create Records into x2many table - create()
Update the records of one2many table with IDS for the parent record - write()
Delete the records of x2many and option to choose to remove from DBs or unink relation
Update the records of Many2many
Unlink Many2Many relational records, but not from DB
Remove all existing relational records and overwrite by new relational records

Module Recorder by SerpentCS in Odoo

Continuation of previous part on Relational field create, write and unlink using methods.

Overview of ORM Methods and introduction to Basic Models.
Introduction to ORM Models.
Most commonly used model for humans (customers, suppliers) is res.partner.
Others are res.users for Users, res.groups for Groups(Roles), res.company for Company. res.country for Country and res.currency for Currency
Few more technical ir.ui.view to store the views of all models, ir.actions.act_window to store the actions of views. ir.ui.menu to store the Menus, ir.model.access to store the Access rights, ir.model and ir.model.fields to store Models and Fields respectively, ir.module.module to store the modules.

Apart from these models the other models of other official addons modules used for Products, Warehouse, Invoices, Accounting, Sales, Purchase, Manufacturing, HR, Project etc.

Section 6: Introduction to Different Types of Button and Overview of Linked Views

There are basically 3 types of button available in Odoo.
1. Object
-> Object button is used to call a model's method.
2. Action
-> Action button is used to call an action to open another view
3. Workflow
-> Workflow button is used to call a signal to make a transition in the workflow.
Apart from these buttons there are Smart buttons which are customizable buttons and become very handy when we have relations with other models.
Just like Action buttons we have act_window which are used as a link from one model to another model but unlike buttons they don't appear in the form view but it appears in the more... drop-down on top of the view. It does the same thing, opening up another view.

We have one more special button which is link button, Instead of a normal button it is displayed as a link and does the same operations like other buttons.


Continuation of previous part on smart button.

Continuation of previous part on act_window button and smart buttons
Section 7: Wizards

A Wizard is nothing but a popup dialogue box which is opened to perform some operation on the fly. Wizard can be used to update some information, create/update/delete records, print reports etc. Wizard works transparently same as our Odoo model i.e we can use read, browse, default_get methods for it. The difference between Odoo Model and Wizard is that the wizard table record is not permanent. It stores data temporarily which elapses after some time.

Continuation of previous part on transient mode of wizard.
Continuation of previous part on Action menu and wizard on list view.
Section 8: Workflows

In this video you will learn :
Workflow Fundamentals, Elements of Workflow : State, Transaction, Activity

Use of Workflow and Actions, Requirements and Use of Workflow

Continuation of previous part on demo module creation and go through invoicing workflow.
  • Designing and developing your workflow,
  • Registering workflow,
  • Flow Start,
  • Flow Stop
Continuation of previous part on calling workflow from view and use of state field in workflow.
Continuation of previous part on Join, Split, XOR, Sleep and Server Actions
Section 9: Reporting

In this video you will learn:

Qweb engine tags for Setting paper size, looping, Conditions, Attributes of different tags, Setting Variables, Calling sub-templates

Continuation of previous part on report attributes and subtemplates

In this video you will learn:
Fundamental of Qweb Templates, Report Module structure in ODOO,
Explanation of different layers of Qweb Engine,
Predefined Qweb Master Templates,
Understanding Qweb Report Attributes and Tags,

Registering Report with report tag in ODOO

Writing our own Qweb Report with own layout

In this video you will learn:

How to inherit existing Qweb Template and Make changes in existing report with xpath and inheritance.


Continuation of previous part on customizing existing Qweb report.

Section 10: Security in ODOO

In this video you will learn:
ODOO Security system for different levels like Menu, Action, Field, Model, Record, Button

ODOO has very easy to setup security systems with Groups, Users, Record Rules and Access Controls on different objects.


Continuation of Previous Part on Access control list.

Continuation of previous part on adding record rules from GUI, Default groups for new users.

In this video you will learn:

Configuring Security Groups from Module, Loading Access Rights using csv file in module.

Managing Menu and Action with Groups and Access Control

Record Level Security with Record Rules

Field Level and Button Level Security using groups

Continuation of previous part on configuring and testing.
Section 11: Miscellaneous Topics
Demo and Data are related to creation of records when we install module. XML, YML files are used to create both Demo and Data. There's a difference between demo and data. Technically when you create a new database you have a checkbox "Load Demonstration Data". When you check this checkbox then the Demo data are created. When you have data they are always created irrespecitve of the checknbox. Demo are used only for demonstration and are not universal for all the industries for e.g. Customers, Products etc. Data are universal for all the industries for e.g. Countries, Currencies etc. Sequence is technically same as our sequence in database. It is used to get a auto incremental number generating. Used mostly for Invoice Numbers, Manufacturing Orders, Sale Orders, Purchase Orders, Journal Entries etc. The Sequence can be generated based on the prefix, suffix, number. You can skip the numbers if you want on a regular interval. for e.g. if you want only odd numbers it is possible to have. Moreover you can also use Company, Year, Month etc in the Sequence as well.

Introduction to Web Services.

-> Connecting Odoo using XML-RPC
-> Connecting Odoo using JSON-RPC


In this video you will learn:
Overview of Command Line Arguments while starting Odoo Server
Most Used Args : Ports, Addons path, Language, dbListDatabase related Operations : hosts, ports, and credentials.
How to see the list of server params and version of Odoo
Specifying a Config file
Saving the command line args into a config file
Loading a module from terminal on specific DB,
--init and -d Update the module from terminal, using -u MODULENAME/ALLUpdate the module from terminal,
without loading demo data Import partial data even the crash is found while importing module
Use Pid file to store process id of the Odoo server.
Running Server with multiple addons path
Load server wide modules by default
Specify Directory to store File data for Document Management System
XML-RPC Config, TCP port, Server port, proxy mode, log polling port, XML-RPC Secure option with port,
Certification file for SSL and PEM file
Filtering the Database options to be seen by end user

Display no Database option to the end user
Load Test file, saving test results of YML files
Logging configurations, log levels and log files.
SMTP Configuration, Database related Operations : hosts, ports, and credentials.
Internationalization config, loading language from Terminal
Update Module for a specific Database
Load foreign Language from terminal
Load language from GUI, Auto Reload server and putting into debug mode
Stopping server after initializing
Setting timezone from Terminal, Setting the age of Virtual memory/Transient records by time,
number of records, Setting the limit of Scheduler calls, Unaccenting the database to store only English chars
Setting up GEOIP database file

Configure workers and limits of CPUs for multiprocessing

Continuation of previous part on SMTP Configuration, Security, Internationalisation and Multi Processing.

In this video you will learn:

Designing Analytic Views (BI) Reporting using postgres view and Export analytic data to Excel

Continuation of previous part on explaining default odoo BI views.
Section 12: Arabization of ODOO
In this video you will learn that Odoo does and does not support Arabic out of the box

In this video you will learn:

How to internationalize Odoo in general taking the Student Management module as an example


In this video you will learn:

How to add RTL support in Odoo in order to display Arabic correctly

This session promotes Serpent Consulting Service’s products and also serves as a closing session.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Mr. Husen Daudi, Instructor at SerpentCS

- 8+ years of strong experience in ERP Technology with world's largest Open Source Business Applications.

- Played key role in developing and maintaining various ERP Product modules and integrating them on Open Source ERP Environment.

- Experience on Scrum methodology for project management

- Experience in Team Building

- Experience to handle offshore clients and work with big team.

- Conducted 30+ national and international training on CRM, SRM, MRP, Accounting, Medical, HRM, Payroll.

- Conducted 40+ OpenERP Technical training on various countries.

Specialties: Python, OpenERP, ODOO, Django, zope, plone, joomla, wordpress, silverstripe, ERP functional expert, consultant, Android and ios application designing.

Instructor Biography

Mr. Jay Vora, Where Quality, Time and Accuracy are Valued The Most.

Serpent Consulting Services Pvt. Ltd. specializes in business of providing custom application development, offshore software outsourcing services, Support maintenance and migration services and functional & technical trainings to its clients worldwide on open source tools and technologies like OpenERP, Tryton, Alfresco, Magento, SugarCRM, Vtiger etc. Our expertise lies in reducing costs and enhancing productivity by bringing the strategic advantage of offshore software development to the very doorsteps of our customers in more ways than one. By improving reliability, speed and agility, we enable our customers to achieve sustainable differential advantage over their competitors. We are expertised in providing highly cost effective solution through open source technology. Our resourceful services include consulting, cost control, project planning, e-platform development, database programming, trainings and support.

Ready to start learning?
Take This Course