Browse Source

Only replace the docs key if it is missing.

pull/21/head
Jairo Llopis 10 years ago
parent
commit
2c2cf1904c
  1. 11
      report_xml/models.py

11
report_xml/models.py

@ -88,11 +88,16 @@ class XSDCheckedReport(models.AbstractModel):
@api.multi @api.multi
def render_html(self, data=None): def render_html(self, data=None):
"""Return the XML report after checking it against an XSD."""
"""Return the XML report after checking it against an XSD.
If ``context`` contains a dict called ``docargs``, it will be used as
the Qweb context. The special key ``docs`` will be added to ``docargs``
automatically if missing.
docargs = self.env.context.get("docargs", dict()) docargs = self.env.context.get("docargs", dict())
docargs["docs"] = (self.env[self.env.context["active_model"]]
.browse(self.env.context["active_ids"]))
xsd = etree.XMLSchema(etree.XML(self.xsd())) xsd = etree.XMLSchema(etree.XML(self.xsd()))
if "docs" not in docargs:
docargs["docs"] = (self.env[self.env.context["active_model"]]
.browse(self.env.context["active_ids"]))
parser = etree.XMLParser(schema=xsd) parser = etree.XMLParser(schema=xsd)
result = (self.env["report"] result = (self.env["report"]
.render(self._name[len("report."):], docargs) .render(self._name[len("report."):], docargs)

Loading…
Cancel
Save