:show-content:
:hide-page-toc:

=========
Tutorials
=========

.. toctree::
    :titlesonly:

    tutorials/getting_started
    tutorials/discover_js_framework
    tutorials/master_odoo_web_framework
    tutorials/define_module_data
    tutorials/restrict_data_access
    tutorials/unit_tests
    tutorials/mixins
    tutorials/pdf_reports

.. cards::

   .. card:: Getting started
      :target: tutorials/getting_started
      :tag: Beginner
      :large:

      Develop your own module with the Odoo framework. This step-by-step tutorial is crafted for
      newcomers and any other individual curious about Odoo development.

   .. card:: Discover the JavaScript Framework
      :target: tutorials/discover_js_framework
      :tag: Beginner
      :large:

      Learn the basics of the JavaScript framework of Odoo. This tutorial will teach you how to work
      with Owl components and introduce the basic principles underlying the Odoo JavaScript
      codebase.

   .. card:: Master the Odoo Web Framework
      :target: tutorials/master_odoo_web_framework
      :tag: Advanced

      Become an expert in the Odoo Web Framework. A large variety of features are covered such as
      fields, views, and even the kitten mode.

   .. card:: Define module data
      :target: tutorials/define_module_data
      :tag: Beginner

      Define master and demo data for an Odoo module, leveraging the strengths of the CSV and XML
      file formats to accommodate specific data requirements.

   .. card:: Restrict access to data
      :target: tutorials/restrict_data_access
      :tag: Beginner

      Implement security measures to restrict access to sensitive data with the help of groups,
      access rights, and record rules.

   .. card:: Safeguard your code with unit tests
      :target: tutorials/unit_tests
      :tag: Beginner

      Write effective unit tests in Python to ensure the resilience of your code and safeguard it
      against unexpected behaviors and regressions.

   .. card:: Reuse code with mixins
      :target: tutorials/mixins

      Create mixins to code features once and reuse them in multiple models.

   .. card:: Build PDF reports
      :target: tutorials/pdf_reports

      Use QWeb, Odoo's powerful templating engine, to create custom PDF reports for your documents.