From b12d1ced1be620d10160492dab7a970e1c228d5c Mon Sep 17 00:00:00 2001
From: "mga@tinyerp.com" <>
Date: Fri, 25 Jul 2008 15:50:22 +0530
Subject: [PATCH] change board functionality * remove fields_view_get method
from board object * view will be created from the board object and linked to
the board * now view, action, for board works same as board loads from the
xml file
bzr revid: mga@tinyerp.com-20080725102022-v1xrcfvsijg0f923
---
addons/board/board.py | 57 ++++++++++++++++++++++++++++-
addons/board/board_view.xml | 1 +
addons/board/wizard/board_wizard.py | 4 +-
3 files changed, 59 insertions(+), 3 deletions(-)
diff --git a/addons/board/board.py b/addons/board/board.py
index ed7104ab653..df82b9d349a 100644
--- a/addons/board/board.py
+++ b/addons/board/board.py
@@ -33,10 +33,64 @@ from osv import fields,osv
class board_board(osv.osv):
_name = 'board.board'
+
+ def create_view(self, cr, uid, ids, context):
+
+ board = self.pool.get('board.board').browse(cr, uid, ids, 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))
+
+ return arch
+
+ def write(self, cr, uid, ids, vals, context={}):
+ result = super(board_board, self).write(cr, uid, ids, vals, context)
+ cr.commit()
+
+ board = self.pool.get('board.board').read(cr, uid, ids)[0]
+ view = {
+ 'arch': self.create_view(cr, uid, ids[0], context),
+ }
+ print board
+ self.pool.get('ir.ui.view').write(cr, uid, [board['view_id'][0]], view)
+
+ return result
+
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)
+ id = super(board_board, self).create(cr, user, vals, context)
+ view_id = self.pool.get('ir.ui.view').create(cr, user, {
+ 'name': vals['name'],
+ 'model':'board.board',
+ 'priority':16,
+ 'type': 'form',
+ 'arch': self.create_view(cr, user, id, context),
+ })
+ self.pool.get('board.board').write(cr, user, [id], {'view_id':view_id})
+ return id
+
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)
@@ -74,6 +128,7 @@ class board_board(osv.osv):
return res
_columns = {
'name': fields.char('Dashboard', size=64, required=True),
+ 'view_id': fields.many2one('ir.ui.view', 'Board View'),
'line_ids': fields.one2many('board.board.line', 'board_id', 'Action Views')
}
board_board()
diff --git a/addons/board/board_view.xml b/addons/board/board_view.xml
index 3df58f36c20..1997204230d 100644
--- a/addons/board/board_view.xml
+++ b/addons/board/board_view.xml
@@ -74,6 +74,7 @@
+
diff --git a/addons/board/wizard/board_wizard.py b/addons/board/wizard/board_wizard.py
index 7a81a9eabe6..aff2c3437c8 100644
--- a/addons/board/wizard/board_wizard.py
+++ b/addons/board/wizard/board_wizard.py
@@ -53,8 +53,8 @@ def board_menu_create(self, cr, uid, data, context):
'name': board.name,
'view_type':'form',
'view_mode':'form',
- 'context': "{'view':%d}" % (board.id,),
- 'res_model': 'board.board'
+ 'res_model': 'board.board',
+ 'view_id': board.view_id,
})
pool.get('ir.ui.menu').create(cr, uid, {
'name': data['form']['menu_name'],