[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:
parent
5bd41dff2a
commit
a6d7630bac
|
@ -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" />
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
Loading…
Reference in New Issue