diff --git a/content/developer/howtos/rdtraining.rst b/content/developer/howtos/rdtraining.rst
index febf21f68..6f188a017 100644
--- a/content/developer/howtos/rdtraining.rst
+++ b/content/developer/howtos/rdtraining.rst
@@ -63,12 +63,16 @@ Advanced topics
rdtraining/B_acl_irrules
rdtraining/C_data
+ rdtraining/D_mixins
rdtraining/E_unittest
rdtraining/J_reports
rdtraining/K_dashboard
+ rdtraining/N_security
* :doc:`rdtraining/B_acl_irrules`
* :doc:`rdtraining/C_data`
+* :doc:`rdtraining/D_mixins`
* :doc:`rdtraining/E_unittest`
* :doc:`rdtraining/J_reports`
* :doc:`rdtraining/K_dashboard`
+* :doc:`rdtraining/N_security`
diff --git a/content/developer/howtos/rdtraining/02_setup.rst b/content/developer/howtos/rdtraining/02_setup.rst
index 72c1bf7b6..3ac8f7249 100644
--- a/content/developer/howtos/rdtraining/02_setup.rst
+++ b/content/developer/howtos/rdtraining/02_setup.rst
@@ -21,12 +21,23 @@ Fetch the sources & configure git
Install and configure git
-------------------------
-The very first step of the installation process is to install the `git version control system `__
-because the Odoo source code is managed on GitHub. Once installed, you can set your name and email:
+The very first step of the installation process is to install the `git version control system `_
+because the Odoo source code is managed on GitHub.
+
+Git can be installed on `Linux `_, `Windows
+`_ or `MacOS `_.
+
+If you're using the laptop provided to you by Odoo, Git should already be installed. If it is not,
+you can install it with:
.. code-block:: console
$ sudo apt install git
+
+Once installed, you can set your name and email:
+
+.. code-block:: console
+
$ git config --global user.name "Your full name"
$ git config --global user.email "xyz@odoo.com"
@@ -43,7 +54,7 @@ authentication will allow you to connect to GitHub without supplying your userna
password every time.
-The following instructions are based on the official `GitHub documentation `__.
+The following instructions are based on the official `GitHub documentation `_.
Here is a step-by-step procedure:
@@ -104,9 +115,9 @@ Configure development repository
--------------------------------
To contribute to Odoo's development you will need to
-`fork the repository `__, create a branch containing
+`fork the repository `_, create a branch containing
your code in the fork and submit a
-`Pull Request `__
+`Pull Request `_
to the Odoo repository.
If you are lucky enough to work at Odoo, the forks already exist. They are called
@@ -296,9 +307,9 @@ Log in to Odoo
--------------
Open `http://localhost:8069/` on your browser. We recommend you use:
-`Firefox `__,
-`Chrome `__
-(`Chromium `__ the open source equivalent) or any other browser with
+`Firefox `_,
+`Chrome `_
+(`Chromium `_ the open source equivalent) or any other browser with
development tools.
To log in as the administrator user, you can use the following credentials:
@@ -313,7 +324,7 @@ The Developer or Debug Mode gives you access to additional (advanced) tools.
This is useful for training and we assume that the user is in developer mode for the rest of the tutorials.
-To activate the developer or debug mode you can follow the steps `here `__.
+To activate the developer or debug mode you can follow the steps `here `_.
Extra tools
===========
@@ -360,7 +371,7 @@ Administrator tools for PostgreSQL
-----------------------------------
You can manage your PostgreSQL databases using the command line as demonstrated earlier or using
-a GUI application such as `pgAdmin `__ or `DBeaver `__.
+a GUI application such as `pgAdmin `_ or `DBeaver `_.
To connect the GUI application to your database we recommend you connect using the Unix socket.
@@ -375,8 +386,8 @@ Python Debugging
When facing a bug or trying to understand how the code works, simply printing things out can
go a long way, but a proper debugger can save a lot of time.
-You can use a classic Python library debugger (`pdb `__,
-`pudb `__ or `ipdb `__) or you can
+You can use a classic Python library debugger (`pdb `_,
+`pudb `_ or `ipdb `_) or you can
use your editor's debugger. To avoid difficult configurations in the beginning, it is
easier if you use a library debugger.
@@ -460,5 +471,51 @@ Here is a list of commands:
limit_time_cpu = 9999
limit_time_real = 9999
-Now that your server is running, it's time to start
+Additional resources
+--------------------
+
+Below are links to resources that could prove helpful during this tutorial.
+
+Git
+~~~
+
+- Atlassian has a set of `excellent tutorials `_.
+ Particularly, how to `rewrite the history
+ `_.
+- If the Atlassian tutorial does not work for you, W3schools offers a `very nice alternative
+ `_.
+- To visualize the effect of git commands on the commits graphs, play with this `interactive
+ tutorial `_.
+- If you want to read more about Github, their `documentation
+ `_ includes a comprehensive
+ introduction.
+
+Python
+~~~~~~
+
+- Don't forget about `Python official documentation `_
+ (and make sure to select the correct version at the top of the page!).
+- `The Hitchhiker's Guide `_ will teach you the good practices of
+ Python.
+- If you have good experience of similar languages or just need a quick recall,
+ `this guide `_ is made for you.
+
+Javascript
+~~~~~~~~~~
+
+- You should find a tutorial that suits your level in this `"re-introduction" to JavaScript
+ `_.
+- If you just need a quick recall, `this one `_
+ will do the trick.
+
+(Postgre)SQL
+~~~~~~~~~~~~
+
+- If you are not familiar with PostgreSQL, `these exercises `_
+ will teach you better than any long documentation.
+- Even though you shouldn't have to interact with it, you might be interested to know
+ that Odoo uses `psycopg2 `_ to interact
+ with its SQL backend.
+
+Back to the training! Now that your server is running, it's time to start
:ref:`writing your own application `!
diff --git a/content/developer/howtos/rdtraining/16_guidelines_pr.rst b/content/developer/howtos/rdtraining/16_guidelines_pr.rst
index 2879e8558..bf94001a9 100644
--- a/content/developer/howtos/rdtraining/16_guidelines_pr.rst
+++ b/content/developer/howtos/rdtraining/16_guidelines_pr.rst
@@ -139,22 +139,6 @@ commits you can just copy/paste your commit messages as the PR message.
.. image:: 16_guidelines_pr/media/pr_message.png
-Additional Info for Odoo Staff
-==============================
-
-Now that you know the basics, here are some more useful pages if you haven't seen them already:
-
-- Our `welcome `__ page has extra info about
- working at Odoo as well as additional
- `tutorials `__ that are
- both language and Odoo specific.
-- Once you are ready to start doing tasks, it is important to note that Odoo follows a
- `rebasing workflow instead of merging `__
- for your PRs.
- `This cheatsheet `__ describes
- how to do this flow. If you want to become more of a rebasing master, then
- `this tutorial `__ is extra useful.
-
Test on the runbot
==================
diff --git a/content/developer/howtos/rdtraining/D_mixins.rst b/content/developer/howtos/rdtraining/D_mixins.rst
index 5665a4510..bbe9ee8a2 100644
--- a/content/developer/howtos/rdtraining/D_mixins.rst
+++ b/content/developer/howtos/rdtraining/D_mixins.rst
@@ -1,9 +1,14 @@
-:orphan:
-
.. _howto/rdtraining/D_mixins:
==================
Advanced D: Mixins
==================
-Hopefully, this topic will be written soon :-)
+If you need to interface with common Odoo features such as the chatter, you can rely on
+:doc:`mixins <../../reference/backend/mixins>`.
+They are Odoo models exposing useful methods through inheritance.
+
+To learn and play with mixins, visit `this repository `_.
+This module for a plant nursery is training material developed for the OXP 2018. You don't need to
+code it on your side. But you can check the presentations in the :file:`/static/pdf` directory and
+play with the module to discover some magic features in Odoo.
diff --git a/content/developer/howtos/rdtraining/N_security.rst b/content/developer/howtos/rdtraining/N_security.rst
index d2cbcc36f..88e78b06f 100644
--- a/content/developer/howtos/rdtraining/N_security.rst
+++ b/content/developer/howtos/rdtraining/N_security.rst
@@ -1,9 +1,27 @@
-:orphan:
-
.. _howto/rdtraining/N_security:
====================
Advanced N: Security
====================
-Hopefully, this topic will be written soon :-)
+Every day we hear about data leaks and attacks in the newspapers.
+We expect you to be aware and careful about how to avoid security breaches in your future
+developments.
+
+You already defined new models in your training. Did you check the access rights and define record
+rules on it ? Are you sure your module is not an open door to SQL injections ? Did you use getattr
+or t-raw in your code?
+
+- No or wrong access rules on models.
+- Introduction of public methods that should actually be private.
+- Wrong manipulation of access tokens.
+- No or wrong `ir.rules` (restriction rules) on models.
+- Introduction of SQL injections.
+- etc.
+
+Please check this `presentation from Olivier Dony (odo)
+`_ about
+common mistakes that you should **absolutely** avoid in your future developments.
+Also, please always use this `security checklist
+`_
+to double-check your development and avoid further embarrassing issues.