diff --git a/doc/howtos/backend/exercise-calendar b/doc/howtos/backend/exercise-calendar
index f63422c95a1..8f3b59658e8 100644
--- a/doc/howtos/backend/exercise-calendar
+++ b/doc/howtos/backend/exercise-calendar
@@ -12,7 +12,7 @@ diff --git a/openacademy/models.py b/openacademy/models.py
from odoo import models, fields, api, exceptions
class Course(models.Model):
-@@ -55,6 +56,8 @@ class Session(models.Model):
+@@ -57,6 +58,8 @@ class Session(models.Model):
attendee_ids = fields.Many2many('res.partner', string="Attendees")
taken_seats = fields.Float(string="Taken seats", compute='_taken_seats')
@@ -21,7 +21,7 @@ diff --git a/openacademy/models.py b/openacademy/models.py
@api.depends('seats', 'attendee_ids')
def _taken_seats(self):
-@@ -81,6 +84,30 @@ class Session(models.Model):
+@@ -83,6 +86,30 @@ class Session(models.Model):
},
}
diff --git a/doc/howtos/backend/exercise-computed b/doc/howtos/backend/exercise-computed
index eedeae16a58..81aeb79a452 100644
--- a/doc/howtos/backend/exercise-computed
+++ b/doc/howtos/backend/exercise-computed
@@ -5,7 +5,7 @@
diff --git a/openacademy/models.py b/openacademy/models.py
--- a/openacademy/models.py
+++ b/openacademy/models.py
-@@ -28,3 +28,13 @@ class Session(models.Model):
+@@ -30,3 +30,13 @@ class Session(models.Model):
course_id = fields.Many2one('openacademy.course',
ondelete='cascade', string="Course", required=True)
attendee_ids = fields.Many2many('res.partner', string="Attendees")
diff --git a/doc/howtos/backend/exercise-constraint-python b/doc/howtos/backend/exercise-constraint-python
index 144a64e0325..248507a241f 100644
--- a/doc/howtos/backend/exercise-constraint-python
+++ b/doc/howtos/backend/exercise-constraint-python
@@ -13,7 +13,7 @@ diff --git a/openacademy/models.py b/openacademy/models.py
class Course(models.Model):
_name = 'openacademy.course'
-@@ -56,3 +56,9 @@ class Session(models.Model):
+@@ -58,3 +58,9 @@ class Session(models.Model):
'message': "Increase seats or remove excess attendees",
},
}
diff --git a/doc/howtos/backend/exercise-constraint-sql b/doc/howtos/backend/exercise-constraint-sql
index 99ddeabfe9b..5595a6db3c6 100644
--- a/doc/howtos/backend/exercise-constraint-sql
+++ b/doc/howtos/backend/exercise-constraint-sql
@@ -3,9 +3,9 @@
Index: addons/openacademy/models.py
===================================================================
---- addons.orig/openacademy/models.py 2014-08-27 14:19:33.099111181 +0200
-+++ addons/openacademy/models.py 2014-08-27 14:20:03.311110732 +0200
-@@ -13,6 +13,16 @@
+--- addons.orig/openacademy/models.py
++++ addons/openacademy/models.py
+@@ -14,6 +14,16 @@
session_ids = fields.One2many(
'openacademy.session', 'course_id', string="Sessions")
diff --git a/doc/howtos/backend/exercise-copy-override b/doc/howtos/backend/exercise-copy-override
index 148eace9b78..3099526ade5 100644
--- a/doc/howtos/backend/exercise-copy-override
+++ b/doc/howtos/backend/exercise-copy-override
@@ -5,7 +5,7 @@
diff --git a/openacademy/models.py b/openacademy/models.py
--- a/openacademy/models.py
+++ b/openacademy/models.py
-@@ -13,6 +13,20 @@ class Course(models.Model):
+@@ -14,6 +14,20 @@ class Course(models.Model):
session_ids = fields.One2many(
'openacademy.session', 'course_id', string="Sessions")
diff --git a/doc/howtos/backend/exercise-defaults b/doc/howtos/backend/exercise-defaults
index 41c29a57982..6c61e9b1e1e 100644
--- a/doc/howtos/backend/exercise-defaults
+++ b/doc/howtos/backend/exercise-defaults
@@ -1,9 +1,9 @@
Index: addons/openacademy/models.py
===================================================================
---- addons.orig/openacademy/models.py 2014-08-26 17:26:04.727783302 +0200
-+++ addons/openacademy/models.py 2014-08-26 17:26:04.719783302 +0200
-@@ -18,9 +18,10 @@
- _name = 'openacademy.session'
+--- addons.orig/openacademy/models.py
++++ addons/openacademy/models.py
+@@ -20,9 +20,10 @@
+ _description = "OpenAcademy Sessions"
name = fields.Char(required=True)
- start_date = fields.Date()
@@ -16,8 +16,8 @@ Index: addons/openacademy/models.py
domain=['|', ('instructor', '=', True),
Index: addons/openacademy/views/openacademy.xml
===================================================================
---- addons.orig/openacademy/views/openacademy.xml 2014-08-26 17:26:04.727783302 +0200
-+++ addons/openacademy/views/openacademy.xml 2014-08-26 17:26:04.719783302 +0200
+--- addons.orig/openacademy/views/openacademy.xml
++++ addons/openacademy/views/openacademy.xml
@@ -95,6 +95,7 @@
diff --git a/doc/howtos/backend/exercise-domain-advanced b/doc/howtos/backend/exercise-domain-advanced
index 55d5e1da708..9b96a44599f 100644
--- a/doc/howtos/backend/exercise-domain-advanced
+++ b/doc/howtos/backend/exercise-domain-advanced
@@ -3,9 +3,9 @@
Index: addons/openacademy/models.py
===================================================================
---- addons.orig/openacademy/models.py 2014-08-26 17:26:02.903783329 +0200
-+++ addons/openacademy/models.py 2014-08-26 17:26:02.895783329 +0200
-@@ -23,7 +23,8 @@
+--- addons.orig/openacademy/models.py
++++ addons/openacademy/models.py
+@@ -25,7 +25,8 @@
seats = fields.Integer(string="Number of seats")
instructor_id = fields.Many2one('res.partner', string="Instructor",
@@ -17,13 +17,12 @@ Index: addons/openacademy/models.py
attendee_ids = fields.Many2many('res.partner', string="Attendees")
Index: addons/openacademy/views/partner.xml
===================================================================
---- addons.orig/openacademy/views/partner.xml 2014-08-26 17:26:02.903783329 +0200
-+++ addons/openacademy/views/partner.xml 2014-08-26 17:26:02.895783329 +0200
-@@ -28,5 +28,21 @@
-
-+
+
+
+ Contact Tags
+ res.partner.category
@@ -39,5 +38,5 @@ Index: addons/openacademy/views/partner.xml
+
+ Teacher / Level 2
+
-
++
diff --git a/doc/howtos/backend/exercise-domain-basic b/doc/howtos/backend/exercise-domain-basic
index 635b6fe4405..71ee608cfbc 100644
--- a/doc/howtos/backend/exercise-domain-basic
+++ b/doc/howtos/backend/exercise-domain-basic
@@ -3,9 +3,9 @@
Index: addons/openacademy/models.py
===================================================================
---- addons.orig/openacademy/models.py 2014-08-26 17:26:02.067783341 +0200
-+++ addons/openacademy/models.py 2014-08-26 17:26:02.059783341 +0200
-@@ -22,7 +22,8 @@
+--- addons.orig/openacademy/models.py
++++ addons/openacademy/models.py
+@@ -24,7 +24,8 @@
duration = fields.Float(digits=(6, 2), help="Duration in days")
seats = fields.Integer(string="Number of seats")
diff --git a/doc/howtos/backend/exercise-gantt b/doc/howtos/backend/exercise-gantt
index 0c24d57f9e5..1e4aedd9624 100644
--- a/doc/howtos/backend/exercise-gantt
+++ b/doc/howtos/backend/exercise-gantt
@@ -5,7 +5,7 @@
diff --git a/openacademy/models.py b/openacademy/models.py
--- a/openacademy/models.py
+++ b/openacademy/models.py
-@@ -59,6 +59,9 @@ class Session(models.Model):
+@@ -61,6 +61,9 @@ class Session(models.Model):
end_date = fields.Date(string="End Date", store=True,
compute='_get_end_date', inverse='_set_end_date')
@@ -15,7 +15,7 @@ diff --git a/openacademy/models.py b/openacademy/models.py
@api.depends('seats', 'attendee_ids')
def _taken_seats(self):
for r in self:
-@@ -108,6 +111,15 @@ class Session(models.Model):
+@@ -110,6 +113,15 @@ class Session(models.Model):
end_date = fields.Datetime.from_string(r.end_date)
r.duration = (end_date - start_date).days + 1
diff --git a/doc/howtos/backend/exercise-graph b/doc/howtos/backend/exercise-graph
index ca38438971d..39d06f74944 100644
--- a/doc/howtos/backend/exercise-graph
+++ b/doc/howtos/backend/exercise-graph
@@ -5,7 +5,7 @@
diff --git a/openacademy/models.py b/openacademy/models.py
--- a/openacademy/models.py
+++ b/openacademy/models.py
-@@ -62,6 +62,9 @@ class Session(models.Model):
+@@ -64,6 +64,9 @@ class Session(models.Model):
hours = fields.Float(string="Duration in hours",
compute='_get_hours', inverse='_set_hours')
@@ -15,7 +15,7 @@ diff --git a/openacademy/models.py b/openacademy/models.py
@api.depends('seats', 'attendee_ids')
def _taken_seats(self):
for r in self:
-@@ -120,6 +123,11 @@ class Session(models.Model):
+@@ -122,6 +125,11 @@ class Session(models.Model):
for r in self:
r.duration = r.hours / 24
diff --git a/doc/howtos/backend/exercise-kanban b/doc/howtos/backend/exercise-kanban
index a3387aa6e6c..49cd23d80c2 100644
--- a/doc/howtos/backend/exercise-kanban
+++ b/doc/howtos/backend/exercise-kanban
@@ -3,9 +3,9 @@
Index: addons/openacademy/models.py
===================================================================
---- addons.orig/openacademy/models.py 2014-08-28 14:21:58.627015606 +0200
-+++ addons/openacademy/models.py 2014-08-28 14:21:58.623015606 +0200
-@@ -47,6 +47,7 @@
+--- addons.orig/openacademy/models.py
++++ addons/openacademy/models.py
+@@ -49,6 +49,7 @@
duration = fields.Float(digits=(6, 2), help="Duration in days")
seats = fields.Integer(string="Number of seats")
active = fields.Boolean(default=True)
@@ -15,8 +15,8 @@ Index: addons/openacademy/models.py
domain=['|', ('instructor', '=', True),
Index: addons/openacademy/views/openacademy.xml
===================================================================
---- addons.orig/openacademy/views/openacademy.xml 2014-08-28 14:21:58.627015606 +0200
-+++ addons/openacademy/views/openacademy.xml 2014-08-28 14:21:58.623015606 +0200
+--- addons.orig/openacademy/views/openacademy.xml
++++ addons/openacademy/views/openacademy.xml
@@ -166,11 +166,57 @@
@@ -36,7 +36,7 @@ Index: addons/openacademy/views/openacademy.xml
+