Apply patch which is iven by the Amit for the view - Dashboard

bzr revid: mga@tinyerp.com-20080807105747-8f5kp16zd7bxixoz
This commit is contained in:
mga@tinyerp.com 2008-08-07 16:27:47 +05:30
parent 612cd6dbf0
commit 748450b9f9
1 changed files with 25 additions and 45 deletions

View File

@ -47,32 +47,14 @@ def _check_xml(self, cr, uid, ids, context={}):
return False
return True
class CustomView(osv.osv):
class view_custom(osv.osv):
_name = 'ir.ui.view.custom'
_columns = {
'name': fields.char('View Name',size=64, required=True),
'model': fields.char('Model', size=64, required=True),
'priority': fields.integer('Priority', required=True),
'type': fields.selection((
('tree','Tree'),
('form','Form'),
('graph', 'Graph'),
('calendar', 'Calendar')), 'View Type', required=True),
'arch': fields.text('View Architecture', required=True),
'inherit_id': fields.many2one('ir.ui.view', 'Inherited View'),
'field_parent': fields.char('Childs Field',size=64),
'user_id': fields.many2one('res.users', 'User'),
'ref_id': fields.many2one('ir.ui.view', 'Orignal View'),
'user_id': fields.many2one('res.users', 'User'),
'arch': fields.text('View Architecture', required=True),
}
_defaults = {
'arch': lambda *a: '<?xml version="1.0"?>\n<tree title="Unknwown">\n\t<field name="name"/>\n</tree>',
'priority': lambda *a: 16
}
_order = "priority"
_constraints = [
(_check_xml, 'Invalid XML for View Architecture!', ['arch'])
]
CustomView()
view_custom()
class view(osv.osv):
_name = 'ir.ui.view'
@ -100,13 +82,13 @@ class view(osv.osv):
def read(self,cr, uid, ids, fields=None, context={}, load='_classic_read'):
if type(ids) != type([]):
if not isinstance(ids, (list, tuple)):
ids = [ids]
result = super(view, self).read(cr, uid, ids, fields, context, load)
for rs in result:
if rs.get('model',False) == 'board.board':
if rs.get('model') == 'board.board':
cr.execute("select id,arch,ref_id from ir_ui_view_custom where user_id=%d and ref_id=%d", (uid, rs['id']))
oview = cr.dictfetchall()
if oview:
@ -115,28 +97,26 @@ class view(osv.osv):
return result
def write(self, cr, uid, ids, vals, context={}):
exist = self.pool.get('ir.ui.view').browse(cr, uid, ids[0])
if exist.model == 'board.board':
vids = self.pool.get('ir.ui.view.custom').search(cr, uid, [('user_id','=',uid), ('ref_id','=',ids[0])])
if not vids:
old = self.pool.get('ir.ui.view').read(cr, uid, ids)[0]
del old['id']
old['user_id'] = uid
old['ref_id'] = ids[0]
nid = self.pool.get('ir.ui.view.custom').create(cr, uid, old)
result = self.pool.get('ir.ui.view.custom').write(cr, uid, [nid], vals)
return result
if not isinstance(ids, (list, tuple)):
ids = [ids]
exist = self.pool.get('ir.ui.view').browse(cr, uid, ids[0])
if exist.model == 'board.board' and 'arch' in vals:
vids = self.pool.get('ir.ui.view.custom').search(cr, uid, [('user_id','=',uid), ('ref_id','=',ids[0])])
vals2 = {'user_id': uid, 'ref_id': ids[0], 'arch': vals.pop('arch')}
# write fields except arch to the `ir.ui.view`
result = super(view, self).write(cr, uid, vids, vals, context)
if not vids:
self.pool.get('ir.ui.view.custom').create(cr, uid, vals2)
else:
nid = vids
result = self.pool.get('ir.ui.view.custom').write(cr, uid, nid, vals)
result = super(view, self).write(cr, uid, vids, vals, context)
return result
result = super(view, self).write(cr, uid, ids, vals, context)
cr.commit()
return result
self.pool.get('ir.ui.view.custom').write(cr, uid, vids, vals2)
return result
return super(view, self).write(cr, uid, ids, vals, context)
view()
class view_sc(osv.osv):