~launchpad-p-s/sofastatistics/main

« back to all changes in this revision

Viewing changes to tabreports.py

  • Committer: Grant Paton-Simpson
  • Date: 2009-05-19 04:21:43 UTC
  • Revision ID: g@ubuntu-20090519042143-p561mbokz3inefvd
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /usr/bin/env python
 
2
# -*- coding: utf-8 -*-
 
3
 
 
4
CSS_ALIGN_RIGHT = "right"
 
5
CSS_LBL = "lbl"
 
6
 
 
7
def GetDefaultCss():
 
8
    """
 
9
    Get default CSS.  The "constants" are used so that we can 
 
10
        guarantee the class names we use later on are the same as
 
11
        used here.
 
12
    """
 
13
    default_css = """
 
14
        body{
 
15
            font-size: 12px;
 
16
        }
 
17
        h1, h2{
 
18
            font-family: Arial, Helvetica, sans-serif;
 
19
            font-weight: bold;
 
20
        }
 
21
        h1{
 
22
            font-size: 18px;
 
23
        }
 
24
        h2{
 
25
            font-size: 16px;
 
26
        }
 
27
        tr.rowsetstart th, tr.rowsetstart td{
 
28
            border-top: solid black 2px;
 
29
        }
 
30
        tr, td, th{
 
31
            margin: 0;
 
32
        }
 
33
        .tbltitlecell{
 
34
            border: none;
 
35
            padding: 18px 0px 12px 0px;
 
36
            margin: 0;
 
37
        }
 
38
        .tbltitle{
 
39
            padding: 0;
 
40
            margin: 0;
 
41
            font-family: Arial, Helvetica, sans-serif;
 
42
            font-weight: bold;
 
43
            font-size: 18px;
 
44
        }
 
45
        .tblsubtitle{
 
46
            padding: 12px 0px 0px 0px;
 
47
            margin: 0;
 
48
            font-family: Arial, Helvetica, sans-serif;
 
49
            font-weight: bold;
 
50
            font-size: 14px;
 
51
        }
 
52
        th, .rowvar, .rowval, .datacell, .firstdatacell {
 
53
            border: solid 1px #A1A1A1;
 
54
        }
 
55
        th{
 
56
            margin: 0;
 
57
            padding: 0px 6px;
 
58
        }
 
59
        td{
 
60
            padding: 2px 6px;
 
61
        }
 
62
        .rowval{
 
63
            margin: 0;
 
64
        }
 
65
        .datacell, .firstdatacell{
 
66
            text-align: right;
 
67
            margin: 0;
 
68
        }
 
69
        .firstcolvar, .firstrowvar {
 
70
            font-family: Arial, Helvetica, sans-serif;
 
71
            font-weight: bold;
 
72
            font-size: 15px;
 
73
            color: white;
 
74
            background-color: #00016F;
 
75
        }
 
76
        .firstcolvar{
 
77
            padding: 9px 6px;
 
78
            vertical-align: top;
 
79
        }
 
80
        .rowvar, .colvar{
 
81
            font-family: Arial, Helvetica, sans-serif;
 
82
            font-weight: bold;
 
83
            font-size: 15px;
 
84
            color: #000146;
 
85
            background-color: white;
 
86
        }
 
87
        .colvar{
 
88
            padding: 6px 0px;            
 
89
        }            
 
90
        .colval{
 
91
            vertical-align: top;
 
92
        }
 
93
        .measure, .firstmeasure{
 
94
            vertical-align: top;
 
95
            font-size: 11px;
 
96
            font-weight: normal;
 
97
        }
 
98
        tr.total-row td{
 
99
            font-weight: bold;
 
100
            border-top: solid 2px black;
 
101
            border-bottom: double 3px black;
 
102
        }
 
103
        .page-break-before{
 
104
            page-break-before: always;
 
105
            border-bottom: none; /*3px dotted #AFAFAF;*/
 
106
            width: auto;
 
107
            height: 18px;
 
108
        }"""
 
109
    default_css += "\n    td.%s{\n        text-align: left;\n        "  % CSS_LBL + \
 
110
        "background-color: #F5F5F5;\n    }"
 
111
    default_css += "\n    td.%s{\n        text-align: right;\n    }" % CSS_ALIGN_RIGHT
 
112
    return default_css
 
113
 
 
114
default_hdr = """
 
115
            <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'
 
116
            'http://www.w3.org/TR/html4/loose.dtd'>
 
117
            <html>
 
118
            <head>
 
119
            <meta http-equiv="P3P" content='CP="IDC DSP COR CURa ADMa OUR 
 
120
            IND PHY ONL COM STA"'>
 
121
            <title>%s</title>
 
122
            <style type="text/css">
 
123
            <!--
 
124
            %s
 
125
            -->
 
126
            </style>
 
127
            </head>
 
128
            <body>\n"""
 
129
    
 
130
def getHtmlHdr(hdr_title, fil_css=None):
 
131
    """Get HTML header"""
 
132
    if fil_css:
 
133
        f = file(fil_css, "r")
 
134
        css = f.read()
 
135
        f.close()
 
136
    else:
 
137
        css = GetDefaultCss()
 
138
    hdr = default_hdr % (hdr_title, css)
 
139
    return hdr
 
140
 
 
141
def getHtmlFtr():
 
142
    "Close HTML off cleanly"
 
143
    return "</body></html>"