# HG changeset patch # User Sylvain Thénault # Date 1246966004 -7200 # Node ID af4d8f75c5db274e643240abd632054b862e9b1e # Parent f178182b13052bda58ff0ae309d58c588097877e use xml_escape diff -r f178182b1305 -r af4d8f75c5db common/uilib.py --- a/common/uilib.py Tue Jul 07 13:25:24 2009 +0200 +++ b/common/uilib.py Tue Jul 07 13:26:44 2009 +0200 @@ -15,7 +15,7 @@ from urllib import quote as urlquote from StringIO import StringIO -from logilab.mtconverter import html_escape, html_unescape +from logilab.mtconverter import xml_escape, html_unescape from cubicweb.utils import ustrftime @@ -66,7 +66,7 @@ except ImportError: def rest_publish(entity, data): """default behaviour if docutils was not found""" - return html_escape(data) + return xml_escape(data) TAG_PROG = re.compile(r'', re.U) def remove_html_tags(text): @@ -108,7 +108,7 @@ if len(text_nohtml) <= length: return text # else if un-tagged text is too long, cut it - return html_escape(text_nohtml[:length] + u'...') + return xml_escape(text_nohtml[:length] + u'...') fallback_safe_cut = safe_cut @@ -220,12 +220,12 @@ attrs['class'] = attrs.pop('klass') except KeyError: pass - value += u' ' + u' '.join(u'%s="%s"' % (attr, html_escape(unicode(value))) + value += u' ' + u' '.join(u'%s="%s"' % (attr, xml_escape(unicode(value))) for attr, value in sorted(attrs.items()) if value is not None) if content: if escapecontent: - content = html_escape(unicode(content)) + content = xml_escape(unicode(content)) value += u'>%s' % (content, tag) else: value += u'/>' @@ -406,9 +406,9 @@ strings.append(body) strings.append(u'') if title: - strings.append(u'

%s

'% html_escape(title)) + strings.append(u'

%s

'% xml_escape(title)) try: - strings.append(u'

%s

' % html_escape(str(exception)).replace("\n","
")) + strings.append(u'

%s

' % xml_escape(str(exception)).replace("\n","
")) except UnicodeError: pass strings.append(u'
') @@ -416,9 +416,9 @@ strings.append(u'File %s, line ' u'%s, function ' u'%s:
'%( - html_escape(stackentry[0]), stackentry[1], html_escape(stackentry[2]))) + xml_escape(stackentry[0]), stackentry[1], xml_escape(stackentry[2]))) if stackentry[3]: - string = html_escape(stackentry[3]).decode('utf-8', 'replace') + string = xml_escape(stackentry[3]).decode('utf-8', 'replace') strings.append(u'  %s
\n' % (string)) # add locals info for each entry try: @@ -426,7 +426,7 @@ html_info = [] chars = 0 for name, value in local_context.iteritems(): - value = html_escape(repr(value)) + value = xml_escape(repr(value)) info = u'%s=%s, ' % (name, value) line_length = len(name) + len(value) chars += line_length @@ -491,5 +491,5 @@ def newfunc(*args, **kwargs): ret = function(*args, **kwargs) assert isinstance(ret, basestring) - return html_escape(ret) + return xml_escape(ret) return newfunc diff -r f178182b1305 -r af4d8f75c5db entity.py --- a/entity.py Tue Jul 07 13:25:24 2009 +0200 +++ b/entity.py Tue Jul 07 13:26:44 2009 +0200 @@ -13,7 +13,7 @@ from logilab.common.compat import all from logilab.common.decorators import cached from logilab.common.deprecation import obsolete -from logilab.mtconverter import TransformData, TransformError, html_escape +from logilab.mtconverter import TransformData, TransformError, xml_escape from rql.utils import rqlvar_maker @@ -456,7 +456,7 @@ return u'' value = printable_value(self.req, attrtype, value, props, displaytime) if format == 'text/html': - value = html_escape(value) + value = xml_escape(value) return value def mtc_transform(self, data, format, target_format, encoding, diff -r f178182b1305 -r af4d8f75c5db ext/html4zope.py --- a/ext/html4zope.py Tue Jul 07 13:25:24 2009 +0200 +++ b/ext/html4zope.py Tue Jul 07 13:26:44 2009 +0200 @@ -24,7 +24,7 @@ __docformat__ = 'reStructuredText' -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from docutils import nodes from docutils.writers.html4css1 import Writer as CSS1Writer @@ -154,7 +154,7 @@ error = u'System Message: %s%s/%s%s (%s %s)%s

\n' % ( a_start, node['type'], node['level'], a_end, self.encode(node['source']), line, backref_text) - self.body.append(u'
ReST / HTML errors:%s
' % html_escape(error)) + self.body.append(u'
ReST / HTML errors:%s
' % xml_escape(error)) def depart_system_message(self, node): pass diff -r f178182b1305 -r af4d8f75c5db ext/rest.py --- a/ext/rest.py Tue Jul 07 13:25:24 2009 +0200 +++ b/ext/rest.py Tue Jul 07 13:26:44 2009 +0200 @@ -29,7 +29,7 @@ from docutils.parsers.rst import Parser, states, directives from docutils.parsers.rst.roles import register_canonical_role, set_classes -from logilab.mtconverter import ESC_UCAR_TABLE, ESC_CAR_TABLE, html_escape +from logilab.mtconverter import ESC_UCAR_TABLE, ESC_CAR_TABLE, xml_escape from cubicweb.ext.html4zope import Writer @@ -236,5 +236,5 @@ LOGGER.exception('error while publishing ReST text') if not isinstance(data, unicode): data = unicode(data, encoding, 'replace') - return html_escape(req._('error while publishing ReST text') + return xml_escape(req._('error while publishing ReST text') + '\n\n' + data) diff -r f178182b1305 -r af4d8f75c5db goa/appobjects/components.py --- a/goa/appobjects/components.py Tue Jul 07 13:25:24 2009 +0200 +++ b/goa/appobjects/components.py Tue Jul 07 13:26:44 2009 +0200 @@ -7,7 +7,7 @@ """ __docformat__ = "restructuredtext en" -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb import typed_eid from cubicweb.selectors import one_line_rset, match_search_state, accept @@ -74,7 +74,7 @@ label = display_name(req, etype, 'plural') view = self.vreg.select_view('list', req, req.etype_rset(etype)) url = view.url() - etypelink = u' %s' % (html_escape(url), label) + etypelink = u' %s' % (xml_escape(url), label) yield (label, etypelink, self.add_entity_link(eschema, req)) ManageView.entity_types = entity_types_no_count diff -r f178182b1305 -r af4d8f75c5db goa/appobjects/dbmgmt.py --- a/goa/appobjects/dbmgmt.py Tue Jul 07 13:25:24 2009 +0200 +++ b/goa/appobjects/dbmgmt.py Tue Jul 07 13:26:44 2009 +0200 @@ -12,7 +12,7 @@ from pickle import loads, dumps from logilab.common.decorators import cached -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb.selectors import none_rset, match_user_groups from cubicweb.common.view import StartupView @@ -54,7 +54,7 @@ break values.append('__session=%s' % cookie['__session'].value) self.w(u"

pass this flag to the client: --cookie='%s'

" - % html_escape('; '.join(values))) + % xml_escape('; '.join(values))) @@ -148,7 +148,7 @@ % cpath) self.w(u'
click here to ' 'delete all datastore content so process can be ' - 'reinitialized
' % html_escape(self.req.base_url())) + 'reinitialized
' % xml_escape(self.req.base_url())) Put(status) @property @@ -159,11 +159,11 @@ repo=self.config.repository()) def msg(self, msg): - self.w(u'
%s
' % html_escape(msg)) + self.w(u'
%s
' % xml_escape(msg)) def redirect(self, msg): raise Redirect(self.req.build_url('', msg)) def continue_link(self): - self.w(u'continue
' % html_escape(self.req.url())) + self.w(u'continue
' % xml_escape(self.req.url())) class ContentClear(StartupView): diff -r f178182b1305 -r af4d8f75c5db view.py --- a/view.py Tue Jul 07 13:25:24 2009 +0200 +++ b/view.py Tue Jul 07 13:26:44 2009 +0200 @@ -12,7 +12,7 @@ from cStringIO import StringIO from logilab.common.deprecation import obsolete -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb import NotAnEntity from cubicweb.selectors import yes, non_final_entity, nonempty_rset, none_rset @@ -219,7 +219,7 @@ def wdata(self, data): """simple helper that escapes `data` and writes into `self.w`""" - self.w(html_escape(data)) + self.w(xml_escape(data)) def html_headers(self): """return a list of html headers (eg something to be inserted between @@ -440,10 +440,10 @@ def cb(*args): _cb(*args) cbname = self.req.register_onetime_callback(cb, *args) - return self.build_js(cbname, html_escape(msg or '')) + return self.build_js(cbname, xml_escape(msg or '')) def build_update_js_call(self, cbname, msg): - rql = html_escape(self.rset.printable_rql()) + rql = xml_escape(self.rset.printable_rql()) return "javascript:userCallbackThenUpdateUI('%s', '%s', '%s', '%s', '%s', '%s')" % ( cbname, self.id, rql, msg, self.__registry__, self.div_id()) diff -r f178182b1305 -r af4d8f75c5db web/box.py --- a/web/box.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/box.py Tue Jul 07 13:26:44 2009 +0200 @@ -8,7 +8,7 @@ __docformat__ = "restructuredtext en" _ = unicode -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb import Unauthorized, role as get_role, target as get_target from cubicweb.selectors import (one_line_rset, primary_view, @@ -74,7 +74,7 @@ .format_actions method """ if escape: - title = html_escape(title) + title = xml_escape(title) return self.box_action(self._action(title, path, **kwargs)) def _action(self, title, path, **kwargs): diff -r f178182b1305 -r af4d8f75c5db web/component.py --- a/web/component.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/component.py Tue Jul 07 13:26:44 2009 +0200 @@ -9,7 +9,7 @@ _ = unicode from logilab.common.deprecation import class_renamed -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb import role from cubicweb.utils import merge_dicts @@ -117,7 +117,7 @@ def page_link(self, path, params, start, stop, content): url = self.build_url(path, **merge_dicts(params, {self.start_param : start, self.stop_param : stop,})) - url = html_escape(url) + url = xml_escape(url) if start == self.starting_from: return self.selected_page_link_templ % (url, content, content) return self.page_link_templ % (url, content, content) @@ -130,7 +130,7 @@ stop = start + self.page_size - 1 url = self.build_url(**merge_dicts(params, {self.start_param : start, self.stop_param : stop,})) - url = html_escape(url) + url = xml_escape(url) return self.previous_page_link_templ % (url, title, content) def next_link(self, params, content='>>', title=_('next_results')): @@ -140,7 +140,7 @@ stop = start + self.page_size - 1 url = self.build_url(**merge_dicts(params, {self.start_param : start, self.stop_param : stop,})) - url = html_escape(url) + url = xml_escape(url) return self.next_page_link_templ % (url, title, content) diff -r f178182b1305 -r af4d8f75c5db web/facet.py --- a/web/facet.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/facet.py Tue Jul 07 13:26:44 2009 +0200 @@ -12,7 +12,7 @@ from copy import deepcopy from datetime import date, datetime, timedelta -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from logilab.common.graph import has_path from logilab.common.decorators import cached @@ -71,7 +71,7 @@ def filter_hiddens(w, **kwargs): for key, val in kwargs.items(): w(u'' % ( - key, html_escape(val))) + key, xml_escape(val))) def _may_be_removed(rel, schema, mainvar): @@ -587,11 +587,11 @@ self.items.append(item) def _render(self): - title = html_escape(self.facet.title) - facetid = html_escape(self.facet.id) + title = xml_escape(self.facet.title) + facetid = xml_escape(self.facet.id) self.w(u'
\n' % facetid) self.w(u'
%s
\n' % - (html_escape(facetid), title)) + (xml_escape(facetid), title)) if self.facet.support_and(): _ = self.facet.req._ self.w(u''' ''' % (not self.propval('visible') and 'hidden' or '', - self.build_url('view'), html_escape(rql), req._('full text or RQL query'), req.next_tabindex(), + self.build_url('view'), xml_escape(rql), req._('full text or RQL query'), req.next_tabindex(), req.next_tabindex())) if self.req.search_state[0] != 'normal': self.w(u'' @@ -202,7 +202,7 @@ url = self.build_url(rql=newrql, __restrrql=restrrql, __restrtype=etype, __restrtypes=','.join(restrtypes)) html.append(u'%s' % ( - html_escape(url), elabel)) + xml_escape(url), elabel)) rqlst.recover() if on_etype: url = self.build_url(rql=restrrql) diff -r f178182b1305 -r af4d8f75c5db web/views/basecontrollers.py --- a/web/views/basecontrollers.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/views/basecontrollers.py Tue Jul 07 13:26:44 2009 +0200 @@ -15,7 +15,7 @@ import simplejson from logilab.common.decorators import cached -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb import NoSelectableObject, ValidationError, ObjectNotFound, typed_eid from cubicweb.utils import strptime @@ -411,7 +411,7 @@ if rset: output = self.view(vid, rset) if vid == 'textoutofcontext': - output = html_escape(output) + output = xml_escape(output) else: output = default return (success, args, output) diff -r f178182b1305 -r af4d8f75c5db web/views/baseforms.py --- a/web/views/baseforms.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/views/baseforms.py Tue Jul 07 13:26:44 2009 +0200 @@ -12,7 +12,7 @@ from simplejson import dumps -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from logilab.common.decorators import cached from cubicweb.selectors import (specified_etype_implements, accepts_etype_compat, @@ -148,7 +148,7 @@ output = [] for name, value, iid in self._hiddens: if isinstance(value, basestring): - value = html_escape(value) + value = xml_escape(value) if iid: output.append(u'' % (iid, name, value)) @@ -249,14 +249,14 @@ w(u'[x]' % (_('cancel this insert'), row[2])) w(u'%s' - % (row[1], row[4], html_escape(row[5]))) + % (row[1], row[4], xml_escape(row[5]))) w(u'') w(u'') w(u'' % eid) w(u'') w(u'%s' % _('add relation')) w(u'
""" % (hidden and 'hidden' or '', divid, selectid, - html_escape(dumps(entity.eid)), is_cell and 'true' or 'null', relname, + xml_escape(dumps(entity.eid)), is_cell and 'true' or 'null', relname, '\n'.join(options)) def _get_select_options(self, entity, rschema, target): @@ -127,13 +127,13 @@ for eview, reid in form.form_field_vocabulary(field, limit): if reid is None: options.append('' - % html_escape(eview)) + % xml_escape(eview)) else: optionid = relation_id(eid, rtype, target, reid) if optionid not in pending_inserts: # prefix option's id with letters to make valid XHTML wise options.append('' % - (optionid, reid, html_escape(eview))) + (optionid, reid, xml_escape(eview))) return options def _get_search_options(self, entity, rschema, target, targettypes): @@ -146,7 +146,7 @@ __mode=mode) options.append((eschema.display_name(self.req), '' % ( - html_escape(url), _('Search for'), eschema.display_name(self.req)))) + xml_escape(url), _('Search for'), eschema.display_name(self.req)))) return [o for l, o in sorted(options)] def _get_basket_options(self, entity, rschema, target, targettypes): @@ -157,7 +157,7 @@ target, targettypes): optionid = relation_id(entity.eid, rtype, target, basketeid) options.append('' % ( - optionid, basketeid, _('link to each item in'), html_escape(basketname))) + optionid, basketeid, _('link to each item in'), xml_escape(basketname))) return options def _get_basket_links(self, ueid, target, targettypes): diff -r f178182b1305 -r af4d8f75c5db web/views/emailaddress.py --- a/web/views/emailaddress.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/views/emailaddress.py Tue Jul 07 13:26:44 2009 +0200 @@ -7,7 +7,7 @@ """ __docformat__ = "restructuredtext en" -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb.schema import display_name from cubicweb.selectors import implements @@ -80,9 +80,9 @@ if entity.reverse_primary_email: self.w(u'') if entity.alias: - self.w(u'%s <' % html_escape(entity.alias)) - self.w('%s' % (html_escape(entity.absolute_url()), - html_escape(entity.display_address()))) + self.w(u'%s <' % xml_escape(entity.alias)) + self.w('%s' % (xml_escape(entity.absolute_url()), + xml_escape(entity.display_address()))) if entity.alias: self.w(u'>\n') if entity.reverse_primary_email: @@ -109,8 +109,8 @@ mailto = "mailto:%s <%s>" % (alias, entity.display_address()) else: mailto = "mailto:%s" % entity.display_address() - self.w(u'%s' % (html_escape(mailto), - html_escape(entity.display_address()))) + self.w(u'%s' % (xml_escape(mailto), + xml_escape(entity.display_address()))) if entity.reverse_primary_email: self.w(u'') diff -r f178182b1305 -r af4d8f75c5db web/views/facets.py --- a/web/views/facets.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/views/facets.py Tue Jul 07 13:26:44 2009 +0200 @@ -9,7 +9,7 @@ from simplejson import dumps -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb.vregistry import objectify_selector from cubicweb.selectors import (non_final_entity, two_lines_rset, @@ -85,7 +85,7 @@ self.displayBookmarkLink(rset) w = self.w w(u'
' % ( - divid, html_escape(dumps([divid, vid, paginate, self.facetargs()])))) + divid, xml_escape(dumps([divid, vid, paginate, self.facetargs()])))) w(u'
') hiddens = {'facets': ','.join(wdg.facet.id for wdg in widgets), 'baserql': baserql} @@ -110,8 +110,8 @@ bk_add_url = self.build_url('add/Bookmark', path=bk_path, title=bk_title, __linkto=linkto) bk_base_url = self.build_url('add/Bookmark', title=bk_title, __linkto=linkto) bk_link = u'%s' % ( - html_escape(bk_base_url), - html_escape(bk_add_url), + xml_escape(bk_base_url), + xml_escape(bk_add_url), self.req._('bookmark this search')) self.w(self.bkLinkBox_template % bk_link) diff -r f178182b1305 -r af4d8f75c5db web/views/formrenderers.py --- a/web/views/formrenderers.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/views/formrenderers.py Tue Jul 07 13:26:44 2009 +0200 @@ -8,7 +8,7 @@ __docformat__ = "restructuredtext en" from logilab.common import dictattr -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from simplejson import dumps @@ -144,17 +144,17 @@ else: action = form.action tag = ('' def display_field(self, form, field): @@ -298,7 +298,7 @@ entity = form.edited_entity values = form.form_previous_values qeid = eid_param('eid', entity.eid) - cbsetstate = "setCheckboxesState2('eid', %s, 'checked')" % html_escape(dumps(entity.eid)) + cbsetstate = "setCheckboxesState2('eid', %s, 'checked')" % xml_escape(dumps(entity.eid)) w(u'' % (entity.row % 2 and u'even' or u'odd')) # XXX turn this into a widget used on the eid field w(u'%s' % checkbox('eid', entity.eid, checked=qeid in values)) @@ -411,7 +411,7 @@ w(u'[x]' % (_('cancel this insert'), row[2])) w(u'%s' - % (row[1], row[4], html_escape(row[5]))) + % (row[1], row[4], xml_escape(row[5]))) w(u'') w(u'') w(u'' % eid) @@ -419,7 +419,7 @@ w(u'%s' % _('add relation')) w(u'' % divid) filter_hiddens(self.w, facets=','.join(wdg.facet.id for wdg in fwidgets), baserql=baserql) @@ -178,7 +178,7 @@ box = MenuWidget('', 'tableActionsBox', _class='', islist=False) label = '%s' % ( self.req.datadir_url + 'liveclipboard-icon.png', - html_escape(self.req._('action(s) on this selection'))) + xml_escape(self.req._('action(s) on this selection'))) menu = PopupBoxMenu(label, isitem=False, link_class='actionsBox', ident='%sActions' % divid) box.append(menu) diff -r f178182b1305 -r af4d8f75c5db web/views/tabs.py --- a/web/views/tabs.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/views/tabs.py Tue Jul 07 13:26:44 2009 +0200 @@ -8,7 +8,7 @@ __docformat__ = "restructuredtext en" -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb import NoSelectableObject, role from cubicweb.selectors import partial_has_related_entities @@ -47,7 +47,7 @@ elif rset: urlparams['rql'] = rset.printable_rql() w(u'
' % ( - vid, html_escape(self.build_url('json', **urlparams)))) + vid, xml_escape(self.build_url('json', **urlparams)))) if show_spinbox: w(u'%s' % (vid, self.req._('loading'))) diff -r f178182b1305 -r af4d8f75c5db web/views/timeline.py --- a/web/views/timeline.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/views/timeline.py Tue Jul 07 13:26:44 2009 +0200 @@ -11,7 +11,7 @@ import simplejson -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb.interfaces import ICalendarable from cubicweb.selectors import implements @@ -68,7 +68,7 @@ if start is None and stop is None: return None event_data = {'start': start.strftime(self.date_fmt), - 'title': html_escape(entity.dc_title()), + 'title': xml_escape(entity.dc_title()), 'description': entity.dc_description(format='text/html'), 'link': entity.absolute_url(), } @@ -95,7 +95,7 @@ additional = u'' self.w(u'
' % - (self.widget_class, html_escape(loadurl), + (self.widget_class, xml_escape(loadurl), additional)) self.w(u'
') diff -r f178182b1305 -r af4d8f75c5db web/views/timetable.py --- a/web/views/timetable.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/views/timetable.py Tue Jul 07 13:26:44 2009 +0200 @@ -6,7 +6,7 @@ :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb.interfaces import ITimetableViews from cubicweb.selectors import implements @@ -190,7 +190,7 @@ if value: task_descr, first_row = value if first_row: - url = html_escape(task_descr.task.absolute_url(vid="edition")) + url = xml_escape(task_descr.task.absolute_url(vid="edition")) self.w(u' 
' % ( task_descr.lines, task_descr.color, filled_klasses[kj], url)) task_descr.task.view('tooltip', w=self.w) diff -r f178182b1305 -r af4d8f75c5db web/views/treeview.py --- a/web/views/treeview.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/views/treeview.py Tue Jul 07 13:26:44 2009 +0200 @@ -8,7 +8,7 @@ __docformat__ = "restructuredtext en" from logilab.common.decorators import monkeypatch -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb.utils import make_uid from cubicweb.interfaces import ITree @@ -113,7 +113,7 @@ w(u'
  • ' % u' '.join(liclasses)) else: rql = entity.children_rql() % {'x': entity.eid} - url = html_escape(self.build_url('json', rql=rql, vid=parentvid, + url = xml_escape(self.build_url('json', rql=rql, vid=parentvid, pageid=self.req.pageid, treeid=treeid, fname='view', diff -r f178182b1305 -r af4d8f75c5db web/views/workflow.py --- a/web/views/workflow.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/views/workflow.py Tue Jul 07 13:26:44 2009 +0200 @@ -11,7 +11,7 @@ __docformat__ = "restructuredtext en" _ = unicode -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from logilab.common.graph import escape, GraphGenerator, DotBackend from cubicweb import Unauthorized, view @@ -119,7 +119,7 @@ __select__ = implements('State') def cell_call(self, row, col): - self.w(html_escape(self.view('textincontext', self.rset, + self.w(xml_escape(self.view('textincontext', self.rset, row=row, col=col))) @@ -146,8 +146,8 @@ self.w(u'

    %s

    ' % (self.req._('workflow for %s') % display_name(self.req, entity.name))) self.w(u'%s' % ( - html_escape(entity.absolute_url(vid='ewfgraph')), - html_escape(self.req._('graphical workflow for %s') % entity.name))) + xml_escape(entity.absolute_url(vid='ewfgraph')), + xml_escape(self.req._('graphical workflow for %s') % entity.name))) class WorkflowDotPropsHandler(object): diff -r f178182b1305 -r af4d8f75c5db web/views/xbel.py --- a/web/views/xbel.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/views/xbel.py Tue Jul 07 13:26:44 2009 +0200 @@ -8,7 +8,7 @@ __docformat__ = "restructuredtext en" _ = unicode -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from cubicweb.selectors import implements from cubicweb.view import EntityView @@ -42,8 +42,8 @@ def cell_call(self, row, col): entity = self.complete_entity(row, col) - self.w(u'' % html_escape(self.url(entity))) - self.w(u' %s' % html_escape(entity.dc_title())) + self.w(u'' % xml_escape(self.url(entity))) + self.w(u' %s' % xml_escape(entity.dc_title())) self.w(u'') def url(self, entity): diff -r f178182b1305 -r af4d8f75c5db web/widgets.py --- a/web/widgets.py Tue Jul 07 13:25:24 2009 +0200 +++ b/web/widgets.py Tue Jul 07 13:26:44 2009 +0200 @@ -12,7 +12,7 @@ from datetime import datetime -from logilab.mtconverter import html_escape +from logilab.mtconverter import xml_escape from yams.constraints import SizeConstraint, StaticVocabularyConstraint @@ -247,9 +247,9 @@ value = self.current_value(entity) dvalue = self.current_display_value(entity) if isinstance(value, basestring): - value = html_escape(value) + value = xml_escape(value) if isinstance(dvalue, basestring): - dvalue = html_escape(dvalue) + dvalue = xml_escape(dvalue) return u'%s' % ( self.hidden_input(entity, value), self.input_type, self.rname, dvalue, self.format_attrs()) @@ -323,9 +323,9 @@ value = self.current_value(entity) dvalue = self.current_display_value(entity) if isinstance(value, basestring): - value = html_escape(value) + value = xml_escape(value) if isinstance(dvalue, basestring): - dvalue = html_escape(dvalue) + dvalue = xml_escape(dvalue) iid = self.attrs.pop('id') if self.required(entity): cssclass = u' required' @@ -337,7 +337,7 @@ 'iid': iid, 'hidden': self.hidden_input(entity, value), 'wdgtype': self.wdgtype, - 'url': html_escape(dataurl), + 'url': xml_escape(dataurl), 'tabindex': self.attrs.pop('tabindex'), 'value': dvalue, 'attrs': self.format_attrs(), @@ -398,7 +398,7 @@ editor = self._edit_render_textarea(entity, with_format) value = self.current_value(entity) if isinstance(value, basestring): - value = html_escape(value) + value = xml_escape(value) return u'%s%s' % (self.hidden_input(entity, value), editor) def _edit_render_textarea(self, entity, with_format): @@ -406,7 +406,7 @@ self.attrs.setdefault('rows', 20) dvalue = self.current_display_value(entity) if isinstance(dvalue, basestring): - dvalue = html_escape(dvalue) + dvalue = xml_escape(dvalue) if entity.use_fckeditor(self.name): entity.req.fckeditor_config() if with_format: @@ -472,9 +472,9 @@ or entity.e_schema.has_metadata(self.name, 'encoding')): divid = '%s-%s-advanced' % (self.name, entity.eid) wdgs.append(u'%s' % - (html_escape(toggle_action(divid)), + (xml_escape(toggle_action(divid)), req._('show advanced fields'), - html_escape(req.build_url('data/puce_down.png')), + xml_escape(req.build_url('data/puce_down.png')), req._('show advanced fields'))) wdgs.append(u'