[ADD] osv.osv, base: added generic xml_id getter + added xml_id to views on ir.ui.views + minor fine-tuning of admin views

bzr revid: odo@openerp.com-20100526230409-s88mp2gma1li8n9t
This commit is contained in:
Olivier Dony 2010-05-27 01:04:09 +02:00
parent 5bd41dff2a
commit a6d7630bac
3 changed files with 43 additions and 11 deletions

View File

@ -609,13 +609,21 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Views">
<field name="name" select="1"/>
<field name="type" select="1"/>
<field name="model" select="1"/>
<field name="field_parent"/>
<field name="priority"/>
<field name="inherit_id" select="1"/>
<field colspan="4" name="arch"/>
<group colspan="2" col="2">
<separator string="General" colspan="2"/>
<field name="name" select="1"/>
<field name="type" select="1"/>
<field name="model" select="1"/>
<field name="priority"/>
</group>
<group colspan="2" col="2">
<separator string="Advanced" colspan="2"/>
<field name="field_parent"/>
<field name="inherit_id" select="1"/>
<field name="xml_id" select="1"/>
</group>
<separator string="View architecture" colspan="4"/>
<field colspan="4" nolabel="1" name="arch"/>
</form>
</field>
</record>
@ -628,9 +636,10 @@
<field name="name"/>
<field name="type"/>
<field name="model"/>
<field name="xml_id"/>
<field name="inherit_id"/>
<field name="priority"/>
<field name="field_parent"/>
<field name="priority"/>
</tree>
</field>
</record>
@ -961,7 +970,7 @@
<field name="module" select="1" />
<field name="name" select="1" />
<field name="model" select="1" />
<field name="res_id" select="2" />
<field name="res_id" select="1" />
<field name="noupdate" select="2" />
<field name="date_update" />
<field name="date_init" />

View File

@ -66,10 +66,12 @@ class view(osv.osv):
'arch': fields.text('View Architecture', required=True),
'inherit_id': fields.many2one('ir.ui.view', 'Inherited View', ondelete='cascade'),
'field_parent': fields.char('Child Field',size=64),
'xml_id': fields.function(osv.osv.get_xml_id, type='char', size=128, string="XML ID",
method=True),
}
_defaults = {
'arch': lambda *a: '<?xml version="1.0"?>\n<tree string="Unknwown">\n\t<field name="name"/>\n</tree>',
'priority': lambda *a: 16
'arch': '<?xml version="1.0"?>\n<tree string="Unknwown">\n\t<field name="name"/>\n</tree>',
'priority': 16
}
_order = "priority"
_constraints = [

View File

@ -3923,5 +3923,26 @@ class orm(orm_template):
return False
return True
def get_xml_id(self, cr, uid, ids, *args, **kwargs):
"""Find out the XML ID of any database record, if there
is one. This method works as a possible implementation
for a function field, to be able to add it to any
model object easily, referencing it as 'osv.osv.get_xml_id'.
get_xml_id(cr, uid, ids) -> { 'id': 'module.xml_id' }
:return: the fully qualified XML ID of the given object,
defaulting to an empty string when there's none.
"""
result = dict.fromkeys(ids, '')
model_data_obj = self.pool.get('ir.model.data')
data_ids = model_data_obj.search(cr,uid,
[('model','=',self._name),('res_id','in',ids)])
data_results = model_data_obj.read(cr,uid,data_ids,
['name','module','res_id'])
for record in data_results:
result[record['res_id']] = '%(module)s.%(name)s' % record
return result
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: