test academy
bzr revid: api@openerp.com-20120925091126-zdthas0x2exi1bep
This commit is contained in:
@@ -0,0 +1 @@
|
||||
import openacademy
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
'name': 'Open Academy',
|
||||
'version': '1.0',
|
||||
'depends': ['base'],
|
||||
'author': 'Arnaud_Pineux',
|
||||
'category': 'Test',
|
||||
'description': """
|
||||
Open Academy module for managing trainings:
|
||||
- training courses
|
||||
- training sessions
|
||||
- attendees registration """,
|
||||
'data': ['openacademy_view.xml'],
|
||||
'demo': [],
|
||||
'installable': True,
|
||||
'application' : True,
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
from openerp.osv import osv, fields
|
||||
|
||||
class Course (osv.Model):
|
||||
_name = "openacademy.course"
|
||||
_description = "OpenAcademy course"
|
||||
_column = {
|
||||
'name': fields.char('Course Title',size=128,required=True),
|
||||
'description': fields.text('Description'),
|
||||
'responsible_id': fields.many2one('res.users',string='responsible',ondelete='set null'),
|
||||
'session_ids': fields.one2many('openacademy.session','course_id','Session'),
|
||||
}
|
||||
class Session(osv.Model):
|
||||
_name = 'openacademy.session'
|
||||
_description = "OpenAcademy session"
|
||||
_columns = {
|
||||
'name': fields.char('Session Title', size=128, required=True),
|
||||
'start_date': fields.date('Start Date'),
|
||||
'duration': fields.float('Duration', digits=(6,2), help="Duration in days"),
|
||||
'seats': fields.integer('Number of seats'),
|
||||
'instructor_id': fields.many2one('res.partner','Intructor'),
|
||||
'course_id': fields.many2one('openacademy.course','course',required=True,ondelete='cascade'),
|
||||
'attendee_ids': fields.one2many('openacademy.attendee','session_id','Attendees'),
|
||||
}
|
||||
class Attendee(osv.Model):
|
||||
_name = 'openacademy.attendee'
|
||||
_description = "OpenAcademy Attendee"
|
||||
_columns = {
|
||||
'partner_id': fields.many2one('res.partner','Partner',required=True,ondelete='cascade'),
|
||||
'session_id': fields.many2one('openacademy.session','Session',required=True,ondelete='cascade'),
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record model='ir.actions.act_window' id='course_list_action'>
|
||||
<field name='name'>Courses</field>
|
||||
<field name='res_model'>openacademy.course</field>
|
||||
<field name='view_type'>form</field>
|
||||
<field name='view_mode'>tree,form</field>
|
||||
</record>
|
||||
|
||||
<record model='ir.ui.view' id='course_tree_view'>
|
||||
<field name='name'>openacadamy.course.tree</field>
|
||||
<field name='model'>openacademy.course</field>
|
||||
<field name='arch' type='xml'>
|
||||
<tree string='Course Tree'>
|
||||
<field name='name'/>
|
||||
<field name='responsible_id'/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model='ir.actions.act_window' id='session_list_action'>
|
||||
<field name='name'>Sessions</field>
|
||||
<field name='res_model'>openacademy.session</field>
|
||||
<field name='view_type'>form</field>
|
||||
<field name='view_mode'>tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem id='openacademy_menu' name='openacademy' />
|
||||
<menuitem id='course_menu' name='Courses' parent='openacademy_menu' action='course_list_action' />
|
||||
<menuitem id='session_menu' name='Sessions' parent='openacademy_menu' action='session_list_action' />
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,64 @@
|
||||
|
||||
<record model="ir.ui.view" id="course_form_view">
|
||||
<field name="name">course.form</field>
|
||||
<field name="model">openacademy.course</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Course Form">
|
||||
<field name="name" />
|
||||
<field name="responsible_id" />
|
||||
<notebook colspan="4">
|
||||
<page string="Description">
|
||||
<field name="description" nolabel="1" colspan="4" />
|
||||
</page>
|
||||
<page string="Sessions">
|
||||
<field name="session_ids" nolabel="1" colspan="4" mode="tree,form">
|
||||
<tree string="Registered sessions">
|
||||
<field name="name"/>
|
||||
<field name="instructor_id"/>
|
||||
</tree>
|
||||
<form string="Registered sessions">
|
||||
<field name="name"/>
|
||||
<field name="instructor_id"/>
|
||||
</form>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- ======= SESSION ====== -->
|
||||
<record model="ir.ui.view" id="session_tree_view">
|
||||
<field name="name">session.tree</field>
|
||||
<field name="model">openacademy.session</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Session Tree">
|
||||
<field name="name"/>
|
||||
<field name="course_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="session_form_view">
|
||||
<field name="name">session.form</field>
|
||||
<field name="model">openacademy.session</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Session Form">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="General" colspan="2"/>
|
||||
<field name="course_id"/>
|
||||
<field name="name" />
|
||||
<field name="instructor_id" />
|
||||
</group>
|
||||
<separator string="Attendees" colspan="4"/>
|
||||
<field name="attendee_ids" colspan="4" nolabel="1">
|
||||
<tree string="Attendees" editable="bottom">
|
||||
<field name="partner_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
Reference in New Issue
Block a user