diff -r ac0661486568 -r 7b3fa5a7a5a3 web/views/dotgraphview.py --- a/web/views/dotgraphview.py Thu Dec 12 16:17:25 2013 +0100 +++ b/web/views/dotgraphview.py Mon Jan 06 12:01:35 2014 +0100 @@ -22,6 +22,7 @@ import tempfile import os +import codecs from logilab.mtconverter import xml_escape from logilab.common.graph import GraphGenerator, DotBackend @@ -33,30 +34,22 @@ __abstract__ = True backend_class = DotBackend backend_kwargs = {'ratio': 'compress', 'size': '30,10'} + def cell_call(self, row, col): + if 'MSIE 8' in self._cw.useragent(): + return entity = self.cw_rset.get_entity(row, col) visitor = self.build_visitor(entity) prophdlr = self.build_dotpropshandler() graphname = 'dotgraph%s' % str(entity.eid) generator = GraphGenerator(self.backend_class(graphname, None, **self.backend_kwargs)) - # map file - pmap, mapfile = tempfile.mkstemp(".map", graphname) - os.close(pmap) # image file - fd, tmpfile = tempfile.mkstemp('.png') + fd, tmpfile = tempfile.mkstemp('.svg') os.close(fd) - generator.generate(visitor, prophdlr, tmpfile, mapfile) - filekeyid = make_uid() - self._cw.session.data[filekeyid] = tmpfile - self.w(u'%s' % ( - xml_escape(entity.absolute_url(vid='tmppng', tmpfile=filekeyid)), - xml_escape(self._cw._('Data connection graph for %s') % entity.dc_title()), - graphname)) - stream = open(mapfile, 'r').read() - stream = stream.decode(self._cw.encoding) - self.w(stream) - os.unlink(mapfile) + generator.generate(visitor, prophdlr, tmpfile) + with codecs.open(tmpfile, 'rb', encoding='utf-8') as svgfile: + self.w(svgfile.read()) def build_visitor(self, entity): raise NotImplementedError