Changeset 293
- Timestamp:
- 01/08/06 18:51:11 (3 years ago)
- Files:
-
- tracfrenchtranslation/0.9 (modified) (1 prop)
- tracfrenchtranslation/0.9/ChangeLog (modified) (1 diff)
- tracfrenchtranslation/0.9/COPYING (modified) (1 diff)
- tracfrenchtranslation/0.9/templates/attachment.cs (modified) (1 diff)
- tracfrenchtranslation/0.9/templates/settings.cs (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/About.py (modified) (7 diffs)
- tracfrenchtranslation/0.9/trac/attachment.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/config.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/core.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/db_default.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/__init__.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/mimeview/api.py (modified) (6 diffs)
- tracfrenchtranslation/0.9/trac/mimeview/patch.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/mimeview/rst.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/mimeview/txtl.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/Notify.py (modified) (4 diffs)
- tracfrenchtranslation/0.9/trac/scripts/admin.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/scripts/tests/admin-tests.txt (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/Search.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/Settings.py (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/test.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/tests/config.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/tests/core.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/tests/__init__.py (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/tests/util.py (added)
- tracfrenchtranslation/0.9/trac/ticket/api.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/ticket/query.py (modified) (5 diffs)
- tracfrenchtranslation/0.9/trac/ticket/report.py (modified) (6 diffs)
- tracfrenchtranslation/0.9/trac/ticket/roadmap.py (modified) (8 diffs)
- tracfrenchtranslation/0.9/trac/ticket/web_ui.py (modified) (12 diffs)
- tracfrenchtranslation/0.9/trac/Timeline.py (modified) (4 diffs)
- tracfrenchtranslation/0.9/trac/upgrades/db13.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/util.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/versioncontrol/api.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/versioncontrol/cache.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/versioncontrol/diff.py (modified) (5 diffs)
- tracfrenchtranslation/0.9/trac/versioncontrol/tests/cache.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/versioncontrol/tests/svn_fs.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/versioncontrol/web_ui/browser.py (modified) (6 diffs)
- tracfrenchtranslation/0.9/trac/versioncontrol/web_ui/changeset.py (modified) (6 diffs)
- tracfrenchtranslation/0.9/trac/versioncontrol/web_ui/log.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/versioncontrol/web_ui/util.py (modified) (4 diffs)
- tracfrenchtranslation/0.9/trac/web/api.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/web/auth.py (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/web/chrome.py (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/web/clearsilver.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/web/main.py (modified) (5 diffs)
- tracfrenchtranslation/0.9/trac/web/standalone.py (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/web/tests/href.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/wiki/formatter.py (modified) (13 diffs)
- tracfrenchtranslation/0.9/trac/wiki/macros.py (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/wiki/tests/wiki-tests.txt (modified) (5 diffs)
- tracfrenchtranslation/0.9/trac/wiki/web_ui.py (modified) (15 diffs)
- tracfrenchtranslation/0.9/wiki-macros/TracGuideToc.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
tracfrenchtranslation/0.9
- Property svn:ignore changed from
*.pyc
to
MANIFEST
dist
build
.hg
.hgignore
- Property svn:ignore changed from
tracfrenchtranslation/0.9/ChangeLog
r161 r293 1 Trac 0.9.3 (Jan 8, 2006) 2 http://svn.edgewall.com/repos/trac/tags/trac-0.9.3 3 4 * Fixed XSS vulnerabilities. 5 * Timeline RSS feed validity issue resolved. 6 * "trac-admin initenv" now handles empty repositories. 7 * Textile unicode support. 8 * Fixed bugs: #1158, #2290, #2337, #2416, #2440, #2468, #2473, #2484, 9 #2490, #2493, #2512, #2517, #2519, #2527, #2548, #2558, #2558 10 1 11 Trac 0.9.2 (Dec 5, 2005) 2 12 http://svn.edgewall.com/repos/trac/tags/trac-0.9.2 tracfrenchtranslation/0.9/COPYING
r160 r293 1 Copyright (C) 2003-200 5Edgewall Software1 Copyright (C) 2003-2006 Edgewall Software 2 2 All rights reserved. 3 3 tracfrenchtranslation/0.9/templates/attachment.cs
r274 r293 22 22 <div class="field"> 23 23 <label>Description (optionnelle) du fichier:<br /> 24 <input type="text" name="description" size="60" /></label 24 <input type="text" name="description" size="60" /></label> 25 25 </div> 26 26 <br /> 27 27 <div class="options"> 28 <label><input type="checkbox" name="replace" checked="checked"/>28 <label><input type="checkbox" name="replace" /> 29 29 Remplacer une piÚce jointe existante portant le même nom</label> 30 30 </div> tracfrenchtranslation/0.9/templates/settings.cs
r160 r293 32 32 <h3>Session</h3> 33 33 <div> 34 <label for="newsid"> Session Key:</label>34 <label for="newsid">Clef de session:</label> 35 35 <input type="text" id="newsid" name="newsid" class="textwidget" size="30" 36 36 value="<?cs var:settings.session_id ?>" /> tracfrenchtranslation/0.9/trac/About.py
r161 r293 1 1 # -*- coding: utf-8 -*- 2 2 # 3 # Copyright (C) 2004-200 5Edgewall Software3 # Copyright (C) 2004-2006 Edgewall Software 4 4 # Copyright (C) 2004-2005 Jonas Borgström <jonas@edgewall.com> 5 5 # Copyright (C) 2004-2005 Daniel Lundin <daniel@edgewall.com> 6 # Copyright (C) 2005 Christopher Lenz <cmlenz@gmx.de>6 # Copyright (C) 2005-2006 Christopher Lenz <cmlenz@gmx.de> 7 7 # All rights reserved. 8 8 # … … 23 23 from trac.perm import IPermissionRequestor 24 24 from trac.web import IRequestHandler 25 from trac.util import Markup 25 26 from trac.web.chrome import add_stylesheet, INavigationContributor 26 27 … … 42 43 /if ?><?cs 43 44 if:about.plugins_href ?> 44 <li class="last"><a href="<?cs var:about.plugins_href ?>"> Plugins</a></li><?cs45 /if ?>45 <li class="last"><a href="<?cs var:about.plugins_href ?>">Extensions</a></li> 46 <?cs /if ?> 46 47 </ul> 47 48 </div> … … 68 69 69 70 <?cs elif:about.page == "plugins" ?> 70 <h1> Plugins</h1>71 <h1>Extensions</h1> 71 72 <dl id="plugins"><?cs 72 73 each:plugin = about.plugins ?> … … 111 112 <h1>A propos de Trac <?cs var:trac.version ?></h1> 112 113 <p> 113 Trac est un systÚme de gestion de projet logiciel et de suivi de défauts via le Web,114 qui met l'accent sur la facilité d'utilisation et évite les chichis.<br />115 Il propose une interface pour le systÚme de contrÃŽle de source Subversion, un Wiki intégré,116 et la création aisée de rapports.114 Trac est un systÚme de gestion de projet logiciel et de suivi de défauts via le 115 Web, qui met l'accent sur la facilité d'utilisation et évite les chichis.<br /> 116 Il propose une interface pour le systÚme de contrÃŽle de source Subversion, un 117 Wiki intégré, et la création facile de rapports. 117 118 </p> 118 119 <p>Trac est distribué sous une licence BSD modifiée.<br /> … … 121 122 <p>Merci de consulter le projet open source Trac: 122 123 <a href="http://projects.edgewall.com/trac/">http://projects.edgewall.com/trac/</a></p> 123 <p>Trac est un produit de <a href="http://www.edgewall.com/">Edgewall Software</a>, fournisseur de solutions professionnelles 124 et de services de développement logiciel sous Linux.</p> 125 <p>Copyright © 2003-2005 <a href="http://www.edgewall.com/">Edgewall Software</a></p> 124 <p>Trac est un produit de <a href="http://www.edgewall.com/">Edgewall 125 Software</a>, fournisseur de solutions professionnelles et de services de 126 développement logiciel sous Linux.</p> 127 <p>Copyright © 2003-2006 <a href="http://www.edgewall.com/">Edgewall 128 Software</a></p> 126 129 <a href="http://www.edgewall.com/"> 127 130 <img style="display: block; margin: 30px" src="<?cs var:chrome.href ?>/common/edgewall.png" … … 138 141 139 142 def get_navigation_items(self, req): 140 yield 'metanav', 'about', '<a href="%s" accesskey="9">A propos de Trac</a>' \ 141 % self.env.href.about() 143 yield ('metanav', 'about', 144 Markup('<a href="%s">A propos de Trac</a>', 145 self.env.href.about())) 142 146 143 147 # IPermissionRequestor methods tracfrenchtranslation/0.9/trac/attachment.py
r216 r293 198 198 'filename': attachment.filename, 199 199 'description': wiki_to_oneliner(attachment.description, env, db), 200 'author': util.escape(attachment.author),200 'author': attachment.author, 201 201 'ipnr': attachment.ipnr, 202 202 'size': util.pretty_size(attachment.size), … … 386 386 req.perm.assert_permission(perm_map[attachment.parent_type]) 387 387 388 fmt = req.args.get('format')389 390 388 req.check_modified(attachment.time) 391 389 … … 409 407 try: 410 408 mimeview = Mimeview(self.env) 411 412 409 data = fd.read(mimeview.max_preview_size()) 413 414 mime_type = fmt == 'txt' and 'text/plain' or \ 415 get_mimetype(attachment.filename, data) or \ 416 'application/octet-stream' 417 410 411 mime_type = get_mimetype(attachment.filename, data) or \ 412 'application/octet-stream' 418 413 self.log.debug("Rendering preview of file %s with mime-type %s" 419 414 % (attachment.filename, mime_type)) 420 415 421 416 raw_href = attachment.href(format='raw') 422 417 add_link(req, 'alternate', raw_href, 'Format Original', mime_type) 423 req.hdf['attachment.raw_href'] = util.escape(raw_href) 424 425 if fmt in ('raw', 'txt'): 426 # Send raw file 418 req.hdf['attachment.raw_href'] = raw_href 419 420 format = req.args.get('format') 421 render_unsafe = self.config.getbool('attachment', 422 'render_unsafe_content') 423 binary = not detect_unicode(data) and is_binary(data) 424 425 if format in ('raw', 'txt'): # Send raw file 426 if not render_unsafe and not binary: 427 # Force browser to download HTML/SVG/etc pages that may 428 # contain malicious code enabling XSS attacks 429 req.send_header('Content-Disposition', 'attachment;' + 430 'filename=' + attachment.filename) 427 431 charset = mimeview.get_charset(data, mime_type) 432 if render_unsafe and not binary and format == 'txt': 433 mime_type = 'text/plain' 428 434 req.send_file(attachment.path, 429 435 mime_type + ';charset=' + charset) 430 return 431 432 if not is_binary(data): 436 437 if render_unsafe and not binary: 433 438 plaintext_href = attachment.href(format='txt') 434 439 add_link(req, 'alternate', plaintext_href, 'Text Standard', tracfrenchtranslation/0.9/trac/config.py
r216 r293 48 48 49 49 def getbool(self, section, name, default=None): 50 """Return the specified option as boolean value. 51 52 If the value of the option is one of "yes", "true", "on", or "1", this 53 method wll return `True`, otherwise `False`. 54 55 (since Trac 0.9.3) 56 """ 50 57 if isinstance(default, basestring): 51 58 default = default.lower() tracfrenchtranslation/0.9/trac/core.py
r161 r293 1 # -*- coding: utf-8 -*-1 # -*- coding: utf-8 -*- 2 2 # 3 3 # Copyright (C) 2003-2005 Edgewall Software 4 # Copyright (C) 2003-2004 Jonas Borgstr öm <jonas@edgewall.com>4 # Copyright (C) 2003-2004 Jonas Borgström <jonas@edgewall.com> 5 5 # Copyright (C) 2004-2005 Christopher Lenz <cmlenz@gmx.de> 6 6 # All rights reserved. … … 14 14 # history and logs, available at http://projects.edgewall.com/trac/. 15 15 # 16 # Author: Jonas Borgstr öm <jonas@edgewall.com>16 # Author: Jonas Borgström <jonas@edgewall.com> 17 17 # Christopher Lenz <cmlenz@gmx.de> 18 18 … … 171 171 return None 172 172 if cls not in ComponentMeta._components: 173 raise TracError, 'Composant "%s" non enregistr é' % cls.__name__173 raise TracError, 'Composant "%s" non enregistré' % cls.__name__ 174 174 try: 175 175 component = cls(self) tracfrenchtranslation/0.9/trac/db_default.py
r274 r293 417 417 ('header_logo', 'height', '73'), 418 418 ('attachment', 'max_size', '262144'), 419 ('attachment', 'render_unsafe_content', 'false'), 419 420 ('mimeviewer', 'enscript_path', 'enscript'), 420 421 ('mimeviewer', 'php_path', 'php'), tracfrenchtranslation/0.9/trac/__init__.py
r216 r293 11 11 __docformat__ = 'epytext en' 12 12 13 __version__ = '1.0dev -vc-refactoring'13 __version__ = '1.0dev' 14 14 __url__ = 'http://trac.edgewall.com/' 15 __copyright__ = '(C) 2003-200 5Edgewall Software'15 __copyright__ = '(C) 2003-2006 Edgewall Software' 16 16 __license__ = 'BSD' 17 17 __license_long__ = """ 18 Copyright (C) 2003-200 5Edgewall Software18 Copyright (C) 2003-2006 Edgewall Software 19 19 All rights reserved. 20 20 tracfrenchtranslation/0.9/trac/mimeview/api.py
r216 r293 25 25 26 26 from trac.core import * 27 from trac.util import escape, to_utf8 27 from trac.util import escape, to_utf8, Markup 28 28 29 29 30 __all__ = ['get_mimetype', 'is_binary', 'detect_unicode', 'Mimeview'] … … 63 64 'make':'text/x-makefile', 'mk':'text/x-makefile', 64 65 'Makefile':'text/x-makefile', 66 'makefile':'text/x-makefile', 'GNUMakefile':'text/x-makefile', 65 67 'mail':'text/x-mail', 66 68 'pas':'text/x-pascal', … … 241 243 continue 242 244 elif isinstance(result, (str, unicode)): 243 return result245 return Markup(result) 244 246 elif annotations: 245 return self._annotate(result, annotations)247 return Markup(self._annotate(result, annotations)) 246 248 else: 247 249 buf = StringIO() … … 250 252 buf.write(line + '\n') 251 253 buf.write('</pre></div>') 252 return buf.getvalue()254 return Markup(buf.getvalue()) 253 255 except Exception, e: 254 256 self.log.warning('HTML preview using %s failed (%s)' … … 276 278 return (match.group('tag') or '') + ' ' 277 279 280 num = -1 278 281 for num, line in enumerate(_html_splitlines(lines)): 279 282 cells = [] … … 283 286 buf.write('<tr>' + '\n'.join(cells) + '</tr>') 284 287 else: 285 if num ==0:288 if num < 0: 286 289 return '' 287 290 buf.write('</tbody></table>') tracfrenchtranslation/0.9/trac/mimeview/patch.py
r160 r293 18 18 from trac.core import * 19 19 from trac.mimeview.api import IHTMLPreviewRenderer 20 from trac.util import escape 20 from trac.util import escape, Markup 21 21 from trac.web.chrome import add_stylesheet 22 22 … … 146 146 147 147 # First character is the command 148 command, line = line[0],line[1:]148 command, line = line[0], line[1:] 149 149 150 150 # Make a new block? … … 187 187 line = escape(line).replace('\0', '<del>') \ 188 188 .replace('\1', '</del>') 189 f[i] = space_re.sub(htmlify, line)189 f[i] = Markup(space_re.sub(htmlify, line)) 190 190 for i in xrange(len(t)): 191 191 line = t[i].expandtabs(tabwidth) 192 192 line = escape(line).replace('\0', '<ins>') \ 193 193 .replace('\1', '</ins>') 194 t[i] = space_re.sub(htmlify, line)194 t[i] = Markup(space_re.sub(htmlify, line)) 195 195 return output tracfrenchtranslation/0.9/trac/mimeview/rst.py
r160 r293 84 84 raise TracError, 'La librairiee Docutils est introuvable' 85 85 if StrictVersion(__version__) < StrictVersion('0.3.3'): 86 raise TracError, 'Une version >= %s des Docutils est requise, mais la version %s a été detectée' \ 86 raise TracError, 'Une version >= %s des Docutils est requise, ' \ 87 'mais la version %s a été detectée' \ 87 88 % ('0.3.3', __version__) 88 89 tracfrenchtranslation/0.9/trac/mimeview/txtl.py
r160 r293 1 1 # -*- coding: utf-8 -*- 2 2 # 3 # Copyright (C) 2004 Edgewall Software3 # Copyright (C) 2004-2006 Edgewall Software 4 4 # Copyright (C) 2004 Daniel Lundin 5 5 # All rights reserved. … … 24 24 25 25 class TextileRenderer(Component): 26 """ 27 Renders plain text in Textile format as HTML. 28 """ 26 """Renders plain text in Textile format as HTML.""" 29 27 implements(IHTMLPreviewRenderer) 30 28 … … 36 34 def render(self, req, mimetype, content, filename=None, rev=None): 37 35 import textile 38 return textile.textile(content )36 return textile.textile(content, encoding='utf-8') tracfrenchtranslation/0.9/trac/Notify.py
r216 r293 15 15 # Author: Daniel Lundin <daniel@edgewall.com> 16 16 17 from trac .__init__import __version__17 from trac import __version__ 18 18 from trac.core import TracError 19 19 from trac.util import CRLF, wrap … … 169 169 subsequent_indent=' ', linesep=CRLF) 170 170 self.ticket['link'] = self.env.abs_href.ticket(ticket.id) 171 self.hdf ['email.ticket_props'] = self.format_props()172 self.hdf ['email.ticket_body_hdr'] = self.format_hdr()173 self.hdf ['ticket'] = self.ticket.values171 self.hdf.set_unescaped('email.ticket_props', self.format_props()) 172 self.hdf.set_unescaped('email.ticket_body_hdr', self.format_hdr()) 173 self.hdf.set_unescaped('ticket', self.ticket.values) 174 174 self.hdf['ticket.new'] = self.newticket 175 175 subject = self.format_subj() 176 176 if not self.newticket: 177 177 subject = 'Re: ' + subject 178 self.hdf ['email.subject'] = subject178 self.hdf.set_unescaped('email.subject', subject) 179 179 changes = '' 180 180 if not self.newticket and modtime: # Ticket change 181 181 changelog = ticket.get_changelog(modtime) 182 182 for date, author, field, old, new in changelog: 183 self.hdf ['ticket.change.author'] = author183 self.hdf.set_unescaped('ticket.change.author', author) 184 184 pfx = 'ticket.change.%s' % field 185 185 newv = '' … … 193 193 cdescr += 'Old description:' + 2*CRLF + old_descr + 2*CRLF 194 194 cdescr += 'New description:' + 2*CRLF + new_descr + CRLF 195 self.hdf ['email.changes_descr'] = cdescr195 self.hdf.set_unescaped('email.changes_descr', cdescr) 196 196 else: 197 197 newv = new … … 201 201 changes += ' * %s: %s%s' % (field, chg, CRLF) 202 202 if newv: 203 self.hdf ['%s.oldvalue' % pfx] = old204 self.hdf ['%s.newvalue' % pfx] = newv203 self.hdf.set_unescaped('%s.oldvalue' % pfx, old) 204 self.hdf.set_unescaped('%s.newvalue' % pfx, newv) 205 205 if field == 'cc': 206 206 self.prev_cc += old and self.parse_cc(old) or [] 207 self.hdf ['%s.author' % pfx] = author207 self.hdf.set_unescaped('%s.author' % pfx, author) 208 208 if changes: 209 self.hdf ['email.changes_body'] = changes209 self.hdf.set_unescaped('email.changes_body', changes) 210 210 NotifyEmail.notify(self, ticket.id, subject) 211 211 tracfrenchtranslation/0.9/trac/scripts/admin.py
r216 r293 1 1 # -*- coding: iso-8859-1 -*- 2 2 # 3 # Copyright (C) 2003-200 5Edgewall Software3 # Copyright (C) 2003-2006 Edgewall Software 4 4 # All rights reserved. 5 5 # … … 13 13 # 14 14 15 __copyright__ = 'Copyright (c) 2003-200 5Edgewall Software'15 __copyright__ = 'Copyright (c) 2003-2006 Edgewall Software' 16 16 17 17 import cmd … … 565 565 else: 566 566 project_name, db_str, repository_type, repository_dir, \ 567 templates_dir = arg[: 4]567 templates_dir = arg[:5] 568 568 569 569 if not os.access(os.path.join(templates_dir, 'header.cs'), os.F_OK): tracfrenchtranslation/0.9/trac/scripts/tests/admin-tests.txt
r216 r293 1 1 ===== test_help_ok ===== 2 trac-admin - The Trac Administration Console 1.0dev -vc-refactoring2 trac-admin - The Trac Administration Console 1.0dev 3 3 4 4 Usage: trac-admin </path/to/projenv> [command [subcommand] [option ...]] tracfrenchtranslation/0.9/trac/Search.py
r216 r293 20 20 from trac.core import * 21 21 from trac.perm import IPermissionRequestor 22 from trac.util import TracError, escape, format_datetime 22 from trac.util import TracError, escape, format_datetime, Markup 23 23 from trac.web import IRequestHandler 24 24 from trac.web.chrome import add_link, add_stylesheet, INavigationContributor … … 107 107 if not req.perm.has_permission('SEARCH_VIEW'): 108 108 return 109 yield 'mainnav', 'search', '<a href="%s" accesskey="4">Rechercher</a>' \ 110 % (self.env.href.search()) 109 yield ('mainnav', 'search', 110 Markup('<a href="%s" accesskey="4">Rechercher</a>', 111 self.env.href.search())) 111 112 112 113 # IPermissionRequestor methods … … 177 178 q=query, page=page - 1) 178 179 add_link(req, 'prev', prev_href, 'Page précédente') 179 req.hdf['search.page_href'] = escape( 180 self.env.href.search(zip(filters, ['on'] * len(filters)), 181 q=query)) 180 req.hdf['search.page_href'] = self.env.href.search(zip(filters, ['on'] * len(filters)), q=query) 182 181 req.hdf['search.result'] = [ 183 { 'href': escape(result[0]),182 { 'href': result[0], 184 183 'title': result[1], 185 184 'date': format_datetime(result[2]), 186 'author': escape(result[3]),185 'author': result[3], 187 186 'excerpt': result[4] 188 187 } for result in results] tracfrenchtranslation/0.9/trac/Settings.py
r160 r293 16 16 17 17 from trac.core import * 18 from trac.util import escape18 from trac.util import Markup 19 19 from trac.web import IRequestHandler 20 20 from trac.web.chrome import INavigationContributor 21 21 22 22 23 class SettingsModule(Component): … … 32 33 33 34 def get_navigation_items(self, req): 34 yield 'metanav', 'settings', '<a href="%s">ParamÚtres</a>' \35 % escape(self.env.href.settings())35 yield ('metanav', 'settings', 36 Markup('<a href="%s">Réglages</a>', self.env.href.settings())) 36 37 37 38 # IRequestHandler methods tracfrenchtranslation/0.9/trac/test.py
r160 r293 1 1 #!/usr/bin/env python 2 # -*- coding: iso 8859-1 -*-2 # -*- coding: iso-8859-1 -*- 3 3 # 4 4 # Copyright (C) 2003-2005 Edgewall Software tracfrenchtranslation/0.9/trac/tests/config.py
r216 r293 1 # -*- coding: iso 8859-1 -*-1 # -*- coding: iso-8859-1 -*- 2 2 # 3 3 # Copyright (C) 2005 Edgewall Software tracfrenchtranslation/0.9/trac/tests/core.py
r160 r293 1 # -*- coding: iso 8859-1 -*-1 # -*- coding: iso-8859-1 -*- 2 2 # 3 3 # Copyright (C) 2005 Edgewall Software tracfrenchtranslation/0.9/trac/tests/__init__.py
r160 r293 1 1 import unittest 2 2 3 from trac.tests import attachment, config, core, env, perm 3 from trac.tests import attachment, config, core, env, perm, util 4 4 5 5 def suite(): … … 10 10 suite.addTest(env.suite()) 11 11 suite.addTest(perm.suite()) 12 suite.addTest(util.suite()) 12 13 return suite 13 14 tracfrenchtranslation/0.9/trac/ticket/api.py
r216 r293 1 1 # -*- coding: utf-8 -*- 2 2 # 3 # Copyright (C) 2003-200 5Edgewall Software3 # Copyright (C) 2003-2006 Edgewall Software 4 4 # Copyright (C) 2003-2005 Jonas Borgström <jonas@edgewall.com> 5 5 # All rights reserved. … … 141 141 142 142 def get_wiki_syntax(self): 143 yield (r"!? #\d+",143 yield (r"!?(?<!&)#\d+", # #123 but not { (HTML entity) 144 144 lambda x, y, z: self._format_link(x, 'ticket', y[1:], y)) 145 145 … … 179 179 for summary,desc,author,keywords,tid,date in cursor: 180 180 yield (self.env.href.ticket(tid), 181 '#%d: %s' % (tid, util. escape(util.shorten_line(summary))),181 '#%d: %s' % (tid, util.shorten_line(summary)), 182 182 date, author, 183 util.escape(shorten_result(desc, query.split())))183 shorten_result(desc, query.split())) 184 184 tracfrenchtranslation/0.9/trac/ticket/query.py
r216 r293 22 22 from trac.ticket import Ticket, TicketSystem 23 23 from trac.util import escape, unescape, format_datetime, http_date, \ 24 shorten_line, CRLF 24 shorten_line, CRLF, Markup 25 25 from trac.web import IRequestHandler 26 26 from trac.web.chrome import add_link, add_stylesheet, INavigationContributor … … 340 340 if req.perm.has_permission('TICKET_VIEW') and \ 341 341 not self.env.is_component_enabled(ReportModule): 342 yield 'mainnav', 'tickets', '<a href="%s">Voir les tickets</a>' \ 343 % escape(self.env.href.query()) 342 yield 'mainnav', 'tickets', \ 343 Markup('<a href="%s">Voir les tickets</a>', \ 344 self.env.href.query()) 344 345 345 346 # IRequestHandler methods … … 502 503 **query.constraints) 503 504 req.hdf['query.order'] = query.order 504 req.hdf['query.href'] = escape(href)505 req.hdf['query.href'] = href 505 506 if query.desc: 506 507 req.hdf['query.desc'] = True … … 552 553 for field, value in ticket.items(): 553 554 if field == 'time': 554 ticket[field] = escape(format_datetime(value))555 ticket[field] = format_datetime(value) 555 556 elif field == 'description': 556 557 ticket[field] = wiki_to_html(value or '', self.env, req, db) 557 558 else: 558 ticket[field] = escape(value)559 ticket[field] = value 559 560 560 561 req.hdf['query.results'] = tickets … … 592 593 result['reporter'] = '' 593 594 if result['description']: 594 result['description'] = escape(wiki_to_html(result['description'] or '', 595 self.env, req, db, 596 absurls=1)) 595 # str() cancels out the Markup() returned by wiki_to_html 596 result['description'] = str(wiki_to_html(result['description'] or '', 597 self.env, req, db, 598 absurls=1)) 597 599 if result['time']: 598 600 result['time'] = http_date(result['time']) tracfrenchtranslation/0.9/trac/ticket/report.py
r160 r293 72 72 if not req.perm.has_permission('REPORT_VIEW'): 73 73 return 74 yield 'mainnav', 'tickets', '<a href="%s">Voir les tickets</a>' \ 75 % util.escape(self.env.href.report()) 74 yield ('mainnav', 'tickets', 75 util.Markup('<a href="%s">Voir les tickets</a>', 76 self.env.href.report())) 76 77 77 78 # IPermissionRequestor methods … … 196 197 'id': id, 197 198 'mode': 'delete', 198 'title': util. escape(row[0]),199 'title': util.row[0], 199 200 'href': self.env.href.report(id) 200 201 } … … 231 232 req.hdf['report.id'] = id 232 233 req.hdf['report.mode'] = 'edit' 233 req.hdf['report.title'] = util.escape(title)234 req.hdf['report.sql'] = util.escape(sql)235 req.hdf['report.description'] = util.escape(description)234 req.hdf['report.title'] = title 235 req.hdf['report.sql'] = sql 236 req.hdf['report.description'] = description 236 237 237 238 def _render_view(self, req, db, id): … … 346 347 value['parsed'] = wiki_to_html(cell, self.env, req, db) 347 348 elif column == 'reporter' and cell.find('@') != -1: 348 value['rss'] = util.escape(cell)349 value['rss'] = cell 349 350 elif column == 'report': 350 351 value['report_href'] = self.env.href.report(cell) … … 355 356 value['gmt'] = util.http_date(cell) 356 357 prefix = 'report.items.%d.%s' % (row_idx, str(column)) 357 req.hdf[prefix] = util.escape(str(cell))358 req.hdf[prefix] = str(cell) 358 359 for key in value.keys(): 359 360 req.hdf[prefix + '.' + key] = value[key] … … 489 490 nodename = 'report.items.%s.%s' % (item.name(), col) 490 491 value = req.hdf.get(nodename, '') 491 req.hdf[nodename] = util.escape(value)492 req.hdf[nodename] = value 492 493 item = item.next() 493 494 tracfrenchtranslation/0.9/trac/ticket/roadmap.py
r160 r293 22 22 from trac.perm import IPermissionRequestor 23 23 from trac.util import escape, format_date, format_datetime, parse_date, \ 24 pretty_timedelta, shorten_line, unescape, CRLF 24 pretty_timedelta, shorten_line, unescape, CRLF, Markup 25 25 from trac.ticket import Milestone, Ticket, TicketSystem 26 26 from trac.Timeline import ITimelineEventProvider … … 28 28 from trac.web.chrome import add_link, add_stylesheet, INavigationContributor 29 29 from trac.wiki import wiki_to_html, wiki_to_oneliner, IWikiSyntaxProvider 30 30 31 31 32 def get_tickets_for_milestone(env, db, milestone, field='component'): … … 87 88 if milestone.exists: 88 89
