documentation/content/developer/tutorials/master_odoo_web_framework.rst
Géry Debongnie 3d4a275196 [IMP] Rework the JavaScript tutorials
This commit rework the entire JavaScript tutorial series with the
following improvements:

-   Each chapter is now designed to be independent, allowing learners to
    follow any chapter without the necessity of completing previous ones.
-   Each chapter has been transformed into a standalone module, enabling
    learners to create small projects from scratch within each chapter.
-   The screenshots/text/code have been updated for Odoo 17.

Currently we have 5 chapters:
- Discover Chapter 1 - Owl Components: This chapter allows to learn the
  Owl framework in the `awesome_owl` module.
- Discover Chapter 2 - Build a dashboard: This chapter allows to grasp
  the basic of the web framework by building a dashboard in the
  `awesome_dashboard` module.
- Master Chapter 1 - Build a clicker game: This chapter allows to grasp
  the web framework by building a clicker game in the `awesome_clicker`
  module.
- Master Chapter 2 - Create a gallery view: This chapter allows to learn
  how to create a new view type. The new view is a gallery of records
  pictures. It can be done in the `awesome_gallery` module.
- Master Chapter 3 - Customize a kanban view: This chapter allows to
  learn to customize a kanban view by implementing a list of customer in
  the side of a kanban view. This can be done in the `awesome_kanban`
  module.

The chapter on creating and customizing fields is deleted for now and
will be completely rewritten in a near future.
The chapter on testing is deleted, how-to guides will be written to
cover this subject.

The solutions for all exercises has been done for v17, the goal by
merging the new tutorial is to have this new branch structure in
`odoo/tutorials`:
- 16.0
- 16.0-solutions
- 17.0
- 17.0-discover-js-framework-solutions
- 17.0-master-odoo-web-framework-solutions
-   master <-- default branch, starting point for all addons
-   master-discover-js-framework-solutions
-   master-master-odoo-web-framework-solutions

closes odoo/documentation#6876

Task-id: 3623595
Signed-off-by: Géry Debongnie <ged@odoo.com>
2023-12-18 23:31:55 +00:00

60 lines
2.7 KiB
ReStructuredText

:show-content:
=============================
Master the Odoo web framework
=============================
.. toctree::
:titlesonly:
:glob:
master_odoo_web_framework/*
This tutorial is designed for those who have completed the :doc:`discover_js_framework` tutorial and
are looking to deepen their knowledge of the Odoo web framework. It is organized in four independant
projects, each focusing on different features of Odoo.
.. note::
Each of these chapters can be done independantly, in any order. Also, be aware that some of them
cover a lot of material, so they may be quite long.
The first project is about building a `clicker game <https://en.wikipedia.org/wiki/Incremental_game>`_.
While working on it, you will learn various aspects of the web framework: systray, command palette,
dialogs, notifications, customizing existing components and much more.
The second project is focused on an important category of components: fields. Field components
represent the value of a field for a record, they appear in many places in the web client: in form
views, obviously, but also in kanban and list views, and may even be used alone, without a view.
Due to their importance, it makes sense to learn how to create and manipulate such components.
In the context of the web framework, views usually refers to the javascript implementation of a
component that represents one or many records, depending on a description (`ir.ui.view`). Such
components are actually quite complicated and usually requires various sub systems (a renderer,
a model, a controller, a arch parser, ...). In chapter 3, we create a new view from scratch to
represent a list of images.
Finally, the last project in chapter 4 is about customizing an existing view (a kanban view) by
adding a search panel on its left. It is interesting to see how one can take existing code, and
modify it to suit our needs. Also, it is a realistic project, that will feature many common issues
that arises while working on Odoo.
.. _tutorials/master_odoo_web_framework/setup:
Setup
=====
#. Clone the `official Odoo tutorials repository <https://github.com/odoo/tutorials>`_ and switch to
the branch `{CURRENT_MAJOR_BRANCH}`.
#. Add the cloned repository to your :option:`--addons-path <odoo-bin --addons-path>`.
#. Start a new Odoo database and install the modules for each chapter that you want to work on:
`awesome_clicker` (for chapter 1), `awesome_fields` (for chapter 2), `awesome_gallery` (for chapter 3) or `awesome_kanban` (for chapter 4).
Content
=======
- :doc:`master_odoo_web_framework/01_build_clicker_game`
- :doc:`master_odoo_web_framework/02_create_gallery_view`
- :doc:`master_odoo_web_framework/03_customize_kanban_view`