Changeset 3679
- Timestamp:
- 05/14/08 01:44:15 (4 months ago)
- Files:
-
- zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/changelog.txt (modified) (1 diff)
- zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/model.py (modified) (1 diff)
- zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/readme.txt (modified) (2 diffs)
- zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/relaticketadmin.py (modified) (8 diffs)
- zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/templates/admin_relaticket.cs (modified) (2 diffs)
- zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/upgrades.py (modified) (1 diff)
- zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/version.txt (modified) (1 diff)
- zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/setup.py (modified) (2 diffs)
- zoomquiettranslation/plugins/KSTracMileMixView/burndown.py (modified) (3 diffs)
- zoomquiettranslation/plugins/KSTracMileMixView/crontab.example (added)
- zoomquiettranslation/plugins/KSTracMileMixView/extchart.py (modified) (1 diff)
- zoomquiettranslation/plugins/KSTracMileMixView/ini.py (modified) (3 diffs)
- zoomquiettranslation/plugins/KSTracMileMixView/readme.txt (modified) (2 diffs)
- zoomquiettranslation/plugins/KSTracMileMixView/relaticket.py (modified) (3 diffs)
- zoomquiettranslation/plugins/KSTracMileMixView/run_burndown.py (modified) (4 diffs)
- zoomquiettranslation/plugins/KSTracMileMixView/tpl/idx.relat.tpl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/changelog.txt
r3568 r3679 1 MileMixViewAdmin 0.2 (May 14, 2008) 2 * Rename to MileMixView 3 1 4 RelaTicketAdmin 0.1 (April 22, 2008) 2 5 zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/model.py
r3568 r3679 2 2 #---------------------------------------------------------------------------- 3 3 # Name: model.py 4 # Purpose: The relaticketadmin Trac plugin db model module4 # Purpose: The MileMixView admin Trac plugin db model module 5 5 # 6 6 # Author: Richard Liao <richard.liao.i@gmail.com> zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/readme.txt
r3576 r3679 1 = RelaTicketAdmin²åŒþ =1 = MileMixViewAdmin²åŒþ = 2 2 3 3 == ÃèÊö == 4 * http://trac-hacks.org/wiki/ RelaTicketAdmin4 * http://trac-hacks.org/wiki/MileMixViewAdmin 5 5 * Trac¹ØÁªŽ«Æ±ÊÓ͌ͳŒÆÀï³Ì±®µÄÍê³É׎¿ö,²¢ÄÜÏÔÊŸžž×Ó¹ØÏµµÄŽ«Æ±¹ØÏµ 6 6 … … 23 23 24 24 [rtadmin] 25 base_path = /path/to/output/html/files #/tracs/ctrl/keylist/KSTracRelaTicket/exp 25 base_path = /path/to/output/html/files #/tracs/ctrl/keylist/KSTracMileMixView 26 exp_path = exp 26 27 }}} 27 28 28 29 == Ó÷š == 29 30 * Trac¹ÜÀíÔ±ÉèÖÃÒªÉú³ÉÊÓÍŒµÄÀï³Ì±®: 30 * ×÷Ϊ¹ÜÀíÔ±µÇÂŒ, Žò¿ªAdmin -> Ticket System -> RelaTicket31 * ×÷Ϊ¹ÜÀíÔ±µÇÂŒ, Žò¿ªAdmin -> Ticket System -> MileMixView 31 32 * Ñ¡ÔñÐèÒªÏàÓŠµÄÀï³Ì±® 32 33 33 34 == ÏÂÔØ == 34 35 35 * [/svn/zoomquiettranslation/plugins/KSTrac RelaTicketAdmin SVB]36 * [source:zoomquiettranslation/plugins/KSTrac RelaTicketAdmin ä¯ÀÀ]36 * [/svn/zoomquiettranslation/plugins/KSTracMileMixViewAdmin SVB] 37 * [source:zoomquiettranslation/plugins/KSTracMileMixViewAdmin ä¯ÀÀ] zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/relaticketadmin.py
r3568 r3679 2 2 #---------------------------------------------------------------------------- 3 3 # Name: rtadmin.py 4 # Purpose: The relaticketadmin Trac plugin handler module4 # Purpose: The MileMixView admin Trac plugin handler module 5 5 # 6 6 # Author: Richard Liao <richard.liao.i@gmail.com> … … 34 34 from model import schema, schema_version, RT_Template 35 35 36 __all__ = [' RelaTicketAdminModule']37 38 class RelaTicketAdminModule(Component):36 __all__ = ['MileMixViewAdminModule'] 37 38 class MileMixViewAdminModule(Component): 39 39 40 40 implements(ITemplateProvider, … … 102 102 103 103 if req.perm.has_permission('RT_ADMIN'): 104 yield 'ticket', 'Ticket', 'rtadmin', ' RelaTicketAdmin'104 yield 'ticket', 'Ticket', 'rtadmin', 'MileMixView Admin' 105 105 106 106 … … 108 108 req.perm.assert_permission('RT_ADMIN') 109 109 110 if req.method == 'POST': 111 if req.args.get('save') and req.args.get('sel'): 112 113 # empty table first 114 RT_Template.deleteAll(self.env) 115 116 # insert selected milestone into table 117 sel = req.args.get('sel') 118 sel = isinstance(sel, list) and sel or [sel] 119 db = self.env.get_db_cnx() 120 for milestone in sel: 121 RT_Template.insert(self.env, milestone) 122 db.commit() 123 req.redirect(self.env.href.admin(cat, page)) 110 update = "" 111 for key in req.args.keys(): 112 if key.startswith("update_"): 113 update = key[len("update_"):] 114 break 115 116 if update: 117 # update now 118 base_path = self.env.config.get('rtadmin', 'base_path') 119 run_burndown = "python " + os.path.join(base_path, "run_burndown.py %s" % update.encode("utf-8")) 120 os.system(run_burndown) 121 122 elif req.args.get('save') and req.args.get('sel'): 123 124 # empty table first 125 RT_Template.deleteAll(self.env) 126 127 # insert selected milestone into table 128 sel = req.args.get('sel') 129 sel = isinstance(sel, list) and sel or [sel] 130 db = self.env.get_db_cnx() 131 for milestone in sel: 132 RT_Template.insert(self.env, milestone) 133 db.commit() 134 req.redirect(self.env.href.admin(cat, page)) 124 135 125 136 # get all enabled milestones … … 128 139 ms = Milestone.select(self.env) 129 140 ms.sort(cmp=lambda x,y: cmp(x.name, y.name)) 141 130 142 req.hdf['milestones'] = [{'name': m.name, 131 143 'href': self.env.href.admin(cat, page, m.name), 132 144 'enabled': m.name in enabledMilestones, 145 'update': stripMilestoneName(m.name), 133 146 } for m in ms] 134 147 … … 204 217 milestone = [] 205 218 for m in reAllMilestone: 206 mm = [] 207 for s in m.split("."): 208 try: 209 s.encode("ascii") 210 mm.append(s) 211 except: 212 break 213 milestone.append(".".join(mm)) 219 milestone.append(stripMilestoneName(m)) 214 220 215 221 data = [] … … 235 241 # get trac.ini 236 242 base_path = self.env.config.get('rtadmin', 'base_path') 243 exp_path = self.env.config.get('rtadmin', 'exp_path') 237 244 238 245 239 246 # formart return string 240 247 try: 241 returnStr = open( "%s/%s" % (base_path, filepath)).read()248 returnStr = open(os.path.join(base_path, exp_path, filepath)).read() 242 249 except: 243 250 returnStr = "No result yet." … … 259 266 req.write(message) 260 267 raise RequestDone 268 269 270 def stripMilestoneName(m): 271 # strip milestone name 272 mm = [] 273 for s in m.split("."): 274 try: 275 s.encode("ascii") 276 mm.append(s) 277 except: 278 break 279 return ".".join(mm) zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/templates/admin_relaticket.cs
r3568 r3679 15 15 <table class="listing" id="millist"> 16 16 <thead> 17 <tr><th class="sel">å¯çš</th><th>éçšç¢</th> 17 <tr><th class="sel">å¯çš</th><th>éçšç¢</th><th>æŽæ°</th> 18 18 </tr> 19 19 </thead><tbody><?cs … … 24 24 /if ?> /></td> 25 25 <td><?cs var:milestone.name ?></td> 26 <td><input type="submit" name="update_<?cs var:milestone.update ?>" value="å·æ°è§åŸ" <?cs 27 if:!milestone.enabled ?> disabled="true"<?cs 28 /if ?> /></td> 26 29 </tr><?cs 27 30 /each ?></tbody> zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/upgrades.py
r3568 r3679 2 2 #---------------------------------------------------------------------------- 3 3 # Name: upgrades.py 4 # Purpose: The relaticketadmin Trac plugin upgrade module4 # Purpose: The MileMixView admin Trac plugin upgrade module 5 5 # 6 6 # Author: Richard Liao <richard.liao.i@gmail.com> zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/rtadmin/version.txt
r3568 r3679 1 0. 11 0.2 zoomquiettranslation/plugins/KSTracMileMixViewAdmin/0.10/Zh/setup.py
r3568 r3679 2 2 3 3 setup( 4 name = 'Trac RelaTicketAdmin',5 version = '0. 1',4 name = 'TracMileMixViewAdmin', 5 version = '0.2', 6 6 packages = ['rtadmin'], 7 7 package_data = { 'rtadmin': [ '*.txt', 'templates/*.*', 'htdocs/*.*', 'tests/*.*' ] }, … … 11 11 maintainer = 'Richard Liao', 12 12 maintainer_email = "richard.liao.i@gmail.com", 13 description = " RelaTicketAdmin plugin for Trac.",13 description = "MileMixView Admin plugin for Trac.", 14 14 license = "BSD", 15 15 keywords = "trac rela ticket admin", 16 url = "http://trac-hacks.org/wiki/ RelaTicketAdmin",16 url = "http://trac-hacks.org/wiki/MileMixViewAdmin", 17 17 classifiers = [ 18 18 'Framework :: Trac', zoomquiettranslation/plugins/KSTracMileMixView/burndown.py
r3570 r3679 6 6 7 7 import logging 8 #---------------------------------------------------------------------------- 9 abspath = os.path.abspath(sys.argv[0]) 10 dirname = os.path.dirname(abspath) 11 8 12 daylog = "%s"%(time.strftime("%y%m%d",time.localtime())) 9 13 logging.basicConfig(level=logging.DEBUG, 10 14 format='[%(asctime)s]%(levelname)-8s"%(message)s"', 11 15 datefmt='%Y-%m-%d %a %H:%M:%S', 12 filename= 'log/burn-%s.log'%daylog,16 filename=os.path.join(dirname, 'log/burn-%s.log'%daylog), 13 17 filemode='a+') 14 18 … … 38 42 39 43 # load setting from ini 40 self.fDict = "%s/%s.dump"%(self.init['dumpath'],milestone)44 self.fDict = os.path.join(dirname, "%s/%s.dump"%(self.init['dumpath'],milestone)) 41 45 self.expRoot = self.init['expath'] 42 46 self.projname = self.init['projname'] … … 190 194 from extchart import extstate 191 195 192 chart = extstate(self.milestone, self.init['expath'],self.TicketQuery)196 chart = extstate(self.milestone,os.path.join(dirname, self.init['expath']),self.TicketQuery) 193 197 chart.hisChart(self.init['defont']) 194 198 zoomquiettranslation/plugins/KSTracMileMixView/extchart.py
r3570 r3679 73 73 #pheight = 2*int(self.data[labels[-1]]['total']['due'])#len(labels)*15 74 74 hs = [int(self.data[label]['total']['due']) for label in labels] 75 pheight = 2 * max(hs) 75 if hs: 76 pheight = 2 * max(hs) 77 else: 78 pheight = 10 79 76 80 cheight = 100+pheight 77 81 zoomquiettranslation/plugins/KSTracMileMixView/ini.py
r3570 r3679 1 1 # -*- coding: utf-8 -*- 2 '''for KSTrac RelaTicket2 '''for KSTracMileMixView 3 3 init all relational var 4 4 ''' … … 6 6 Settings = { 7 7 'rootpath':'/tracs/retracs' 8 ,'projname':' KXEngine'8 ,'projname':'trac1' 9 9 ,'dbname':'db/trac.db' 10 ,'ticketurl':'http://trac. rdev.kingsoft.net/KXEngine/ticket'11 ,'reporturl':'http://trac. rdev.kingsoft.net/KXEngine/report'10 ,'ticketurl':'http://trac.example.com/trac1/ticket' 11 ,'reporturl':'http://trac.example.com/trac1/report' 12 12 ,'dumpath':'data' 13 13 ,'logpath':'log' … … 57 57 } 58 58 59 #SELECT id, time, status60 #FROM ticket61 #WHERE milestone like "WSS.m1.1%"62 #ORDER BY time63 #64 #SELECT *65 #FROM ticket_change66 #WHERE milestone like "WSS.m1.1%"67 #ORDER BY time68 #69 #70 #SELECT71 # status, id , time72 # FROM ticket73 # WHERE time < 120984800074 #and milestone like "WSS.m1.1%"75 76 77 #SELECT tc.ticket, tc.newvalue, datetime(tc.time, 'unixepoch', 'localtime'), datetime(t.time, 'unixepoch', 'localtime'), tcu.value78 #FROM ticket_change tc, ticket t, ticket_custom tcu79 #WHERE tc.ticket = t.id and tcu.ticket = t.id80 #and tcu.name = 'duetime'81 #and t.milestone like "WSS.m1.1%"82 #and field='status'83 #ORDER BY t.id, tc.timezoomquiettranslation/plugins/KSTracMileMixView/readme.txt
r3575 r3679 1 = RelaTicket=1 = MileMixView = 2 2 3 3 == ÃèÊö == 4 * http://trac-hacks.org/wiki/ RelaTicket5 * žÃœÅ±ŸÊÇ [http://trac-hacks.org/wiki/ RelaTicketAdmin RelaTicketAdmin] µÄžšÖúœÅ±Ÿ.4 * http://trac-hacks.org/wiki/MileMixView 5 * žÃœÅ±ŸÊÇ [http://trac-hacks.org/wiki/MileMixView MileMixView] µÄžšÖúœÅ±Ÿ. 6 6 * ÓÃÓÚ¶šÆÚÉú³É¹ØÁªŽ«Æ±ÊÓÍŒHTMLÎÄŒþ. 7 7 … … 29 29 == ÏÂÔØ == 30 30 31 * [/svn/zoomquiettranslation/plugins/KSTrac RelaTicketSVN]31 * [/svn/zoomquiettranslation/plugins/KSTracMileMixView SVN] 32 32 33 * [source:zoomquiettranslation/plugins/KSTrac RelaTicketä¯ÀÀ]33 * [source:zoomquiettranslation/plugins/KSTracMileMixView ä¯ÀÀ] zoomquiettranslation/plugins/KSTracMileMixView/relaticket.py
r3570 r3679 6 6 7 7 import logging 8 #---------------------------------------------------------------------------- 9 abspath = os.path.abspath(sys.argv[0]) 10 dirname = os.path.dirname(abspath) 11 8 12 daylog = "%s"%(time.strftime("%y%m%d",time.localtime())) 9 13 logging.basicConfig(level=logging.DEBUG, 10 14 format='[%(asctime)s]%(levelname)-8s"%(message)s"', 11 15 datefmt='%Y-%m-%d %a %H:%M:%S', 12 filename= 'log/relati-%s.log'%daylog,16 filename=os.path.join(dirname, 'log/relati-%s.log'%daylog), 13 17 filemode='a+') 14 18 … … 43 47 44 48 # load setting from ini 45 self.fDict = "data/%s.dump"%milestone49 self.fDict = os.path.join(dirname, "data/%s.dump"%milestone) 46 50 self.expRoot = self.init['expath'] 47 51 self.projname = self.init['projname'] … … 53 57 54 58 55 self.tplIdx = "%s/idx.relat.tpl"%self.init['tplpath']56 self.expIdx = "%s/idx-%s.html"%(self.init['expath'],milestone)59 self.tplIdx = os.path.join(dirname, "%s/idx.relat.tpl"%self.init['tplpath']) 60 self.expIdx = os.path.join(dirname, "%s/idx-%s.html"%(self.init['expath'],milestone)) 57 61 58 62 zoomquiettranslation/plugins/KSTracMileMixView/run_burndown.py
r3570 r3679 54 54 f.close 55 55 56 def stripMilestoneName(m): 57 # strip milestone name 58 mm = [] 59 for s in m.split("."): 60 try: 61 s.encode("ascii") 62 mm.append(s) 63 except: 64 break 65 return ".".join(mm) 66 56 67 def getMilestones(): 57 68 # connect trac.db … … 69 80 milestone = [] 70 81 for m in reAllMilestone: 71 mm = [] 72 for s in m.split("."): 73 try: 74 s.encode("ascii") 75 mm.append(s) 76 except: 77 break 78 milestone.append(".".join(mm)) 82 milestone.append(stripMilestoneName(m)) 79 83 80 84 print "\n"*3, "milestone", milestone … … 83 87 84 88 #---------------------------------------------------------------------------- 89 update = "" 90 if len(sys.argv) > 2: 91 update = sys.argv[1].decode("utf-8") 92 93 abspath = os.path.abspath(sys.argv[0]) 94 dirname = os.path.dirname(abspath) 95 96 #---------------------------------------------------------------------------- 85 97 # init milestones 86 98 allMilestones = getMilestones() 99 if update: 100 if update not in allMilestones: 101 sys.exit(1) 87 102 88 103 #---------------------------------------------------------------------------- 89 104 # init settings for burndown 90 LOGFILE = "log/burndown-%(today)s.log" % {"today": today()}105 LOGFILE = os.path.join(dirname, "log/burndown-%(today)s.log" % {"today": today()}) 91 106 92 107 # starting burndown 93 108 log("###%(VER)s::start@ " % {"VER":VER} + date()) 94 109 95 for PROJ in allMilestones: 96 run("burndown.py", PROJ) 110 if update: 111 PROJ = update 112 run(os.path.join(dirname, "burndown.py"), PROJ) 113 else: 114 for PROJ in allMilestones: 115 run(os.path.join(dirname, "burndown.py"), PROJ) 97 116 98 117 # end burndown … … 101 120 #---------------------------------------------------------------------------- 102 121 # init settings for relaticket 103 LOGFILE = "log/relati-%(today)s.log" % {"today": today()}122 LOGFILE = os.path.join(dirname, "log/relati-%(today)s.log" % {"today": today()}) 104 123 105 124 # starting relaticket 106 125 log("###%(VER)s::start@ " % {"VER":VER} + date()) 107 126 108 for PROJ in allMilestones: 109 run("relaticket.py", PROJ) 127 if update: 128 PROJ = update 129 run(os.path.join(dirname, "relaticket.py"), PROJ) 130 else: 131 for PROJ in allMilestones: 132 run(os.path.join(dirname, "relaticket.py"), PROJ) 110 133 111 134 # end relaticket zoomquiettranslation/plugins/KSTracMileMixView/tpl/idx.relat.tpl
r3570 r3679 14 14 at:<sup> %(creaTime)s generated</sup> 15 15 <sub> 16 <a href="http://trac .rdev.kingsoft.net/kspeg/ticket/213">abt.Ticket</a>16 <a href="http://trac-hacks.org/wiki/MileMixView">About</a> 17 17 </sub> 18 <h4>%(projname)s 项ç®äŒ 祚å 19 ³èç¶ææ¥è¡š:: 18 <h4>%(projname)s éçšç»Œåè§åŸ:: 20 19 </h4> 21 20
