Changeset 4011

Show
Ignore:
Timestamp:
07/14/08 07:07:46 (4 months ago)
Author:
ashkulz
Message:

do not show unused columns

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • flattablemacro/0.11/FlatTableProcessor.py

    r4010 r4011  
    9090                                for line in text.splitlines()])) 
    9191 
    92         columns = self.parse_doc(args) 
    93         if not columns: 
     92        def has_keys(dict, keys): 
     93            for key in keys: 
     94                if dict.has_key(key): 
     95                    return True 
     96            return False 
     97 
     98        rows = self.parse_doc(args) 
     99        if not rows: 
    94100            return Markup() 
    95101 
    96         header = tag.thead() 
     102        seen = [] 
    97103        for desc, keys in config: 
    98             header(tag.th(tag.b(desc))) 
     104            if [row for row in rows if has_keys(row, keys)]: 
     105                seen.append(desc) 
    99106 
    100         body = tag.tbody() 
    101         for column in columns: 
    102             row = tag.tr() 
     107        thead = tag.thead() 
     108        for desc, keys in config: 
     109            if not desc in seen: 
     110                continue 
     111            thead(tag.td(tag.b(desc))) 
     112 
     113        tbody = tag.tbody() 
     114        for row in rows: 
     115            trow = tag.tr() 
    103116            for desc, keys in config: 
    104                 col = tag.td() 
     117                if not desc in seen: 
     118                    continue 
     119                tcol = tag.td() 
    105120                for key in keys: 
    106                     if column.has_key(key): 
    107                         col(to_html(column[key])) 
    108                 row(col) 
    109             body(row) 
     121                    if row.has_key(key): 
     122                        tcol(to_html(row[key])) 
     123                trow(tcol) 
     124            tbody(trow) 
    110125 
    111         return tag.table([header, body], class_='wiki') 
     126        return tag.table([thead, tbody], class_='wiki') 
    112127 
    113128    def parse_doc(self, text):