summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorRaphael Collet <rco@openerp.com>2014-08-24 13:06:51 +0200
committerRaphael Collet <rco@openerp.com>2014-08-24 13:06:51 +0200
commit2b3b1c3230ac0aaa58a22664c278b910b1611191 (patch)
tree28b044e34fae3c509a13652089d2c9d0e5fe7cd1 /doc
parent2ad092b5e54fa39a906b38d9240e08b9800ea0da (diff)
[IMP] doc/howtos/backend: use scaffolding and adapt text and code accordingly
Diffstat (limited to 'doc')
-rw-r--r--doc/howtos/backend.rst39
-rw-r--r--doc/howtos/backend/exercise-access-rights50
-rw-r--r--doc/howtos/backend/exercise-access-rules43
-rw-r--r--doc/howtos/backend/exercise-advanced-treeview4
-rw-r--r--doc/howtos/backend/exercise-basic-action24
-rw-r--r--doc/howtos/backend/exercise-calendar23
-rw-r--r--doc/howtos/backend/exercise-computed21
-rw-r--r--doc/howtos/backend/exercise-constraint-python17
-rw-r--r--doc/howtos/backend/exercise-constraint-sql8
-rw-r--r--doc/howtos/backend/exercise-copy-override8
-rw-r--r--doc/howtos/backend/exercise-creation160
-rw-r--r--doc/howtos/backend/exercise-dashboard159
-rw-r--r--doc/howtos/backend/exercise-defaults12
-rw-r--r--doc/howtos/backend/exercise-demo47
-rw-r--r--doc/howtos/backend/exercise-domain-advanced12
-rw-r--r--doc/howtos/backend/exercise-domain-basic8
-rw-r--r--doc/howtos/backend/exercise-formview7
-rw-r--r--doc/howtos/backend/exercise-formview-notebooks7
-rw-r--r--doc/howtos/backend/exercise-gantt14
-rw-r--r--doc/howtos/backend/exercise-graph14
-rw-r--r--doc/howtos/backend/exercise-kanban12
-rw-r--r--doc/howtos/backend/exercise-many2many9
-rw-r--r--doc/howtos/backend/exercise-many2one16
-rw-r--r--doc/howtos/backend/exercise-model26
-rw-r--r--doc/howtos/backend/exercise-model-inheritance26
-rw-r--r--doc/howtos/backend/exercise-o2m-views4
-rw-r--r--doc/howtos/backend/exercise-onchange10
-rw-r--r--doc/howtos/backend/exercise-one2many8
-rw-r--r--doc/howtos/backend/exercise-report75
-rw-r--r--doc/howtos/backend/exercise-searchview-basic7
-rw-r--r--doc/howtos/backend/exercise-session10
-rw-r--r--doc/howtos/backend/exercise-state-basic12
-rw-r--r--doc/howtos/backend/exercise-state-workflow118
-rw-r--r--doc/howtos/backend/exercise-state-workflow-actions130
-rw-r--r--doc/howtos/backend/exercise-state-workflow-automatic25
35 files changed, 659 insertions, 506 deletions
diff --git a/doc/howtos/backend.rst b/doc/howtos/backend.rst
index 21500b9bec5..1fca4d151fc 100644
--- a/doc/howtos/backend.rst
+++ b/doc/howtos/backend.rst
@@ -92,15 +92,28 @@ might contain::
import mymodule
+Fortunately, there is a mechanism to help you set up an module. The command
+``odoo.py`` has a subcommand ``scaffold`` to create an empty module:
+
+.. code:: bash
+
+ odoo.py scaffold <module name> <where to put it>
+
+The command creates a subdirectory for your module, and automatically creates a
+bunch of standard files for a module. Most of them simply contain commented code
+or XML. The usage of most of those files will be explained along this tutorial.
+
.. exercise:: Module creation
- Create an empty module Open Academy, install it in Odoo.
+ Use the command line above to create an empty module Open Academy, and
+ install it in Odoo.
.. only:: solutions
- #. Create a new folder ``openacademy``
- #. Create an empty ``openacademy/__init__.py`` file
- #. Create an ``openacademy/__openerp__.py`` file
+ #. Invoke the command ``./odoo.py scaffold openacademy addons`` in the
+ Odoo directory.
+ #. Adapt the manifest file to your module.
+ #. Don't bother about the other files.
.. patch::
@@ -200,8 +213,7 @@ overridden by setting :attr:`~openerp.models.Model._rec_name`.
.. only:: solutions
- #. Create a new file ``openacademy/course.py``
- #. Edit ``openacademy/__init__.py`` to import it
+ Edit the file ``openacademy/models.py`` to include a *Course* class.
.. patch::
@@ -245,8 +257,7 @@ be declared in the ``'data'`` list (always loaded) or in the ``'demo'`` list
.. only:: solutions
- #. Create a new file ``openacademy/demo.xml``
- #. Add the file to the ``'demo'`` list of your ``__openerp__.py``
+ Edit the file ``openacademy/demo.xml`` to include some data.
.. patch::
@@ -475,7 +486,7 @@ client data; it is also related to its sale order line records.
.. only:: solutions
- Create class *Session*:
+ Create the class *Session* in ``openacademy/models.py``.
.. patch::
@@ -675,9 +686,9 @@ instead of a single view its ``arch`` field is composed of any number of
inspect the view, find its external ID and the place to put the
new field.
- #. Create a ``openacademy/partner.py`` and import it in
+ #. Create a file ``openacademy/partner.py`` and import it in
``__init__.py``
- #. Create an ``openacademy/views/partner.xml`` and add it to
+ #. Create a file ``openacademy/views/partner.xml`` and add it to
``__openerp__.py``
.. patch::
@@ -1330,9 +1341,9 @@ rights are usually created by a CSV file named after its model:
#. Create a new file ``openacademy/security/security.xml`` to
hold the OpenAcademy Manager group
- #. Create a new file ``openacademy/security/ir.model.access.csv`` with
+ #. Edit the file ``openacademy/security/ir.model.access.csv`` with
the access rights to the models
- #. finally update ``openacademy/__openerp__.py`` to add the new data
+ #. Finally update ``openacademy/__openerp__.py`` to add the new data
files to it
.. patch::
@@ -1533,7 +1544,7 @@ Dashboards
.. only:: solutions
- #. Create a ``openacademy/views/session_board.xml``. It should contain
+ #. Create a file ``openacademy/views/session_board.xml``. It should contain
the board view, the actions referenced in that view, an action to
open the dashboard and a re-definition of the main menu item to add
the dashboard action
diff --git a/doc/howtos/backend/exercise-access-rights b/doc/howtos/backend/exercise-access-rights
index 64c8b12ca12..0196c0273ed 100644
--- a/doc/howtos/backend/exercise-access-rights
+++ b/doc/howtos/backend/exercise-access-rights
@@ -1,38 +1,40 @@
# HG changeset patch
# Parent 303a5f4f011822dcb42b5833d579eabd3f03f4bf
-diff --git a/openacademy/__openerp__.py b/openacademy/__openerp__.py
---- a/openacademy/__openerp__.py
-+++ b/openacademy/__openerp__.py
-@@ -11,6 +11,8 @@
- - training sessions
- - attendees registration""",
- 'data' : [
+Index: doc-backend/openacademy/__openerp__.py
+===================================================================
+--- doc-backend.orig/openacademy/__openerp__.py 2014-08-24 12:26:40.449399183 +0200
++++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:26:40.445399183 +0200
+@@ -25,7 +25,8 @@
+
+ # always loaded
+ 'data': [
+- # 'security/ir.model.access.csv',
+ 'security/security.xml',
+ 'security/ir.model.access.csv',
+ 'templates.xml',
'views/openacademy.xml',
'views/partner.xml',
- 'views/session_workflow.xml',
-diff --git a/openacademy/security/ir.model.access.csv b/openacademy/security/ir.model.access.csv
-new file mode 100644
---- /dev/null
-+++ b/openacademy/security/ir.model.access.csv
-@@ -0,0 +1,6 @@
-+id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
+Index: doc-backend/openacademy/security/ir.model.access.csv
+===================================================================
+--- doc-backend.orig/openacademy/security/ir.model.access.csv 2014-08-24 12:26:40.449399183 +0200
++++ doc-backend/openacademy/security/ir.model.access.csv 2014-08-24 12:26:55.985399543 +0200
+@@ -1,2 +1,5 @@
+ id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
+-access_openacademy_openacademy,openacademy.openacademy,model_openacademy_openacademy,,1,0,0,0
+course_manager,course manager,model_openacademy_course,group_manager,1,1,1,1
+session_manager,session manager,model_openacademy_session,group_manager,1,1,1,1
+course_read_all,course all,model_openacademy_course,,1,0,0,0
+session_read_all,session all,model_openacademy_session,,1,0,0,0
-+
-diff --git a/openacademy/security/security.xml b/openacademy/security/security.xml
-new file mode 100644
---- /dev/null
-+++ b/openacademy/security/security.xml
+Index: doc-backend/openacademy/security/security.xml
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ doc-backend/openacademy/security/security.xml 2014-08-24 12:26:40.445399183 +0200
@@ -0,0 +1,7 @@
+<openerp>
-+ <data>
-+ <record id="group_manager" model="res.groups">
-+ <field name="name">OpenAcademy / Manager</field>
-+ </record>
-+ </data>
++ <data>
++ <record id="group_manager" model="res.groups">
++ <field name="name">OpenAcademy / Manager</field>
++ </record>
++ </data>
+</openerp>
diff --git a/doc/howtos/backend/exercise-access-rules b/doc/howtos/backend/exercise-access-rules
index 694fc6d7a2b..7cc6ae370ad 100644
--- a/doc/howtos/backend/exercise-access-rules
+++ b/doc/howtos/backend/exercise-access-rules
@@ -1,26 +1,27 @@
# HG changeset patch
# Parent 0602022dc2a428f9995c886df33b699b6d3bcb69
-diff --git a/openacademy/security/security.xml b/openacademy/security/security.xml
---- a/openacademy/security/security.xml
-+++ b/openacademy/security/security.xml
+Index: doc-backend/openacademy/security/security.xml
+===================================================================
+--- doc-backend.orig/openacademy/security/security.xml 2014-08-24 12:27:27.569400274 +0200
++++ doc-backend/openacademy/security/security.xml 2014-08-24 12:28:29.185401700 +0200
@@ -3,5 +3,19 @@
- <record id="group_manager" model="res.groups">
- <field name="name">OpenAcademy / Manager</field>
- </record>
-+
-+ <record id="only_responsible_can_modify" model="ir.rule">
-+ <field name="name">Only Responsible can modify Course</field>
-+ <field name="model_id" ref="model_openacademy_course"/>
-+ <field name="groups" eval="[(4, ref('openacademy.group_manager'))]"/>
-+ <field name="perm_read" eval="0"/>
-+ <field name="perm_write" eval="1"/>
-+ <field name="perm_create" eval="0"/>
-+ <field name="perm_unlink" eval="1"/>
-+ <field name="domain_force">
-+ ['|', ('responsible_id','=',False),
-+ ('responsible_id','=',user.id)]
-+ </field>
-+ </record>
- </data>
+ <record id="group_manager" model="res.groups">
+ <field name="name">OpenAcademy / Manager</field>
+ </record>
++
++ <record id="only_responsible_can_modify" model="ir.rule">
++ <field name="name">Only Responsible can modify Course</field>
++ <field name="model_id" ref="model_openacademy_course"/>
++ <field name="groups" eval="[(4, ref('openacademy.group_manager'))]"/>
++ <field name="perm_read" eval="0"/>
++ <field name="perm_write" eval="1"/>
++ <field name="perm_create" eval="0"/>
++ <field name="perm_unlink" eval="1"/>
++ <field name="domain_force">
++ ['|', ('responsible_id','=',False),
++ ('responsible_id','=',user.id)]
++ </field>
++ </record>
+ </data>
</openerp>
diff --git a/doc/howtos/backend/exercise-advanced-treeview b/doc/howtos/backend/exercise-advanced-treeview
index 179835b4217..4a9a1e1705c 100644
--- a/doc/howtos/backend/exercise-advanced-treeview
+++ b/doc/howtos/backend/exercise-advanced-treeview
@@ -3,8 +3,8 @@
Index: doc-backend/openacademy/views/openacademy.xml
===================================================================
---- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-22 17:03:26.743106339 +0200
-+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:03:26.739106339 +0200
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:13:41.149381146 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:13:41.141381146 +0200
@@ -111,9 +111,10 @@
<field name="name">session.tree</field>
<field name="model">openacademy.session</field>
diff --git a/doc/howtos/backend/exercise-basic-action b/doc/howtos/backend/exercise-basic-action
index f45df4749e6..7f1a8e8aed9 100644
--- a/doc/howtos/backend/exercise-basic-action
+++ b/doc/howtos/backend/exercise-basic-action
@@ -1,19 +1,21 @@
# HG changeset patch
# Parent 16e4cb131d9f7f3a72a8a1b0bc46c2ce9ac76435
-diff -r 16e4cb131d9f -r bbfa610bfabd openacademy/__openerp__.py
---- a/openacademy/__openerp__.py Thu Aug 07 12:10:05 2014 +0200
-+++ b/openacademy/__openerp__.py Thu Aug 07 12:11:28 2014 +0200
-@@ -11,6 +11,7 @@
- - training sessions
- - attendees registration""",
- 'data' : [
+Index: doc-backend/openacademy/__openerp__.py
+===================================================================
+--- doc-backend.orig/openacademy/__openerp__.py 2014-08-24 12:02:32.169365663 +0200
++++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:02:32.165365663 +0200
+@@ -27,6 +27,7 @@
+ 'data': [
+ # 'security/ir.model.access.csv',
+ 'templates.xml',
+ 'views/openacademy.xml',
],
+ # only loaded in demonstration mode
'demo': [
- 'demo.xml',
-diff -r 16e4cb131d9f -r bbfa610bfabd openacademy/views/openacademy.xml
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/openacademy/views/openacademy.xml Thu Aug 07 12:11:28 2014 +0200
+Index: doc-backend/openacademy/views/openacademy.xml
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:02:32.165365663 +0200
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
diff --git a/doc/howtos/backend/exercise-calendar b/doc/howtos/backend/exercise-calendar
index bd2b81b4aaa..39e49cba7d3 100644
--- a/doc/howtos/backend/exercise-calendar
+++ b/doc/howtos/backend/exercise-calendar
@@ -1,19 +1,18 @@
# HG changeset patch
# Parent 85a8d7317b9e13480f39ad739955442d15144451
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-22 17:03:34.383106620 +0200
-+++ doc-backend/openacademy/course.py 2014-08-22 17:03:34.375106619 +0200
-@@ -1,4 +1,7 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:17:49.873386903 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:18:24.601387707 +0200
+@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
-+from datetime import datetime, timedelta
-+
-+import openerp.tools
- from openerp import api, fields, models, exceptions
+
++from datetime import timedelta
+ from openerp import models, fields, api, exceptions
class Course(models.Model):
-@@ -54,6 +57,8 @@
+@@ -55,6 +56,8 @@
attendee_ids = fields.Many2many('res.partner', string="Attendees")
taken_seats = fields.Float(string="Taken seats", compute='_taken_seats')
@@ -22,7 +21,7 @@ Index: doc-backend/openacademy/course.py
@api.one
@api.depends('seats', 'attendee_ids')
-@@ -81,6 +86,26 @@
+@@ -82,6 +85,26 @@
}
@api.one
@@ -51,8 +50,8 @@ Index: doc-backend/openacademy/course.py
if self.instructor_id and self.instructor_id in self.attendee_ids:
Index: doc-backend/openacademy/views/openacademy.xml
===================================================================
---- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-22 17:03:34.383106620 +0200
-+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:03:34.379106620 +0200
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:17:49.873386903 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:17:49.869386903 +0200
@@ -120,11 +120,24 @@
</field>
</record>
diff --git a/doc/howtos/backend/exercise-computed b/doc/howtos/backend/exercise-computed
index 3d157849aca..b27a736861b 100644
--- a/doc/howtos/backend/exercise-computed
+++ b/doc/howtos/backend/exercise-computed
@@ -1,21 +1,15 @@
# HG changeset patch
# Parent a358be0a577b0569831958a8ec1302825c645dee
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-22 14:30:38.650769778 +0200
-+++ doc-backend/openacademy/course.py 2014-08-22 14:31:17.090771190 +0200
-@@ -1,5 +1,5 @@
- # -*- coding: utf-8 -*-
--from openerp import fields, models
-+from openerp import api, fields, models
-
- class Course(models.Model):
- _name = 'openacademy.course'
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:09:36.289375479 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:09:59.961376027 +0200
@@ -28,3 +28,13 @@
+ course_id = fields.Many2one('openacademy.course',
ondelete='cascade', string="Course", required=True)
attendee_ids = fields.Many2many('res.partner', string="Attendees")
-
++
+ taken_seats = fields.Float(string="Taken seats", compute='_taken_seats')
+
+ @api.one
@@ -25,11 +19,10 @@ Index: doc-backend/openacademy/course.py
+ self.taken_seats = 0.0
+ else:
+ self.taken_seats = 100.0 * len(self.attendee_ids) / self.seats
-+
Index: doc-backend/openacademy/views/openacademy.xml
===================================================================
---- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-22 14:30:38.650769778 +0200
-+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 14:31:42.542772124 +0200
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:09:36.289375479 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:09:36.285375479 +0200
@@ -98,6 +98,7 @@
<field name="start_date"/>
<field name="duration"/>
diff --git a/doc/howtos/backend/exercise-constraint-python b/doc/howtos/backend/exercise-constraint-python
index c2f0b8a6114..a3a18d4e617 100644
--- a/doc/howtos/backend/exercise-constraint-python
+++ b/doc/howtos/backend/exercise-constraint-python
@@ -1,24 +1,25 @@
# HG changeset patch
# Parent 7a7d003fe38426a405ce0657a627a139133ec4dd
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-22 17:02:00.987103191 +0200
-+++ doc-backend/openacademy/course.py 2014-08-22 17:02:00.983103191 +0200
-@@ -1,5 +1,5 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:16:56.413385666 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:17:11.137386006 +0200
+@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
--from openerp import api, fields, models
-+from openerp import api, fields, models, exceptions
+
+-from openerp import models, fields, api
++from openerp import models, fields, api, exceptions
class Course(models.Model):
_name = 'openacademy.course'
@@ -56,3 +56,9 @@
+ 'message': "Increase seats or remove excess attendees",
},
}
-
++
+ @api.one
+ @api.constrains('instructor_id', 'attendee_ids')
+ def _check_instructor_not_in_attendees(self):
+ if self.instructor_id and self.instructor_id in self.attendee_ids:
+ raise exceptions.ValidationError("A session's instructor can't be an attendee")
-+
diff --git a/doc/howtos/backend/exercise-constraint-sql b/doc/howtos/backend/exercise-constraint-sql
index 2b6714a949e..7a13a10e47b 100644
--- a/doc/howtos/backend/exercise-constraint-sql
+++ b/doc/howtos/backend/exercise-constraint-sql
@@ -1,11 +1,11 @@
# HG changeset patch
# Parent 121bbfe120be3007f5e04611dbc27038abafcce8
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-22 17:02:07.363103425 +0200
-+++ doc-backend/openacademy/course.py 2014-08-22 17:02:07.359103425 +0200
-@@ -13,6 +13,16 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:17:23.789386299 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:17:23.785386299 +0200
+@@ -14,6 +14,16 @@
'openacademy.session', 'course_id', string="Session")
diff --git a/doc/howtos/backend/exercise-copy-override b/doc/howtos/backend/exercise-copy-override
index 652fad7a11a..e9d3404bc5a 100644
--- a/doc/howtos/backend/exercise-copy-override
+++ b/doc/howtos/backend/exercise-copy-override
@@ -1,11 +1,11 @@
# HG changeset patch
# Parent 7d14b75cdfd4c7a272a13572947de5d47f3e851f
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-21 14:54:08.768549861 +0200
-+++ doc-backend/openacademy/course.py 2014-08-21 14:54:08.764549861 +0200
-@@ -13,6 +13,20 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:17:34.389386545 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:17:34.381386544 +0200
+@@ -14,6 +14,20 @@
'openacademy.session', 'course_id', string="Session")
diff --git a/doc/howtos/backend/exercise-creation b/doc/howtos/backend/exercise-creation
index 88c181a66fa..0081456e01f 100644
--- a/doc/howtos/backend/exercise-creation
+++ b/doc/howtos/backend/exercise-creation
@@ -1,24 +1,152 @@
# HG changeset patch
# Parent 0000000000000000000000000000000000000000
-diff --git a/openacademy/__init__.py b/openacademy/__init__.py
-new file mode 100644
-diff --git a/openacademy/__openerp__.py b/openacademy/__openerp__.py
-new file mode 100644
---- /dev/null
-+++ b/openacademy/__openerp__.py
-@@ -0,0 +1,15 @@
+Index: doc-backend/openacademy/__openerp__.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:25:18.133397278 +0200
+@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+{
+ 'name': "Open Academy",
-+ 'category': "Test",
-+ 'version': '1.0',
++
++ 'summary': """Manage trainings""",
++
++ 'description': """
++ Open Academy module for managing trainings:
++ - training courses
++ - training sessions
++ - attendees registration
++ """,
++
++ 'author': "Your Company",
++ 'website': "http://www.yourcompany.com",
++
++ # Categories can be used to filter modules in modules listing
++ # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml
++ # for the full list
++ 'category': 'Test',
++ 'version': '0.1',
++
++ # any module necessary for this one to work correctly
+ 'depends': ['base'],
-+ 'author': '<insert name here>',
-+ 'description' : """
-+ Open Academy module for managing trainings:
-+ - training courses
-+ - training sessions
-+ - attendees registration""",
-+ 'data' : [
++
++ # always loaded
++ 'data': [
++ # 'security/ir.model.access.csv',
++ 'templates.xml',
++ ],
++ # only loaded in demonstration mode
++ 'demo': [
++ 'demo.xml',
+ ],
+}
+Index: doc-backend/openacademy/__init__.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ doc-backend/openacademy/__init__.py 2014-08-24 12:25:18.133397278 +0200
+@@ -0,0 +1,3 @@
++# -*- coding: utf-8 -*-
++import controllers
++import models
+Index: doc-backend/openacademy/controllers.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ doc-backend/openacademy/controllers.py 2014-08-24 12:25:18.133397278 +0200
+@@ -0,0 +1,20 @@
++# -*- coding: utf-8 -*-
++from openerp import http
++
++# class Openacademy(http.Controller):
++# @http.route('/openacademy/openacademy/', auth='public')
++# def index(self, **kw):
++# return "Hello, world"
++
++# @http.route('/openacademy/openacademy/objects/', auth='public')
++# def list(self, **kw):
++# return http.request.render('openacademy.listing', {
++# 'root': '/openacademy/openacademy',
++# 'objects': http.request.env['openacademy.openacademy'].search([]),
++# })
++
++# @http.route('/openacademy/openacademy/objects/<model("openacademy.openacademy"):obj>/', auth='public')
++# def object(self, obj, **kw):
++# return http.request.render('openacademy.object', {
++# 'object': obj
++# })
+Index: doc-backend/openacademy/demo.xml
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ doc-backend/openacademy/demo.xml 2014-08-24 12:25:18.133397278 +0200
+@@ -0,0 +1,25 @@
++<openerp>
++ <data>
++ <!-- -->
++ <!-- <record id="object0" model="openacademy.openacademy"> -->
++ <!-- <field name="name">Object 0</field> -->
++ <!-- </record> -->
++ <!-- -->
++ <!-- <record id="object1" model="openacademy.openacademy"> -->
++ <!-- <field name="name">Object 1</field> -->
++ <!-- </record> -->
++ <!-- -->
++ <!-- <record id="object2" model="openacademy.openacademy"> -->
++ <!-- <field name="name">Object 2</field> -->
++ <!-- </record> -->
++ <!-- -->
++ <!-- <record id="object3" model="openacademy.openacademy"> -->
++ <!-- <field name="name">Object 3</field> -->
++ <!-- </record> -->
++ <!-- -->
++ <!-- <record id="object4" model="openacademy.openacademy"> -->
++ <!-- <field name="name">Object 4</field> -->
++ <!-- </record> -->
++ <!-- -->
++ </data>
++</openerp>
+Index: doc-backend/openacademy/models.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ doc-backend/openacademy/models.py 2014-08-24 12:25:18.133397278 +0200
+@@ -0,0 +1,8 @@
++# -*- coding: utf-8 -*-
++
++from openerp import models, fields, api
++
++# class openacademy(models.Model):
++# _name = 'openacademy.openacademy'
++
++# name = fields.Char()
+Index: doc-backend/openacademy/security/ir.model.access.csv
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ doc-backend/openacademy/security/ir.model.access.csv 2014-08-24 12:25:30.941397574 +0200
+@@ -0,0 +1,2 @@
++id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
++access_openacademy_openacademy,openacademy.openacademy,model_openacademy_openacademy,,1,0,0,0
+Index: doc-backend/openacademy/templates.xml
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ doc-backend/openacademy/templates.xml 2014-08-24 12:25:18.137397278 +0200
+@@ -0,0 +1,22 @@
++<openerp>
++ <data>
++ <!-- <template id="listing"> -->
++ <!-- <ul> -->
++ <!-- <li t-foreach="objects" t-as="object"> -->
++ <!-- <a t-attf-href="#{ root }/objects/#{ object.id }"> -->
++ <!-- <t t-esc="object.display_name"/> -->
++ <!-- </a> -->
++ <!-- </li> -->
++ <!-- </ul> -->
++ <!-- </template> -->
++ <!-- <template id="object"> -->
++ <!-- <h1><t t-esc="object.display_name"/></h1> -->
++ <!-- <dl> -->
++ <!-- <t t-foreach="object._fields" t-as="field"> -->
++ <!-- <dt><t t-esc="field"/></dt> -->
++ <!-- <dd><t t-esc="object[field]"/></dd> -->
++ <!-- </t> -->
++ <!-- </dl> -->
++ <!-- </template> -->
++ </data>
++</openerp>
diff --git a/doc/howtos/backend/exercise-dashboard b/doc/howtos/backend/exercise-dashboard
index 8595d483c37..4ffc82677a6 100644
--- a/doc/howtos/backend/exercise-dashboard
+++ b/doc/howtos/backend/exercise-dashboard
@@ -1,93 +1,94 @@
# HG changeset patch
# Parent 643813940cbea07bec792f9e1c60022a9292fa90
-diff --git a/openacademy/__openerp__.py b/openacademy/__openerp__.py
---- a/openacademy/__openerp__.py
-+++ b/openacademy/__openerp__.py
-@@ -3,7 +3,7 @@
- 'name': "Open Academy",
- 'category': "Test",
- 'version': '1.0',
+Index: doc-backend/openacademy/__openerp__.py
+===================================================================
+--- doc-backend.orig/openacademy/__openerp__.py 2014-08-24 12:31:00.385405199 +0200
++++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:31:45.373406240 +0200
+@@ -21,7 +21,7 @@
+ 'version': '0.1',
+
+ # any module necessary for this one to work correctly
- 'depends': ['base'],
+ 'depends': ['base', 'board'],
- 'author': '<insert name here>',
- 'description' : """
- Open Academy module for managing trainings:
-@@ -17,6 +17,7 @@
+
+ # always loaded
+ 'data': [
+@@ -31,6 +31,7 @@
+ 'views/openacademy.xml',
'views/partner.xml',
'views/session_workflow.xml',
- 'reports.xml',
+ 'views/session_board.xml',
+ 'reports.xml',
],
- 'demo': [
- 'demo.xml',
-diff --git a/openacademy/views/session_board.xml b/openacademy/views/session_board.xml
-new file mode 100644
---- /dev/null
-+++ b/openacademy/views/session_board.xml
+ # only loaded in demonstration mode
+Index: doc-backend/openacademy/views/session_board.xml
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ doc-backend/openacademy/views/session_board.xml 2014-08-24 12:33:16.077408340 +0200
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<openerp>
-+ <data>
-+ <record model="ir.actions.act_window" id="act_session_graph">
-+ <field name="res_model">openacademy.session</field>
-+ <field name="view_type">form</field>
-+ <field name="view_mode">graph</field>
-+ <field name="view_id"
-+ ref="openacademy.openacademy_session_graph_view"/>
-+ </record>
-+ <record model="ir.actions.act_window" id="act_session_calendar">
-+ <field name="res_model">openacademy.session</field>
-+ <field name="view_type">form</field>
-+ <field name="view_mode">calendar</field>
-+ <field name="view_id" ref="openacademy.session_calendar_view"/>
-+ </record>
-+ <record model="ir.actions.act_window" id="act_course_list">
-+ <field name="res_model">openacademy.course</field>
-+ <field name="view_type">form</field>
-+ <field name="view_mode">tree,form</field>
-+ </record>
-+ <record model="ir.ui.view" id="board_session_form">
-+ <field name="name">Session Dashboard Form</field>
-+ <field name="model">board.board</field>
-+ <field name="type">form</field>
-+ <field name="arch" type="xml">
-+ <form string="Session Dashboard">
-+ <board style="2-1">
-+ <column>
-+ <action
-+ string="Attendees by course"
-+ name="%(act_session_graph)d"
-+ colspan="4"
-+ height="150"
-+ width="510"/>
-+ <action
-+ string="Sessions"
-+ name="%(act_session_calendar)d"
-+ colspan="4"/>
-+ </column>
-+ <column>
-+ <action
-+ string="Courses"
-+ name="%(act_course_list)d" colspan="4"/>
-+ </column>
-+ </board>
-+ </form>
-+ </field>
-+ </record>
-+ <record model="ir.actions.act_window" id="open_board_session">
-+ <field name="name">Session Dashboard</field>
-+ <field name="res_model">board.board</field>
-+ <field name="view_type">form</field>
-+ <field name="view_mode">form</field>
-+ <field name="usage">menu</field>
-+ <field name="view_id" ref="board_session_form"/>
-+ </record>
++ <data>
++ <record model="ir.actions.act_window" id="act_session_graph">
++ <field name="res_model">openacademy.session</field>
++ <field name="view_type">form</field>
++ <field name="view_mode">graph</field>
++ <field name="view_id"
++ ref="openacademy.openacademy_session_graph_view"/>
++ </record>
++ <record model="ir.actions.act_window" id="act_session_calendar">
++ <field name="res_model">openacademy.session</field>
++ <field name="view_type">form</field>
++ <field name="view_mode">calendar</field>
++ <field name="view_id" ref="openacademy.session_calendar_view"/>
++ </record>
++ <record model="ir.actions.act_window" id="act_course_list">
++ <field name="res_model">openacademy.course</field>
++ <field name="view_type">form</field>
++ <field name="view_mode">tree,form</field>
++ </record>
++ <record model="ir.ui.view" id="board_session_form">
++ <field name="name">Session Dashboard Form</field>
++ <field name="model">board.board</field>
++ <field name="type">form</field>
++ <field name="arch" type="xml">
++ <form string="Session Dashboard">
++ <board style="2-1">
++ <column>
++ <action
++ string="Attendees by course"
++ name="%(act_session_graph)d"
++ colspan="4"
++ height="150"
++ width="510"/>
++ <action
++ string="Sessions"
++ name="%(act_session_calendar)d"
++ colspan="4"/>
++ </column>
++ <column>
++ <action
++ string="Courses"
++ name="%(act_course_list)d" colspan="4"/>
++ </column>
++ </board>
++ </form>
++ </field>
++ </record>
++ <record model="ir.actions.act_window" id="open_board_session">
++ <field name="name">Session Dashboard</field>
++ <field name="res_model">board.board</field>
++ <field name="view_type">form</field>
++ <field name="view_mode">form</field>
++ <field name="usage">menu</field>
++ <field name="view_id" ref="board_session_form"/>
++ </record>
+
-+ <menuitem
-+ name="Session Dashboard" parent="base.menu_reporting_dashboard"
-+ action="open_board_session"
-+ sequence="1"
-+ id="menu_board_session" icon="terp-graph"/>
-+ </data>
++ <menuitem
++ name="Session Dashboard" parent="base.menu_reporting_dashboard"
++ action="open_board_session"
++ sequence="1"
++ id="menu_board_session" icon="terp-graph"/>
++ </data>
+</openerp>
diff --git a/doc/howtos/backend/exercise-defaults b/doc/howtos/backend/exercise-defaults
index 774f48a8d23..97265dcfc08 100644
--- a/doc/howtos/backend/exercise-defaults
+++ b/doc/howtos/backend/exercise-defaults
@@ -1,8 +1,8 @@
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-22 16:57:00.727092169 +0200
-+++ doc-backend/openacademy/course.py 2014-08-22 17:01:08.975101282 +0200
-@@ -17,9 +17,10 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:10:34.701376831 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:10:34.693376831 +0200
+@@ -18,9 +18,10 @@
_name = 'openacademy.session'
name = fields.Char(required=True)
@@ -16,8 +16,8 @@ Index: doc-backend/openacademy/course.py
domain=['|', ('instructor', '=', True),
Index: doc-backend/openacademy/views/openacademy.xml
===================================================================
---- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-22 16:57:00.731092169 +0200
-+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:01:15.307101514 +0200
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:10:34.701376831 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:10:34.693376831 +0200
@@ -92,6 +92,7 @@
<field name="course_id"/>
<field name="name"/>
diff --git a/doc/howtos/backend/exercise-demo b/doc/howtos/backend/exercise-demo
index 5503c812c56..80417971f90 100644
--- a/doc/howtos/backend/exercise-demo
+++ b/doc/howtos/backend/exercise-demo
@@ -1,25 +1,34 @@
# HG changeset patch
# Parent 84e2b0b43fc61fd0bcbb44c1929755d44ee58ae5
-Index: doc-backend/openacademy/__openerp__.py
-===================================================================
---- doc-backend.orig/openacademy/__openerp__.py 2014-08-21 15:18:40.892603902 +0200
-+++ doc-backend/openacademy/__openerp__.py 2014-08-21 15:18:40.884603902 +0200
-@@ -12,4 +12,7 @@
- - attendees registration""",
- 'data' : [
- ],
-+ 'demo': [
-+ 'demo.xml',
-+ ],
- }
Index: doc-backend/openacademy/demo.xml
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ doc-backend/openacademy/demo.xml 2014-08-21 15:19:26.200605566 +0200
-@@ -0,0 +1,19 @@
-+<openerp>
-+ <data>
+--- doc-backend.orig/openacademy/demo.xml 2014-08-24 11:58:31.673360097 +0200
++++ doc-backend/openacademy/demo.xml 2014-08-24 11:58:49.353360506 +0200
+@@ -1,25 +1,19 @@
+ <openerp>
+ <data>
+- <!-- -->
+- <!-- <record id="object0" model="openacademy.openacademy"> -->
+- <!-- <field name="name">Object 0</field> -->
+- <!-- </record> -->
+- <!-- -->
+- <!-- <record id="object1" model="openacademy.openacademy"> -->
+- <!-- <field name="name">Object 1</field> -->
+- <!-- </record> -->
+- <!-- -->
+- <!-- <record id="object2" model="openacademy.openacademy"> -->
+- <!-- <field name="name">Object 2</field> -->
+- <!-- </record> -->
+- <!-- -->
+- <!-- <record id="object3" model="openacademy.openacademy"> -->
+- <!-- <field name="name">Object 3</field> -->
+- <!-- </record> -->
+- <!-- -->
+- <!-- <record id="object4" model="openacademy.openacademy"> -->
+- <!-- <field name="name">Object 4</field> -->
+- <!-- </record> -->
+- <!-- -->
+ <record model="openacademy.course" id="course0">
+ <field name="name">Course 0</field>
+ <field name="description">Course 0's description
@@ -35,5 +44,5 @@ Index: doc-backend/openacademy/demo.xml
+ <field name="name">Course 2</field>
+ <field name="description">Course 2's description</field>
+ </record>
-+ </data>
-+</openerp>
+ </data>
+ </openerp>
diff --git a/doc/howtos/backend/exercise-domain-advanced b/doc/howtos/backend/exercise-domain-advanced
index 8c10ef1872e..8deb8f77795 100644
--- a/doc/howtos/backend/exercise-domain-advanced
+++ b/doc/howtos/backend/exercise-domain-advanced
@@ -1,11 +1,11 @@
# HG changeset patch
# Parent 69d1f2d359eb8ef304a9d99f17790c78b35eda1a
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-21 15:15:20.040596529 +0200
-+++ doc-backend/openacademy/course.py 2014-08-21 15:15:20.032596529 +0200
-@@ -22,7 +22,8 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:08:53.465374488 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:08:53.461374488 +0200
+@@ -23,7 +23,8 @@
seats = fields.Integer(string="Number of seats")
instructor_id = fields.Many2one('res.partner', string="Instructor",
@@ -17,8 +17,8 @@ Index: doc-backend/openacademy/course.py
attendee_ids = fields.Many2many('res.partner', string="Attendees")
Index: doc-backend/openacademy/views/partner.xml
===================================================================
---- doc-backend.orig/openacademy/views/partner.xml 2014-08-21 15:15:20.040596529 +0200
-+++ doc-backend/openacademy/views/partner.xml 2014-08-21 15:16:18.112598661 +0200
+--- doc-backend.orig/openacademy/views/partner.xml 2014-08-24 12:08:53.465374488 +0200
++++ doc-backend/openacademy/views/partner.xml 2014-08-24 12:08:53.461374488 +0200
@@ -24,5 +24,21 @@
<menuitem id="contact_menu" name="Contacts"
parent="configuration_menu"
diff --git a/doc/howtos/backend/exercise-domain-basic b/doc/howtos/backend/exercise-domain-basic
index ae050677177..8ad86b2d23c 100644
--- a/doc/howtos/backend/exercise-domain-basic
+++ b/doc/howtos/backend/exercise-domain-basic
@@ -1,11 +1,11 @@
# HG changeset patch
# Parent 142c5065ff1b7266d944d4ef5239e814ae22f0df
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-21 14:47:27.140535117 +0200
-+++ doc-backend/openacademy/course.py 2014-08-21 14:47:55.420536155 +0200
-@@ -21,7 +21,8 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:08:29.373373930 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:08:29.369373930 +0200
+@@ -22,7 +22,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-formview b/doc/howtos/backend/exercise-formview
index be65c7f3f8f..750eca1188b 100644
--- a/doc/howtos/backend/exercise-formview
+++ b/doc/howtos/backend/exercise-formview
@@ -1,9 +1,10 @@
# HG changeset patch
# Parent 4a0db1d29257764f4df5cb1ee0be7e59e8c8d0d8
-diff --git a/openacademy/views/openacademy.xml b/openacademy/views/openacademy.xml
---- a/openacademy/views/openacademy.xml
-+++ b/openacademy/views/openacademy.xml
+Index: doc-backend/openacademy/views/openacademy.xml
+===================================================================
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:02:49.677366068 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:02:49.669366068 +0200
@@ -1,6 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
diff --git a/doc/howtos/backend/exercise-formview-notebooks b/doc/howtos/backend/exercise-formview-notebooks
index 4741d2a3de0..5492b15ee09 100644
--- a/doc/howtos/backend/exercise-formview-notebooks
+++ b/doc/howtos/backend/exercise-formview-notebooks
@@ -1,9 +1,10 @@
# HG changeset patch
# Parent 5508a5440faa7b607d057c4e4ae70af6b6f7cac9
-diff --git a/openacademy/views/openacademy.xml b/openacademy/views/openacademy.xml
---- a/openacademy/views/openacademy.xml
-+++ b/openacademy/views/openacademy.xml
+Index: doc-backend/openacademy/views/openacademy.xml
+===================================================================
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:03:02.649366368 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:03:02.645366368 +0200
@@ -9,7 +9,14 @@
<sheet>
<group>
diff --git a/doc/howtos/backend/exercise-gantt b/doc/howtos/backend/exercise-gantt
index b7b0d8c5c45..a590ee94b3e 100644
--- a/doc/howtos/backend/exercise-gantt
+++ b/doc/howtos/backend/exercise-gantt
@@ -1,11 +1,11 @@
# HG changeset patch
# Parent dba00a105dd2a82490394b8dec5fea5f1d8847e1
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-22 17:03:44.939107007 +0200
-+++ doc-backend/openacademy/course.py 2014-08-22 17:03:44.931107007 +0200
-@@ -60,6 +60,9 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:18:54.645388402 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:18:54.641388402 +0200
+@@ -59,6 +59,9 @@
end_date = fields.Date(string="End Date", store=True,
compute='_get_end_date', inverse='_set_end_date')
@@ -15,7 +15,7 @@ Index: doc-backend/openacademy/course.py
@api.one
@api.depends('seats', 'attendee_ids')
def _taken_seats(self):
-@@ -106,6 +109,15 @@
+@@ -105,6 +108,15 @@
self.duration = (end_date - start_date).days
@api.one
@@ -33,8 +33,8 @@ Index: doc-backend/openacademy/course.py
if self.instructor_id and self.instructor_id in self.attendee_ids:
Index: doc-backend/openacademy/views/openacademy.xml
===================================================================
---- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-22 17:03:44.939107007 +0200
-+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:03:44.931107007 +0200
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:18:54.645388402 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:18:54.641388402 +0200
@@ -137,11 +137,24 @@
</field>
</record>
diff --git a/doc/howtos/backend/exercise-graph b/doc/howtos/backend/exercise-graph
index 79ed7270d37..fc79788cfa3 100644
--- a/doc/howtos/backend/exercise-graph
+++ b/doc/howtos/backend/exercise-graph
@@ -1,11 +1,11 @@
# HG changeset patch
# Parent a6fe4d3923db1f8f5dff2c39a711a814b0a0f549
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-22 17:03:48.511107138 +0200
-+++ doc-backend/openacademy/course.py 2014-08-22 17:03:48.507107138 +0200
-@@ -63,6 +63,9 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:19:27.701389167 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:19:27.697389167 +0200
+@@ -62,6 +62,9 @@
hours = fields.Float(string="Duration in hours",
compute='_get_hours', inverse='_set_hours')
@@ -15,7 +15,7 @@ Index: doc-backend/openacademy/course.py
@api.one
@api.depends('seats', 'attendee_ids')
def _taken_seats(self):
-@@ -118,6 +121,11 @@
+@@ -117,6 +120,11 @@
self.duration = self.hours / 24
@api.one
@@ -29,8 +29,8 @@ Index: doc-backend/openacademy/course.py
if self.instructor_id and self.instructor_id in self.attendee_ids:
Index: doc-backend/openacademy/views/openacademy.xml
===================================================================
---- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-22 17:03:48.511107138 +0200
-+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:03:48.507107138 +0200
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:19:27.701389167 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:19:27.697389167 +0200
@@ -150,11 +150,22 @@
</field>
</record>
diff --git a/doc/howtos/backend/exercise-kanban b/doc/howtos/backend/exercise-kanban
index ae49ef9c4db..9fb249598e8 100644
--- a/doc/howtos/backend/exercise-kanban
+++ b/doc/howtos/backend/exercise-kanban
@@ -1,11 +1,11 @@
# HG changeset patch
# Parent 8d66f7620781558d4520f97e4cebc14ed180683e
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-22 17:03:55.463107394 +0200
-+++ doc-backend/openacademy/course.py 2014-08-22 17:03:55.459107393 +0200
-@@ -48,6 +48,7 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:20:07.801390095 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:20:07.793390095 +0200
+@@ -47,6 +47,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: doc-backend/openacademy/course.py
domain=['|', ('instructor', '=', True),
Index: doc-backend/openacademy/views/openacademy.xml
===================================================================
---- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-22 17:03:55.463107394 +0200
-+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:03:55.459107393 +0200
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:20:07.801390095 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:20:07.793390095 +0200
@@ -161,11 +161,57 @@
</field>
</record>
diff --git a/doc/howtos/backend/exercise-many2many b/doc/howtos/backend/exercise-many2many
index 61837901100..41d03039dfb 100644
--- a/doc/howtos/backend/exercise-many2many
+++ b/doc/howtos/backend/exercise-many2many
@@ -1,10 +1,9 @@
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-21 14:42:26.508524081 +0200
-+++ doc-backend/openacademy/course.py 2014-08-21 14:42:54.712525116 +0200
-@@ -24,4 +24,5 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:06:18.941370912 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:06:28.885371142 +0200
+@@ -25,3 +25,4 @@
instructor_id = fields.Many2one('res.partner', string="Instructor")
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-many2one b/doc/howtos/backend/exercise-many2one
index da25de3965b..29385daa02a 100644
--- a/doc/howtos/backend/exercise-many2one
+++ b/doc/howtos/backend/exercise-many2one
@@ -1,11 +1,11 @@
# HG changeset patch
# Parent a6e217b1fbbc64111581c269629b1c25c23abb99
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-21 14:24:24.376484356 +0200
-+++ doc-backend/openacademy/course.py 2014-08-21 14:26:35.040489152 +0200
-@@ -7,6 +7,9 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:04:40.829368641 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:04:57.509369027 +0200
+@@ -8,6 +8,9 @@
name = fields.Char(string="Title", required=True)
description = fields.Text()
@@ -16,17 +16,17 @@ Index: doc-backend/openacademy/course.py
class Session(models.Model):
_name = 'openacademy.session'
@@ -16,3 +19,7 @@
+ start_date = fields.Date()
duration = fields.Float(digits=(6, 2), help="Duration in days")
seats = fields.Integer(string="Number of seats")
-
++
+ instructor_id = fields.Many2one('res.partner', string="Instructor")
+ course_id = fields.Many2one('openacademy.course',
+ ondelete='cascade', string="Course", required=True)
-+
Index: doc-backend/openacademy/views/openacademy.xml
===================================================================
---- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-21 14:24:24.376484356 +0200
-+++ doc-backend/openacademy/views/openacademy.xml 2014-08-21 14:25:48.000000000 +0200
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:04:40.829368641 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:04:40.825368641 +0200
@@ -63,5 +63,16 @@
<!-- Full id location:
action="openacademy.course_list_action"
diff --git a/doc/howtos/backend/exercise-model b/doc/howtos/backend/exercise-model
index b2dcd9c8f83..89d263d9b38 100644
--- a/doc/howtos/backend/exercise-model
+++ b/doc/howtos/backend/exercise-model
@@ -1,20 +1,18 @@
# HG changeset patch
# Parent e3bb12713a6d38c28f50d46e8c1bab74ac40c1be
-diff -r e3bb12713a6d -r 7929aa014c78 openacademy/__init__.py
---- a/openacademy/__init__.py Thu Aug 07 11:50:29 2014 +0200
-+++ b/openacademy/__init__.py Thu Aug 07 12:06:41 2014 +0200
-@@ -0,0 +1,1 @@
-+import course
-diff -r e3bb12713a6d -r 7929aa014c78 openacademy/course.py
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/openacademy/course.py Thu Aug 07 12:06:41 2014 +0200
-@@ -0,0 +1,9 @@
-+# -*- coding: utf-8 -*-
-+from openerp import fields, models
-+
+Index: doc-backend/openacademy/models.py
+===================================================================
+--- doc-backend.orig/openacademy/models.py 2014-08-24 11:54:02.949353877 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 11:54:26.153354414 +0200
+@@ -2,7 +2,8 @@
+
+ from openerp import models, fields, api
+
+-# class openacademy(models.Model):
+-# _name = 'openacademy.openacademy'
+class Course(models.Model):
+ _name = 'openacademy.course'
-+
+
+-# name = fields.Char()
+ name = fields.Char(string="Title", required=True)
+ description = fields.Text()
-+
diff --git a/doc/howtos/backend/exercise-model-inheritance b/doc/howtos/backend/exercise-model-inheritance
index ce988fe71fd..7b6e73c6ece 100644
--- a/doc/howtos/backend/exercise-model-inheritance
+++ b/doc/howtos/backend/exercise-model-inheritance
@@ -3,27 +3,29 @@
Index: doc-backend/openacademy/__init__.py
===================================================================
---- doc-backend.orig/openacademy/__init__.py 2014-08-21 15:13:13.756591893 +0200
-+++ doc-backend/openacademy/__init__.py 2014-08-21 15:13:13.748591893 +0200
-@@ -1 +1,2 @@
+--- doc-backend.orig/openacademy/__init__.py 2014-08-24 12:07:13.669372178 +0200
++++ doc-backend/openacademy/__init__.py 2014-08-24 12:07:30.697372572 +0200
+@@ -1,3 +1,4 @@
+ # -*- coding: utf-8 -*-
+ import controllers
+ import models
+import partner
- import course
Index: doc-backend/openacademy/__openerp__.py
===================================================================
---- doc-backend.orig/openacademy/__openerp__.py 2014-08-21 15:13:13.756591893 +0200
-+++ doc-backend/openacademy/__openerp__.py 2014-08-21 15:13:13.748591893 +0200
-@@ -12,6 +12,7 @@
- - attendees registration""",
- 'data' : [
+--- doc-backend.orig/openacademy/__openerp__.py 2014-08-24 12:07:13.669372178 +0200
++++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:07:13.661372178 +0200
+@@ -28,6 +28,7 @@
+ # 'security/ir.model.access.csv',
+ 'templates.xml',
'views/openacademy.xml',
+ 'views/partner.xml',
],
+ # only loaded in demonstration mode
'demo': [
- 'demo.xml',
Index: doc-backend/openacademy/partner.py
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ doc-backend/openacademy/partner.py 2014-08-21 15:13:13.748591893 +0200
++++ doc-backend/openacademy/partner.py 2014-08-24 12:07:13.661372178 +0200
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+from openerp import fields, models
@@ -39,7 +41,7 @@ Index: doc-backend/openacademy/partner.py
Index: doc-backend/openacademy/views/partner.xml
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ doc-backend/openacademy/views/partner.xml 2014-08-21 15:13:26.748592370 +0200
++++ doc-backend/openacademy/views/partner.xml 2014-08-24 12:07:13.661372178 +0200
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <openerp>
diff --git a/doc/howtos/backend/exercise-o2m-views b/doc/howtos/backend/exercise-o2m-views
index 47a1a3aa557..ff8a8ff6bea 100644
--- a/doc/howtos/backend/exercise-o2m-views
+++ b/doc/howtos/backend/exercise-o2m-views
@@ -3,8 +3,8 @@
Index: doc-backend/openacademy/views/openacademy.xml
===================================================================
---- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-21 14:43:18.968526007 +0200
-+++ doc-backend/openacademy/views/openacademy.xml 2014-08-21 14:45:10.264530092 +0200
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:07:04.877371975 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:07:04.869371975 +0200
@@ -19,12 +19,18 @@
<sheet>
<group>
diff --git a/doc/howtos/backend/exercise-onchange b/doc/howtos/backend/exercise-onchange
index ffc5a79752c..d9d7439f5e7 100644
--- a/doc/howtos/backend/exercise-onchange
+++ b/doc/howtos/backend/exercise-onchange
@@ -1,14 +1,15 @@
# HG changeset patch
# Parent 8d5573b704b2867788dd6895503f1871c2976a29
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-22 17:01:50.147102793 +0200
-+++ doc-backend/openacademy/course.py 2014-08-22 17:01:50.139102793 +0200
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:12:01.933378850 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:12:15.065379154 +0200
@@ -39,3 +39,20 @@
+ self.taken_seats = 0.0
else:
self.taken_seats = 100.0 * len(self.attendee_ids) / self.seats
-
++
+ @api.onchange('seats', 'attendee_ids')
+ def _verify_valid_seats(self):
+ if self.seats < 0:
@@ -25,4 +26,3 @@ Index: doc-backend/openacademy/course.py
+ 'message': "Increase seats or remove excess attendees",
+ },
+ }
-+
diff --git a/doc/howtos/backend/exercise-one2many b/doc/howtos/backend/exercise-one2many
index 5bac7515a3f..831dc6bed15 100644
--- a/doc/howtos/backend/exercise-one2many
+++ b/doc/howtos/backend/exercise-one2many
@@ -1,11 +1,11 @@
# HG changeset patch
# Parent cb05882d4fe73e97b9d34a69190ced14d1a50c24
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-21 14:27:15.108490623 +0200
-+++ doc-backend/openacademy/course.py 2014-08-21 14:27:37.860491458 +0200
-@@ -9,6 +9,8 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:05:31.001369802 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:05:30.997369802 +0200
+@@ -10,6 +10,8 @@
responsible_id = fields.Many2one('res.users',
ondelete='set null', string="Responsible", index=True)
diff --git a/doc/howtos/backend/exercise-report b/doc/howtos/backend/exercise-report
index 4bf61f6796f..15618e0c2ad 100644
--- a/doc/howtos/backend/exercise-report
+++ b/doc/howtos/backend/exercise-report
@@ -1,47 +1,50 @@
# HG changeset patch
# Parent c140f0a861a08881d8737bca0ffb83904a2059a3
-diff --git a/openacademy/__openerp__.py b/openacademy/__openerp__.py
---- a/openacademy/__openerp__.py
-+++ b/openacademy/__openerp__.py
-@@ -16,6 +16,7 @@
+Index: doc-backend/openacademy/__openerp__.py
+===================================================================
+--- doc-backend.orig/openacademy/__openerp__.py 2014-08-24 12:28:46.485402100 +0200
++++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:28:46.477402100 +0200
+@@ -31,6 +31,7 @@
'views/openacademy.xml',
'views/partner.xml',
'views/session_workflow.xml',
+ 'reports.xml',
],
+ # only loaded in demonstration mode
'demo': [
- 'demo.xml',
-diff --git a/openacademy/reports.xml b/openacademy/reports.xml
-new file mode 100644
---- /dev/null
-+++ b/openacademy/reports.xml
-@@ -0,0 +1,28 @@
-+<openerp><data>
-+ <report
-+ id="report_session"
-+ model="openacademy.session"
-+ string="Session Report"
-+ name="openacademy.report_session_view"
-+ file="openacademy.report_session"
-+ report_type="qweb-pdf" />
+Index: doc-backend/openacademy/reports.xml
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ doc-backend/openacademy/reports.xml 2014-08-24 12:30:37.161404662 +0200
+@@ -0,0 +1,30 @@
++<openerp>
++<data>
++ <report
++ id="report_session"
++ model="openacademy.session"
++ string="Session Report"
++ name="openacademy.report_session_view"
++ file="openacademy.report_session"
++ report_type="qweb-pdf" />
+
-+ <template id="report_session_view">
-+ <t t-call="report.html_container">
-+ <t t-foreach="docs" t-as="doc">
-+ <t t-call="report.external_layout">
-+ <div class="page">
-+ <h2 t-field="doc.name"/>
-+ <p>From <span t-field="doc.start_date"/> to <span t-field="doc.end_date"/></p>
-+ <h3>Attendees:</h3>
-+ <ul>
-+ <t t-foreach="doc.attendee_ids" t-as="attendee">
-+ <li t-field="attendee.name"/>
-+ </t>
-+ </ul>
-+ </div>
++ <template id="report_session_view">
++ <t t-call="report.html_container">
++ <t t-foreach="docs" t-as="doc">
++ <t t-call="report.external_layout">
++ <div class="page">
++ <h2 t-field="doc.name"/>
++ <p>From <span t-field="doc.start_date"/> to <span t-field="doc.end_date"/></p>
++ <h3>Attendees:</h3>
++ <ul>
++ <t t-foreach="doc.attendee_ids" t-as="attendee">
++ <li t-field="attendee.name"/>
++ </t>
++ </ul>
++ </div>
++ </t>
++ </t>
+ </t>
-+ </t>
-+ </t>
-+ </template>
-+</data></openerp>
++ </template>
++</data>
++</openerp>
diff --git a/doc/howtos/backend/exercise-searchview-basic b/doc/howtos/backend/exercise-searchview-basic
index f9333ba2d2e..b9abab8769c 100644
--- a/doc/howtos/backend/exercise-searchview-basic
+++ b/doc/howtos/backend/exercise-searchview-basic
@@ -1,8 +1,9 @@
# HG changeset patch
# Parent b9bfc8929e0ffc3eb153641e14952fe5d99eb908
-diff -r b9bfc8929e0f -r cf2bf8f8490a openacademy/views/openacademy.xml
---- a/openacademy/views/openacademy.xml Thu Aug 07 16:51:23 2014 +0200
-+++ b/openacademy/views/openacademy.xml Mon Aug 11 13:05:29 2014 +0200
+Index: doc-backend/openacademy/views/openacademy.xml
+===================================================================
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:03:05.745366440 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:03:05.741366440 +0200
@@ -1,6 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
diff --git a/doc/howtos/backend/exercise-session b/doc/howtos/backend/exercise-session
index 9f54dd0583e..856a71c0c0e 100644
--- a/doc/howtos/backend/exercise-session
+++ b/doc/howtos/backend/exercise-session
@@ -1,13 +1,14 @@
# HG changeset patch
# Parent 22f8d180a7f9ad209d7e98cf7d1bd0fee1f05350
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-21 14:23:28.056482288 +0200
-+++ doc-backend/openacademy/course.py 2014-08-21 14:23:35.540482563 +0200
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:03:20.161366774 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:03:35.149367121 +0200
@@ -7,3 +7,12 @@
+
name = fields.Char(string="Title", required=True)
description = fields.Text()
-
++
+
+class Session(models.Model):
+ _name = 'openacademy.session'
@@ -16,4 +17,3 @@ Index: doc-backend/openacademy/course.py
+ start_date = fields.Date()
+ duration = fields.Float(digits=(6, 2), help="Duration in days")
+ seats = fields.Integer(string="Number of seats")
-+
diff --git a/doc/howtos/backend/exercise-state-basic b/doc/howtos/backend/exercise-state-basic
index 5f95f06aa94..19b68c261fd 100644
--- a/doc/howtos/backend/exercise-state-basic
+++ b/doc/howtos/backend/exercise-state-basic
@@ -1,11 +1,11 @@
# HG changeset patch
# Parent 8c721171aa16a41e94059f53d6780c67b5ef2dfc
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-22 17:04:08.103107858 +0200
-+++ doc-backend/openacademy/course.py 2014-08-22 17:04:08.099107857 +0200
-@@ -67,6 +67,24 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:20:31.953390654 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:20:31.949390654 +0200
+@@ -66,6 +66,24 @@
attendees_count = fields.Integer(
string="Attendees count", compute='_get_attendees_count', store=True)
@@ -32,8 +32,8 @@ Index: doc-backend/openacademy/course.py
def _taken_seats(self):
Index: doc-backend/openacademy/views/openacademy.xml
===================================================================
---- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-22 17:04:08.103107858 +0200
-+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:04:30.939108696 +0200
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:20:31.953390654 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:20:31.949390654 +0200
@@ -91,22 +91,37 @@
<field name="model">openacademy.session</field>
<field name="arch" type="xml">
diff --git a/doc/howtos/backend/exercise-state-workflow b/doc/howtos/backend/exercise-state-workflow
index 17c91fc748e..53693d3fdc8 100644
--- a/doc/howtos/backend/exercise-state-workflow
+++ b/doc/howtos/backend/exercise-state-workflow
@@ -3,21 +3,21 @@
Index: doc-backend/openacademy/__openerp__.py
===================================================================
---- doc-backend.orig/openacademy/__openerp__.py 2014-08-21 15:03:56.760571446 +0200
-+++ doc-backend/openacademy/__openerp__.py 2014-08-21 15:03:56.756571446 +0200
-@@ -13,6 +13,7 @@
- 'data' : [
+--- doc-backend.orig/openacademy/__openerp__.py 2014-08-24 12:34:54.425410616 +0200
++++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:34:54.417410616 +0200
+@@ -29,6 +29,7 @@
+ 'templates.xml',
'views/openacademy.xml',
'views/partner.xml',
+ 'views/session_workflow.xml',
],
+ # only loaded in demonstration mode
'demo': [
- 'demo.xml',
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-21 15:03:56.760571446 +0200
-+++ doc-backend/openacademy/course.py 2014-08-21 15:03:56.756571446 +0200
-@@ -71,7 +71,7 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:34:54.425410616 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:34:54.417410616 +0200
+@@ -70,7 +70,7 @@
('draft', "Draft"),
('confirmed', "Confirmed"),
('done', "Done"),
@@ -28,8 +28,8 @@ Index: doc-backend/openacademy/course.py
def action_draft(self):
Index: doc-backend/openacademy/views/openacademy.xml
===================================================================
---- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-21 15:03:56.760571446 +0200
-+++ doc-backend/openacademy/views/openacademy.xml 2014-08-21 15:03:56.756571446 +0200
+--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:34:54.425410616 +0200
++++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:34:54.417410616 +0200
@@ -92,13 +92,13 @@
<field name="arch" type="xml">
<form string="Session Form">
@@ -50,56 +50,56 @@ Index: doc-backend/openacademy/views/openacademy.xml
Index: doc-backend/openacademy/views/session_workflow.xml
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ doc-backend/openacademy/views/session_workflow.xml 2014-08-21 15:03:56.756571446 +0200
++++ doc-backend/openacademy/views/session_workflow.xml 2014-08-24 12:35:14.105411072 +0200
@@ -0,0 +1,51 @@
+<openerp>
-+ <data>
-+ <record model="workflow" id="wkf_session">
-+ <field name="name">OpenAcademy sessions workflow</field>
-+ <field name="osv">openacademy.session</field>
-+ <field name="on_create">True</field>
-+ </record>
++ <data>
++ <record model="workflow" id="wkf_session">
++ <field name="name">OpenAcademy sessions workflow</field>
++ <field name="osv">openacademy.session</field>
++ <field name="on_create">True</field>
++ </record>
+
-+ <record model="workflow.activity" id="draft">
-+ <field name="name">Draft</field>
-+ <field name="wkf_id" ref="wkf_session"/>
-+ <field name="flow_start" eval="True"/>
-+ <field name="kind">function</field>
-+ <field name="action">action_draft()</field>
-+ </record>
-+ <record model="workflow.activity" id="confirmed">
-+ <field name="name">Confirmed</field>
-+ <field name="wkf_id" ref="wkf_session"/>
-+ <field name="kind">function</field>
-+ <field name="action">action_confirm()</field>
-+ </record>
-+ <record model="workflow.activity" id="done">
-+ <field name="name">Done</field>
-+ <field name="wkf_id" ref="wkf_session"/>
-+ <field name="flow_stop" eval="True"/>
-+ <field name="kind">function</field>
-+ <field name="action">action_done()</field>
-+ </record>
++ <record model="workflow.activity" id="draft">
++ <field name="name">Draft</field>
++ <field name="wkf_id" ref="wkf_session"/>
++ <field name="flow_start" eval="True"/>
++ <field name="kind">function</field>
++ <field name="action">action_draft()</field>
++ </record>
++ <record model="workflow.activity" id="confirmed">
++ <field name="name">Confirmed</field>
++ <field name="wkf_id" ref="wkf_session"/>
++ <field name="kind">function</field>
++ <field name="action">action_confirm()</field>
++ </record>
++ <record model="workflow.activity" id="done">
++ <field name="name">Done</field>
++ <field name="wkf_id" ref="wkf_session"/>
++ <field name="flow_stop" eval="True"/>
++ <field name="kind">function</field>
++ <field name="action">action_done()</field>
++ </record>
+
-+ <record model="workflow.transition" id="session_draft_to_confirmed">
-+ <field name="act_from" ref="draft"/>
-+ <field name="act_to" ref="confirmed"/>
-+ <field name="signal">confirm</field>
-+ </record>
-+ <record model="workflow.transition" id="session_confirmed_to_draft">
-+ <field name="act_from" ref="confirmed"/>
-+ <field name="act_to" ref="draft"/>
-+ <field name="signal">draft</field>
-+ </record>
-+ <record model="workflow.transition" id="session_done_to_draft">
-+ <field name="act_from" ref="done"/>
-+ <field name="act_to" ref="draft"/>
-+ <field name="signal">draft</field>
-+ </record>
-+ <record model="workflow.transition" id="session_confirmed_to_done">
-+ <field name="act_from" ref="confirmed"/>
-+ <field name="act_to" ref="done"/>
-+ <field name="signal">done</field>
-+ </record>
-+ </data>
++ <record model="workflow.transition" id="session_draft_to_confirmed">
++ <field name="act_from" ref="draft"/>
++ <field name="act_to" ref="confirmed"/>
++ <field name="signal">confirm</field>
++ </record>
++ <record model="workflow.transition" id="session_confirmed_to_draft">
++ <field name="act_from" ref="confirmed"/>
++ <field name="act_to" ref="draft"/>
++ <field name="signal">draft</field>
++ </record>
++ <record model="workflow.transition" id="session_done_to_draft">
++ <field name="act_from" ref="done"/>
++ <field name="act_to" ref="draft"/>
++ <field name="signal">draft</field>
++ </record>
++ <record model="workflow.transition" id="session_confirmed_to_done">
++ <field name="act_from" ref="confirmed"/>
++ <field name="act_to" ref="done"/>
++ <field name="signal">done</field>
++ </record>
++ </data>
+</openerp>
diff --git a/doc/howtos/backend/exercise-state-workflow-actions b/doc/howtos/backend/exercise-state-workflow-actions
index 0d711f44b67..83e9c041ee4 100644
--- a/doc/howtos/backend/exercise-state-workflow-actions
+++ b/doc/howtos/backend/exercise-state-workflow-actions
@@ -1,11 +1,11 @@
# HG changeset patch
# Parent 0764cf061d021a0a5b2811f5ec5d835f799630fc
-Index: doc-backend/openacademy/course.py
+Index: doc-backend/openacademy/models.py
===================================================================
---- doc-backend.orig/openacademy/course.py 2014-08-21 15:04:39.972573032 +0200
-+++ doc-backend/openacademy/course.py 2014-08-21 15:04:39.968573032 +0200
-@@ -74,18 +74,6 @@
+--- doc-backend.orig/openacademy/models.py 2014-08-24 12:37:16.637413907 +0200
++++ doc-backend/openacademy/models.py 2014-08-24 12:37:16.625413907 +0200
+@@ -73,18 +73,6 @@
])
@api.one
@@ -26,69 +26,69 @@ Index: doc-backend/openacademy/course.py
if not self.seats:
Index: doc-backend/openacademy/views/session_workflow.xml
===================================================================
---- doc-backend.orig/openacademy/views/session_workflow.xml 2014-08-21 15:04:39.972573032 +0200
-+++ doc-backend/openacademy/views/session_workflow.xml 2014-08-21 15:04:39.968573032 +0200
+--- doc-backend.orig/openacademy/views/session_workflow.xml 2014-08-24 12:37:16.637413907 +0200
++++ doc-backend/openacademy/views/session_workflow.xml 2014-08-24 12:41:01.153419104 +0200
@@ -6,25 +6,57 @@
- <field name="on_create">True</field>
- </record>
+ <field name="on_create">True</field>
+ </record>
-+ <record model="ir.actions.server" id="set_session_to_draft">
-+ <field name="name">Set session to Draft</field>
-+ <field name="model_id" ref="model_openacademy_session"/>
-+ <field name="code">
-+ self.write(cr, uid, context['active_ids'], {
-+ 'state': 'draft'
-+ }, context=context)
-+ </field>
-+ </record>
- <record model="workflow.activity" id="draft">
- <field name="name">Draft</field>
- <field name="wkf_id" ref="wkf_session"/>
- <field name="flow_start" eval="True"/>
-- <field name="kind">function</field>
-- <field name="action">action_draft()</field>
-+ <field name="kind">dummy</field>
-+ <field name="action"></field>
-+ <field name="action_id" ref="set_session_to_draft"/>
-+ </record>
++ <record model="ir.actions.server" id="set_session_to_draft">
++ <field name="name">Set session to Draft</field>
++ <field name="model_id" ref="model_openacademy_session"/>
++ <field name="code">
++ self.write(cr, uid, context['active_ids'], {
++ 'state': 'draft'
++ }, context=context)
++ </field>
++ </record>
+ <record model="workflow.activity" id="draft">
+ <field name="name">Draft</field>
+ <field name="wkf_id" ref="wkf_session"/>
+ <field name="flow_start" eval="True"/>
+- <field name="kind">function</field>
+- <field name="action">action_draft()</field>
++ <field name="kind">dummy</field>
++ <field name="action"></field>
++ <field name="action_id" ref="set_session_to_draft"/>
++ </record>
+
-+ <record model="ir.actions.server" id="set_session_to_confirmed">
-+ <field name="name">Set session to Confirmed</field>
-+ <field name="model_id" ref="model_openacademy_session"/>
-+ <field name="code">
-+ self.write(cr, uid, context['active_ids'], {
-+ 'state': 'confirmed'
-+ }, context=context)
-+ </field>
- </record>
- <record model="workflow.activity" id="confirmed">
- <field name="name">Confirmed</field>
- <field name="wkf_id" ref="wkf_session"/>
-- <field name="kind">function</field>
-- <field name="action">action_confirm()</field>
-+ <field name="kind">dummy</field>
-+ <field name="action"></field>
-+ <field name="action_id" ref="set_session_to_confirmed"/>
-+ </record>
++ <record model="ir.actions.server" id="set_session_to_confirmed">
++ <field name="name">Set session to Confirmed</field>
++ <field name="model_id" ref="model_openacademy_session"/>
++ <field name="code">
++ self.write(cr, uid, context['active_ids'], {
++ 'state': 'confirmed'
++ }, context=context)
++ </field>
+ </record>
+ <record model="workflow.activity" id="confirmed">
+ <field name="name">Confirmed</field>
+ <field name="wkf_id" ref="wkf_session"/>
+- <field name="kind">function</field>
+- <field name="action">action_confirm()</field>
++ <field name="kind">dummy</field>
++ <field name="action"></field>
++ <field name="action_id" ref="set_session_to_confirmed"/>
++ </record>
+
-+ <record model="ir.actions.server" id="set_session_to_done">
-+ <field name="name">Set session to Done</field>
-+ <field name="model_id" ref="model_openacademy_session"/>
-+ <field name="code">
-+ self.write(cr, uid, context['active_ids'], {
-+ 'state': 'done'
-+ }, context=context)
-+ </field>
- </record>
- <record model="workflow.activity" id="done">
- <field name="name">Done</field>
- <field name="wkf_id" ref="wkf_session"/>
- <field name="flow_stop" eval="True"/>
-- <field name="kind">function</field>
-- <field name="action">action_done()</field>
-+ <field name="kind">dummy</field>
-+ <field name="action"></field>
-+ <field name="action_id" ref="set_session_to_done"/>
- </record>
++ <record model="ir.actions.server" id="set_session_to_done">
++ <field name="name">Set session to Done</field>
++ <field name="model_id" ref="model_openacademy_session"/>
++ <field name="code">
++ self.write(cr, uid, context['active_ids'], {
++ 'state': 'done'
++ }, context=context)
++ </field>
+ </record>
+ <record model="workflow.activity" id="done">
+ <field name="name">Done</field>
+ <field name="wkf_id" ref="wkf_session"/>
+ <field name="flow_stop" eval="True"/>
+- <field name="kind">function</field>
+- <field name="action">action_done()</field>
++ <field name="kind">dummy</field>
++ <field name="action"></field>
++ <field name="action_id" ref="set_session_to_done"/>
+ </record>
- <record model="workflow.transition" id="session_draft_to_confirmed">
+ <record model="workflow.transition" id="session_draft_to_confirmed">
diff --git a/doc/howtos/backend/exercise-state-workflow-automatic b/doc/howtos/backend/exercise-state-workflow-automatic
index 2b6ad454019..5d2723f8744 100644
--- a/doc/howtos/backend/exercise-state-workflow-automatic
+++ b/doc/howtos/backend/exercise-state-workflow-automatic
@@ -1,18 +1,19 @@
# HG changeset patch
# Parent 3b19489a47d41e72f88490eb389a05977761c8d2
-diff --git a/openacademy/views/session_workflow.xml b/openacademy/views/session_workflow.xml
---- a/openacademy/views/session_workflow.xml
-+++ b/openacademy/views/session_workflow.xml
+Index: doc-backend/openacademy/views/session_workflow.xml
+===================================================================
+--- doc-backend.orig/openacademy/views/session_workflow.xml 2014-08-24 12:35:50.669411918 +0200
++++ doc-backend/openacademy/views/session_workflow.xml 2014-08-24 12:36:31.173412855 +0200
@@ -47,5 +47,11 @@
- <field name="act_to" ref="done"/>
- <field name="signal">done</field>
- </record>
+ <field name="act_to" ref="done"/>
+ <field name="signal">done</field>
+ </record>
+
-+ <record model="workflow.transition" id="session_auto_confirm_half_filled">
-+ <field name="act_from" ref="draft"/>
-+ <field name="act_to" ref="confirmed"/>
-+ <field name="condition">seats_taken &gt; 50</field>
-+ </record>
- </data>
++ <record model="workflow.transition" id="session_auto_confirm_half_filled">
++ <field name="act_from" ref="draft"/>
++ <field name="act_to" ref="confirmed"/>
++ <field name="condition">seats_taken &gt; 50</field>
++ </record>
+ </data>
</openerp>