[IMP] doc/howtos/backend: use scaffolding and adapt text and code accordingly
This commit is contained in:
parent
2ad092b5e5
commit
2b3b1c3230
|
@ -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``
|
#. Invoke the command ``./odoo.py scaffold openacademy addons`` in the
|
||||||
#. Create an empty ``openacademy/__init__.py`` file
|
Odoo directory.
|
||||||
#. Create an ``openacademy/__openerp__.py`` file
|
#. 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 the file ``openacademy/models.py`` to include a *Course* class.
|
||||||
#. Edit ``openacademy/__init__.py`` to import it
|
|
||||||
|
|
||||||
.. 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``
|
Edit the file ``openacademy/demo.xml`` to include some data.
|
||||||
#. Add the file to the ``'demo'`` list of your ``__openerp__.py``
|
|
||||||
|
|
||||||
.. 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
|
inspect the view, find its external ID and the place to put the
|
||||||
new field.
|
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``
|
``__openerp__.py``
|
||||||
|
|
||||||
.. patch::
|
.. 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
|
#. Create a new file ``openacademy/security/security.xml`` to
|
||||||
hold the OpenAcademy Manager group
|
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
|
files to it
|
||||||
|
|
||||||
.. patch::
|
.. 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
|
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
|
open the dashboard and a re-definition of the main menu item to add
|
||||||
the dashboard action
|
the dashboard action
|
||||||
|
|
|
@ -1,38 +1,40 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 303a5f4f011822dcb42b5833d579eabd3f03f4bf
|
# Parent 303a5f4f011822dcb42b5833d579eabd3f03f4bf
|
||||||
|
|
||||||
diff --git a/openacademy/__openerp__.py b/openacademy/__openerp__.py
|
Index: doc-backend/openacademy/__openerp__.py
|
||||||
--- a/openacademy/__openerp__.py
|
===================================================================
|
||||||
+++ b/openacademy/__openerp__.py
|
--- doc-backend.orig/openacademy/__openerp__.py 2014-08-24 12:26:40.449399183 +0200
|
||||||
@@ -11,6 +11,8 @@
|
+++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:26:40.445399183 +0200
|
||||||
- training sessions
|
@@ -25,7 +25,8 @@
|
||||||
- attendees registration""",
|
|
||||||
'data' : [
|
# always loaded
|
||||||
|
'data': [
|
||||||
|
- # 'security/ir.model.access.csv',
|
||||||
+ 'security/security.xml',
|
+ 'security/security.xml',
|
||||||
+ 'security/ir.model.access.csv',
|
+ 'security/ir.model.access.csv',
|
||||||
|
'templates.xml',
|
||||||
'views/openacademy.xml',
|
'views/openacademy.xml',
|
||||||
'views/partner.xml',
|
'views/partner.xml',
|
||||||
'views/session_workflow.xml',
|
Index: doc-backend/openacademy/security/ir.model.access.csv
|
||||||
diff --git a/openacademy/security/ir.model.access.csv b/openacademy/security/ir.model.access.csv
|
===================================================================
|
||||||
new file mode 100644
|
--- doc-backend.orig/openacademy/security/ir.model.access.csv 2014-08-24 12:26:40.449399183 +0200
|
||||||
--- /dev/null
|
+++ doc-backend/openacademy/security/ir.model.access.csv 2014-08-24 12:26:55.985399543 +0200
|
||||||
+++ b/openacademy/security/ir.model.access.csv
|
@@ -1,2 +1,5 @@
|
||||||
@@ -0,0 +1,6 @@
|
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
|
||||||
+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
|
+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
|
+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
|
+course_read_all,course all,model_openacademy_course,,1,0,0,0
|
||||||
+session_read_all,session all,model_openacademy_session,,1,0,0,0
|
+session_read_all,session all,model_openacademy_session,,1,0,0,0
|
||||||
+
|
Index: doc-backend/openacademy/security/security.xml
|
||||||
diff --git a/openacademy/security/security.xml b/openacademy/security/security.xml
|
===================================================================
|
||||||
new file mode 100644
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
--- /dev/null
|
+++ doc-backend/openacademy/security/security.xml 2014-08-24 12:26:40.445399183 +0200
|
||||||
+++ b/openacademy/security/security.xml
|
|
||||||
@@ -0,0 +1,7 @@
|
@@ -0,0 +1,7 @@
|
||||||
+<openerp>
|
+<openerp>
|
||||||
+ <data>
|
+ <data>
|
||||||
+ <record id="group_manager" model="res.groups">
|
+ <record id="group_manager" model="res.groups">
|
||||||
+ <field name="name">OpenAcademy / Manager</field>
|
+ <field name="name">OpenAcademy / Manager</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ </data>
|
+ </data>
|
||||||
+</openerp>
|
+</openerp>
|
||||||
|
|
|
@ -1,26 +1,27 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 0602022dc2a428f9995c886df33b699b6d3bcb69
|
# Parent 0602022dc2a428f9995c886df33b699b6d3bcb69
|
||||||
|
|
||||||
diff --git a/openacademy/security/security.xml b/openacademy/security/security.xml
|
Index: doc-backend/openacademy/security/security.xml
|
||||||
--- a/openacademy/security/security.xml
|
===================================================================
|
||||||
+++ b/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">
|
<record id="group_manager" model="res.groups">
|
||||||
<field name="name">OpenAcademy / Manager</field>
|
<field name="name">OpenAcademy / Manager</field>
|
||||||
</record>
|
</record>
|
||||||
+
|
+
|
||||||
+ <record id="only_responsible_can_modify" model="ir.rule">
|
+ <record id="only_responsible_can_modify" model="ir.rule">
|
||||||
+ <field name="name">Only Responsible can modify Course</field>
|
+ <field name="name">Only Responsible can modify Course</field>
|
||||||
+ <field name="model_id" ref="model_openacademy_course"/>
|
+ <field name="model_id" ref="model_openacademy_course"/>
|
||||||
+ <field name="groups" eval="[(4, ref('openacademy.group_manager'))]"/>
|
+ <field name="groups" eval="[(4, ref('openacademy.group_manager'))]"/>
|
||||||
+ <field name="perm_read" eval="0"/>
|
+ <field name="perm_read" eval="0"/>
|
||||||
+ <field name="perm_write" eval="1"/>
|
+ <field name="perm_write" eval="1"/>
|
||||||
+ <field name="perm_create" eval="0"/>
|
+ <field name="perm_create" eval="0"/>
|
||||||
+ <field name="perm_unlink" eval="1"/>
|
+ <field name="perm_unlink" eval="1"/>
|
||||||
+ <field name="domain_force">
|
+ <field name="domain_force">
|
||||||
+ ['|', ('responsible_id','=',False),
|
+ ['|', ('responsible_id','=',False),
|
||||||
+ ('responsible_id','=',user.id)]
|
+ ('responsible_id','=',user.id)]
|
||||||
+ </field>
|
+ </field>
|
||||||
+ </record>
|
+ </record>
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -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.orig/openacademy/views/openacademy.xml 2014-08-24 12:13:41.149381146 +0200
|
||||||
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:03:26.739106339 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:13:41.141381146 +0200
|
||||||
@@ -111,9 +111,10 @@
|
@@ -111,9 +111,10 @@
|
||||||
<field name="name">session.tree</field>
|
<field name="name">session.tree</field>
|
||||||
<field name="model">openacademy.session</field>
|
<field name="model">openacademy.session</field>
|
||||||
|
|
|
@ -1,19 +1,21 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 16e4cb131d9f7f3a72a8a1b0bc46c2ce9ac76435
|
# Parent 16e4cb131d9f7f3a72a8a1b0bc46c2ce9ac76435
|
||||||
diff -r 16e4cb131d9f -r bbfa610bfabd openacademy/__openerp__.py
|
Index: doc-backend/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
|
--- doc-backend.orig/openacademy/__openerp__.py 2014-08-24 12:02:32.169365663 +0200
|
||||||
@@ -11,6 +11,7 @@
|
+++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:02:32.165365663 +0200
|
||||||
- training sessions
|
@@ -27,6 +27,7 @@
|
||||||
- attendees registration""",
|
'data': [
|
||||||
'data' : [
|
# 'security/ir.model.access.csv',
|
||||||
|
'templates.xml',
|
||||||
+ 'views/openacademy.xml',
|
+ 'views/openacademy.xml',
|
||||||
],
|
],
|
||||||
|
# only loaded in demonstration mode
|
||||||
'demo': [
|
'demo': [
|
||||||
'demo.xml',
|
Index: doc-backend/openacademy/views/openacademy.xml
|
||||||
diff -r 16e4cb131d9f -r bbfa610bfabd openacademy/views/openacademy.xml
|
===================================================================
|
||||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ b/openacademy/views/openacademy.xml Thu Aug 07 12:11:28 2014 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:02:32.165365663 +0200
|
||||||
@@ -0,0 +1,35 @@
|
@@ -0,0 +1,35 @@
|
||||||
+<?xml version="1.0" encoding="UTF-8"?>
|
+<?xml version="1.0" encoding="UTF-8"?>
|
||||||
+<openerp>
|
+<openerp>
|
||||||
|
|
|
@ -1,19 +1,18 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 85a8d7317b9e13480f39ad739955442d15144451
|
# 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.orig/openacademy/models.py 2014-08-24 12:17:49.873386903 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-22 17:03:34.375106619 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:18:24.601387707 +0200
|
||||||
@@ -1,4 +1,7 @@
|
@@ -1,5 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
+from datetime import datetime, timedelta
|
|
||||||
+
|
+from datetime import timedelta
|
||||||
+import openerp.tools
|
from openerp import models, fields, api, exceptions
|
||||||
from openerp import api, fields, models, 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")
|
attendee_ids = fields.Many2many('res.partner', string="Attendees")
|
||||||
|
|
||||||
taken_seats = fields.Float(string="Taken seats", compute='_taken_seats')
|
taken_seats = fields.Float(string="Taken seats", compute='_taken_seats')
|
||||||
|
@ -22,7 +21,7 @@ Index: doc-backend/openacademy/course.py
|
||||||
|
|
||||||
@api.one
|
@api.one
|
||||||
@api.depends('seats', 'attendee_ids')
|
@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:
|
if self.instructor_id and self.instructor_id in self.attendee_ids:
|
||||||
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:34.383106620 +0200
|
--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:17:49.873386903 +0200
|
||||||
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:03:34.379106620 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:17:49.869386903 +0200
|
||||||
@@ -120,11 +120,24 @@
|
@@ -120,11 +120,24 @@
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -1,21 +1,15 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent a358be0a577b0569831958a8ec1302825c645dee
|
# 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.orig/openacademy/models.py 2014-08-24 12:09:36.289375479 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-22 14:31:17.090771190 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:09:59.961376027 +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'
|
|
||||||
@@ -28,3 +28,13 @@
|
@@ -28,3 +28,13 @@
|
||||||
|
course_id = fields.Many2one('openacademy.course',
|
||||||
ondelete='cascade', string="Course", required=True)
|
ondelete='cascade', string="Course", required=True)
|
||||||
attendee_ids = fields.Many2many('res.partner', string="Attendees")
|
attendee_ids = fields.Many2many('res.partner', string="Attendees")
|
||||||
|
+
|
||||||
+ taken_seats = fields.Float(string="Taken seats", compute='_taken_seats')
|
+ taken_seats = fields.Float(string="Taken seats", compute='_taken_seats')
|
||||||
+
|
+
|
||||||
+ @api.one
|
+ @api.one
|
||||||
|
@ -25,11 +19,10 @@ Index: doc-backend/openacademy/course.py
|
||||||
+ self.taken_seats = 0.0
|
+ self.taken_seats = 0.0
|
||||||
+ else:
|
+ else:
|
||||||
+ self.taken_seats = 100.0 * len(self.attendee_ids) / self.seats
|
+ 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.orig/openacademy/views/openacademy.xml 2014-08-24 12:09:36.289375479 +0200
|
||||||
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 14:31:42.542772124 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:09:36.285375479 +0200
|
||||||
@@ -98,6 +98,7 @@
|
@@ -98,6 +98,7 @@
|
||||||
<field name="start_date"/>
|
<field name="start_date"/>
|
||||||
<field name="duration"/>
|
<field name="duration"/>
|
||||||
|
|
|
@ -1,24 +1,25 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 7a7d003fe38426a405ce0657a627a139133ec4dd
|
# 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.orig/openacademy/models.py 2014-08-24 12:16:56.413385666 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-22 17:02:00.983103191 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:17:11.137386006 +0200
|
||||||
@@ -1,5 +1,5 @@
|
@@ -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):
|
class Course(models.Model):
|
||||||
_name = 'openacademy.course'
|
_name = 'openacademy.course'
|
||||||
@@ -56,3 +56,9 @@
|
@@ -56,3 +56,9 @@
|
||||||
|
'message': "Increase seats or remove excess attendees",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
+
|
||||||
+ @api.one
|
+ @api.one
|
||||||
+ @api.constrains('instructor_id', 'attendee_ids')
|
+ @api.constrains('instructor_id', 'attendee_ids')
|
||||||
+ def _check_instructor_not_in_attendees(self):
|
+ def _check_instructor_not_in_attendees(self):
|
||||||
+ if self.instructor_id and self.instructor_id in self.attendee_ids:
|
+ if self.instructor_id and self.instructor_id in self.attendee_ids:
|
||||||
+ raise exceptions.ValidationError("A session's instructor can't be an attendee")
|
+ raise exceptions.ValidationError("A session's instructor can't be an attendee")
|
||||||
+
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 121bbfe120be3007f5e04611dbc27038abafcce8
|
# 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.orig/openacademy/models.py 2014-08-24 12:17:23.789386299 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-22 17:02:07.359103425 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:17:23.785386299 +0200
|
||||||
@@ -13,6 +13,16 @@
|
@@ -14,6 +14,16 @@
|
||||||
'openacademy.session', 'course_id', string="Session")
|
'openacademy.session', 'course_id', string="Session")
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 7d14b75cdfd4c7a272a13572947de5d47f3e851f
|
# 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.orig/openacademy/models.py 2014-08-24 12:17:34.389386545 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-21 14:54:08.764549861 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:17:34.381386544 +0200
|
||||||
@@ -13,6 +13,20 @@
|
@@ -14,6 +14,20 @@
|
||||||
'openacademy.session', 'course_id', string="Session")
|
'openacademy.session', 'course_id', string="Session")
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,152 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 0000000000000000000000000000000000000000
|
# Parent 0000000000000000000000000000000000000000
|
||||||
diff --git a/openacademy/__init__.py b/openacademy/__init__.py
|
Index: doc-backend/openacademy/__openerp__.py
|
||||||
new file mode 100644
|
===================================================================
|
||||||
diff --git a/openacademy/__openerp__.py b/openacademy/__openerp__.py
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
new file mode 100644
|
+++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:25:18.133397278 +0200
|
||||||
--- /dev/null
|
@@ -0,0 +1,35 @@
|
||||||
+++ b/openacademy/__openerp__.py
|
|
||||||
@@ -0,0 +1,15 @@
|
|
||||||
+# -*- coding: utf-8 -*-
|
+# -*- coding: utf-8 -*-
|
||||||
+{
|
+{
|
||||||
+ 'name': "Open Academy",
|
+ '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' : """
|
+ # always loaded
|
||||||
+ Open Academy module for managing trainings:
|
+ 'data': [
|
||||||
+ - training courses
|
+ # 'security/ir.model.access.csv',
|
||||||
+ - training sessions
|
+ 'templates.xml',
|
||||||
+ - attendees registration""",
|
+ ],
|
||||||
+ 'data' : [
|
+ # 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>
|
||||||
|
|
|
@ -1,93 +1,94 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 643813940cbea07bec792f9e1c60022a9292fa90
|
# Parent 643813940cbea07bec792f9e1c60022a9292fa90
|
||||||
|
|
||||||
diff --git a/openacademy/__openerp__.py b/openacademy/__openerp__.py
|
Index: doc-backend/openacademy/__openerp__.py
|
||||||
--- a/openacademy/__openerp__.py
|
===================================================================
|
||||||
+++ b/openacademy/__openerp__.py
|
--- doc-backend.orig/openacademy/__openerp__.py 2014-08-24 12:31:00.385405199 +0200
|
||||||
@@ -3,7 +3,7 @@
|
+++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:31:45.373406240 +0200
|
||||||
'name': "Open Academy",
|
@@ -21,7 +21,7 @@
|
||||||
'category': "Test",
|
'version': '0.1',
|
||||||
'version': '1.0',
|
|
||||||
|
# any module necessary for this one to work correctly
|
||||||
- 'depends': ['base'],
|
- 'depends': ['base'],
|
||||||
+ 'depends': ['base', 'board'],
|
+ 'depends': ['base', 'board'],
|
||||||
'author': '<insert name here>',
|
|
||||||
'description' : """
|
# always loaded
|
||||||
Open Academy module for managing trainings:
|
'data': [
|
||||||
@@ -17,6 +17,7 @@
|
@@ -31,6 +31,7 @@
|
||||||
|
'views/openacademy.xml',
|
||||||
'views/partner.xml',
|
'views/partner.xml',
|
||||||
'views/session_workflow.xml',
|
'views/session_workflow.xml',
|
||||||
'reports.xml',
|
|
||||||
+ 'views/session_board.xml',
|
+ 'views/session_board.xml',
|
||||||
|
'reports.xml',
|
||||||
],
|
],
|
||||||
'demo': [
|
# only loaded in demonstration mode
|
||||||
'demo.xml',
|
Index: doc-backend/openacademy/views/session_board.xml
|
||||||
diff --git a/openacademy/views/session_board.xml b/openacademy/views/session_board.xml
|
===================================================================
|
||||||
new file mode 100644
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
--- /dev/null
|
+++ doc-backend/openacademy/views/session_board.xml 2014-08-24 12:33:16.077408340 +0200
|
||||||
+++ b/openacademy/views/session_board.xml
|
|
||||||
@@ -0,0 +1,65 @@
|
@@ -0,0 +1,65 @@
|
||||||
+<?xml version="1.0"?>
|
+<?xml version="1.0"?>
|
||||||
+<openerp>
|
+<openerp>
|
||||||
+ <data>
|
+ <data>
|
||||||
+ <record model="ir.actions.act_window" id="act_session_graph">
|
+ <record model="ir.actions.act_window" id="act_session_graph">
|
||||||
+ <field name="res_model">openacademy.session</field>
|
+ <field name="res_model">openacademy.session</field>
|
||||||
+ <field name="view_type">form</field>
|
+ <field name="view_type">form</field>
|
||||||
+ <field name="view_mode">graph</field>
|
+ <field name="view_mode">graph</field>
|
||||||
+ <field name="view_id"
|
+ <field name="view_id"
|
||||||
+ ref="openacademy.openacademy_session_graph_view"/>
|
+ ref="openacademy.openacademy_session_graph_view"/>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ <record model="ir.actions.act_window" id="act_session_calendar">
|
+ <record model="ir.actions.act_window" id="act_session_calendar">
|
||||||
+ <field name="res_model">openacademy.session</field>
|
+ <field name="res_model">openacademy.session</field>
|
||||||
+ <field name="view_type">form</field>
|
+ <field name="view_type">form</field>
|
||||||
+ <field name="view_mode">calendar</field>
|
+ <field name="view_mode">calendar</field>
|
||||||
+ <field name="view_id" ref="openacademy.session_calendar_view"/>
|
+ <field name="view_id" ref="openacademy.session_calendar_view"/>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ <record model="ir.actions.act_window" id="act_course_list">
|
+ <record model="ir.actions.act_window" id="act_course_list">
|
||||||
+ <field name="res_model">openacademy.course</field>
|
+ <field name="res_model">openacademy.course</field>
|
||||||
+ <field name="view_type">form</field>
|
+ <field name="view_type">form</field>
|
||||||
+ <field name="view_mode">tree,form</field>
|
+ <field name="view_mode">tree,form</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ <record model="ir.ui.view" id="board_session_form">
|
+ <record model="ir.ui.view" id="board_session_form">
|
||||||
+ <field name="name">Session Dashboard Form</field>
|
+ <field name="name">Session Dashboard Form</field>
|
||||||
+ <field name="model">board.board</field>
|
+ <field name="model">board.board</field>
|
||||||
+ <field name="type">form</field>
|
+ <field name="type">form</field>
|
||||||
+ <field name="arch" type="xml">
|
+ <field name="arch" type="xml">
|
||||||
+ <form string="Session Dashboard">
|
+ <form string="Session Dashboard">
|
||||||
+ <board style="2-1">
|
+ <board style="2-1">
|
||||||
+ <column>
|
+ <column>
|
||||||
+ <action
|
+ <action
|
||||||
+ string="Attendees by course"
|
+ string="Attendees by course"
|
||||||
+ name="%(act_session_graph)d"
|
+ name="%(act_session_graph)d"
|
||||||
+ colspan="4"
|
+ colspan="4"
|
||||||
+ height="150"
|
+ height="150"
|
||||||
+ width="510"/>
|
+ width="510"/>
|
||||||
+ <action
|
+ <action
|
||||||
+ string="Sessions"
|
+ string="Sessions"
|
||||||
+ name="%(act_session_calendar)d"
|
+ name="%(act_session_calendar)d"
|
||||||
+ colspan="4"/>
|
+ colspan="4"/>
|
||||||
+ </column>
|
+ </column>
|
||||||
+ <column>
|
+ <column>
|
||||||
+ <action
|
+ <action
|
||||||
+ string="Courses"
|
+ string="Courses"
|
||||||
+ name="%(act_course_list)d" colspan="4"/>
|
+ name="%(act_course_list)d" colspan="4"/>
|
||||||
+ </column>
|
+ </column>
|
||||||
+ </board>
|
+ </board>
|
||||||
+ </form>
|
+ </form>
|
||||||
+ </field>
|
+ </field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ <record model="ir.actions.act_window" id="open_board_session">
|
+ <record model="ir.actions.act_window" id="open_board_session">
|
||||||
+ <field name="name">Session Dashboard</field>
|
+ <field name="name">Session Dashboard</field>
|
||||||
+ <field name="res_model">board.board</field>
|
+ <field name="res_model">board.board</field>
|
||||||
+ <field name="view_type">form</field>
|
+ <field name="view_type">form</field>
|
||||||
+ <field name="view_mode">form</field>
|
+ <field name="view_mode">form</field>
|
||||||
+ <field name="usage">menu</field>
|
+ <field name="usage">menu</field>
|
||||||
+ <field name="view_id" ref="board_session_form"/>
|
+ <field name="view_id" ref="board_session_form"/>
|
||||||
+ </record>
|
+ </record>
|
||||||
+
|
+
|
||||||
+ <menuitem
|
+ <menuitem
|
||||||
+ name="Session Dashboard" parent="base.menu_reporting_dashboard"
|
+ name="Session Dashboard" parent="base.menu_reporting_dashboard"
|
||||||
+ action="open_board_session"
|
+ action="open_board_session"
|
||||||
+ sequence="1"
|
+ sequence="1"
|
||||||
+ id="menu_board_session" icon="terp-graph"/>
|
+ id="menu_board_session" icon="terp-graph"/>
|
||||||
+ </data>
|
+ </data>
|
||||||
+</openerp>
|
+</openerp>
|
||||||
|
|
|
@ -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.orig/openacademy/models.py 2014-08-24 12:10:34.701376831 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-22 17:01:08.975101282 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:10:34.693376831 +0200
|
||||||
@@ -17,9 +17,10 @@
|
@@ -18,9 +18,10 @@
|
||||||
_name = 'openacademy.session'
|
_name = 'openacademy.session'
|
||||||
|
|
||||||
name = fields.Char(required=True)
|
name = fields.Char(required=True)
|
||||||
|
@ -16,8 +16,8 @@ Index: doc-backend/openacademy/course.py
|
||||||
domain=['|', ('instructor', '=', True),
|
domain=['|', ('instructor', '=', True),
|
||||||
Index: doc-backend/openacademy/views/openacademy.xml
|
Index: doc-backend/openacademy/views/openacademy.xml
|
||||||
===================================================================
|
===================================================================
|
||||||
--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-22 16:57:00.731092169 +0200
|
--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:10:34.701376831 +0200
|
||||||
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:01:15.307101514 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:10:34.693376831 +0200
|
||||||
@@ -92,6 +92,7 @@
|
@@ -92,6 +92,7 @@
|
||||||
<field name="course_id"/>
|
<field name="course_id"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
|
|
|
@ -1,25 +1,34 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 84e2b0b43fc61fd0bcbb44c1929755d44ee58ae5
|
# 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.orig/openacademy/demo.xml 2014-08-24 11:58:31.673360097 +0200
|
||||||
+++ doc-backend/openacademy/demo.xml 2014-08-21 15:19:26.200605566 +0200
|
+++ doc-backend/openacademy/demo.xml 2014-08-24 11:58:49.353360506 +0200
|
||||||
@@ -0,0 +1,19 @@
|
@@ -1,25 +1,19 @@
|
||||||
+<openerp>
|
<openerp>
|
||||||
+ <data>
|
<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">
|
+ <record model="openacademy.course" id="course0">
|
||||||
+ <field name="name">Course 0</field>
|
+ <field name="name">Course 0</field>
|
||||||
+ <field name="description">Course 0's description
|
+ <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="name">Course 2</field>
|
||||||
+ <field name="description">Course 2's description</field>
|
+ <field name="description">Course 2's description</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ </data>
|
</data>
|
||||||
+</openerp>
|
</openerp>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 69d1f2d359eb8ef304a9d99f17790c78b35eda1a
|
# 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.orig/openacademy/models.py 2014-08-24 12:08:53.465374488 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-21 15:15:20.032596529 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:08:53.461374488 +0200
|
||||||
@@ -22,7 +22,8 @@
|
@@ -23,7 +23,8 @@
|
||||||
seats = fields.Integer(string="Number of seats")
|
seats = fields.Integer(string="Number of seats")
|
||||||
|
|
||||||
instructor_id = fields.Many2one('res.partner', string="Instructor",
|
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")
|
attendee_ids = fields.Many2many('res.partner', string="Attendees")
|
||||||
Index: doc-backend/openacademy/views/partner.xml
|
Index: doc-backend/openacademy/views/partner.xml
|
||||||
===================================================================
|
===================================================================
|
||||||
--- doc-backend.orig/openacademy/views/partner.xml 2014-08-21 15:15:20.040596529 +0200
|
--- doc-backend.orig/openacademy/views/partner.xml 2014-08-24 12:08:53.465374488 +0200
|
||||||
+++ doc-backend/openacademy/views/partner.xml 2014-08-21 15:16:18.112598661 +0200
|
+++ doc-backend/openacademy/views/partner.xml 2014-08-24 12:08:53.461374488 +0200
|
||||||
@@ -24,5 +24,21 @@
|
@@ -24,5 +24,21 @@
|
||||||
<menuitem id="contact_menu" name="Contacts"
|
<menuitem id="contact_menu" name="Contacts"
|
||||||
parent="configuration_menu"
|
parent="configuration_menu"
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 142c5065ff1b7266d944d4ef5239e814ae22f0df
|
# 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.orig/openacademy/models.py 2014-08-24 12:08:29.373373930 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-21 14:47:55.420536155 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:08:29.369373930 +0200
|
||||||
@@ -21,7 +21,8 @@
|
@@ -22,7 +22,8 @@
|
||||||
duration = fields.Float(digits=(6, 2), help="Duration in days")
|
duration = fields.Float(digits=(6, 2), help="Duration in days")
|
||||||
seats = fields.Integer(string="Number of seats")
|
seats = fields.Integer(string="Number of seats")
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 4a0db1d29257764f4df5cb1ee0be7e59e8c8d0d8
|
# Parent 4a0db1d29257764f4df5cb1ee0be7e59e8c8d0d8
|
||||||
|
|
||||||
diff --git a/openacademy/views/openacademy.xml b/openacademy/views/openacademy.xml
|
Index: doc-backend/openacademy/views/openacademy.xml
|
||||||
--- a/openacademy/views/openacademy.xml
|
===================================================================
|
||||||
+++ b/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 @@
|
@@ -1,6 +1,21 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<openerp>
|
<openerp>
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 5508a5440faa7b607d057c4e4ae70af6b6f7cac9
|
# Parent 5508a5440faa7b607d057c4e4ae70af6b6f7cac9
|
||||||
|
|
||||||
diff --git a/openacademy/views/openacademy.xml b/openacademy/views/openacademy.xml
|
Index: doc-backend/openacademy/views/openacademy.xml
|
||||||
--- a/openacademy/views/openacademy.xml
|
===================================================================
|
||||||
+++ b/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 @@
|
@@ -9,7 +9,14 @@
|
||||||
<sheet>
|
<sheet>
|
||||||
<group>
|
<group>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent dba00a105dd2a82490394b8dec5fea5f1d8847e1
|
# 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.orig/openacademy/models.py 2014-08-24 12:18:54.645388402 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-22 17:03:44.931107007 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:18:54.641388402 +0200
|
||||||
@@ -60,6 +60,9 @@
|
@@ -59,6 +59,9 @@
|
||||||
end_date = fields.Date(string="End Date", store=True,
|
end_date = fields.Date(string="End Date", store=True,
|
||||||
compute='_get_end_date', inverse='_set_end_date')
|
compute='_get_end_date', inverse='_set_end_date')
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ Index: doc-backend/openacademy/course.py
|
||||||
@api.one
|
@api.one
|
||||||
@api.depends('seats', 'attendee_ids')
|
@api.depends('seats', 'attendee_ids')
|
||||||
def _taken_seats(self):
|
def _taken_seats(self):
|
||||||
@@ -106,6 +109,15 @@
|
@@ -105,6 +108,15 @@
|
||||||
self.duration = (end_date - start_date).days
|
self.duration = (end_date - start_date).days
|
||||||
|
|
||||||
@api.one
|
@api.one
|
||||||
|
@ -33,8 +33,8 @@ Index: doc-backend/openacademy/course.py
|
||||||
if self.instructor_id and self.instructor_id in self.attendee_ids:
|
if self.instructor_id and self.instructor_id in self.attendee_ids:
|
||||||
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:44.939107007 +0200
|
--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:18:54.645388402 +0200
|
||||||
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:03:44.931107007 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:18:54.641388402 +0200
|
||||||
@@ -137,11 +137,24 @@
|
@@ -137,11 +137,24 @@
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent a6fe4d3923db1f8f5dff2c39a711a814b0a0f549
|
# 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.orig/openacademy/models.py 2014-08-24 12:19:27.701389167 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-22 17:03:48.507107138 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:19:27.697389167 +0200
|
||||||
@@ -63,6 +63,9 @@
|
@@ -62,6 +62,9 @@
|
||||||
hours = fields.Float(string="Duration in hours",
|
hours = fields.Float(string="Duration in hours",
|
||||||
compute='_get_hours', inverse='_set_hours')
|
compute='_get_hours', inverse='_set_hours')
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ Index: doc-backend/openacademy/course.py
|
||||||
@api.one
|
@api.one
|
||||||
@api.depends('seats', 'attendee_ids')
|
@api.depends('seats', 'attendee_ids')
|
||||||
def _taken_seats(self):
|
def _taken_seats(self):
|
||||||
@@ -118,6 +121,11 @@
|
@@ -117,6 +120,11 @@
|
||||||
self.duration = self.hours / 24
|
self.duration = self.hours / 24
|
||||||
|
|
||||||
@api.one
|
@api.one
|
||||||
|
@ -29,8 +29,8 @@ Index: doc-backend/openacademy/course.py
|
||||||
if self.instructor_id and self.instructor_id in self.attendee_ids:
|
if self.instructor_id and self.instructor_id in self.attendee_ids:
|
||||||
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:48.511107138 +0200
|
--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:19:27.701389167 +0200
|
||||||
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:03:48.507107138 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:19:27.697389167 +0200
|
||||||
@@ -150,11 +150,22 @@
|
@@ -150,11 +150,22 @@
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 8d66f7620781558d4520f97e4cebc14ed180683e
|
# 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.orig/openacademy/models.py 2014-08-24 12:20:07.801390095 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-22 17:03:55.459107393 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:20:07.793390095 +0200
|
||||||
@@ -48,6 +48,7 @@
|
@@ -47,6 +47,7 @@
|
||||||
duration = fields.Float(digits=(6, 2), help="Duration in days")
|
duration = fields.Float(digits=(6, 2), help="Duration in days")
|
||||||
seats = fields.Integer(string="Number of seats")
|
seats = fields.Integer(string="Number of seats")
|
||||||
active = fields.Boolean(default=True)
|
active = fields.Boolean(default=True)
|
||||||
|
@ -15,8 +15,8 @@ Index: doc-backend/openacademy/course.py
|
||||||
domain=['|', ('instructor', '=', True),
|
domain=['|', ('instructor', '=', True),
|
||||||
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:55.463107394 +0200
|
--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:20:07.801390095 +0200
|
||||||
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:03:55.459107393 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:20:07.793390095 +0200
|
||||||
@@ -161,11 +161,57 @@
|
@@ -161,11 +161,57 @@
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -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.orig/openacademy/models.py 2014-08-24 12:06:18.941370912 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-21 14:42:54.712525116 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:06:28.885371142 +0200
|
||||||
@@ -24,4 +24,5 @@
|
@@ -25,3 +25,4 @@
|
||||||
instructor_id = fields.Many2one('res.partner', string="Instructor")
|
instructor_id = fields.Many2one('res.partner', string="Instructor")
|
||||||
course_id = fields.Many2one('openacademy.course',
|
course_id = fields.Many2one('openacademy.course',
|
||||||
ondelete='cascade', string="Course", required=True)
|
ondelete='cascade', string="Course", required=True)
|
||||||
+ attendee_ids = fields.Many2many('res.partner', string="Attendees")
|
+ attendee_ids = fields.Many2many('res.partner', string="Attendees")
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent a6e217b1fbbc64111581c269629b1c25c23abb99
|
# 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.orig/openacademy/models.py 2014-08-24 12:04:40.829368641 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-21 14:26:35.040489152 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:04:57.509369027 +0200
|
||||||
@@ -7,6 +7,9 @@
|
@@ -8,6 +8,9 @@
|
||||||
name = fields.Char(string="Title", required=True)
|
name = fields.Char(string="Title", required=True)
|
||||||
description = fields.Text()
|
description = fields.Text()
|
||||||
|
|
||||||
|
@ -16,17 +16,17 @@ Index: doc-backend/openacademy/course.py
|
||||||
class Session(models.Model):
|
class Session(models.Model):
|
||||||
_name = 'openacademy.session'
|
_name = 'openacademy.session'
|
||||||
@@ -16,3 +19,7 @@
|
@@ -16,3 +19,7 @@
|
||||||
|
start_date = fields.Date()
|
||||||
duration = fields.Float(digits=(6, 2), help="Duration in days")
|
duration = fields.Float(digits=(6, 2), help="Duration in days")
|
||||||
seats = fields.Integer(string="Number of seats")
|
seats = fields.Integer(string="Number of seats")
|
||||||
|
+
|
||||||
+ instructor_id = fields.Many2one('res.partner', string="Instructor")
|
+ instructor_id = fields.Many2one('res.partner', string="Instructor")
|
||||||
+ course_id = fields.Many2one('openacademy.course',
|
+ course_id = fields.Many2one('openacademy.course',
|
||||||
+ ondelete='cascade', string="Course", required=True)
|
+ 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.orig/openacademy/views/openacademy.xml 2014-08-24 12:04:40.829368641 +0200
|
||||||
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-21 14:25:48.000000000 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:04:40.825368641 +0200
|
||||||
@@ -63,5 +63,16 @@
|
@@ -63,5 +63,16 @@
|
||||||
<!-- Full id location:
|
<!-- Full id location:
|
||||||
action="openacademy.course_list_action"
|
action="openacademy.course_list_action"
|
||||||
|
|
|
@ -1,20 +1,18 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent e3bb12713a6d38c28f50d46e8c1bab74ac40c1be
|
# Parent e3bb12713a6d38c28f50d46e8c1bab74ac40c1be
|
||||||
diff -r e3bb12713a6d -r 7929aa014c78 openacademy/__init__.py
|
Index: doc-backend/openacademy/models.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
|
--- doc-backend.orig/openacademy/models.py 2014-08-24 11:54:02.949353877 +0200
|
||||||
@@ -0,0 +1,1 @@
|
+++ doc-backend/openacademy/models.py 2014-08-24 11:54:26.153354414 +0200
|
||||||
+import course
|
@@ -2,7 +2,8 @@
|
||||||
diff -r e3bb12713a6d -r 7929aa014c78 openacademy/course.py
|
|
||||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
from openerp import models, fields, api
|
||||||
+++ b/openacademy/course.py Thu Aug 07 12:06:41 2014 +0200
|
|
||||||
@@ -0,0 +1,9 @@
|
-# class openacademy(models.Model):
|
||||||
+# -*- coding: utf-8 -*-
|
-# _name = 'openacademy.openacademy'
|
||||||
+from openerp import fields, models
|
|
||||||
+
|
|
||||||
+class Course(models.Model):
|
+class Course(models.Model):
|
||||||
+ _name = 'openacademy.course'
|
+ _name = 'openacademy.course'
|
||||||
+
|
|
||||||
|
-# name = fields.Char()
|
||||||
+ name = fields.Char(string="Title", required=True)
|
+ name = fields.Char(string="Title", required=True)
|
||||||
+ description = fields.Text()
|
+ description = fields.Text()
|
||||||
+
|
|
||||||
|
|
|
@ -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.orig/openacademy/__init__.py 2014-08-24 12:07:13.669372178 +0200
|
||||||
+++ doc-backend/openacademy/__init__.py 2014-08-21 15:13:13.748591893 +0200
|
+++ doc-backend/openacademy/__init__.py 2014-08-24 12:07:30.697372572 +0200
|
||||||
@@ -1 +1,2 @@
|
@@ -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.orig/openacademy/__openerp__.py 2014-08-24 12:07:13.669372178 +0200
|
||||||
+++ doc-backend/openacademy/__openerp__.py 2014-08-21 15:13:13.748591893 +0200
|
+++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:07:13.661372178 +0200
|
||||||
@@ -12,6 +12,7 @@
|
@@ -28,6 +28,7 @@
|
||||||
- attendees registration""",
|
# 'security/ir.model.access.csv',
|
||||||
'data' : [
|
'templates.xml',
|
||||||
'views/openacademy.xml',
|
'views/openacademy.xml',
|
||||||
+ 'views/partner.xml',
|
+ 'views/partner.xml',
|
||||||
],
|
],
|
||||||
|
# only loaded in demonstration mode
|
||||||
'demo': [
|
'demo': [
|
||||||
'demo.xml',
|
|
||||||
Index: doc-backend/openacademy/partner.py
|
Index: doc-backend/openacademy/partner.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /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 @@
|
@@ -0,0 +1,11 @@
|
||||||
+# -*- coding: utf-8 -*-
|
+# -*- coding: utf-8 -*-
|
||||||
+from openerp import fields, models
|
+from openerp import fields, models
|
||||||
|
@ -39,7 +41,7 @@ Index: doc-backend/openacademy/partner.py
|
||||||
Index: doc-backend/openacademy/views/partner.xml
|
Index: doc-backend/openacademy/views/partner.xml
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /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 @@
|
@@ -0,0 +1,28 @@
|
||||||
+<?xml version="1.0" encoding="UTF-8"?>
|
+<?xml version="1.0" encoding="UTF-8"?>
|
||||||
+ <openerp>
|
+ <openerp>
|
||||||
|
|
|
@ -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.orig/openacademy/views/openacademy.xml 2014-08-24 12:07:04.877371975 +0200
|
||||||
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-21 14:45:10.264530092 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:07:04.869371975 +0200
|
||||||
@@ -19,12 +19,18 @@
|
@@ -19,12 +19,18 @@
|
||||||
<sheet>
|
<sheet>
|
||||||
<group>
|
<group>
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 8d5573b704b2867788dd6895503f1871c2976a29
|
# 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.orig/openacademy/models.py 2014-08-24 12:12:01.933378850 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-22 17:01:50.139102793 +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:
|
else:
|
||||||
self.taken_seats = 100.0 * len(self.attendee_ids) / self.seats
|
self.taken_seats = 100.0 * len(self.attendee_ids) / self.seats
|
||||||
|
+
|
||||||
+ @api.onchange('seats', 'attendee_ids')
|
+ @api.onchange('seats', 'attendee_ids')
|
||||||
+ def _verify_valid_seats(self):
|
+ def _verify_valid_seats(self):
|
||||||
+ if self.seats < 0:
|
+ 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",
|
||||||
+ },
|
+ },
|
||||||
+ }
|
+ }
|
||||||
+
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent cb05882d4fe73e97b9d34a69190ced14d1a50c24
|
# 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.orig/openacademy/models.py 2014-08-24 12:05:31.001369802 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-21 14:27:37.860491458 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:05:30.997369802 +0200
|
||||||
@@ -9,6 +9,8 @@
|
@@ -10,6 +10,8 @@
|
||||||
|
|
||||||
responsible_id = fields.Many2one('res.users',
|
responsible_id = fields.Many2one('res.users',
|
||||||
ondelete='set null', string="Responsible", index=True)
|
ondelete='set null', string="Responsible", index=True)
|
||||||
|
|
|
@ -1,47 +1,50 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent c140f0a861a08881d8737bca0ffb83904a2059a3
|
# Parent c140f0a861a08881d8737bca0ffb83904a2059a3
|
||||||
|
|
||||||
diff --git a/openacademy/__openerp__.py b/openacademy/__openerp__.py
|
Index: doc-backend/openacademy/__openerp__.py
|
||||||
--- a/openacademy/__openerp__.py
|
===================================================================
|
||||||
+++ b/openacademy/__openerp__.py
|
--- doc-backend.orig/openacademy/__openerp__.py 2014-08-24 12:28:46.485402100 +0200
|
||||||
@@ -16,6 +16,7 @@
|
+++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:28:46.477402100 +0200
|
||||||
|
@@ -31,6 +31,7 @@
|
||||||
'views/openacademy.xml',
|
'views/openacademy.xml',
|
||||||
'views/partner.xml',
|
'views/partner.xml',
|
||||||
'views/session_workflow.xml',
|
'views/session_workflow.xml',
|
||||||
+ 'reports.xml',
|
+ 'reports.xml',
|
||||||
],
|
],
|
||||||
|
# only loaded in demonstration mode
|
||||||
'demo': [
|
'demo': [
|
||||||
'demo.xml',
|
Index: doc-backend/openacademy/reports.xml
|
||||||
diff --git a/openacademy/reports.xml b/openacademy/reports.xml
|
===================================================================
|
||||||
new file mode 100644
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
--- /dev/null
|
+++ doc-backend/openacademy/reports.xml 2014-08-24 12:30:37.161404662 +0200
|
||||||
+++ b/openacademy/reports.xml
|
@@ -0,0 +1,30 @@
|
||||||
@@ -0,0 +1,28 @@
|
+<openerp>
|
||||||
+<openerp><data>
|
+<data>
|
||||||
+ <report
|
+ <report
|
||||||
+ id="report_session"
|
+ id="report_session"
|
||||||
+ model="openacademy.session"
|
+ model="openacademy.session"
|
||||||
+ string="Session Report"
|
+ string="Session Report"
|
||||||
+ name="openacademy.report_session_view"
|
+ name="openacademy.report_session_view"
|
||||||
+ file="openacademy.report_session"
|
+ file="openacademy.report_session"
|
||||||
+ report_type="qweb-pdf" />
|
+ report_type="qweb-pdf" />
|
||||||
+
|
+
|
||||||
+ <template id="report_session_view">
|
+ <template id="report_session_view">
|
||||||
+ <t t-call="report.html_container">
|
+ <t t-call="report.html_container">
|
||||||
+ <t t-foreach="docs" t-as="doc">
|
+ <t t-foreach="docs" t-as="doc">
|
||||||
+ <t t-call="report.external_layout">
|
+ <t t-call="report.external_layout">
|
||||||
+ <div class="page">
|
+ <div class="page">
|
||||||
+ <h2 t-field="doc.name"/>
|
+ <h2 t-field="doc.name"/>
|
||||||
+ <p>From <span t-field="doc.start_date"/> to <span t-field="doc.end_date"/></p>
|
+ <p>From <span t-field="doc.start_date"/> to <span t-field="doc.end_date"/></p>
|
||||||
+ <h3>Attendees:</h3>
|
+ <h3>Attendees:</h3>
|
||||||
+ <ul>
|
+ <ul>
|
||||||
+ <t t-foreach="doc.attendee_ids" t-as="attendee">
|
+ <t t-foreach="doc.attendee_ids" t-as="attendee">
|
||||||
+ <li t-field="attendee.name"/>
|
+ <li t-field="attendee.name"/>
|
||||||
+ </t>
|
+ </t>
|
||||||
+ </ul>
|
+ </ul>
|
||||||
+ </div>
|
+ </div>
|
||||||
|
+ </t>
|
||||||
|
+ </t>
|
||||||
+ </t>
|
+ </t>
|
||||||
+ </t>
|
+ </template>
|
||||||
+ </t>
|
+</data>
|
||||||
+ </template>
|
+</openerp>
|
||||||
+</data></openerp>
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent b9bfc8929e0ffc3eb153641e14952fe5d99eb908
|
# Parent b9bfc8929e0ffc3eb153641e14952fe5d99eb908
|
||||||
diff -r b9bfc8929e0f -r cf2bf8f8490a openacademy/views/openacademy.xml
|
Index: doc-backend/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
|
--- 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 @@
|
@@ -1,6 +1,16 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<openerp>
|
<openerp>
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 22f8d180a7f9ad209d7e98cf7d1bd0fee1f05350
|
# 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.orig/openacademy/models.py 2014-08-24 12:03:20.161366774 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-21 14:23:35.540482563 +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)
|
name = fields.Char(string="Title", required=True)
|
||||||
description = fields.Text()
|
description = fields.Text()
|
||||||
|
+
|
||||||
+
|
+
|
||||||
+class Session(models.Model):
|
+class Session(models.Model):
|
||||||
+ _name = 'openacademy.session'
|
+ _name = 'openacademy.session'
|
||||||
|
@ -16,4 +17,3 @@ Index: doc-backend/openacademy/course.py
|
||||||
+ start_date = fields.Date()
|
+ start_date = fields.Date()
|
||||||
+ duration = fields.Float(digits=(6, 2), help="Duration in days")
|
+ duration = fields.Float(digits=(6, 2), help="Duration in days")
|
||||||
+ seats = fields.Integer(string="Number of seats")
|
+ seats = fields.Integer(string="Number of seats")
|
||||||
+
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 8c721171aa16a41e94059f53d6780c67b5ef2dfc
|
# 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.orig/openacademy/models.py 2014-08-24 12:20:31.953390654 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-22 17:04:08.099107857 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:20:31.949390654 +0200
|
||||||
@@ -67,6 +67,24 @@
|
@@ -66,6 +66,24 @@
|
||||||
attendees_count = fields.Integer(
|
attendees_count = fields.Integer(
|
||||||
string="Attendees count", compute='_get_attendees_count', store=True)
|
string="Attendees count", compute='_get_attendees_count', store=True)
|
||||||
|
|
||||||
|
@ -32,8 +32,8 @@ Index: doc-backend/openacademy/course.py
|
||||||
def _taken_seats(self):
|
def _taken_seats(self):
|
||||||
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:04:08.103107858 +0200
|
--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:20:31.953390654 +0200
|
||||||
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-22 17:04:30.939108696 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:20:31.949390654 +0200
|
||||||
@@ -91,22 +91,37 @@
|
@@ -91,22 +91,37 @@
|
||||||
<field name="model">openacademy.session</field>
|
<field name="model">openacademy.session</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
|
|
|
@ -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.orig/openacademy/__openerp__.py 2014-08-24 12:34:54.425410616 +0200
|
||||||
+++ doc-backend/openacademy/__openerp__.py 2014-08-21 15:03:56.756571446 +0200
|
+++ doc-backend/openacademy/__openerp__.py 2014-08-24 12:34:54.417410616 +0200
|
||||||
@@ -13,6 +13,7 @@
|
@@ -29,6 +29,7 @@
|
||||||
'data' : [
|
'templates.xml',
|
||||||
'views/openacademy.xml',
|
'views/openacademy.xml',
|
||||||
'views/partner.xml',
|
'views/partner.xml',
|
||||||
+ 'views/session_workflow.xml',
|
+ 'views/session_workflow.xml',
|
||||||
],
|
],
|
||||||
|
# only loaded in demonstration mode
|
||||||
'demo': [
|
'demo': [
|
||||||
'demo.xml',
|
Index: doc-backend/openacademy/models.py
|
||||||
Index: doc-backend/openacademy/course.py
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- doc-backend.orig/openacademy/course.py 2014-08-21 15:03:56.760571446 +0200
|
--- doc-backend.orig/openacademy/models.py 2014-08-24 12:34:54.425410616 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-21 15:03:56.756571446 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:34:54.417410616 +0200
|
||||||
@@ -71,7 +71,7 @@
|
@@ -70,7 +70,7 @@
|
||||||
('draft', "Draft"),
|
('draft', "Draft"),
|
||||||
('confirmed', "Confirmed"),
|
('confirmed', "Confirmed"),
|
||||||
('done', "Done"),
|
('done', "Done"),
|
||||||
|
@ -28,8 +28,8 @@ Index: doc-backend/openacademy/course.py
|
||||||
def action_draft(self):
|
def action_draft(self):
|
||||||
Index: doc-backend/openacademy/views/openacademy.xml
|
Index: doc-backend/openacademy/views/openacademy.xml
|
||||||
===================================================================
|
===================================================================
|
||||||
--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-21 15:03:56.760571446 +0200
|
--- doc-backend.orig/openacademy/views/openacademy.xml 2014-08-24 12:34:54.425410616 +0200
|
||||||
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-21 15:03:56.756571446 +0200
|
+++ doc-backend/openacademy/views/openacademy.xml 2014-08-24 12:34:54.417410616 +0200
|
||||||
@@ -92,13 +92,13 @@
|
@@ -92,13 +92,13 @@
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form string="Session Form">
|
<form string="Session Form">
|
||||||
|
@ -50,56 +50,56 @@ Index: doc-backend/openacademy/views/openacademy.xml
|
||||||
Index: doc-backend/openacademy/views/session_workflow.xml
|
Index: doc-backend/openacademy/views/session_workflow.xml
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /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 @@
|
@@ -0,0 +1,51 @@
|
||||||
+<openerp>
|
+<openerp>
|
||||||
+ <data>
|
+ <data>
|
||||||
+ <record model="workflow" id="wkf_session">
|
+ <record model="workflow" id="wkf_session">
|
||||||
+ <field name="name">OpenAcademy sessions workflow</field>
|
+ <field name="name">OpenAcademy sessions workflow</field>
|
||||||
+ <field name="osv">openacademy.session</field>
|
+ <field name="osv">openacademy.session</field>
|
||||||
+ <field name="on_create">True</field>
|
+ <field name="on_create">True</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+
|
+
|
||||||
+ <record model="workflow.activity" id="draft">
|
+ <record model="workflow.activity" id="draft">
|
||||||
+ <field name="name">Draft</field>
|
+ <field name="name">Draft</field>
|
||||||
+ <field name="wkf_id" ref="wkf_session"/>
|
+ <field name="wkf_id" ref="wkf_session"/>
|
||||||
+ <field name="flow_start" eval="True"/>
|
+ <field name="flow_start" eval="True"/>
|
||||||
+ <field name="kind">function</field>
|
+ <field name="kind">function</field>
|
||||||
+ <field name="action">action_draft()</field>
|
+ <field name="action">action_draft()</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ <record model="workflow.activity" id="confirmed">
|
+ <record model="workflow.activity" id="confirmed">
|
||||||
+ <field name="name">Confirmed</field>
|
+ <field name="name">Confirmed</field>
|
||||||
+ <field name="wkf_id" ref="wkf_session"/>
|
+ <field name="wkf_id" ref="wkf_session"/>
|
||||||
+ <field name="kind">function</field>
|
+ <field name="kind">function</field>
|
||||||
+ <field name="action">action_confirm()</field>
|
+ <field name="action">action_confirm()</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ <record model="workflow.activity" id="done">
|
+ <record model="workflow.activity" id="done">
|
||||||
+ <field name="name">Done</field>
|
+ <field name="name">Done</field>
|
||||||
+ <field name="wkf_id" ref="wkf_session"/>
|
+ <field name="wkf_id" ref="wkf_session"/>
|
||||||
+ <field name="flow_stop" eval="True"/>
|
+ <field name="flow_stop" eval="True"/>
|
||||||
+ <field name="kind">function</field>
|
+ <field name="kind">function</field>
|
||||||
+ <field name="action">action_done()</field>
|
+ <field name="action">action_done()</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+
|
+
|
||||||
+ <record model="workflow.transition" id="session_draft_to_confirmed">
|
+ <record model="workflow.transition" id="session_draft_to_confirmed">
|
||||||
+ <field name="act_from" ref="draft"/>
|
+ <field name="act_from" ref="draft"/>
|
||||||
+ <field name="act_to" ref="confirmed"/>
|
+ <field name="act_to" ref="confirmed"/>
|
||||||
+ <field name="signal">confirm</field>
|
+ <field name="signal">confirm</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ <record model="workflow.transition" id="session_confirmed_to_draft">
|
+ <record model="workflow.transition" id="session_confirmed_to_draft">
|
||||||
+ <field name="act_from" ref="confirmed"/>
|
+ <field name="act_from" ref="confirmed"/>
|
||||||
+ <field name="act_to" ref="draft"/>
|
+ <field name="act_to" ref="draft"/>
|
||||||
+ <field name="signal">draft</field>
|
+ <field name="signal">draft</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ <record model="workflow.transition" id="session_done_to_draft">
|
+ <record model="workflow.transition" id="session_done_to_draft">
|
||||||
+ <field name="act_from" ref="done"/>
|
+ <field name="act_from" ref="done"/>
|
||||||
+ <field name="act_to" ref="draft"/>
|
+ <field name="act_to" ref="draft"/>
|
||||||
+ <field name="signal">draft</field>
|
+ <field name="signal">draft</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ <record model="workflow.transition" id="session_confirmed_to_done">
|
+ <record model="workflow.transition" id="session_confirmed_to_done">
|
||||||
+ <field name="act_from" ref="confirmed"/>
|
+ <field name="act_from" ref="confirmed"/>
|
||||||
+ <field name="act_to" ref="done"/>
|
+ <field name="act_to" ref="done"/>
|
||||||
+ <field name="signal">done</field>
|
+ <field name="signal">done</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
+ </data>
|
+ </data>
|
||||||
+</openerp>
|
+</openerp>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 0764cf061d021a0a5b2811f5ec5d835f799630fc
|
# 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.orig/openacademy/models.py 2014-08-24 12:37:16.637413907 +0200
|
||||||
+++ doc-backend/openacademy/course.py 2014-08-21 15:04:39.968573032 +0200
|
+++ doc-backend/openacademy/models.py 2014-08-24 12:37:16.625413907 +0200
|
||||||
@@ -74,18 +74,6 @@
|
@@ -73,18 +73,6 @@
|
||||||
])
|
])
|
||||||
|
|
||||||
@api.one
|
@api.one
|
||||||
|
@ -26,69 +26,69 @@ Index: doc-backend/openacademy/course.py
|
||||||
if not self.seats:
|
if not self.seats:
|
||||||
Index: doc-backend/openacademy/views/session_workflow.xml
|
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.orig/openacademy/views/session_workflow.xml 2014-08-24 12:37:16.637413907 +0200
|
||||||
+++ doc-backend/openacademy/views/session_workflow.xml 2014-08-21 15:04:39.968573032 +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>
|
<field name="on_create">True</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
+ <record model="ir.actions.server" id="set_session_to_draft">
|
+ <record model="ir.actions.server" id="set_session_to_draft">
|
||||||
+ <field name="name">Set session to Draft</field>
|
+ <field name="name">Set session to Draft</field>
|
||||||
+ <field name="model_id" ref="model_openacademy_session"/>
|
+ <field name="model_id" ref="model_openacademy_session"/>
|
||||||
+ <field name="code">
|
+ <field name="code">
|
||||||
+ self.write(cr, uid, context['active_ids'], {
|
+ self.write(cr, uid, context['active_ids'], {
|
||||||
+ 'state': 'draft'
|
+ 'state': 'draft'
|
||||||
+ }, context=context)
|
+ }, context=context)
|
||||||
+ </field>
|
+ </field>
|
||||||
+ </record>
|
+ </record>
|
||||||
<record model="workflow.activity" id="draft">
|
<record model="workflow.activity" id="draft">
|
||||||
<field name="name">Draft</field>
|
<field name="name">Draft</field>
|
||||||
<field name="wkf_id" ref="wkf_session"/>
|
<field name="wkf_id" ref="wkf_session"/>
|
||||||
<field name="flow_start" eval="True"/>
|
<field name="flow_start" eval="True"/>
|
||||||
- <field name="kind">function</field>
|
- <field name="kind">function</field>
|
||||||
- <field name="action">action_draft()</field>
|
- <field name="action">action_draft()</field>
|
||||||
+ <field name="kind">dummy</field>
|
+ <field name="kind">dummy</field>
|
||||||
+ <field name="action"></field>
|
+ <field name="action"></field>
|
||||||
+ <field name="action_id" ref="set_session_to_draft"/>
|
+ <field name="action_id" ref="set_session_to_draft"/>
|
||||||
+ </record>
|
+ </record>
|
||||||
+
|
+
|
||||||
+ <record model="ir.actions.server" id="set_session_to_confirmed">
|
+ <record model="ir.actions.server" id="set_session_to_confirmed">
|
||||||
+ <field name="name">Set session to Confirmed</field>
|
+ <field name="name">Set session to Confirmed</field>
|
||||||
+ <field name="model_id" ref="model_openacademy_session"/>
|
+ <field name="model_id" ref="model_openacademy_session"/>
|
||||||
+ <field name="code">
|
+ <field name="code">
|
||||||
+ self.write(cr, uid, context['active_ids'], {
|
+ self.write(cr, uid, context['active_ids'], {
|
||||||
+ 'state': 'confirmed'
|
+ 'state': 'confirmed'
|
||||||
+ }, context=context)
|
+ }, context=context)
|
||||||
+ </field>
|
+ </field>
|
||||||
</record>
|
</record>
|
||||||
<record model="workflow.activity" id="confirmed">
|
<record model="workflow.activity" id="confirmed">
|
||||||
<field name="name">Confirmed</field>
|
<field name="name">Confirmed</field>
|
||||||
<field name="wkf_id" ref="wkf_session"/>
|
<field name="wkf_id" ref="wkf_session"/>
|
||||||
- <field name="kind">function</field>
|
- <field name="kind">function</field>
|
||||||
- <field name="action">action_confirm()</field>
|
- <field name="action">action_confirm()</field>
|
||||||
+ <field name="kind">dummy</field>
|
+ <field name="kind">dummy</field>
|
||||||
+ <field name="action"></field>
|
+ <field name="action"></field>
|
||||||
+ <field name="action_id" ref="set_session_to_confirmed"/>
|
+ <field name="action_id" ref="set_session_to_confirmed"/>
|
||||||
+ </record>
|
+ </record>
|
||||||
+
|
+
|
||||||
+ <record model="ir.actions.server" id="set_session_to_done">
|
+ <record model="ir.actions.server" id="set_session_to_done">
|
||||||
+ <field name="name">Set session to Done</field>
|
+ <field name="name">Set session to Done</field>
|
||||||
+ <field name="model_id" ref="model_openacademy_session"/>
|
+ <field name="model_id" ref="model_openacademy_session"/>
|
||||||
+ <field name="code">
|
+ <field name="code">
|
||||||
+ self.write(cr, uid, context['active_ids'], {
|
+ self.write(cr, uid, context['active_ids'], {
|
||||||
+ 'state': 'done'
|
+ 'state': 'done'
|
||||||
+ }, context=context)
|
+ }, context=context)
|
||||||
+ </field>
|
+ </field>
|
||||||
</record>
|
</record>
|
||||||
<record model="workflow.activity" id="done">
|
<record model="workflow.activity" id="done">
|
||||||
<field name="name">Done</field>
|
<field name="name">Done</field>
|
||||||
<field name="wkf_id" ref="wkf_session"/>
|
<field name="wkf_id" ref="wkf_session"/>
|
||||||
<field name="flow_stop" eval="True"/>
|
<field name="flow_stop" eval="True"/>
|
||||||
- <field name="kind">function</field>
|
- <field name="kind">function</field>
|
||||||
- <field name="action">action_done()</field>
|
- <field name="action">action_done()</field>
|
||||||
+ <field name="kind">dummy</field>
|
+ <field name="kind">dummy</field>
|
||||||
+ <field name="action"></field>
|
+ <field name="action"></field>
|
||||||
+ <field name="action_id" ref="set_session_to_done"/>
|
+ <field name="action_id" ref="set_session_to_done"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="workflow.transition" id="session_draft_to_confirmed">
|
<record model="workflow.transition" id="session_draft_to_confirmed">
|
||||||
|
|
|
@ -1,18 +1,19 @@
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 3b19489a47d41e72f88490eb389a05977761c8d2
|
# Parent 3b19489a47d41e72f88490eb389a05977761c8d2
|
||||||
|
|
||||||
diff --git a/openacademy/views/session_workflow.xml b/openacademy/views/session_workflow.xml
|
Index: doc-backend/openacademy/views/session_workflow.xml
|
||||||
--- a/openacademy/views/session_workflow.xml
|
===================================================================
|
||||||
+++ b/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="act_to" ref="done"/>
|
||||||
<field name="signal">done</field>
|
<field name="signal">done</field>
|
||||||
</record>
|
</record>
|
||||||
+
|
+
|
||||||
+ <record model="workflow.transition" id="session_auto_confirm_half_filled">
|
+ <record model="workflow.transition" id="session_auto_confirm_half_filled">
|
||||||
+ <field name="act_from" ref="draft"/>
|
+ <field name="act_from" ref="draft"/>
|
||||||
+ <field name="act_to" ref="confirmed"/>
|
+ <field name="act_to" ref="confirmed"/>
|
||||||
+ <field name="condition">seats_taken > 50</field>
|
+ <field name="condition">seats_taken > 50</field>
|
||||||
+ </record>
|
+ </record>
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{%- set mod= name|snake -%}
|
{%- set mod= name|snake -%}
|
||||||
{%- set model = "%s.%s"|format(mod, mod) -%}
|
{%- set model = "%s.%s"|format(mod, mod) -%}
|
||||||
<openerp>
|
<openerp>
|
||||||
<data>
|
<data>
|
||||||
<!-- {% for item in range(5) %} -->
|
<!-- {% for item in range(5) %} -->
|
||||||
<!-- <record id="object{{ item }}" model="{{ model }}"> -->
|
<!-- <record id="object{{ item }}" model="{{ model }}"> -->
|
||||||
<!-- <field name="name">Object {{ item }}</field> -->
|
<!-- <field name="name">Object {{ item }}</field> -->
|
||||||
<!-- </record> -->
|
<!-- </record> -->
|
||||||
<!-- {% endfor %} -->
|
<!-- {% endfor %} -->
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from openerp import fields
|
from openerp import models, fields, api
|
||||||
from openerp import models
|
|
||||||
|
|
||||||
# class {{ name|snake }}(models.Model):
|
# class {{ name|snake }}(models.Model):
|
||||||
# _name = '{{ name|snake }}.{{ name|snake }}'
|
# _name = '{{ name|snake }}.{{ name|snake }}'
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
<openerp>
|
<openerp>
|
||||||
<data>
|
<data>
|
||||||
<!-- <template id="listing"> -->
|
<!-- <template id="listing"> -->
|
||||||
<!-- <ul> -->
|
<!-- <ul> -->
|
||||||
<!-- <li t-foreach="objects" t-as="object"> -->
|
<!-- <li t-foreach="objects" t-as="object"> -->
|
||||||
<!-- <a t-attf-href="#{ root }/objects/#{ object.id }"> -->
|
<!-- <a t-attf-href="#{ root }/objects/#{ object.id }"> -->
|
||||||
<!-- <t t-esc="object.display_name"/> -->
|
<!-- <t t-esc="object.display_name"/> -->
|
||||||
<!-- </a> -->
|
<!-- </a> -->
|
||||||
<!-- </li> -->
|
<!-- </li> -->
|
||||||
<!-- </ul> -->
|
<!-- </ul> -->
|
||||||
<!-- </template> -->
|
<!-- </template> -->
|
||||||
<!-- <template id="object"> -->
|
<!-- <template id="object"> -->
|
||||||
<!-- <h1><t t-esc="object.display_name"/></h1> -->
|
<!-- <h1><t t-esc="object.display_name"/></h1> -->
|
||||||
<!-- <dl> -->
|
<!-- <dl> -->
|
||||||
<!-- <t t-foreach="object._fields" t-as="field"> -->
|
<!-- <t t-foreach="object._fields" t-as="field"> -->
|
||||||
<!-- <dt><t t-esc="field"/></dt> -->
|
<!-- <dt><t t-esc="field"/></dt> -->
|
||||||
<!-- <dd><t t-esc="object[field]"/></dd> -->
|
<!-- <dd><t t-esc="object[field]"/></dd> -->
|
||||||
<!-- </t> -->
|
<!-- </t> -->
|
||||||
<!-- </dl> -->
|
<!-- </dl> -->
|
||||||
<!-- </template> -->
|
<!-- </template> -->
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
Loading…
Reference in New Issue