Changeset 38
- Timestamp:
- 2008年07月31日 17时48分57秒 (4 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 10 modified
-
config/Makefile (modified) (1 diff)
-
pySvnManager.egg-info/SOURCES.txt (modified) (1 diff)
-
pysvnmanager/controllers/logs.py (modified) (2 diffs)
-
pysvnmanager/i18n/en/LC_MESSAGES/pysvnmanager.po (modified) (6 diffs)
-
pysvnmanager/i18n/pysvnmanager.pot (modified) (5 diffs)
-
pysvnmanager/i18n/zh/LC_MESSAGES/pysvnmanager.po (modified) (6 diffs)
-
pysvnmanager/model/rcsbackup.py (modified) (6 diffs)
-
pysvnmanager/templates/base.mako (modified) (2 diffs)
-
pysvnmanager/templates/logs/rollback.mako (added)
-
pysvnmanager/templates/logs/view.mako (modified) (2 diffs)
-
pysvnmanager/tests/test_rcs_backup.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/config/Makefile
r27 r38 8 8 @-rm $(CONFFILE) >/dev/null 2>&1 9 9 @-rm localconfig.pyc >/dev/null 2>&1 10 @-rm -f *,v RCS/* ,v 2>&110 @-rm -f *,v RCS/*test,v 2>&1 11 11 12 12 %: $(SRCDIR)/%.in -
trunk/pySvnManager.egg-info/SOURCES.txt
r37 r38 64 64 pysvnmanager/templates/login/logout.mako 65 65 pysvnmanager/templates/logs/index.mako 66 pysvnmanager/templates/logs/rollback.mako 66 67 pysvnmanager/templates/logs/view.mako 67 68 pysvnmanager/templates/role/index.mako -
trunk/pysvnmanager/controllers/logs.py
r36 r38 69 69 'who' : logs[i].get('author',''), 70 70 'when': logs[i].get('date',''), 71 'why' : h.link_to(logs[i].get('log',''), h.url(action='view', id=logs[i].get('revision',''))), 71 'why' : h.link_to(logs[i].get('log',''), \ 72 h.url(action='view', id=logs[i].get('revision','')), \ 73 popup=['view_logs'] 74 ), 72 75 } 73 76 … … 138 141 def view(self, id): 139 142 assert id and isinstance(id, basestring) 140 c.contents = unicode(self.rcslog.cat(id), 'utf-8')143 c.contents = self.rcslog.cat(id) 141 144 c.log = self.rcslog.get_logs(id, id)[0] 142 145 return render('/logs/view.mako') 143 146 144 147 def rollback(self, id): 145 msg = _("Rollback to revision: %s" % id)148 log_message = _("Rollback successfully to revision: %s") % id 146 149 try: 147 150 assert id and isinstance(id, basestring) 148 151 self.rcslog.restore(id) 149 self.rcslog.backup(comment= msg, user=self.login_as)152 self.rcslog.backup(comment=log_message, user=self.login_as) 150 153 except Exception, e: 151 return e 154 msg = "%s" % e 155 if isinstance(msg, str): 156 msg = unicode(msg, 'utf-8') 157 c.msg = _("Rollback failed: %s") % msg 152 158 else: 153 return msg 159 c.msg = log_message 160 161 return render('/logs/rollback.mako') 162 -
trunk/pysvnmanager/i18n/en/LC_MESSAGES/pysvnmanager.po
r36 r38 10 10 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 11 11 "POT-Creation-Date: 2008-07-03 22:14+0800\n" 12 "PO-Revision-Date: 2008-07-31 0 1:18+0800\n"12 "PO-Revision-Date: 2008-07-31 09:21+0800\n" 13 13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 14 14 "Language-Team: en <LL@li.org>\n" … … 117 117 msgstr "" 118 118 119 #: pysvnmanager/controllers/logs.py:9 4119 #: pysvnmanager/controllers/logs.py:97 120 120 msgid "Page: " 121 121 msgstr "" 122 122 123 #: pysvnmanager/controllers/logs.py:13 0123 #: pysvnmanager/controllers/logs.py:133 124 124 msgid "Compares between" 125 125 msgstr "" 126 126 127 #: pysvnmanager/controllers/logs.py:145 128 #, python-format 129 msgid "Rollback to revision: %s" 127 #: pysvnmanager/controllers/logs.py:148 128 #, python-format 129 msgid "Rollback successfully to revision: %s" 130 msgstr "" 131 132 #: pysvnmanager/controllers/logs.py:157 133 #, python-format 134 msgid "Rollback failed: %s" 130 135 msgstr "" 131 136 … … 263 268 msgstr "" 264 269 265 #: pysvnmanager/templates/base.mako: 84270 #: pysvnmanager/templates/base.mako:11 266 271 msgid "Loading, please wait..." 267 272 msgstr "" 268 273 269 #: pysvnmanager/templates/base.mako: 88274 #: pysvnmanager/templates/base.mako:27 270 275 msgid "Check permissions" 271 276 msgstr "" 272 277 273 #: pysvnmanager/templates/base.mako: 89278 #: pysvnmanager/templates/base.mako:28 274 279 msgid "Role management" 275 280 msgstr "" 276 281 277 #: pysvnmanager/templates/base.mako: 90282 #: pysvnmanager/templates/base.mako:29 278 283 #: pysvnmanager/templates/authz/index.mako:5 279 284 #: pysvnmanager/templates/authz/index.mako:603 … … 281 286 msgstr "" 282 287 283 #: pysvnmanager/templates/base.mako: 91288 #: pysvnmanager/templates/base.mako:30 284 289 msgid "Logs" 285 290 msgstr "" 286 291 287 #: pysvnmanager/templates/base.mako: 93292 #: pysvnmanager/templates/base.mako:32 288 293 msgid "Logout" 289 294 msgstr "" … … 475 480 #: pysvnmanager/templates/logs/index.mako:5 476 481 #: pysvnmanager/templates/logs/index.mako:60 477 #: pysvnmanager/templates/logs/view.mako:5 482 #: pysvnmanager/templates/logs/rollback.mako:4 483 #: pysvnmanager/templates/logs/view.mako:4 478 484 msgid "Administration logs" 479 485 msgstr "" … … 483 489 msgstr "" 484 490 491 #: pysvnmanager/templates/logs/rollback.mako:9 492 msgid "Rollback" 493 msgstr "" 494 495 #: pysvnmanager/templates/logs/rollback.mako:14 496 #: pysvnmanager/templates/logs/view.mako:18 497 msgid "Close" 498 msgstr "" 499 500 #: pysvnmanager/templates/logs/view.mako:9 501 msgid "View history, revision" 502 msgstr "" 503 504 #: pysvnmanager/templates/logs/view.mako:15 505 msgid "Rollback to this revision, are you sure?" 506 msgstr "" 507 485 508 #: pysvnmanager/templates/logs/view.mako:16 486 msgid "View history, revision"487 msgstr ""488 489 #: pysvnmanager/templates/logs/view.mako:23490 509 msgid "Rollback to this revision" 491 510 msgstr "" -
trunk/pysvnmanager/i18n/pysvnmanager.pot
r36 r38 7 7 msgid "" 8 8 msgstr "" 9 "Project-Id-Version: pySvnManager 0.1. 2\n"9 "Project-Id-Version: pySvnManager 0.1.3\n" 10 10 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 11 "POT-Creation-Date: 2008-07-31 0 1:18+0800\n"11 "POT-Creation-Date: 2008-07-31 09:21+0800\n" 12 12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 110 110 msgstr "" 111 111 112 #: pysvnmanager/controllers/logs.py:9 4112 #: pysvnmanager/controllers/logs.py:97 113 113 msgid "Page: " 114 114 msgstr "" 115 115 116 #: pysvnmanager/controllers/logs.py:13 0116 #: pysvnmanager/controllers/logs.py:133 117 117 msgid "Compares between" 118 118 msgstr "" 119 119 120 #: pysvnmanager/controllers/logs.py:145 121 #, python-format 122 msgid "Rollback to revision: %s" 120 #: pysvnmanager/controllers/logs.py:148 121 #, python-format 122 msgid "Rollback successfully to revision: %s" 123 msgstr "" 124 125 #: pysvnmanager/controllers/logs.py:157 126 #, python-format 127 msgid "Rollback failed: %s" 123 128 msgstr "" 124 129 … … 256 261 msgstr "" 257 262 258 #: pysvnmanager/templates/base.mako: 84263 #: pysvnmanager/templates/base.mako:11 259 264 msgid "Loading, please wait..." 260 265 msgstr "" 261 266 262 #: pysvnmanager/templates/base.mako: 88267 #: pysvnmanager/templates/base.mako:27 263 268 msgid "Check permissions" 264 269 msgstr "" 265 270 266 #: pysvnmanager/templates/base.mako: 89271 #: pysvnmanager/templates/base.mako:28 267 272 msgid "Role management" 268 273 msgstr "" 269 274 270 #: pysvnmanager/templates/base.mako: 90pysvnmanager/templates/authz/index.mako:5275 #: pysvnmanager/templates/base.mako:29 pysvnmanager/templates/authz/index.mako:5 271 276 #: pysvnmanager/templates/authz/index.mako:603 272 277 msgid "ACL management" 273 278 msgstr "" 274 279 275 #: pysvnmanager/templates/base.mako: 91280 #: pysvnmanager/templates/base.mako:30 276 281 msgid "Logs" 277 282 msgstr "" 278 283 279 #: pysvnmanager/templates/base.mako: 93284 #: pysvnmanager/templates/base.mako:32 280 285 msgid "Logout" 281 286 msgstr "" … … 467 472 #: pysvnmanager/templates/logs/index.mako:5 468 473 #: pysvnmanager/templates/logs/index.mako:60 469 #: pysvnmanager/templates/logs/view.mako:5 474 #: pysvnmanager/templates/logs/rollback.mako:4 475 #: pysvnmanager/templates/logs/view.mako:4 470 476 msgid "Administration logs" 471 477 msgstr "" … … 475 481 msgstr "" 476 482 483 #: pysvnmanager/templates/logs/rollback.mako:9 484 msgid "Rollback" 485 msgstr "" 486 487 #: pysvnmanager/templates/logs/rollback.mako:14 488 #: pysvnmanager/templates/logs/view.mako:18 489 msgid "Close" 490 msgstr "" 491 492 #: pysvnmanager/templates/logs/view.mako:9 493 msgid "View history, revision" 494 msgstr "" 495 496 #: pysvnmanager/templates/logs/view.mako:15 497 msgid "Rollback to this revision, are you sure?" 498 msgstr "" 499 477 500 #: pysvnmanager/templates/logs/view.mako:16 478 msgid "View history, revision"479 msgstr ""480 481 #: pysvnmanager/templates/logs/view.mako:23482 501 msgid "Rollback to this revision" 483 502 msgstr "" -
trunk/pysvnmanager/i18n/zh/LC_MESSAGES/pysvnmanager.po
r36 r38 9 9 msgid "" 10 10 msgstr "" 11 "Project-Id-Version: pysvnmanager\n"11 "Project-Id-Version: pysvnmanager\n" 12 12 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 13 13 "POT-Creation-Date: 2008-07-03 22:14+0800\n" 14 "PO-Revision-Date: 2008-07-31 0 1:20+0800\n"14 "PO-Revision-Date: 2008-07-31 09:21+0800\n" 15 15 "Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n" 16 "Language-Team: <zh@li.org>\n"16 "Language-Team: <zh@li.org>\n" 17 17 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION\n" 18 18 "MIME-Version: 1.0\n" 19 "Content-Type: text/plain; charset= UTF-8\n"19 "Content-Type: text/plain; charset=utf-8\n" 20 20 "Content-Transfer-Encoding: 8bit\n" 21 21 "Generated-By: Babel 0.9.2\n" 22 "X-Generator: KBabel 1.11.4\n"23 22 24 23 #: pysvnmanager/controllers/authz.py:29 … … 120 119 msgstr "比较" 121 120 122 #: pysvnmanager/controllers/logs.py:9 4121 #: pysvnmanager/controllers/logs.py:97 123 122 msgid "Page: " 124 123 msgstr "页面: " 125 124 126 #: pysvnmanager/controllers/logs.py:13 0125 #: pysvnmanager/controllers/logs.py:133 127 126 msgid "Compares between" 128 127 msgstr "版本间比较" 129 128 130 #: pysvnmanager/controllers/logs.py:145 131 #, python-format 132 msgid "Rollback to revision: %s" 133 msgstr "回滚至版本: %s" 129 #: pysvnmanager/controllers/logs.py:148 130 #, python-format 131 msgid "Rollback successfully to revision: %s" 132 msgstr "成功回滚至版本: %s" 133 134 #: pysvnmanager/controllers/logs.py:157 135 #, python-format 136 msgid "Rollback failed: %s" 137 msgstr "回滚失败: %s" 134 138 135 139 #: pysvnmanager/controllers/role.py:103 … … 286 290 "%(sep)s\n" 287 291 288 #: pysvnmanager/templates/base.mako: 84292 #: pysvnmanager/templates/base.mako:11 289 293 msgid "Loading, please wait..." 290 294 msgstr "数据加载中,请稍后..." 291 295 292 #: pysvnmanager/templates/base.mako: 88296 #: pysvnmanager/templates/base.mako:27 293 297 msgid "Check permissions" 294 298 msgstr "权限检查" 295 299 296 #: pysvnmanager/templates/base.mako: 89300 #: pysvnmanager/templates/base.mako:28 297 301 msgid "Role management" 298 302 msgstr "角色管理" 299 303 300 #: pysvnmanager/templates/base.mako: 90304 #: pysvnmanager/templates/base.mako:29 301 305 #: pysvnmanager/templates/authz/index.mako:5 302 306 #: pysvnmanager/templates/authz/index.mako:603 … … 304 308 msgstr "权限控制" 305 309 306 #: pysvnmanager/templates/base.mako: 91310 #: pysvnmanager/templates/base.mako:30 307 311 msgid "Logs" 308 312 msgstr "日志" 309 313 310 #: pysvnmanager/templates/base.mako: 93314 #: pysvnmanager/templates/base.mako:32 311 315 msgid "Logout" 312 316 msgstr "登出" … … 498 502 #: pysvnmanager/templates/logs/index.mako:5 499 503 #: pysvnmanager/templates/logs/index.mako:60 500 #: pysvnmanager/templates/logs/view.mako:5 504 #: pysvnmanager/templates/logs/rollback.mako:4 505 #: pysvnmanager/templates/logs/view.mako:4 501 506 msgid "Administration logs" 502 507 msgstr "修改记录" … … 506 511 msgstr "版本比较" 507 512 508 #: pysvnmanager/templates/logs/view.mako:16 513 #: pysvnmanager/templates/logs/rollback.mako:9 514 msgid "Rollback" 515 msgstr "数据回滚" 516 517 #: pysvnmanager/templates/logs/rollback.mako:14 518 #: pysvnmanager/templates/logs/view.mako:18 519 msgid "Close" 520 msgstr "关闭" 521 522 #: pysvnmanager/templates/logs/view.mako:9 509 523 msgid "View history, revision" 510 524 msgstr "查看历史, 版本" 511 525 512 #: pysvnmanager/templates/logs/view.mako:23 526 #: pysvnmanager/templates/logs/view.mako:15 527 msgid "Rollback to this revision, are you sure?" 528 msgstr "你确认回滚文件至此版本么?" 529 530 #: pysvnmanager/templates/logs/view.mako:16 513 531 msgid "Rollback to this revision" 514 532 msgstr "回滚至此版本" -
trunk/pysvnmanager/model/rcsbackup.py
r36 r38 95 95 buff = os.popen(cmd).read().strip() 96 96 if buff: 97 raise Exception, "Command: %s\nError Message: %s\n" % ( cmd, buff)97 raise Exception, "Command: %s\nError Message: %s\n" % (get_unicode(cmd), get_unicode(buff)) 98 98 99 99 … … 108 108 cmd = '%(cmd)s %(opts)s -q "%(file)s"' % {'cmd':CMD_CO, "opts":opts, "file":wcfile } 109 109 buff = os.popen(cmd).read().strip() 110 return buff110 return get_unicode(buff) 111 111 112 112 def differ(filename, rev1="", rev2=""): … … 121 121 log.debug('Command: '+cmd) 122 122 buff = os.popen(cmd).read() 123 return buff123 return get_unicode(buff) 124 124 125 125 class RcsLog(object): … … 141 141 if self.__total == 0: 142 142 count = 0 143 elif self.__total == 1:143 elif self.__total <= self.__log_per_page: 144 144 count = 1 145 145 else: … … 179 179 180 180 def reload(self): 181 cmd = '%(cmd)s - L -h -N "%(file)s"' % {'cmd':CMD_RLOG, 'file':self.__file}181 cmd = '%(cmd)s -h -N "%(file)s"' % {'cmd':CMD_RLOG, 'file':self.__file} 182 182 buff = os.popen(cmd).read().strip() 183 184 183 # RCS file: 1,v 185 184 m = self.p['rcs'].search(buff) … … 247 246 opts="%s,%s" % (opts, rev3) 248 247 249 cmd = '%(cmd)s %(opts)s - L -N "%(file)s"' % {'cmd':CMD_RLOG, 'opts':opts, 'file':self.__file}248 cmd = '%(cmd)s %(opts)s -N "%(file)s"' % {'cmd':CMD_RLOG, 'opts':opts, 'file':self.__file} 250 249 log.debug('Command: '+cmd) 251 250 buff = os.popen(cmd).read().strip().rstrip('=').rstrip() -
trunk/pysvnmanager/templates/base.mako
r31 r38 3 3 <head> 4 4 ${self.head_tags()} 5 ${h.javascript_include_tag(builtins=True)} 5 ${self.ajax_script()} 6 </head> 7 <body ${self.body_params()}> 8 9 <div id="popup_shadow" style="z-index:100;visibility:hidden;display:none;position:absolute;top:0px;width:100%;height:100%;background:#000000;opacity:0.0;filter:alpha(opacity=0);"></div> 10 <div id="popup_notices" style="z-index:101;border:1px solid gray;position:absolute;top:0;left:250px;visibility:hidden;display:none;background:#eeee20;"> 11 ${_("Loading, please wait...")} 12 </div> 13 14 ${self.nav_bar()} 15 16 ${next.body()} 17 </body> 18 </html> 19 20 <%def name="head_tags()"> 21 <title>Override Me!</title> 22 </%def> 23 24 <%def name="nav_bar()"> 25 <table> 26 <tr> 27 <td>${h.link_to(_("Check permissions"), h.url_for(controller="check", id=None))}</td> 28 <td>${h.link_to(_("Role management"), h.url(controller="role", id=None))}</td> 29 <td>${h.link_to(_("ACL management"), h.url(controller="authz", id=None))}</td> 30 <td>${h.link_to(_("Logs"), h.url(controller="logs", id=None))}</td> 31 <td>welcome ${session.get('user')}</td> 32 <td>${h.link_to(_("Logout"), h.url(controller="logout", id=None))}</td> 33 </tr> 34 </table> 35 </%def> 36 37 <%def name="ajax_script()"> 38 ${h.javascript_include_tag(builtins=True)} 6 39 7 40 <!-- IE layout bugfix --> … … 75 108 document.getElementById('popup_notices').style.display = 'none'; 76 109 } 77 78 110 </script> 79 </head>80 <body ${self.body_params()}>81 82 <div id="popup_shadow" style="z-index:100;visibility:hidden;display:none;position:absolute;top:0px;width:100%;height:100%;background:#000000;opacity:0.0;filter:alpha(opacity=0);"></div>83 <div id="popup_notices" style="z-index:101;border:1px solid gray;position:absolute;top:0;left:250px;visibility:hidden;display:none;background:#eeee20;">84 ${_("Loading, please wait...")}85 </div>86 <table>87 <tr>88 <td>${h.link_to(_("Check permissions"), h.url(controller="check"))}</td>89 <td>${h.link_to(_("Role management"), h.url(controller="role"))}</td>90 <td>${h.link_to(_("ACL management"), h.url(controller="authz"))}</td>91 <td>${h.link_to(_("Logs"), h.url(controller="logs"))}</td>92 <td>welcome ${session.get('user')}</td>93 <td>${h.link_to(_("Logout"), h.url(controller="logout"))}</td>94 </tr>95 </table>96 97 ${next.body()}98 </body>99 </html>100 101 <%def name="head_tags()">102 <title>Override Me!</title>103 111 </%def> 104 112 -
trunk/pysvnmanager/templates/logs/view.mako
r36 r38 1 1 ## -*- coding: utf-8 -*- 2 2 <%inherit file="/base.mako" /> 3 4 3 <%def name="head_tags()"> 5 4 <title>${_("Administration logs")}</title> 6 5 </%def> 7 8 <SCRIPT LANGUAGE="JavaScript"> 9 function rollback() 10 { 11 12 } 13 14 </SCRIPT> 6 <%def name="nav_bar()"></%def> 7 <%def name="ajax_script()"></%def> 15 8 16 9 <h2>${_("View history, revision")} ${c.log.get('revision')}</h2> … … 20 13 </textarea> 21 14 22 <form name="main_form" action="${h.url_for(action='rollback')}"> 23 <input type="submit" name="submit" value='${_("Rollback to this revision")}'> 15 <form name="main_form" action="${h.url_for(action='rollback')}" onsubmit="return confirm('${_("Rollback to this revision, are you sure?")}');"> 16 <input type="submit" name="submit" value='${_("Rollback to this revision")}'> 17 18 <input type="button" name="close" value='${_("Close")}' onclick="window.close();"> 24 19 </form> -
trunk/pysvnmanager/tests/test_rcs_backup.py
r36 r38 122 122 123 123 def testLogs(self): 124 for i in range(1,11): 124 rcslog = rcs.RcsLog(self.wcfile) 125 rcslog.log_per_page = 10 126 for i in range(1,rcslog.log_per_page+1): 125 127 # new file, backup to r1.1 126 128 self.writefile(i) 127 129 rcs.backup(self.wcfile, comment="Test no. %d" % i, user="User1") 128 129 rcslog = rcs.RcsLog(self.wcfile) 130 rcslog.reload() 131 assert rcslog.total == i, rcslog.total 132 assert rcslog.total_page == 1, rcslog.total_page 133 134 rcslog.reload() 130 135 assert "rcstest.txt,v" in rcslog.rcsfile, rcslog.rcsfile 131 136 assert rcslog.head=='1.10', rcslog.head
![(please configure the [header_logo] section in trac.ini)](/trac/pysvnmanager/chrome/common/trac_banner.png)