Changeset 3298

Show
Ignore:
Timestamp:
02/29/08 15:07:24 (9 months ago)
Author:
qwp0
Message:

ProgressMeterMacro: Using separate CSS, fixes #2377 (v0.1)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • progressmetermacro/0.11/progressmeter/macro.py

    r3291 r3298  
    11# -*- coding: utf-8 -*- 
     2""" 
     3ProgressMeterMacro plugin for Trac. 
    24 
    3 # For information about author, license, etc. see setup.py 
     5License: GPLv2 
     6 
     7Author: Andrej Tokarčík 
     8Thanks to: Doug Hellman, osimons 
     9""" 
    410 
    511from genshi.builder import tag 
    612 
    713from trac.core import * 
    8 from trac.wiki.api import IWikiMacroProvider 
     14from trac.wiki.api import IWikiMacroProvider, parse_args 
     15from trac.web.chrome import add_stylesheet, ITemplateProvider 
    916from trac.wiki.macros import WikiMacroBase 
    1017from trac.ticket.query import Query 
    11 from trac.wiki.api import parse_args 
    1218 
    1319 
     
    2026        http://trac-hacks.org/wiki/ProgressMeterMacro 
    2127    """ 
    22     implements(IWikiMacroProvider
     28    implements(IWikiMacroProvider, ITemplateProvider
    2329 
    2430    # IWikiMacroProvider methods 
     
    5157        # Getting percent of active/closed tickets + formatting output 
    5258        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'] 
    5762 
    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') 
    7066 
    71         table = tag.table(style=table_css)(tag.tr()) 
     67        main_div = tag.div(class_='progressmeter') 
     68        table = tag.table()(tag.tr()) 
     69 
    7270        for key in reversed(percents.keys()): 
    7371            # reversing because we want the closed tickets to be processed firstly 
    7472            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])('')) 
    7674 
    77         percent_para = tag.p(style='font-size: 10px; line-height: 2.4em')(percents['closed'][0]) 
     75        percent_para = tag.p()(percents['closed'][0]) 
    7876 
    79         output = table + percent_para 
    80         return output  # Returning... 
     77        main_div.children = [table, percent_para] 
     78        return main_div  # Returning... 
    8179 
     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  
    66setup( 
    77    name = 'TracProgressMeterMacro', 
    8     version = '0.1b', 
     8    version = '0.1', 
    99    packages = ['progressmeter'], 
    10     package_data = { 'progressmeter': [] }, 
     10    package_data = { 'progressmeter': ['htdocs/css/*.css'] }, 
    1111 
    1212    author = 'Andrej "qwp0" Tokarčík', 
     
    2525        [trac.plugins] 
    2626        progressmeter.macro = progressmeter.macro 
    27     ''', 
     27    ''' 
    2828)