Changeset 394
- Timestamp:
- 01/22/06 17:16:56 (3 years ago)
- Files:
-
- tracfrenchtranslation/0.9/htdocs/css/browser.css (modified) (2 diffs)
- tracfrenchtranslation/0.9/htdocs/css/changeset.css (modified) (1 diff)
- tracfrenchtranslation/0.9/templates/anydiff.cs (added)
- tracfrenchtranslation/0.9/templates/browser.cs (modified) (3 diffs)
- tracfrenchtranslation/0.9/templates/changeset.cs (modified) (5 diffs)
- tracfrenchtranslation/0.9/templates/log.cs (modified) (7 diffs)
- tracfrenchtranslation/0.9/templates/log_rss.cs (modified) (1 diff)
- tracfrenchtranslation/0.9/templates/query_rss.cs (modified) (1 diff)
- tracfrenchtranslation/0.9/templates/wiki.cs (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/db2 (deleted)
- tracfrenchtranslation/0.9/trac/db_default.py (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/db/pool.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/__init__.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/mimeview/api.py (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/mimeview/patch.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/notification.py (added)
- tracfrenchtranslation/0.9/trac/Notify.py (deleted)
- tracfrenchtranslation/0.9/trac/scripts/tests/admin-tests.txt (modified) (5 diffs)
- tracfrenchtranslation/0.9/trac/test.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/tests/__init__.py (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/tests/notification.py (added)
- tracfrenchtranslation/0.9/trac/ticket/model.py (modified) (5 diffs)
- tracfrenchtranslation/0.9/trac/ticket/notification.py (added)
- tracfrenchtranslation/0.9/trac/ticket/query.py (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/ticket/report.py (modified) (6 diffs)
- tracfrenchtranslation/0.9/trac/ticket/roadmap.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/ticket/web_ui.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/Timeline.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/util.py (modified) (6 diffs)
- tracfrenchtranslation/0.9/trac/versioncontrol/api.py (modified) (3 diffs)
- tracfrenchtranslation/0.9/trac/versioncontrol/cache.py (modified) (2 diffs)
- tracfrenchtranslation/0.9/trac/versioncontrol/diff.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/versioncontrol/svn_fs.py (modified) (14 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) (13 diffs)
- tracfrenchtranslation/0.9/trac/versioncontrol/web_ui/__init__.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/versioncontrol/web_ui/log.py (modified) (6 diffs)
- tracfrenchtranslation/0.9/trac/versioncontrol/web_ui/util.py (modified) (5 diffs)
- tracfrenchtranslation/0.9/trac/web/api.py (modified) (1 diff)
- tracfrenchtranslation/0.9/trac/wiki/tests/wiki-tests.txt (modified) (3 diffs)
- tracfrenchtranslation/0.9/wiki-default/WikiStart (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
tracfrenchtranslation/0.9/htdocs/css/browser.css
r216 r394 54 54 #dirlist td.change { font-size: 85%; vertical-align: middle; white-space: nowrap } 55 55 56 /* Log */ 57 tr.diff input { 58 padding: 0 1em 0 1em; 59 margin: 0; 60 } 61 62 div.buttons { 63 clear: left; 64 } 65 66 #anydiff { 67 margin: 0 0 1em; 68 float: left; 69 } 70 #anydiff form, #anydiff div, #anydiff h2 { 71 display: inline; 72 } 73 #anydiff input { 74 vertical-align: baseline; 75 margin: 0 -0.5em 0 1em; 76 } 77 78 56 79 /* Styles for the revision log table 57 80 (extends the styles for "table.listing") */ … … 63 86 width: .8em; height: .8em; 64 87 } 88 #chglist td.diff { white-space: nowrap } 65 89 #chglist td.change .comment { display: none } 66 90 #chglist td.old_path { font-style: italic } tracfrenchtranslation/0.9/htdocs/css/changeset.css
r160 r394 27 27 .diff ul.props { font-size: 90%; list-style: disc; margin: .5em 0 0; padding: 0 .5em 1em 2em } 28 28 .diff ul.props li { margin: 0; padding: 0 } 29 30 31 #title dl { 32 display: inline; 33 font-size: 110% 34 } 35 #title dt { 36 font-size: 110%; 37 font-weight: bold; 38 display: inline; 39 margin-left: 3em; 40 } 41 #title dd { 42 display: inline; 43 margin-left: 0.4em; 44 } tracfrenchtranslation/0.9/templates/browser.cs
r216 r394 4 4 <div id="ctxtnav" class="nav"> 5 5 <ul> 6 <li class="last"><a href="<?cs var:browser.log_href ?>">Journal des révisions</a></li> 6 <li class="first"><a href="<?cs var:browser.restr_changeset_href ?>"> 7 DerniÚres modifications</a></li> 8 <li class="last"><a href="<?cs var:browser.log_href ?>"> 9 Journal des révisions</a></li> 7 10 </ul> 8 11 </div> 12 9 13 10 14 <div id="content" class="browser"> … … 12 16 13 17 <div id="jumprev"> 14 <form action="" method="get"><div> 15 <label for="rev">Voir la révision:</label> 18 <form action="" method="get"> 19 <div> 20 <label for="rev">Voir la révision:</label> 16 21 <input type="text" id="rev" name="rev" value="<?cs 17 var:browser.revision?>" size="4" /> 18 </div></form> 22 var:browser.revision ?>" size="4" /> 23 </div> 24 </form> 19 25 </div> 20 26 … … 115 121 </div> 116 122 123 <div id="anydiff"> 124 <form action="<?cs var:browser.anydiff_href ?>" method="get"> 125 <input type="hidden" name="new_path" value="<?cs var:browser.path ?>" /> 126 <input type="hidden" name="old_path" value="<?cs var:browser.path ?>" /> 127 <input type="hidden" name="new_rev" value="<?cs var:browser.revision ?>" /> 128 <input type="hidden" name="old_rev" value="<?cs var:browser.revision ?>" /> 129 <div class="buttons"> 130 <input type="submit" value="Voir les modifications" 131 title="Préparer un fichier de différences" /> 132 </div> 133 </form> 134 </div> 135 117 136 </div> 118 137 <?cs include:"footer.cs"?> tracfrenchtranslation/0.9/templates/changeset.cs
r274 r394 3 3 4 4 <div id="ctxtnav" class="nav"> 5 <h2> Consultation des versions</h2><?cs5 <h2>Navigation</h2><?cs 6 6 with:links = chrome.links ?> 7 <ul> 8 <li class="first"> 9 <?cs if:len(links.prev) ?> ← 10 <a class="prev" href="<?cs var:links.prev.0.href ?>" title="<?cs 11 var:links.prev.0.title ?>">Version précédente</a> 12 <?cs else ?><span class="missing">← Version précédente</span><?cs /if ?> 13 </li> 14 <li class="last"> 15 <?cs if:len(links.next) ?> 16 <a class="next" href="<?cs var:links.next.0.href ?>" title="<?cs 17 var:links.next.0.title ?>">Version suivante</a> → 18 <?cs else ?><span class="missing">Version suivante →</span><?cs /if ?> 19 </li> 7 <ul><?cs 8 if:changeset.chgset ?><?cs 9 if:changeset.restricted ?><?cs 10 set:change = "Change" ?><?cs 11 else ?><?cs 12 set:change = "Changeset" ?><?cs 13 /if ?> 14 <li class="first"><?cs 15 if:len(links.prev) ?> ← 16 <a class="prev" href="<?cs var:links.prev.0.href ?>" title="<?cs 17 var:links.prev.0.title ?>"><?cs alt:translation[change] ?><?cs 18 var:change ?><?cs /alt?> précédente</a> <?cs 19 else ?> 20 <span class="missing">← <?cs alt:translation[change] ?><?cs 21 var:change ?><?cs /alt?> précédente</span><?cs 22 /if ?> 23 </li> 24 <li class="last"><?cs 25 if:len(links.next) ?> 26 <a class="next" href="<?cs var:links.next.0.href ?>" title="<?cs 27 var:links.next.0.title ?>"><?cs alt:translation[change] ?><?cs 28 var:change ?><?cs /alt?> suivante</a> → <?cs 29 else ?> 30 <span class="missing"><?cs alt:translation[change] ?><?cs 31 var:change ?><?cs /alt?> suivante →</span><?cs 32 /if ?> 33 </li><?cs 34 else ?> 35 <li class="first"><a href="<?cs var:changeset.reverse_href ?>">Diff inverse</a></li><?cs 36 /if ?> 20 37 </ul><?cs 21 38 /with ?> … … 23 40 24 41 <div id="content" class="changeset"> 25 <h1>Version <?cs var:changeset.revision ?></h1> 42 <div id="title"><?cs 43 if:changeset.chgset ?><?cs 44 if:changeset.restricted ?> 45 <h1>Version <a title="Afficher l'ensemble des changements" href="<?cs var:changeset.href.new_rev ?>"> 46 <?cs var:changeset.new_rev ?></a> 47 pour <a title="Afficher l'élément dans le navigateur" href="<?cs var:changeset.href.new_path ?>"> 48 <?cs var:changeset.new_path ?></a> 49 </h1><?cs 50 else ?> 51 <h1>Changeset <?cs var:changeset.new_rev ?></h1><?cs 52 /if ?><?cs 53 else ?><?cs 54 if:changeset.restricted ?> 55 <h1>Modifications dans <a title="Afficher l'élément dans le navigateur" href="<?cs var:changeset.href.new_path ?>"> 56 <?cs var:changeset.new_path ?></a> 57 <a title="Afficher le journal des révisions" href="<?cs var:changeset.href.log ?>"> 58 [<?cs var:changeset.old_rev ?>:<?cs var:changeset.new_rev ?>]</a> 59 </h1><?cs 60 else ?> 61 <h1>Modification de <a title="Show entry in browser" href="<?cs var:changeset.href.old_path ?>"> 62 <?cs var:changeset.old_path ?></a> 63 à <a title="Afficher l'ensemble des changements" href="<?cs var:changeset.href.old_rev ?>"> 64 r<?cs var:changeset.old_rev ?></a> 65 vers <a title="Afficher l'élément dans le navigateur" href="<?cs var:changeset.href.new_path ?>"> 66 <?cs var:changeset.new_path ?></a> 67 à <a title="Afficher l'ensemble des changements" href="<?cs var:changeset.href.new_rev ?>"> 68 r<?cs var:changeset.new_rev ?></a> 69 </h1><?cs 70 /if ?><?cs 71 /if ?> 72 </div> 26 73 27 74 <?cs each:change = changeset.changes ?><?cs … … 32 79 || diff.options.ignorecase || diff.options.ignorewhitespace ?> 33 80 <form method="post" id="prefs" action=""> 34 <div> 81 <div><?cs 82 if:!changeset.chgset ?> 83 <input type="hidden" name="old_path" value="<?cs var:changeset.old_path ?>" /> 84 <input type="hidden" name="path" value="<?cs var:changeset.new_path ?>" /> 85 <input type="hidden" name="old" value="<?cs var:changeset.old_rev ?>" /> 86 <input type="hidden" name="new" value="<?cs var:changeset.new_rev ?>" /><?cs 87 /if ?> 35 88 <label for="style">Voir les différences</label> 36 89 <select id="style" name="style"> … … 101 154 <?cs /def ?> 102 155 103 <dl id="overview"> 156 <dl id="overview"><?cs 157 if:changeset.chgset ?> 104 158 <dt class="time">Date:</dt> 105 159 <dd class="time"><?cs var:changeset.time ?> … … 109 163 <dt class="message">Message:</dt> 110 164 <dd class="message" id="searchable"><?cs 111 alt:changeset.message ?> <?cs /alt ?></dd> 112 <dt class="files">Fichiers:</dt> 165 alt:changeset.message ?> <?cs /alt ?></dd><?cs 166 /if ?> 167 <dt class="files"><?cs 168 if:len(changeset.changes) > #0 ?> 169 Fichiers:<?cs 170 else ?> 171 (Pas de fichier)<?cs 172 /if ?> 173 </dt> 113 174 <dd class="files"> 114 175 <ul><?cs each:item = changeset.changes ?> tracfrenchtranslation/0.9/templates/log.cs
r216 r394 4 4 <div id="ctxtnav" class="nav"> 5 5 <ul> 6 <li class="last"><a href="<?cs 7 var:log.browser_href ?>">Voir la derniÚre révision</a></li><?cs 6 <li class="last"> 7 <a href="<?cs var:log.browser_href ?>">Voir la derniÚre révision</a> 8 </li><?cs 8 9 if:len(chrome.links.prev) ?> 9 10 <li class="first<?cs if:!len(chrome.links.next) ?> last<?cs /if ?>"> … … 62 63 </div> 63 64 </form> 65 64 66 <div class="diff"> 65 67 <div id="legend"> … … 75 77 </div> 76 78 </div> 79 80 <form action="<?cs var:log.changeset_href ?>" method="get"> 81 <div class="buttons"><input type="submit" value="Voir les modifications" 82 title="Différences entre ancienne et nouvelle révision (sélectionnez-les en dessous)" /> 83 </div> 77 84 <table id="chglist" class="listing"> 78 85 <thead> 79 86 <tr> 87 <th class="diff"></th> 80 88 <th class="change"></th> 81 89 <th class="data">Date</th> … … 88 96 <tbody><?cs 89 97 set:indent = #1 ?><?cs 98 set:idx = #0 ?><?cs 90 99 each:item = log.items ?><?cs 91 100 if:item.copyfrom_path ?> 92 101 <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>"> 93 <td class="copyfrom_path" colspan=" 6" style="padding-left: <?cs var:indent ?>em">102 <td class="copyfrom_path" colspan="8" style="padding-left: <?cs var:indent ?>em"> 94 103 copié depuis <a href="<?cs var:item.browser_href ?>"?><?cs var:item.copyfrom_path ?></a>: 95 104 </td> … … 100 109 /if ?> 101 110 <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>"> 111 <td class="diff"> 112 <input type="radio" name="old" 113 value="<?cs var:item.path ?>@<?cs var:item.rev ?>" <?cs 114 if:idx == #1 ?> checked="checked" <?cs /if ?> /> 115 <input type="radio" name="new" 116 value="<?cs var:item.path ?>@<?cs var:item.rev ?>" <?cs 117 if:idx == #0 ?> checked="checked" <?cs /if ?> /></td> 102 118 <td class="change" style="padding-left:<?cs var:indent ?>em"> 103 119 <a title="Voir le journal en commencant à partir de la révision" href="<?cs var:item.log_href ?>"> … … 109 125 <td class="rev"> 110 126 <a href="<?cs var:item.browser_href ?>" 111 title=" Explorerla révision <?cs var:item.rev ?>">@<?cs var:item.rev ?></a>127 title="Consultez la révision <?cs var:item.rev ?>">@<?cs var:item.rev ?></a> 112 128 </td> 113 129 <td class="chgset"> … … 118 134 <td class="summary"><?cs var:log.changes[item.rev].message ?></td> 119 135 </tr><?cs 136 set:idx = idx + 1 ?><?cs 120 137 /each ?> 121 138 </tbody> 122 139 </table><?cs 140 if:len(log.items) > #10 ?> 141 <div class="buttons"><input type="submit" value="View changes" 142 title="Différences entre ancienne et nouvelle révision (sélectionnez-les en dessous)" /> 143 </div><?cs 144 /if ?> 145 </form><?cs 123 146 if:len(links.prev) || len(links.next) ?><div id="paging" class="nav"><ul><?cs 124 147 if:len(links.prev) ?><li class="first<?cs tracfrenchtranslation/0.9/templates/log_rss.cs
r160 r394 14 14 each:item = log.items ?><?cs 15 15 with:change = log.changes[item.rev] ?> 16 <item> 17 <author><?cs var:change.author ?></author> 16 <item><?cs 17 if:change.author ?><author><?cs var:change.author ?></author><?cs 18 /if ?> 18 19 <pubDate><?cs var:change.date ?></pubDate> 19 20 <title>Révision <?cs var:item.rev ?>: <?cs var:change.shortlog ?></title> 20 <link><?cs var:base_host ?><?cs var:item. changeset_href ?></link>21 <link><?cs var:base_host ?><?cs var:item.restricted_href ?></link> 21 22 <description><?cs var:change.message ?></description> 22 23 <category>Journal</category> tracfrenchtranslation/0.9/templates/query_rss.cs
r160 r394 7 7 <title>Ticket Query</title><?cs 8 8 /if ?> 9 <link><?cs var: base_host ?><?cs var:trac.href.query?></link><?cs9 <link><?cs var:query.href ?></link><?cs 10 10 if:project.descr ?> 11 11 <description><?cs var:project.descr ?></description><?cs tracfrenchtranslation/0.9/templates/wiki.cs
r160 r394 155 155 <?cs if:len(wiki.history) ?><form method="get" action=""> 156 156 <input type="hidden" name="action" value="diff" /> 157 <div class="buttons"> 158 <input type="submit" value="Voir les modifications" /> 159 </div> 157 160 <table id="wikihist" class="listing" summary="Historique des modifications"> 158 161 <thead><tr> … … 181 184 </tr> 182 185 <?cs /each ?></tbody> 183 </table> 184 <div class="buttons"> 185 <input type="submit" value="Voir les modifications" /> 186 </div> 186 </table><?cs 187 if:len(wiki.history) > #10 ?> 188 <div class="buttons"> 189 <input type="submit" value="Voir les modifications" /> 190 </div><?cs 191 /if ?> 187 192 </form><?cs /if ?> 188 193 tracfrenchtranslation/0.9/trac/db_default.py
r293 r394 432 432 ('notification', 'smtp_from', 'trac@localhost'), 433 433 ('notification', 'smtp_replyto', 'trac@localhost'), 434 ('notification', 'mime_encoding', 'qp'), 435 ('notification', 'allow_public_cc', 'false'), 434 436 ('timeline', 'default_daysback', '30'), 435 437 ('timeline', 'changeset_show_files', '0'), … … 467 469 ('translation', 'created', 'créé'), 468 470 ('translation', 'modified', 'modifié'), 471 ('translation', 'change', 'modification'), 472 ('translation', 'changeset', 'version') 469 473 ) 470 474 tracfrenchtranslation/0.9/trac/db/pool.py
r160 r394 54 54 self._dormant = [] # inactive connections in pool 55 55 self._active = {} # active connections by thread ID 56 self._available = threading.Condition(threading. RLock())56 self._available = threading.Condition(threading.Lock()) 57 57 self._maxsize = maxsize # maximum pool size 58 58 self._cursize = 0 # current pool size, includes active connections tracfrenchtranslation/0.9/trac/__init__.py
r293 r394 11 11 __docformat__ = 'epytext en' 12 12 13 __version__ = ' 1.0dev'13 __version__ = '0.10dev' 14 14 __url__ = 'http://trac.edgewall.com/' 15 15 __copyright__ = '(C) 2003-2006 Edgewall Software' tracfrenchtranslation/0.9/trac/mimeview/api.py
r293 r394 332 332 """Tracks open and close tags in lines of HTML text and yields lines that 333 333 have no tags spanning more than one line.""" 334 open_tag_re = re.compile(r'<(\w+) \s.*?[^/]?>')334 open_tag_re = re.compile(r'<(\w+)(\s.*)?[^/]?>') 335 335 close_tag_re = re.compile(r'</(\w+)>') 336 336 open_tags = [] … … 345 345 open_tags.append(tag) 346 346 347 open_tags.reverse() 348 347 349 # Find all tags closed on this line 348 350 for ctag in close_tag_re.finditer(line): tracfrenchtranslation/0.9/trac/mimeview/patch.py
r293 r394 110 110 output = [] 111 111 filename, groups = None, None 112 for line in difflines: 113 if line.startswith('--- '): 114 # Base filename/version 115 words = line.split(None, 2) 116 filename, fromrev = words[1], 'old' 117 groups, blocks = None, None 112 lines = iter(difflines) 113 for line in lines: 114 if not line.startswith('--- '): 118 115 continue 119 if line.startswith('+++ '): 120 # Changed filename/version 121 words = line.split(None, 2) 122 if len(words[1]) < len(filename): 123 # Always use the shortest filename for display 124 filename = words[1] 125 groups = [] 126 output.append({'filename' : filename, 'oldrev' : fromrev, 127 'newrev' : 'new', 'diff' : groups}) 128 continue 129 # Lines to ignore 130 if line.startswith('Index: ') or line.startswith('======') or line == '': 131 continue 132 if groups == None: 116 117 # Base filename/version 118 words = line.split(None, 2) 119 filename, fromrev = words[1], 'old' 120 groups, blocks = None, None 121 122 # Changed filename/version 123 line = lines.next() 124 if not line.startswith('+++ '): 133 125 return None 134 # @@ -333,10 +329,8 @@ 135 if line.startswith('@@ '): 136 r = re.match(r'@@ -(\d+),\d+ \+(\d+),\d+ @@', line) 126 127 words = line.split(None, 2) 128 if len(words[1]) < len(filename): 129 # Always use the shortest filename for display 130 filename = words[1] 131 groups = [] 132 output.append({'filename' : filename, 'oldrev' : fromrev, 133 'newrev' : 'new', 'diff' : groups}) 134 135 for line in lines: 136 # @@ -333,10 +329,8 @@ 137 r = re.match(r'@@ -(\d+),(\d+) \+(\d+),(\d+) @@', line) 137 138 if not r: 138 return None139 break 139 140 blocks = [] 140 141 groups.append(blocks) 141 fromline, toline= map(int, r.groups())142 fromline,fromend,toline,toend = map(int, r.groups()) 142 143 last_type = None 143 continue144 if blocks == None:145 return None146 144 147 # First character is the command148 command, line = line[0], line[1:]145 fromend += fromline 146 toend += toline 149 147 150 # Make a new block? 151 if (command == ' ') != last_type: 152 last_type = command == ' ' 153 blocks.append({'type': last_type and 'unmod' or 'mod', 154 'base.offset': fromline - 1, 155 'base.lines': [], 156 'changed.offset': toline - 1, 157 'changed.lines': []}) 158 if command == ' ': 159 blocks[-1]['changed.lines'].append(line) 160 blocks[-1]['base.lines'].append(line) 161 fromline += 1 162 toline += 1 163 elif command == '+': 164 blocks[-1]['changed.lines'].append(line) 165 toline += 1 166 elif command == '-': 167 blocks[-1]['base.lines'].append(line) 168 fromline += 1 169 else: 170 return None 148 while fromline < fromend or toline < toend: 149 line = lines.next() 150 151 # First character is the command 152 command, line = line[0], line[1:] 153 # Make a new block? 154 if (command == ' ') != last_type: 155 last_type = command == ' ' 156 blocks.append({'type': last_type and 'unmod' or 'mod', 157 'base.offset': fromline - 1, 158 'base.lines': [], 159 'changed.offset': toline - 1, 160 'changed.lines': []}) 161 if command == ' ': 162 blocks[-1]['changed.lines'].append(line) 163 blocks[-1]['base.lines'].append(line) 164 fromline += 1 165 toline += 1 166 elif command == '+': 167 blocks[-1]['changed.lines'].append(line) 168 toline += 1 169 elif command == '-': 170 blocks[-1]['base.lines'].append(line) 171 fromline += 1 172 else: 173 return None 171 174 172 175 # Go through all groups/blocks and mark up intraline changes, and tracfrenchtranslation/0.9/trac/scripts/tests/admin-tests.txt
r293 r394 1 1 ===== test_help_ok ===== 2 trac-admin - The Trac Administration Console 1.0dev2 trac-admin - The Trac Administration Console 0.10dev 3 3 4 4 Usage: trac-admin </path/to/projenv> [command [subcommand] [option ...]] … … 434 434 Name Time 435 435 ---------- 436 2.0 436 437 1.0 437 2.0438 438 439 439 ===== test_version_add_ok ===== … … 441 441 Name Time 442 442 ---------------- 443 2.0 443 444 1.0 444 2.0445 445 9.9 2004-01-11 446 446 … … 451 451 Name Time 452 452 ---------- 453 9.9 453 454 2.0 454 9.9455 455 456 456 ===== test_version_rename_error_bad_version ===== … … 520 520 Name Due Completed 521 521 ------------------------------------ 522 milestone2 2004-01-11 00:00:00 522 523 milestone1 523 milestone2 2004-01-11 00:00:00524 524 milestone3 525 525 milestone4 tracfrenchtranslation/0.9/trac/test.py
r293 r394 160 160 return self.db 161 161 162 def get_templates_dir(self): 163 return None 164 165 def get_known_users(self, db): 166 return [] 167 162 168 163 169 def suite(): tracfrenchtranslation/0.9/trac/tests/__init__.py
r293 r394 1 1 import unittest 2 2 3 from trac.tests import attachment, config, core, env, perm, util 3 from trac.tests import attachment, config, core, env, perm, util, notification 4 4 5 5 def suite(): … … 11 11 suite.addTest(perm.suite()) 12 12 suite.addTest(util.suite()) 13 suite.addTest(notification.suite()) 13 14 return suite 14 15 tracfrenchtranslation/0.9/trac/ticket/model.py
r293 r394 1 1 # -*- coding: utf-8 -*- 2 2 # 3 # Copyright (C) 2003 , 2004, 2005Edgewall Software4 # Copyright (C) 2003 , 2004, 2005Jonas Borgström <jonas@edgewall.com>3 # Copyright (C) 2003-2006 Edgewall Software 4 # Copyright (C) 2003-2006 Jonas Borgström <jonas@edgewall.com> 5 5 # Copyright (C) 2005 Christopher Lenz <cmlenz@gmx.de> 6 # Copyright (C) 2006 Christian Boos <cboos@neuf.fr> 6 7 # All rights reserved. 7 8 # … … 18 19 19 20 import time 21 import sys 20 22 21 23 from trac.core import TracError 22 24 from trac.ticket import TicketSystem 25 from trac.util import sorted, embedded_numbers 23 26 24 27 __all__ = ['Ticket', 'Type', 'Status', 'Resolution', 'Priority', 'Severity', … … 616 619 if not include_completed: 617 620 sql += "WHERE COALESCE(completed,0)=0 " 618 sql += "ORDER BY COALESCE(due,0)=0,due,name"619 621 cursor = db.cursor() 620 622 cursor.execute(sql) 623 milestones = [] 621 624 for name,due,completed,description in cursor: 622 625 milestone = Milestone(env) … … 625 628 milestone.completed = completed and int(completed) or 0 626 629 milestone.description = description or '' 627 yield milestone 630 milestones.append(milestone) 631 def milestone_order(m): 632 return (m.completed or sys.maxint, 633 m.due or sys.maxint, 634 embedded_numbers(m.name)) 635 return sorted(milestones, key=milestone_order) 628 636 select = classmethod(select) 629 637 … … 717 725 db = env.get_db_cnx() 718 726 cursor = db.cursor() 719 cursor.execute("SELECT name,time,description FROM version "720 "ORDER BY COALESCE(time,0),name")727 cursor.execute("SELECT name,time,description FROM version") 728 versions = [] 721 729 for name, time, description in cursor: 722 component = cls(env) 723 component.name = name 724 component.time = time and int(time) or None 725 component.description = description or '' 726 yield component 730 version = cls(env) 731 version.name = name 732 version.time = time and int(time) or None 733 version.description = description or '' 734 versions.append(version) 735 def version_order(v): 736 return (v.time or sys.maxint, embedded_numbers(v.name)) 737 return sorted(versions, key=version_order, reverse=True) 727 738 select = classmethod(select) tracfrenchtranslation/0.9/trac/ticket/query.py
r293 r394 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 Christopher Lenz <cmlenz@gmx.de> 5 # Copyright (C) 2005-2006 Christian Boos <cboos@neuf.fr> 5 6 # All rights reserved. 6 7 # … … 594 595 if result['description']: 595 596 # 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 descr = wiki_to_html(result['description'], self.env, req, db, 598 absurls=True) 599 result['description'] = str(descr) 599 600 if result['time']: 600 601 result['time'] = http_date(result['time']) 601 602 req.hdf['query.results'] = results 603 req.hdf['query.href'] = self.env.abs_href.query(group=query.group, 604 groupdesc=query.groupdesc and 1 or None, 605 verbose=query.verbose and 1 or None, 606 **query.constraints) 602 607 603 608 # IWikiSyntaxProvider methods tracfrenchtranslation/0.9/trac/ticket/report.py
r293 r394 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-2004 Jonas Borgström <jonas@edgewall.com> 5 # Copyright (C) 2006 Christian Boos <cboos@neuf.fr> 5 6 # All rights reserved. 6 7 # … … 197 198 'id': id, 198 199 'mode': 'delete', 199 'title': util.row[0],200 'title': row[0], 200 201 'href': self.env.href.report(id) 201 202 } … … 255 256 title, description, sql = self.get_info(db, id, args) 256 257 257 if req.args.get('format') == 'sql': 258 format = req.args.get('format') 259 if format == 'sql': 258 260 self._render_sql(req, id, title, description, sql) 259 261 return … … 345 347 value['ticket_href'] = self.env.href.ticket(id_val) 346 348 elif column == 'description': 347 value['parsed'] = wiki_to_html(cell, self.env, req, db) 349 descr = wiki_to_html(cell, self.env, req, db, 350 absurls=(format == 'rss')) 351 value['parsed'] = format == 'rss' and str(descr) or descr 348 352 elif column == 'reporter' and cell.find('@') != -1: 349 353 value['rss'] = cell … … 364 368 req.hdf['report.numrows'] = row_idx 365 369 366 format = req.args.get('format')367 370 if format == 'rss': 368 self._render_rss(req)369 371 return 'report_rss.cs', 'application/rss+xml' 370 372 elif format == 'csv': … … 481 483 req.write(sep.join(map(sanitize, row)) + '\r\n') 482 484 483 def _render_rss(self, req):484 # Escape HTML in the ticket summaries485 item = req.hdf.getObj('report.items')486 if item:487 item = item.child()488 while item:489 for col in ('summary', 'description.parsed'):490 nodename = 'report.items.%s.%s' % (item.name(), col)491 value = req.hdf.get(nodename, '')492 req.hdf[nodename] = value493 item = item.next()494 495 485 def _render_sql(self, req, id, title, description, sql): 496 486 req.perm.assert_permission('REPORT_SQL_VIEW') tracfrenchtranslation/0.9/trac/ticket/roadmap.py
r293 r394 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 Christopher Lenz <cmlenz@gmx.de> 5 # Copyright (C) 2006 Christian Boos <cboos@neuf.fr> 5 6 # All rights reserved. 6 7 # … … 151 152 152 153 db = self.env.get_db_cnx() 153 milestones = [] 154 for idx, milestone in enumerate(Milestone.select(self.env, showall)): 155 hdf = milestone_to_hdf(self.env, db, req, milestone) 156 milestones.append(hdf) 157 req.hdf['roadmap.milestones'] = milestones 154 milestones = [milestone_to_hdf(self.env, db, req, m) 155 for m in Milestone.select(self.env, showall, db)] 156 req.hdf['roadmap.milestones'] = milestones 158 157 159 158 for idx,milestone in enumerate(milestones): … … 318 317 if format == 'rss': 319 318 href = self.env.abs_href.milestone(name) 320
