[IMP] doc/howtos/backend: use scaffolding and adapt text and code accordingly
authorRaphael Collet <rco@openerp.com>
Sun, 24 Aug 2014 11:06:51 +0000 (13:06 +0200)
committerRaphael Collet <rco@openerp.com>
Sun, 24 Aug 2014 11:06:51 +0000 (13:06 +0200)
38 files changed:
doc/howtos/backend.rst
doc/howtos/backend/exercise-access-rights
doc/howtos/backend/exercise-access-rules
doc/howtos/backend/exercise-advanced-treeview
doc/howtos/backend/exercise-basic-action
doc/howtos/backend/exercise-calendar
doc/howtos/backend/exercise-computed
doc/howtos/backend/exercise-constraint-python
doc/howtos/backend/exercise-constraint-sql
doc/howtos/backend/exercise-copy-override
doc/howtos/backend/exercise-creation
doc/howtos/backend/exercise-dashboard
doc/howtos/backend/exercise-defaults
doc/howtos/backend/exercise-demo
doc/howtos/backend/exercise-domain-advanced
doc/howtos/backend/exercise-domain-basic
doc/howtos/backend/exercise-formview
doc/howtos/backend/exercise-formview-notebooks
doc/howtos/backend/exercise-gantt
doc/howtos/backend/exercise-graph
doc/howtos/backend/exercise-kanban
doc/howtos/backend/exercise-many2many
doc/howtos/backend/exercise-many2one
doc/howtos/backend/exercise-model
doc/howtos/backend/exercise-model-inheritance
doc/howtos/backend/exercise-o2m-views
doc/howtos/backend/exercise-onchange
doc/howtos/backend/exercise-one2many
doc/howtos/backend/exercise-report
doc/howtos/backend/exercise-searchview-basic
doc/howtos/backend/exercise-session
doc/howtos/backend/exercise-state-basic
doc/howtos/backend/exercise-state-workflow
doc/howtos/backend/exercise-state-workflow-actions
doc/howtos/backend/exercise-state-workflow-automatic
openerp/cli/templates/default/demo.xml
openerp/cli/templates/default/models.py
openerp/cli/templates/default/templates.xml

index 21500b9..1fca4d1 100644 (file)
@@ -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
index 64c8b12..0196c02 100644 (file)
@@ -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>
index 694fc6d..7cc6ae3 100644 (file)
@@ -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>
index 179835b..4a9a1e1 100644 (file)
@@ -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>
index f45df47..7f1a8e8 100644 (file)
@@ -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>
index bd2b81b..39e49cb 100644 (file)
@@ -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>
index 3d15784..b27a736 100644 (file)
@@ -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"/>
index c2f0b8a..a3a18d4 100644 (file)
@@ -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")
-+
index 2b6714a..7a13a10 100644 (file)
@@ -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")
  
  
index 652fad7..e9d3404 100644 (file)
@@ -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")
  
  
index 88c181a..0081456 100644 (file)
 # 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>
index 8595d48..4ffc826 100644 (file)
@@ -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>
index 774f48a..97265dc 100644 (file)
@@ -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"/>
index 5503c81..8041797 100644 (file)
@@ -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>
index 8c10ef1..8deb8f7 100644 (file)
@@ -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"
index ae05067..8ad86b2 100644 (file)
@@ -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")
  
index be65c7f..750eca1 100644 (file)
@@ -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>
index 4741d2a..5492b15 100644 (file)
@@ -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>
index b7b0d8c..a590ee9 100644 (file)
@@ -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>
index 79ed727..fc79788 100644 (file)
@@ -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>
index ae49ef9..9fb2495 100644 (file)
@@ -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>
index 6183790..41d0303 100644 (file)
@@ -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")
index da25de3..29385da 100644 (file)
@@ -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"
index b2dcd9c..89d263d 100644 (file)
@@ -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()
-+
index ce988fe..7b6e73c 100644 (file)
@@ -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>
index 47a1a3a..ff8a8ff 100644 (file)
@@ -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>
index ffc5a79..d9d7439 100644 (file)
@@ -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",
 +                },
 +            }
-+
index 5bac751..831dc6b 100644 (file)
@@ -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)
index 4bf61f6..15618e0 100644 (file)
@@ -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>
index f9333ba..b9abab8 100644 (file)
@@ -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>
index 9f54dd0..856a71c 100644 (file)
@@ -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")
-+
index 5f95f06..19b68c2 100644 (file)
@@ -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">
index 17c91fc..53693d3 100644 (file)
@@ -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>
index 0d711f4..83e9c04 100644 (file)
@@ -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">
index 2b6ad45..5d2723f 100644 (file)
@@ -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>
index 3765105..6c84d87 100644 (file)
@@ -1,11 +1,11 @@
 {%- set mod= name|snake -%}
 {%- set model = "%s.%s"|format(mod, mod) -%}
 <openerp>
-  <data>
-    <!-- {% for item in range(5) %} -->
-    <!--   <record id="object{{ item }}" model="{{ model }}"> -->
-    <!--     <field name="name">Object {{ item }}</field> -->
-    <!--   </record> -->
-    <!-- {% endfor %} -->
-  </data>
+    <data>
+        <!-- {% for item in range(5) %} -->
+        <!--   <record id="object{{ item }}" model="{{ model }}"> -->
+        <!--     <field name="name">Object {{ item }}</field> -->
+        <!--   </record> -->
+        <!-- {% endfor %} -->
+    </data>
 </openerp>
index dc07f99..4d76ef9 100644 (file)
@@ -1,7 +1,6 @@
 # -*- coding: utf-8 -*-
 
-from openerp import fields
-from openerp import models
+from openerp import models, fields, api
 
 # class {{ name|snake }}(models.Model):
 #     _name = '{{ name|snake }}.{{ name|snake }}'
index 77a782c..b916650 100644 (file)
@@ -1,22 +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>
+    <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>