Apply patch which is iven by the Amit for the view - Dashboard
bzr revid: mga@tinyerp.com-20080807105747-8f5kp16zd7bxixoz
This commit is contained in:
parent
612cd6dbf0
commit
748450b9f9
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue