diff --git a/addons/board/board.py b/addons/board/board.py
index eda4a9228c5..7c7db853baa 100644
--- a/addons/board/board.py
+++ b/addons/board/board.py
@@ -29,17 +29,68 @@
import time
from osv import fields,osv
-class board(osv.osv):
+class board_board(osv.osv):
_name = 'board.board'
- def create(self, cr, user, vals, context={}):
- return False
- def copy(self, cr, uid, id, default=None, context={}):
- return False
+ def create(self, cr, user, vals, context=None):
+ if not 'name' in vals:
+ return False
+ return super(board_board, self).create(cr, user, vals, context)
+ def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False):
+ if context and ('view' in context):
+ board = self.pool.get('board.board').browse(cr, user, int(context['view']), context)
+ left = []
+ right = []
+ for line in board.line_ids:
+ linestr = ''
+ if line.position=='left':
+ left.append(linestr)
+ else:
+ right.append(linestr)
+ arch = """
""" % ('\n'.join(left), '\n'.join(right))
+ result = {
+ 'toolbar': {'print':[],'action':[],'relate':[]},
+ 'fields': {},
+ 'arch': arch
+ }
+ return result
+ res = super(board_board, self).fields_view_get(cr, user, view_id, view_type, context, toolbar)
+ return res
_columns = {
- 'name': fields.char('Board', size=64),
+ 'name': fields.char('Board', size=64, required=True),
+ 'line_ids': fields.one2many('board.board.line', 'board_id', 'Action Views')
}
-board()
+board_board()
+class board_line(osv.osv):
+ _name = 'board.board.line'
+ _order = 'position,sequence'
+ _columns = {
+ 'name': fields.char('Board', size=64, required=True),
+ 'sequence': fields.integer('Sequence'),
+ 'height': fields.integer('Height'),
+ 'width': fields.integer('Width'),
+ 'board_id': fields.many2one('board.board', 'Dashboard', required=True, ondelete='cascade'),
+ 'action_id': fields.many2one('ir.actions.act_window', 'Action', required=True),
+ 'position': fields.selection([('left','Left'),('right','Right')], 'Position', required=True)
+ }
+ _defaults = {
+ 'position': lambda *args: 'left'
+ }
+board_line()
class board_note_type(osv.osv):
_name = 'board.note.type'
diff --git a/addons/board/board_view.xml b/addons/board/board_view.xml
index d57e33b44c6..3a38d32f15a 100644
--- a/addons/board/board_view.xml
+++ b/addons/board/board_view.xml
@@ -39,5 +39,62 @@
action="action_view_board_note_form"
sequence="100"
id="menu_view_board_note_form"/>
+
+
+
+ board.board.tree
+ board.board
+ tree
+
+
+
+
+
+
+
+ board.board.form
+ board.board
+ form
+
+
+
+
+
+
+ Dashboard Definition
+ board.board
+ form
+ tree,form
+
+
+
+
+
+