Changeset 3298
- Timestamp:
- 02/29/08 15:07:24 (9 months ago)
- Files:
-
- progressmetermacro/0.11/progressmeter/htdocs (added)
- progressmetermacro/0.11/progressmeter/htdocs/css (added)
- progressmetermacro/0.11/progressmeter/htdocs/css/progressmeter.css (added)
- progressmetermacro/0.11/progressmeter/macro.py (modified) (3 diffs)
- progressmetermacro/0.11/setup.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
progressmetermacro/0.11/progressmeter/macro.py
r3291 r3298 1 1 # -*- coding: utf-8 -*- 2 """ 3 ProgressMeterMacro plugin for Trac. 2 4 3 # For information about author, license, etc. see setup.py 5 License: GPLv2 6 7 Author: Andrej TokarÄÃk 8 Thanks to: Doug Hellman, osimons 9 """ 4 10 5 11 from genshi.builder import tag 6 12 7 13 from trac.core import * 8 from trac.wiki.api import IWikiMacroProvider 14 from trac.wiki.api import IWikiMacroProvider, parse_args 15 from trac.web.chrome import add_stylesheet, ITemplateProvider 9 16 from trac.wiki.macros import WikiMacroBase 10 17 from trac.ticket.query import Query 11 from trac.wiki.api import parse_args12 18 13 19 … … 20 26 http://trac-hacks.org/wiki/ProgressMeterMacro 21 27 """ 22 implements(IWikiMacroProvider )28 implements(IWikiMacroProvider, ITemplateProvider) 23 29 24 30 # IWikiMacroProvider methods … … 51 57 # Getting percent of active/closed tickets + formatting output 52 58 percents = {} 53 # list of percent and style for each type of tickets (closed, active) 54 property = 'background' 55 percents['closed'] = [float(cnt[1]) / float(cnt[0]), '%s: #bae0ba' % property] 56 percents['active'] = [1 - percents['closed'][0], '%s: #f5f5f5' % property] 59 # list of percent and CSS class for each type of tickets (closed, active) 60 percents['closed'] = [float(cnt[1]) / float(cnt[0]), 'closed'] 61 percents['active'] = [1 - percents['closed'][0], 'active'] 57 62 58 # CSS styles are mostly copied from htdocs/css/rodamap.css 59 # in standard trac distribution 60 table_css = ''' 61 border: 1px solid #d7d7d7; 62 border-collapse: collapse; 63 border-spacing: 0; 64 float: left; 65 margin: 3px 4px 3px 0; 66 empty-cells: show; 67 height: 1.2em; 68 width: 40em; 69 ''' 63 # Formatting output... 64 # (separate css is made using some parts of osimons's fullblog plugin) 65 add_stylesheet(formatter.req, 'progressmeter/css/progressmeter.css') 70 66 71 table = tag.table(style=table_css)(tag.tr()) 67 main_div = tag.div(class_='progressmeter') 68 table = tag.table()(tag.tr()) 69 72 70 for key in reversed(percents.keys()): 73 71 # reversing because we want the closed tickets to be processed firstly 74 72 percents[key][0] = unicode(int(percents[key][0] * 100)) + u'%' 75 table.children[0](tag.td(style='width: '+percents[key][0]+' ; '+percents[key][1]+'; padding: 0')(''))73 table.children[0](tag.td(style='width: '+percents[key][0]+'', class_=percents[key][1])('')) 76 74 77 percent_para = tag.p( style='font-size: 10px; line-height: 2.4em')(percents['closed'][0])75 percent_para = tag.p()(percents['closed'][0]) 78 76 79 output = table + percent_para80 return output# Returning...77 main_div.children = [table, percent_para] 78 return main_div # Returning... 81 79 80 81 # ITemplateProvider methods 82 def get_htdocs_dirs(self): 83 """ Makes the 'htdocs' folder inside the egg available. """ 84 from pkg_resources import resource_filename 85 return [('progressmeter', resource_filename('progressmeter', 'htdocs'))] 86 87 def get_templates_dirs(self): 88 return [] # must return an iterable 89 progressmetermacro/0.11/setup.py
r2946 r3298 6 6 setup( 7 7 name = 'TracProgressMeterMacro', 8 version = '0.1 b',8 version = '0.1', 9 9 packages = ['progressmeter'], 10 package_data = { 'progressmeter': [ ] },10 package_data = { 'progressmeter': ['htdocs/css/*.css'] }, 11 11 12 12 author = 'Andrej "qwp0" TokarÄÃk', … … 25 25 [trac.plugins] 26 26 progressmeter.macro = progressmeter.macro 27 ''' ,27 ''' 28 28 )
