[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
 
 
     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
 
 .. 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
 
 
     .. 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::
 
 
         .. patch::
 
@@ -200,8 +213,7 @@ overridden by setting :attr:`~openerp.models.Model._rec_name`.
 
     .. only:: solutions
 
 
     .. 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::
 
 
         .. patch::
 
@@ -245,8 +257,7 @@ be declared in the ``'data'`` list (always loaded) or in the ``'demo'`` list
 
     .. only:: solutions
 
 
     .. 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::
 
 
         .. patch::
 
@@ -475,7 +486,7 @@ client data; it is also related to its sale order line records.
 
     .. only:: solutions
 
 
     .. only:: solutions
 
-        Create class *Session*:
+        Create the class *Session* in ``openacademy/models.py``.
 
         .. patch::
 
 
         .. 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.
 
            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``
           ``__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::
           ``__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/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
            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::
            files to it
 
         .. patch::
@@ -1533,7 +1544,7 @@ Dashboards
 
    .. only:: solutions
 
 
    .. 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
            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
 
 # 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',
 +        'security/security.xml',
 +        'security/ir.model.access.csv',
+         'templates.xml',
          'views/openacademy.xml',
          'views/partner.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
 +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>
 @@ -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>
 +</openerp>
index 694fc6d..7cc6ae3 100644 (file)
@@ -1,26 +1,27 @@
 # HG changeset patch
 # Parent 0602022dc2a428f9995c886df33b699b6d3bcb69
 
 # 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 @@
 @@ -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>
  </openerp>
index 179835b..4a9a1e1 100644 (file)
@@ -3,8 +3,8 @@
 
 Index: doc-backend/openacademy/views/openacademy.xml
 ===================================================================
 
 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>
 @@ -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
 # 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',
      ],
 +        'views/openacademy.xml',
      ],
+     # only loaded in demonstration mode
      'demo': [
      '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>
 @@ -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
 
 # 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 -*-
  # -*- 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):
  
  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')
      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')
  
      @api.one
      @api.depends('seats', 'attendee_ids')
-@@ -81,6 +86,26 @@
+@@ -82,6 +85,26 @@
              }
  
      @api.one
              }
  
      @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
 ===================================================================
          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>
 @@ -120,11 +120,24 @@
              </field>
          </record>
index 3d15784..b27a736 100644 (file)
@@ -1,21 +1,15 @@
 # HG changeset patch
 # Parent a358be0a577b0569831958a8ec1302825c645dee
 
 # 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 @@
 @@ -28,3 +28,13 @@
+     course_id = fields.Many2one('openacademy.course',
          ondelete='cascade', string="Course", required=True)
      attendee_ids = fields.Many2many('res.partner', string="Attendees")
          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
 +    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
 +            self.taken_seats = 0.0
 +        else:
 +            self.taken_seats = 100.0 * len(self.attendee_ids) / self.seats
-+
 Index: doc-backend/openacademy/views/openacademy.xml
 ===================================================================
 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"/>
 @@ -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
 
 # 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 -*-
  # -*- 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 @@
  
  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")
 +    @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
 
 # 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")
  
  
          'openacademy.session', 'course_id', string="Session")
  
  
index 652fad7..e9d3404 100644 (file)
@@ -1,11 +1,11 @@
 # HG changeset patch
 # Parent 7d14b75cdfd4c7a272a13572947de5d47f3e851f
 
 # 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")
  
  
          'openacademy.session', 'course_id', string="Session")
  
  
index 88c181a..0081456 100644 (file)
 # HG changeset patch
 # Parent 0000000000000000000000000000000000000000
 # 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",
 +# -*- 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'],
 +    '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
 
 # 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'],
 -    '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',
          'views/partner.xml',
          'views/session_workflow.xml',
-         'reports.xml',
 +        'views/session_board.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>
 @@ -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>
 +</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)
      _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
 ===================================================================
          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"/>
 @@ -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
 
 # 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
 ===================================================================
 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
 +        <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>
 +            <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
 
 # 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",
      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
 ===================================================================
      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"
 @@ -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
 
 # 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")
  
      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
 
 # 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>
 @@ -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
 
 # 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>
 @@ -9,7 +9,14 @@
                      <sheet>
                          <group>
index b7b0d8c..a590ee9 100644 (file)
@@ -1,11 +1,11 @@
 # HG changeset patch
 # Parent dba00a105dd2a82490394b8dec5fea5f1d8847e1
 
 # 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')
  
      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):
      @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
          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
 ===================================================================
          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>
 @@ -137,11 +137,24 @@
              </field>
          </record>
index 79ed727..fc79788 100644 (file)
@@ -1,11 +1,11 @@
 # HG changeset patch
 # Parent a6fe4d3923db1f8f5dff2c39a711a814b0a0f549
 
 # 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')
  
      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):
      @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
          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
 ===================================================================
          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>
 @@ -150,11 +150,22 @@
              </field>
          </record>
index ae49ef9..9fb2495 100644 (file)
@@ -1,11 +1,11 @@
 # HG changeset patch
 # Parent 8d66f7620781558d4520f97e4cebc14ed180683e
 
 # 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)
      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
 ===================================================================
          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>
 @@ -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")
      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
 
 # 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()
  
      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 @@
  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")
      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)
 +    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
 ===================================================================
 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"
 @@ -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
 # 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'
 +class Course(models.Model):
 +    _name = 'openacademy.course'
-+
+-#     name = fields.Char()
 +    name = fields.Char(string="Title", required=True)
 +    description = fields.Text()
 +    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
 ===================================================================
 
 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 partner
- import course
 Index: doc-backend/openacademy/__openerp__.py
 ===================================================================
 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',
      ],
          'views/openacademy.xml',
 +        'views/partner.xml',
      ],
+     # only loaded in demonstration mode
      'demo': [
      'demo': [
-         'demo.xml',
 Index: doc-backend/openacademy/partner.py
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
 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
 @@ -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
 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>
 @@ -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
 ===================================================================
 
 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>
 @@ -19,12 +19,18 @@
                      <sheet>
                          <group>
index ffc5a79..d9d7439 100644 (file)
@@ -1,14 +1,15 @@
 # HG changeset patch
 # Parent 8d5573b704b2867788dd6895503f1871c2976a29
 
 # 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 @@
 @@ -39,3 +39,20 @@
+             self.taken_seats = 0.0
          else:
              self.taken_seats = 100.0 * len(self.attendee_ids) / self.seats
          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:
 +    @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",
 +                },
 +            }
 +                    'message': "Increase seats or remove excess attendees",
 +                },
 +            }
-+
index 5bac751..831dc6b 100644 (file)
@@ -1,11 +1,11 @@
 # HG changeset patch
 # Parent cb05882d4fe73e97b9d34a69190ced14d1a50c24
 
 # 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)
  
      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
 
 # 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',
      ],
          'views/openacademy.xml',
          'views/partner.xml',
          'views/session_workflow.xml',
 +        'reports.xml',
      ],
+     # only loaded in demonstration mode
      'demo': [
      '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>
-+    </t>
-+  </template>
-+</data></openerp>
++    </template>
++</data>
++</openerp>
index f9333ba..b9abab8 100644 (file)
@@ -1,8 +1,9 @@
 # HG changeset patch
 # Parent b9bfc8929e0ffc3eb153641e14952fe5d99eb908
 # 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>
 @@ -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
 # 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 @@
 @@ -7,3 +7,12 @@
      name = fields.Char(string="Title", required=True)
      description = fields.Text()
      name = fields.Char(string="Title", required=True)
      description = fields.Text()
++
 +
 +class Session(models.Model):
 +    _name = 'openacademy.session'
 +
 +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")
 +    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
 
 # 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)
  
      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
 ===================================================================
      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">
 @@ -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
 ===================================================================
 
 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',
      ],
          'views/openacademy.xml',
          'views/partner.xml',
 +        'views/session_workflow.xml',
      ],
+     # only loaded in demonstration mode
      'demo': [
      '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"),
           ('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
 ===================================================================
      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">
 @@ -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
 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>
 @@ -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>
 +</openerp>
index 0d711f4..83e9c04 100644 (file)
@@ -1,11 +1,11 @@
 # HG changeset patch
 # Parent 0764cf061d021a0a5b2811f5ec5d835f799630fc
 
 # 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
      ])
  
      @api.one
@@ -26,69 +26,69 @@ Index: doc-backend/openacademy/course.py
          if not self.seats:
 Index: doc-backend/openacademy/views/session_workflow.xml
 ===================================================================
          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 @@
 @@ -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
 
 # 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 @@
 @@ -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>
  </openerp>
index 3765105..6c84d87 100644 (file)
@@ -1,11 +1,11 @@
 {%- set mod= name|snake -%}
 {%- set model = "%s.%s"|format(mod, mod) -%}
 <openerp>
 {%- 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>
 </openerp>
index dc07f99..4d76ef9 100644 (file)
@@ -1,7 +1,6 @@
 # -*- coding: utf-8 -*-
 
 # -*- 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 }}'
 
 # class {{ name|snake }}(models.Model):
 #     _name = '{{ name|snake }}.{{ name|snake }}'
index 77a782c..b916650 100644 (file)
@@ -1,22 +1,22 @@
 <openerp>
 <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>
 </openerp>