[ADD] xml data <template> helper
bzr revid: fme@openerp.com-20130722101210-idtrfwva7e903oq8
This commit is contained in:
parent
81ec0dbc1e
commit
cb56924437
|
@ -202,6 +202,20 @@
|
||||||
</rng:element>
|
</rng:element>
|
||||||
</rng:define>
|
</rng:define>
|
||||||
|
|
||||||
|
<rng:define name="template">
|
||||||
|
<rng:element name="template">
|
||||||
|
<rng:zeroOrMore>
|
||||||
|
<rng:choice>
|
||||||
|
<rng:attribute>
|
||||||
|
<rng:anyName/>
|
||||||
|
</rng:attribute>
|
||||||
|
<rng:text/>
|
||||||
|
<rng:ref name="any"/>
|
||||||
|
</rng:choice>
|
||||||
|
</rng:zeroOrMore>
|
||||||
|
</rng:element>
|
||||||
|
</rng:define>
|
||||||
|
|
||||||
<rng:define name="delete">
|
<rng:define name="delete">
|
||||||
<rng:element name="delete">
|
<rng:element name="delete">
|
||||||
<rng:attribute name="model" />
|
<rng:attribute name="model" />
|
||||||
|
@ -280,6 +294,7 @@
|
||||||
<rng:text/>
|
<rng:text/>
|
||||||
<rng:ref name="menuitem" />
|
<rng:ref name="menuitem" />
|
||||||
<rng:ref name="record" />
|
<rng:ref name="record" />
|
||||||
|
<rng:ref name="template" />
|
||||||
<rng:ref name="delete" />
|
<rng:ref name="delete" />
|
||||||
<rng:ref name="wizard" />
|
<rng:ref name="wizard" />
|
||||||
<rng:ref name="act_window" />
|
<rng:ref name="act_window" />
|
||||||
|
|
|
@ -828,6 +828,32 @@ form: module.record_id""" % (xml_id,)
|
||||||
cr.commit()
|
cr.commit()
|
||||||
return rec_model, id
|
return rec_model, id
|
||||||
|
|
||||||
|
def _tag_template(self, cr, el, data_node=None):
|
||||||
|
# This helper transforms a <template> element into a <record> and forwards it
|
||||||
|
tpl_id = el.get('id', el.get('t-name', '')).encode('ascii')
|
||||||
|
module = self.module
|
||||||
|
if '.' in tpl_id:
|
||||||
|
module, tpl_id = tpl_id.split('.', 1)
|
||||||
|
# set the full template name for qweb <module>.<id>
|
||||||
|
el.attrib['t-name'] = '%s.%s' % (module, tpl_id)
|
||||||
|
el.attrib.pop('id', None)
|
||||||
|
|
||||||
|
record = etree.Element('record')
|
||||||
|
record_attrs = {
|
||||||
|
'id': tpl_id,
|
||||||
|
'model': 'ir.ui.view',
|
||||||
|
}
|
||||||
|
for att in ['forcecreate', 'context']:
|
||||||
|
if att in el.attrib:
|
||||||
|
record_attrs[att] = el.attrib.pop(att)
|
||||||
|
|
||||||
|
record.attrib.update(record_attrs)
|
||||||
|
record.append(etree.fromstring('<field name="name">%s</field>' % tpl_id))
|
||||||
|
record.append(etree.fromstring('<field name="type">qweb</field>'))
|
||||||
|
record.append(etree.fromstring('<field name="arch" type="xml"/>'))
|
||||||
|
record[-1].append(el)
|
||||||
|
return self._tag_record(cr, record, data_node)
|
||||||
|
|
||||||
def id_get(self, cr, id_str):
|
def id_get(self, cr, id_str):
|
||||||
if id_str in self.idref:
|
if id_str in self.idref:
|
||||||
return self.idref[id_str]
|
return self.idref[id_str]
|
||||||
|
@ -872,6 +898,7 @@ form: module.record_id""" % (xml_id,)
|
||||||
self._tags = {
|
self._tags = {
|
||||||
'menuitem': self._tag_menuitem,
|
'menuitem': self._tag_menuitem,
|
||||||
'record': self._tag_record,
|
'record': self._tag_record,
|
||||||
|
'template': self._tag_template,
|
||||||
'assert': self._tag_assert,
|
'assert': self._tag_assert,
|
||||||
'report': self._tag_report,
|
'report': self._tag_report,
|
||||||
'wizard': self._tag_wizard,
|
'wizard': self._tag_wizard,
|
||||||
|
|
Loading…
Reference in New Issue