First theme and layaout version, css need to be rewrited completly
authordanigm <dani@danigm.net>
Fri, 17 Apr 2009 11:51:36 +0000 (13:51 +0200)
committerdanigm <dani@danigm.net>
Fri, 17 Apr 2009 11:51:36 +0000 (13:51 +0200)
26 files changed:
index.py
kisspi.py
modules/hello/hello.py
static/css/style.css [deleted file]
static/images/alert.png [deleted file]
static/images/background.png [deleted file]
static/images/error.png [deleted file]
static/images/errorimg.png [deleted file]
static/images/kisspi.png [deleted file]
static/images/kisspi.svg [deleted file]
static/images/overlay.gif [deleted file]
static/images/poweredby.png [deleted file]
static/themes/default/css/style.css [new file with mode: 0644]
static/themes/default/images/alert.png [new file with mode: 0644]
static/themes/default/images/background.png [new file with mode: 0644]
static/themes/default/images/error.png [new file with mode: 0644]
static/themes/default/images/errorimg.png [new file with mode: 0644]
static/themes/default/images/kisspi.png [new file with mode: 0644]
static/themes/default/images/kisspi.svg [new file with mode: 0644]
static/themes/default/images/logo.png [new file with mode: 0644]
static/themes/default/images/overlay.gif [new file with mode: 0644]
static/themes/default/images/poweredby.png [new file with mode: 0644]
static/themes/default/templates/error.html [new file with mode: 0644]
static/themes/default/templates/master.html [new file with mode: 0644]
templates/error.html [deleted file]
templates/master.html [deleted file]

index c43a08f..0625067 100644 (file)
--- a/index.py
+++ b/index.py
@@ -13,9 +13,9 @@ urls = (
 
 app = web.application(urls, globals())
 session = web.session.Session(app, web.session.DiskStore('sessions'))
+render = kisspi.get_render()
 
 def internalerror():
-    render = web.template.render('templates')
     body = render.error()
     template = templated(title="ERROR")
     body = template(body)
@@ -42,6 +42,7 @@ class index:
         '''
 
         #TODO pages goes inside a layaout, in body
+        #TODO yield module suport
 
         args = args.split('/')
         if args:
@@ -56,8 +57,9 @@ class index:
                     returned = function(*fargs)
                 else:
                     returned = function()
-                return returned
-        return args
+                return kisspi.template(title="test", body=returned)
+
+        return kisspi.template(title="test", body=str(args))
     
     def GET(self, args):
         return self.default(args, method="GET")
index 7a1bb43..8008d9e 100644 (file)
--- a/kisspi.py
+++ b/kisspi.py
@@ -4,8 +4,10 @@ import os
 import sys
 import re
 import web
+import utils
 
 MODULES = {}
+THEME = 'default'
 
 def load_modules(path='modules'):
     global MODULES
@@ -30,3 +32,24 @@ def get_input(**args):
 
 def redirect(path):
     raise web.seeother(path)
+
+def get_render():
+    return web.template.render('static/themes/'+THEME+'/templates')
+
+def template(title, body=''):
+    # TODO check conffile and put in head, pre_body, etc the assigned
+    # module
+    head, pre_body, post_body, left, foot = ['']*5
+    render = get_render()
+    e = utils.get_err()
+    m = utils.get_msg()
+
+    import os
+    globals = {'listdir': os.listdir}
+    render = web.template.render('static/themes/'+THEME+'/templates',
+            globals=globals)
+
+    return render.master(title, head, pre_body, body, post_body, left,
+            foot, errors=e, msgs=m)
+
+
index 3e0f937..61d4669 100644 (file)
@@ -37,10 +37,7 @@ class Upload:
             </form>
         '''
         session = self.kisspi.get_session()
-        yield '<html><head></head><body>'
-        yield 'uploaded: %s' % session.get('uploaded', '')
-        yield form
-        yield '</body></html>'
+        return  'uploaded: %s' % session.get('uploaded', '') + form
 
     def POST(self):
         session = self.kisspi.get_session()
diff --git a/static/css/style.css b/static/css/style.css
deleted file mode 100644 (file)
index 4efa2ed..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-body{
-    background-color: #40ac40;
-    padding: 2em;
-}
-
-input, textarea, button {
-    border: 1px solid #550000;
-}
-
-textarea{ width: 100% }
-
-#main, #fotter {
-    color: black;
-    background-color: white;
-    margin: 0 auto 0 auto;
-    border: 1px solid #550000;
-    width: 600px;
-    padding: 5em;
-}
-
-#main{
-}
-
-th{
-    text-align: right;
-}
-
-#login {
-    padding-bottom: 3em;
-    border-bottom: 1px dotted gray;
-}
-
-#register {
-    padding-top: 2em;
-}
-
-fieldset {
-    border: 1px solid #b10000;
-}
-legend {
-    color: #b10000;
-}
-
-#error {
-    margin: 2em auto 2em auto;
-    padding-right: 10em;
-    border: 2px dashed #5e0000;
-    font-weight: bold;
-    color: #5e0000;
-    background-color: white;
-    min-height: 40px;
-    width: 600px;
-}
-.wrong {
-    color: #5e0000;
-}
-
-#messages {
-    margin: 2em auto 2em auto;
-    padding-right: 10em;
-    border: 2px dashed green;
-    color: green;
-    background-color: white;
-    min-height: 40px;
-    width: 600px;
-}
-
-.floating {
-    float: left;
-    padding: 5px;
-    padding-right: 32px;
-}
-
-.imaged {
-    min-height: 34px;
-    min-width: 120px;
-    border: none;
-    cursor:pointer;
-}
-
-#header {
-    margin: 0 auto 0 auto;
-    background-image: url('/static/images/logo.png');
-    background-repeat: no-repeat;
-    background-position: left;
-    min-height: 200px;
-    margin-bottom: 2em;
-}
-
-#fotter {
-    min-height: 10px;
-    margin-top: 2em;
-    padding-top: 1em;
-    padding-bottom: 1em;
-    text-align: center;
-}
-
-img {
-    border: none;
-}
-
-#quit {
-    float: right;
-}
-
-.odd {
-    background-color: #dddddd;
-}
-.even {
-    background-color: white;
-}
-
-#list {
-    clear: both;
-    margin-top: 3em;
-}
-
-#list table {
-    width: 100%;
-    border: 1px solid gray;
-}
-
-#list th {
-    text-align: center;
-    border: 1px solid gray;
-    background-color: #550000;
-    color: white;
-}
-
-.pwdpwd {
-    display: none;
-}
-
-.pwdname {
-    color: blue;
-    text-decoration: underline;
-    cursor:pointer;
-}
-.pwddesc {
-    display: none;
-    border: 1px solid black;
-    color: white;
-    background-color: #444444; 
-}
-.showdesc {
-    color: blue;
-    text-decoration: underline;
-    cursor:pointer;
-}
-
-a.selected, .selected {
-    background: #ff9600;
-}
-
-#overlay {
-    display: none;
-    position: fixed;
-    left: 0%;
-    top: 0%;
-    width: 100%;
-    height: 100%;
-    z-index: 999;
-    background-image: url('/static/images/overlay.gif');
-}
-
-#master {
-    clear: both;
-    padding-bottom: 1em;
-}
-
-.input {
-    display: none;
-    color: black;
-    position: fixed;
-    left: 25%;
-    top: 50%;
-    width: 50%;
-    z-index: 1000;
-    text-align: center;
-    background-color: white;
-    border: 1px solid black;
-}
-
-.close {
-    cursor:pointer;
-    float: right;
-}
-
-#counter {
-    margin-left: 1em;
-}
-
-#menu {
-    margin: 2em auto 2em auto;
-    padding-left: 3em;
-    padding-right: 7em;
-    border: 1px solid black;
-    font-weight: bold;
-    color: #5e0000;
-    background-color: white;
-    width: 600px;
-}
diff --git a/static/images/alert.png b/static/images/alert.png
deleted file mode 100644 (file)
index 820006f..0000000
Binary files a/static/images/alert.png and /dev/null differ
diff --git a/static/images/background.png b/static/images/background.png
deleted file mode 100644 (file)
index dab75ef..0000000
Binary files a/static/images/background.png and /dev/null differ
diff --git a/static/images/error.png b/static/images/error.png
deleted file mode 100644 (file)
index 9690de5..0000000
Binary files a/static/images/error.png and /dev/null differ
diff --git a/static/images/errorimg.png b/static/images/errorimg.png
deleted file mode 100644 (file)
index 08d04b7..0000000
Binary files a/static/images/errorimg.png and /dev/null differ
diff --git a/static/images/kisspi.png b/static/images/kisspi.png
deleted file mode 100644 (file)
index 54f2bea..0000000
Binary files a/static/images/kisspi.png and /dev/null differ
diff --git a/static/images/kisspi.svg b/static/images/kisspi.svg
deleted file mode 100644 (file)
index 416de73..0000000
+++ /dev/null
@@ -1,351 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="742.09003"
-   height="1052.3622"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docname="kisspi.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"
-   version="1.0">
-  <defs
-     id="defs4">
-    <linearGradient
-       id="linearGradient3262">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.37810946"
-         offset="0"
-         id="stop3264" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop3266" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3227">
-      <stop
-         style="stop-color:#2c3234;stop-opacity:1"
-         offset="0"
-         id="stop3229" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1"
-         offset="1"
-         id="stop3231" />
-    </linearGradient>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3262"
-       id="radialGradient3268"
-       cx="263.34665"
-       cy="508.86295"
-       fx="263.34665"
-       fy="508.86295"
-       r="36.285614"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.5,-0.8660254,0.827747,0.4778999,-280.31511,492.01279)" />
-    <filter
-       inkscape:collect="always"
-       id="filter3276">
-      <feGaussianBlur
-         inkscape:collect="always"
-         stdDeviation="0.22600471"
-         id="feGaussianBlur3278" />
-    </filter>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3227"
-       id="linearGradient3344"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.3057651,0,394.35844)"
-       x1="412.53464"
-       y1="539.66028"
-       x2="412.2587"
-       y2="608.646" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3262"
-       id="radialGradient3346"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.5,-0.8660254,0.827747,0.4778999,-280.31511,492.01279)"
-       cx="263.34665"
-       cy="508.86295"
-       fx="263.34665"
-       fy="508.86295"
-       r="36.285614" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     gridtolerance="10000"
-     guidetolerance="10"
-     objecttolerance="10"
-     inkscape:pageopacity="1"
-     inkscape:pageshadow="2"
-     inkscape:zoom="3.622345"
-     inkscape:cx="442.68994"
-     inkscape:cy="483.36765"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="970"
-     inkscape:window-height="575"
-     inkscape:window-x="48"
-     inkscape:window-y="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <text
-       xml:space="preserve"
-       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
-       x="361.16965"
-       y="493.70895"
-       id="text2383"
-       sodipodi:linespacing="100%"><tspan
-         sodipodi:role="line"
-         id="tspan2385"
-         x="361.16965"
-         y="493.70895" /></text>
-    <path
-       sodipodi:type="arc"
-       style="opacity:1;fill:#74e274;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path2395"
-       sodipodi:cx="254.47549"
-       sodipodi:cy="483.76852"
-       sodipodi:rx="35.785614"
-       sodipodi:ry="35.785614"
-       d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z" />
-    <path
-       d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z"
-       sodipodi:ry="35.785614"
-       sodipodi:rx="35.785614"
-       sodipodi:cy="483.76852"
-       sodipodi:cx="254.47549"
-       id="path3167"
-       style="opacity:1;fill:#65c5c5;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       sodipodi:type="arc"
-       transform="translate(80,0)" />
-    <path
-       transform="translate(160,0)"
-       sodipodi:type="arc"
-       style="opacity:1;fill:#cdf57e;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path3169"
-       sodipodi:cx="254.47549"
-       sodipodi:cy="483.76852"
-       sodipodi:rx="35.785614"
-       sodipodi:ry="35.785614"
-       d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z" />
-    <path
-       d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z"
-       sodipodi:ry="35.785614"
-       sodipodi:rx="35.785614"
-       sodipodi:cy="483.76852"
-       sodipodi:cx="254.47549"
-       id="path3171"
-       style="opacity:1;fill:#ff8383;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       sodipodi:type="arc"
-       transform="translate(240,0)" />
-    <text
-       xml:space="preserve"
-       style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'"
-       x="565.45801"
-       y="670.28723"
-       id="text2387"
-       sodipodi:linespacing="100%"
-       transform="scale(1.0003269,0.9996732)"><tspan
-         sodipodi:role="line"
-         id="tspan2389"
-         x="573.68872"
-         y="670.28723"
-         style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'">π </tspan></text>
-    <g
-       id="g3325"
-       inkscape:export-filename="/home/danigm/kisspi.png"
-       inkscape:export-xdpi="183.5"
-       inkscape:export-ydpi="183.5">
-      <rect
-         ry="3.729881"
-         rx="3.729881"
-         y="558.94037"
-         x="375.15472"
-         height="22.110014"
-         width="136.11002"
-         id="rect3179"
-         style="opacity:1;fill:url(#linearGradient3344);fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <g
-         transform="matrix(0.7764464,0,0,0.7764464,48.637594,129.15356)"
-         id="g3289">
-        <path
-           d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z"
-           sodipodi:ry="35.785614"
-           sodipodi:rx="35.785614"
-           sodipodi:cy="483.76852"
-           sodipodi:cx="254.47549"
-           id="path3291"
-           style="opacity:1;fill:#0a0b0b;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           sodipodi:type="arc"
-           transform="translate(312,84)" />
-        <text
-           xml:space="preserve"
-           style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'"
-           x="565.45801"
-           y="590.26111"
-           id="text3293"
-           sodipodi:linespacing="100%"
-           transform="scale(1.0003269,0.9996732)"><tspan
-             sodipodi:role="line"
-             id="tspan3295"
-             x="573.68872"
-             y="590.26111"
-             style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'">π </tspan></text>
-        <path
-           transform="translate(312,84)"
-           sodipodi:type="arc"
-           style="opacity:1;fill:url(#radialGradient3346);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path3297"
-           sodipodi:cx="254.47549"
-           sodipodi:cy="483.76852"
-           sodipodi:rx="35.785614"
-           sodipodi:ry="35.785614"
-           d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z" />
-        <path
-           transform="matrix(0.8309523,-0.5348327,0.7810119,1.213433,-336.04558,184.07477)"
-           d="M 570.54189,546.9314 A 15.458032,7.9632282 0 1 1 539.62583,546.9314 A 15.458032,7.9632282 0 1 1 570.54189,546.9314 z"
-           sodipodi:ry="7.9632282"
-           sodipodi:rx="15.458032"
-           sodipodi:cy="546.9314"
-           sodipodi:cx="555.08386"
-           id="path3299"
-           style="opacity:1;fill:#ffffff;fill-opacity:0.28855722;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter3276)"
-           sodipodi:type="arc" />
-      </g>
-      <path
-         transform="scale(1.0920676,0.9156942)"
-         d="M 390.8125,602.40625 C 384.28729,602.40626 378.90625,607.58069 378.90625,614.0625 C 378.90625,619.13832 382.15962,623.26168 387.3125,625.1875 C 389.62975,626.05353 390.84517,626.53313 391.53125,626.84375 C 392.16815,627.13211 392.34283,627.26946 392.78125,627.59375 C 393.41156,628.10947 393.71875,628.6989 393.71875,629.6875 C 393.71875,630.46513 393.45243,630.96749 393,631.375 C 392.54757,631.78251 391.85033,632.09375 390.84375,632.09375 C 389.70856,632.09374 389.11974,631.83916 388.75,631.5 C 388.38026,631.16084 388.08164,630.57277 387.96875,629.40625 C 387.8729,628.47881 387.08862,627.77566 386.15625,627.78125 L 379.4375,627.78125 C 378.92833,627.77897 378.44172,627.9911 378.09685,628.3657 C 377.75198,628.7403 377.58071,629.24276 377.625,629.75 C 377.87696,632.67269 378.65963,634.90126 380.25,636.96875 C 382.69755,640.13942 386.66406,641.9375 390.84375,641.9375 C 396.35146,641.93751 400.95408,638.54701 402.8125,633.71875 C 403.23625,634.89227 403.83562,635.94255 404.625,636.96875 C 407.07255,640.13942 411.03906,641.9375 415.21875,641.9375 C 422.39534,641.93751 428.09375,636.21355 428.09375,629 C 428.09374,625.68383 426.77857,622.6443 424.40625,620.4375 C 422.8934,619.02894 421.39909,618.22388 417.96875,616.9375 C 416.33063,616.32906 415.50003,615.99307 415.0625,615.8125 C 414.62497,615.63193 414.6778,615.64418 414.4375,615.5 C 413.53914,614.93438 413.375,614.56537 413.375,613.9375 C 413.37501,612.72137 413.85208,612.21875 415.125,612.21875 C 415.83781,612.21875 416.1565,612.37525 416.40625,612.625 C 416.656,612.87475 416.89948,613.35286 416.96875,614.21875 C 417.04946,615.15858 417.83797,615.87912 418.78125,615.875 L 425.4375,615.875 C 425.93501,615.87603 426.41105,615.67237 426.75387,615.31182 C 427.09668,614.95127 427.2761,614.46558 427.25,613.96875 C 427.09663,611.10617 426.31192,608.81596 424.6875,606.8125 C 422.44186,604.00544 418.93704,602.40625 415.1875,602.40625 C 408.66229,602.40626 403.28125,607.58069 403.28125,614.0625 C 403.28124,619.13832 406.53462,623.26168 411.6875,625.1875 C 414.00476,626.05353 415.22017,626.53313 415.90625,626.84375 C 416.54315,627.13211 416.71782,627.26946 417.15625,627.59375 C 417.78656,628.10947 418.09375,628.6989 418.09375,629.6875 C 418.09375,630.46512 417.82743,630.96749 417.375,631.375 C 416.92257,631.78251 416.22533,632.09375 415.21875,632.09375 C 414.08356,632.09374 413.49474,631.83916 413.125,631.5 C 412.75526,631.16084 412.45664,630.57277 412.34375,629.40625 C 412.2479,628.47881 411.46362,627.77566 410.53125,627.78125 L 403.8125,627.78125 C 403.69718,627.7807 403.58208,627.79116 403.46875,627.8125 C 403.18557,624.98064 402.10439,622.366 400.03125,620.4375 C 398.51838,619.02896 397.0241,618.22389 393.59375,616.9375 C 391.95388,616.3284 391.10645,615.9954 390.65625,615.8125 C 390.20605,615.6296 390.25634,615.63505 390.03125,615.5 C 389.14426,614.94153 389,614.59514 389,613.9375 C 388.99999,612.72139 389.47708,612.21875 390.75,612.21875 C 391.4628,612.21875 391.7815,612.37525 392.03125,612.625 C 392.281,612.87475 392.52448,613.35286 392.59375,614.21875 C 392.67446,615.15858 393.46297,615.87912 394.40625,615.875 L 401.0625,615.875 C 401.56001,615.87603 402.03605,615.67237 402.37887,615.31182 C 402.72168,614.95127 402.9011,614.46558 402.875,613.96875 C 402.72165,611.10616 401.93692,608.81595 400.3125,606.8125 C 398.06685,604.00546 394.56204,602.40625 390.8125,602.40625 z M 339.625,603 C 338.69756,603.09585 337.99441,603.88013 338,604.8125 L 338,639.5 C 337.99966,639.98081 338.19052,640.44202 338.5305,640.782 C 338.87048,641.12198 339.33169,641.31284 339.8125,641.3125 L 346.25,641.3125 C 346.73081,641.31284 347.19202,641.12198 347.532,640.782 C 347.87198,640.44202 348.06284,639.98081 348.0625,639.5 L 348.0625,629.9375 L 355.53125,640.53125 C 355.86521,641.0144 356.41271,641.30562 357,641.3125 L 364.75,641.3125 C 365.43141,641.31356 366.05575,640.93208 366.36576,640.32527 C 366.67576,639.71846 366.61895,638.98901 366.21875,638.4375 L 353.9375,621.84375 L 366.1875,605.90625 C 366.60282,605.35904 366.67282,604.62397 366.36825,604.00821 C 366.06368,603.39245 365.43697,603.00199 364.75,603 L 357,603 C 356.4184,602.99969 355.87202,603.27869 355.53125,603.75 L 348.0625,614.15625 L 348.0625,604.8125 C 348.06284,604.33169 347.87198,603.87048 347.532,603.5305 C 347.19202,603.19052 346.73081,602.99966 346.25,603 L 339.8125,603 C 339.75004,602.99676 339.68746,602.99676 339.625,603 z M 368.6875,603 C 367.76006,603.09585 367.05691,603.88013 367.0625,604.8125 L 367.0625,639.5 C 367.06216,639.98081 367.25302,640.44202 367.593,640.782 C 367.93298,641.12198 368.39419,641.31284 368.875,641.3125 L 375.3125,641.3125 C 375.79331,641.31284 376.25452,641.12198 376.5945,640.782 C 376.93448,640.44202 377.12534,639.98081 377.125,639.5 L 377.125,604.8125 C 377.12534,604.33169 376.93448,603.87048 376.5945,603.5305 C 376.25452,603.19052 375.79331,602.99966 375.3125,603 L 368.875,603 C 368.81254,602.99676 368.74996,602.99676 368.6875,603 z"
-         id="path3323"
-         style="font-size:46.92286682px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#1d8b1d;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:URW Gothic L;-inkscape-font-specification:URW Gothic L Semi-Bold"
-         inkscape:original="M 390.8125 604.21875 C 385.22869 604.21876 380.71875 608.57253 380.71875 614.0625 C 380.71875 618.42632 383.29214 621.76386 387.9375 623.5 C 392.58285 625.23612 392.85828 625.38981 393.9375 626.1875 C 394.96981 627.03213 395.53125 628.23289 395.53125 629.6875 C 395.53124 632.17442 393.6122 633.90625 390.84375 633.90625 C 387.98145 633.90623 386.43779 632.50296 386.15625 629.59375 L 379.4375 629.59375 C 379.67211 632.31524 380.27982 634.04501 381.6875 635.875 C 383.7521 638.54958 387.18377 640.125 390.84375 640.125 C 397.08448 640.12501 401.90625 635.28766 401.90625 629 C 401.90625 626.13773 400.83018 623.62691 398.8125 621.75 C 397.45172 620.48306 396.34719 619.89192 392.96875 618.625 C 389.68417 617.40501 389.56298 617.34404 389.09375 617.0625 C 387.82683 616.26482 387.1875 615.20442 387.1875 613.9375 C 387.18749 611.87287 388.63847 610.40625 390.75 610.40625 C 392.90844 610.40624 394.21856 611.71636 394.40625 614.0625 L 401.0625 614.0625 C 400.92173 611.43482 400.31393 609.67364 398.90625 607.9375 C 397.02933 605.59137 394.05017 604.21875 390.8125 604.21875 z M 415.1875 604.21875 C 409.60369 604.21876 405.09375 608.57253 405.09375 614.0625 C 405.09374 618.42632 407.66714 621.76386 412.3125 623.5 C 416.95787 625.23612 417.23328 625.38981 418.3125 626.1875 C 419.34481 627.03213 419.90625 628.23289 419.90625 629.6875 C 419.90626 632.17442 417.9872 633.90625 415.21875 633.90625 C 412.35645 633.90623 410.81279 632.50296 410.53125 629.59375 L 403.8125 629.59375 C 404.04713 632.31524 404.65482 634.04501 406.0625 635.875 C 408.1271 638.54958 411.55877 640.125 415.21875 640.125 C 421.45947 640.12501 426.28125 635.28766 426.28125 629 C 426.28124 626.13773 425.20518 623.62691 423.1875 621.75 C 421.82675 620.48306 420.72219 619.89192 417.34375 618.625 C 414.05916 617.40501 413.96923 617.34404 413.5 617.0625 C 412.23307 616.26482 411.5625 615.20442 411.5625 613.9375 C 411.56251 611.87287 413.01347 610.40625 415.125 610.40625 C 417.28346 610.40624 418.59356 611.71636 418.78125 614.0625 L 425.4375 614.0625 C 425.29672 611.43482 424.68893 609.67364 423.28125 607.9375 C 421.40435 605.59137 418.42517 604.21875 415.1875 604.21875 z M 339.8125 604.8125 L 339.8125 639.5 L 346.25 639.5 L 346.25 624.25 L 357 639.5 L 364.75 639.5 L 351.6875 621.84375 L 364.75 604.8125 L 357 604.8125 L 346.25 619.78125 L 346.25 604.8125 L 339.8125 604.8125 z M 368.875 604.8125 L 368.875 639.5 L 375.3125 639.5 L 375.3125 604.8125 L 368.875 604.8125 z "
-         inkscape:radius="1.8110547"
-         sodipodi:type="inkscape:offset" />
-      <text
-         transform="scale(1.0920676,0.9156942)"
-         sodipodi:linespacing="100%"
-         id="text2391"
-         y="639.50159"
-         x="382.08521"
-         style="font-size:46.92286682px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#74e274;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:URW Gothic L;-inkscape-font-specification:URW Gothic L Semi-Bold"
-         xml:space="preserve"><tspan
-           style="fill:#74e274;fill-opacity:1;stroke:none;stroke-width:1"
-           y="639.50159"
-           x="382.08521"
-           id="tspan3173"
-           sodipodi:role="line">KISS</tspan></text>
-      <text
-         sodipodi:linespacing="100%"
-         id="text3175"
-         y="596.06299"
-         x="436.34109"
-         style="font-size:8.08589554px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#888a85;fill-opacity:1;stroke:none;stroke-width:1.00000012;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:URW Gothic L;-inkscape-font-specification:URW Gothic L Semi-Bold"
-         xml:space="preserve"><tspan
-           style="fill:#888a85;fill-opacity:1;stroke:none;stroke-width:1.00000012"
-           y="596.06299"
-           x="436.34109"
-           id="tspan3177"
-           sodipodi:role="line">3.14159265358...</tspan></text>
-      <text
-         xml:space="preserve"
-         style="font-size:9.54137993px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:none;stroke-width:1.00000012;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:URW Gothic L;-inkscape-font-specification:URW Gothic L Semi-Bold"
-         x="416.9595"
-         y="548.72852"
-         id="text3183"
-         sodipodi:linespacing="100%"><tspan
-           sodipodi:role="line"
-           id="tspan3185"
-           x="416.9595"
-           y="548.72852"
-           style="fill:#d3d7cf;stroke:none;stroke-width:1.00000012"><tspan
-             id="tspan3305"
-             style="fill:#888a85">Keep It</tspan><tspan
-             id="tspan3189"
-             style="fill:#000000;fill-opacity:1"> Simple </tspan><tspan
-             id="tspan3187"
-             style="fill:#babdb6">Stupid</tspan></tspan></text>
-    </g>
-    <g
-       id="g3280">
-      <path
-         d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z"
-         sodipodi:ry="35.785614"
-         sodipodi:rx="35.785614"
-         sodipodi:cy="483.76852"
-         sodipodi:cx="254.47549"
-         id="path3258"
-         style="opacity:1;fill:#0a0b0b;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="arc"
-         transform="translate(312,84)" />
-      <text
-         xml:space="preserve"
-         style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'"
-         x="565.45801"
-         y="590.26111"
-         id="text3254"
-         sodipodi:linespacing="100%"
-         transform="scale(1.0003269,0.9996732)"><tspan
-           sodipodi:role="line"
-           id="tspan3256"
-           x="573.68872"
-           y="590.26111"
-           style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'">π </tspan></text>
-      <path
-         transform="translate(312,84)"
-         sodipodi:type="arc"
-         style="opacity:1;fill:url(#radialGradient3268);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         id="path3260"
-         sodipodi:cx="254.47549"
-         sodipodi:cy="483.76852"
-         sodipodi:rx="35.785614"
-         sodipodi:ry="35.785614"
-         d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z" />
-      <path
-         transform="matrix(0.8309523,-0.5348327,0.7810119,1.213433,-336.04558,184.07477)"
-         d="M 570.54189,546.9314 A 15.458032,7.9632282 0 1 1 539.62583,546.9314 A 15.458032,7.9632282 0 1 1 570.54189,546.9314 z"
-         sodipodi:ry="7.9632282"
-         sodipodi:rx="15.458032"
-         sodipodi:cy="546.9314"
-         sodipodi:cx="555.08386"
-         id="path3270"
-         style="opacity:1;fill:#ffffff;fill-opacity:0.28855722;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter3276)"
-         sodipodi:type="arc" />
-    </g>
-  </g>
-</svg>
diff --git a/static/images/overlay.gif b/static/images/overlay.gif
deleted file mode 100644 (file)
index 842684c..0000000
Binary files a/static/images/overlay.gif and /dev/null differ
diff --git a/static/images/poweredby.png b/static/images/poweredby.png
deleted file mode 100644 (file)
index 8202859..0000000
Binary files a/static/images/poweredby.png and /dev/null differ
diff --git a/static/themes/default/css/style.css b/static/themes/default/css/style.css
new file mode 100644 (file)
index 0000000..a9c10d4
--- /dev/null
@@ -0,0 +1,193 @@
+body{
+    background-color: #40ac40;
+    padding: 2em;
+}
+
+input, textarea, button {
+    border: 1px solid #550000;
+}
+
+textarea{ width: 100% }
+
+#header, #main, #fotter {
+    color: black;
+    background-color: white;
+    margin: 0 auto 0 auto;
+    border: 1px solid #550000;
+    width: 600px;
+    padding: 5em;
+}
+
+#main{
+}
+
+th{
+    text-align: right;
+}
+
+#login {
+    padding-bottom: 3em;
+    border-bottom: 1px dotted gray;
+}
+
+#register {
+    padding-top: 2em;
+}
+
+fieldset {
+    border: 1px solid #b10000;
+}
+legend {
+    color: #b10000;
+}
+
+#error {
+    margin: 2em auto 2em auto;
+    padding-right: 10em;
+    border: 2px dashed #5e0000;
+    font-weight: bold;
+    color: #5e0000;
+    background-color: white;
+    min-height: 40px;
+    width: 600px;
+}
+.wrong {
+    color: #5e0000;
+}
+
+#messages {
+    margin: 2em auto 2em auto;
+    padding-right: 10em;
+    border: 2px dashed green;
+    color: green;
+    background-color: white;
+    min-height: 40px;
+    width: 600px;
+}
+
+.floating {
+    float: left;
+    padding: 5px;
+    padding-right: 32px;
+}
+
+.imaged {
+    min-height: 34px;
+    min-width: 120px;
+    border: none;
+    cursor:pointer;
+}
+
+#fotter {
+    min-height: 10px;
+    margin-top: 2em;
+    padding-top: 1em;
+    padding-bottom: 1em;
+    text-align: center;
+}
+
+img {
+    border: none;
+}
+
+#quit {
+    float: right;
+}
+
+.odd {
+    background-color: #dddddd;
+}
+.even {
+    background-color: white;
+}
+
+#list {
+    clear: both;
+    margin-top: 3em;
+}
+
+#list table {
+    width: 100%;
+    border: 1px solid gray;
+}
+
+#list th {
+    text-align: center;
+    border: 1px solid gray;
+    background-color: #550000;
+    color: white;
+}
+
+.pwdpwd {
+    display: none;
+}
+
+.pwdname {
+    color: blue;
+    text-decoration: underline;
+    cursor:pointer;
+}
+.pwddesc {
+    display: none;
+    border: 1px solid black;
+    color: white;
+    background-color: #444444; 
+}
+.showdesc {
+    color: blue;
+    text-decoration: underline;
+    cursor:pointer;
+}
+
+a.selected, .selected {
+    background: #ff9600;
+}
+
+#overlay {
+    display: none;
+    position: fixed;
+    left: 0%;
+    top: 0%;
+    width: 100%;
+    height: 100%;
+    z-index: 999;
+    background-image: url('/static/images/overlay.gif');
+}
+
+#master {
+    clear: both;
+    padding-bottom: 1em;
+}
+
+.input {
+    display: none;
+    color: black;
+    position: fixed;
+    left: 25%;
+    top: 50%;
+    width: 50%;
+    z-index: 1000;
+    text-align: center;
+    background-color: white;
+    border: 1px solid black;
+}
+
+.close {
+    cursor:pointer;
+    float: right;
+}
+
+#counter {
+    margin-left: 1em;
+}
+
+#menu {
+    margin: 2em auto 2em auto;
+    padding-left: 3em;
+    padding-right: 7em;
+    border: 1px solid black;
+    font-weight: bold;
+    color: #5e0000;
+    background-color: white;
+    width: 600px;
+}
diff --git a/static/themes/default/images/alert.png b/static/themes/default/images/alert.png
new file mode 100644 (file)
index 0000000..820006f
Binary files /dev/null and b/static/themes/default/images/alert.png differ
diff --git a/static/themes/default/images/background.png b/static/themes/default/images/background.png
new file mode 100644 (file)
index 0000000..dab75ef
Binary files /dev/null and b/static/themes/default/images/background.png differ
diff --git a/static/themes/default/images/error.png b/static/themes/default/images/error.png
new file mode 100644 (file)
index 0000000..9690de5
Binary files /dev/null and b/static/themes/default/images/error.png differ
diff --git a/static/themes/default/images/errorimg.png b/static/themes/default/images/errorimg.png
new file mode 100644 (file)
index 0000000..08d04b7
Binary files /dev/null and b/static/themes/default/images/errorimg.png differ
diff --git a/static/themes/default/images/kisspi.png b/static/themes/default/images/kisspi.png
new file mode 100644 (file)
index 0000000..54f2bea
Binary files /dev/null and b/static/themes/default/images/kisspi.png differ
diff --git a/static/themes/default/images/kisspi.svg b/static/themes/default/images/kisspi.svg
new file mode 100644 (file)
index 0000000..416de73
--- /dev/null
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="742.09003"
+   height="1052.3622"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="kisspi.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   version="1.0">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient3262">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.37810946"
+         offset="0"
+         id="stop3264" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop3266" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3227">
+      <stop
+         style="stop-color:#2c3234;stop-opacity:1"
+         offset="0"
+         id="stop3229" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1"
+         offset="1"
+         id="stop3231" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="radialGradient3268"
+       cx="263.34665"
+       cy="508.86295"
+       fx="263.34665"
+       fy="508.86295"
+       r="36.285614"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5,-0.8660254,0.827747,0.4778999,-280.31511,492.01279)" />
+    <filter
+       inkscape:collect="always"
+       id="filter3276">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="0.22600471"
+         id="feGaussianBlur3278" />
+    </filter>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3227"
+       id="linearGradient3344"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.3057651,0,394.35844)"
+       x1="412.53464"
+       y1="539.66028"
+       x2="412.2587"
+       y2="608.646" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="radialGradient3346"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5,-0.8660254,0.827747,0.4778999,-280.31511,492.01279)"
+       cx="263.34665"
+       cy="508.86295"
+       fx="263.34665"
+       fy="508.86295"
+       r="36.285614" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     gridtolerance="10000"
+     guidetolerance="10"
+     objecttolerance="10"
+     inkscape:pageopacity="1"
+     inkscape:pageshadow="2"
+     inkscape:zoom="3.622345"
+     inkscape:cx="442.68994"
+     inkscape:cy="483.36765"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="970"
+     inkscape:window-height="575"
+     inkscape:window-x="48"
+     inkscape:window-y="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <text
+       xml:space="preserve"
+       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+       x="361.16965"
+       y="493.70895"
+       id="text2383"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan2385"
+         x="361.16965"
+         y="493.70895" /></text>
+    <path
+       sodipodi:type="arc"
+       style="opacity:1;fill:#74e274;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path2395"
+       sodipodi:cx="254.47549"
+       sodipodi:cy="483.76852"
+       sodipodi:rx="35.785614"
+       sodipodi:ry="35.785614"
+       d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z" />
+    <path
+       d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z"
+       sodipodi:ry="35.785614"
+       sodipodi:rx="35.785614"
+       sodipodi:cy="483.76852"
+       sodipodi:cx="254.47549"
+       id="path3167"
+       style="opacity:1;fill:#65c5c5;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       sodipodi:type="arc"
+       transform="translate(80,0)" />
+    <path
+       transform="translate(160,0)"
+       sodipodi:type="arc"
+       style="opacity:1;fill:#cdf57e;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path3169"
+       sodipodi:cx="254.47549"
+       sodipodi:cy="483.76852"
+       sodipodi:rx="35.785614"
+       sodipodi:ry="35.785614"
+       d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z" />
+    <path
+       d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z"
+       sodipodi:ry="35.785614"
+       sodipodi:rx="35.785614"
+       sodipodi:cy="483.76852"
+       sodipodi:cx="254.47549"
+       id="path3171"
+       style="opacity:1;fill:#ff8383;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       sodipodi:type="arc"
+       transform="translate(240,0)" />
+    <text
+       xml:space="preserve"
+       style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'"
+       x="565.45801"
+       y="670.28723"
+       id="text2387"
+       sodipodi:linespacing="100%"
+       transform="scale(1.0003269,0.9996732)"><tspan
+         sodipodi:role="line"
+         id="tspan2389"
+         x="573.68872"
+         y="670.28723"
+         style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'">π </tspan></text>
+    <g
+       id="g3325"
+       inkscape:export-filename="/home/danigm/kisspi.png"
+       inkscape:export-xdpi="183.5"
+       inkscape:export-ydpi="183.5">
+      <rect
+         ry="3.729881"
+         rx="3.729881"
+         y="558.94037"
+         x="375.15472"
+         height="22.110014"
+         width="136.11002"
+         id="rect3179"
+         style="opacity:1;fill:url(#linearGradient3344);fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <g
+         transform="matrix(0.7764464,0,0,0.7764464,48.637594,129.15356)"
+         id="g3289">
+        <path
+           d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z"
+           sodipodi:ry="35.785614"
+           sodipodi:rx="35.785614"
+           sodipodi:cy="483.76852"
+           sodipodi:cx="254.47549"
+           id="path3291"
+           style="opacity:1;fill:#0a0b0b;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           sodipodi:type="arc"
+           transform="translate(312,84)" />
+        <text
+           xml:space="preserve"
+           style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'"
+           x="565.45801"
+           y="590.26111"
+           id="text3293"
+           sodipodi:linespacing="100%"
+           transform="scale(1.0003269,0.9996732)"><tspan
+             sodipodi:role="line"
+             id="tspan3295"
+             x="573.68872"
+             y="590.26111"
+             style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'">π </tspan></text>
+        <path
+           transform="translate(312,84)"
+           sodipodi:type="arc"
+           style="opacity:1;fill:url(#radialGradient3346);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="path3297"
+           sodipodi:cx="254.47549"
+           sodipodi:cy="483.76852"
+           sodipodi:rx="35.785614"
+           sodipodi:ry="35.785614"
+           d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z" />
+        <path
+           transform="matrix(0.8309523,-0.5348327,0.7810119,1.213433,-336.04558,184.07477)"
+           d="M 570.54189,546.9314 A 15.458032,7.9632282 0 1 1 539.62583,546.9314 A 15.458032,7.9632282 0 1 1 570.54189,546.9314 z"
+           sodipodi:ry="7.9632282"
+           sodipodi:rx="15.458032"
+           sodipodi:cy="546.9314"
+           sodipodi:cx="555.08386"
+           id="path3299"
+           style="opacity:1;fill:#ffffff;fill-opacity:0.28855722;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter3276)"
+           sodipodi:type="arc" />
+      </g>
+      <path
+         transform="scale(1.0920676,0.9156942)"
+         d="M 390.8125,602.40625 C 384.28729,602.40626 378.90625,607.58069 378.90625,614.0625 C 378.90625,619.13832 382.15962,623.26168 387.3125,625.1875 C 389.62975,626.05353 390.84517,626.53313 391.53125,626.84375 C 392.16815,627.13211 392.34283,627.26946 392.78125,627.59375 C 393.41156,628.10947 393.71875,628.6989 393.71875,629.6875 C 393.71875,630.46513 393.45243,630.96749 393,631.375 C 392.54757,631.78251 391.85033,632.09375 390.84375,632.09375 C 389.70856,632.09374 389.11974,631.83916 388.75,631.5 C 388.38026,631.16084 388.08164,630.57277 387.96875,629.40625 C 387.8729,628.47881 387.08862,627.77566 386.15625,627.78125 L 379.4375,627.78125 C 378.92833,627.77897 378.44172,627.9911 378.09685,628.3657 C 377.75198,628.7403 377.58071,629.24276 377.625,629.75 C 377.87696,632.67269 378.65963,634.90126 380.25,636.96875 C 382.69755,640.13942 386.66406,641.9375 390.84375,641.9375 C 396.35146,641.93751 400.95408,638.54701 402.8125,633.71875 C 403.23625,634.89227 403.83562,635.94255 404.625,636.96875 C 407.07255,640.13942 411.03906,641.9375 415.21875,641.9375 C 422.39534,641.93751 428.09375,636.21355 428.09375,629 C 428.09374,625.68383 426.77857,622.6443 424.40625,620.4375 C 422.8934,619.02894 421.39909,618.22388 417.96875,616.9375 C 416.33063,616.32906 415.50003,615.99307 415.0625,615.8125 C 414.62497,615.63193 414.6778,615.64418 414.4375,615.5 C 413.53914,614.93438 413.375,614.56537 413.375,613.9375 C 413.37501,612.72137 413.85208,612.21875 415.125,612.21875 C 415.83781,612.21875 416.1565,612.37525 416.40625,612.625 C 416.656,612.87475 416.89948,613.35286 416.96875,614.21875 C 417.04946,615.15858 417.83797,615.87912 418.78125,615.875 L 425.4375,615.875 C 425.93501,615.87603 426.41105,615.67237 426.75387,615.31182 C 427.09668,614.95127 427.2761,614.46558 427.25,613.96875 C 427.09663,611.10617 426.31192,608.81596 424.6875,606.8125 C 422.44186,604.00544 418.93704,602.40625 415.1875,602.40625 C 408.66229,602.40626 403.28125,607.58069 403.28125,614.0625 C 403.28124,619.13832 406.53462,623.26168 411.6875,625.1875 C 414.00476,626.05353 415.22017,626.53313 415.90625,626.84375 C 416.54315,627.13211 416.71782,627.26946 417.15625,627.59375 C 417.78656,628.10947 418.09375,628.6989 418.09375,629.6875 C 418.09375,630.46512 417.82743,630.96749 417.375,631.375 C 416.92257,631.78251 416.22533,632.09375 415.21875,632.09375 C 414.08356,632.09374 413.49474,631.83916 413.125,631.5 C 412.75526,631.16084 412.45664,630.57277 412.34375,629.40625 C 412.2479,628.47881 411.46362,627.77566 410.53125,627.78125 L 403.8125,627.78125 C 403.69718,627.7807 403.58208,627.79116 403.46875,627.8125 C 403.18557,624.98064 402.10439,622.366 400.03125,620.4375 C 398.51838,619.02896 397.0241,618.22389 393.59375,616.9375 C 391.95388,616.3284 391.10645,615.9954 390.65625,615.8125 C 390.20605,615.6296 390.25634,615.63505 390.03125,615.5 C 389.14426,614.94153 389,614.59514 389,613.9375 C 388.99999,612.72139 389.47708,612.21875 390.75,612.21875 C 391.4628,612.21875 391.7815,612.37525 392.03125,612.625 C 392.281,612.87475 392.52448,613.35286 392.59375,614.21875 C 392.67446,615.15858 393.46297,615.87912 394.40625,615.875 L 401.0625,615.875 C 401.56001,615.87603 402.03605,615.67237 402.37887,615.31182 C 402.72168,614.95127 402.9011,614.46558 402.875,613.96875 C 402.72165,611.10616 401.93692,608.81595 400.3125,606.8125 C 398.06685,604.00546 394.56204,602.40625 390.8125,602.40625 z M 339.625,603 C 338.69756,603.09585 337.99441,603.88013 338,604.8125 L 338,639.5 C 337.99966,639.98081 338.19052,640.44202 338.5305,640.782 C 338.87048,641.12198 339.33169,641.31284 339.8125,641.3125 L 346.25,641.3125 C 346.73081,641.31284 347.19202,641.12198 347.532,640.782 C 347.87198,640.44202 348.06284,639.98081 348.0625,639.5 L 348.0625,629.9375 L 355.53125,640.53125 C 355.86521,641.0144 356.41271,641.30562 357,641.3125 L 364.75,641.3125 C 365.43141,641.31356 366.05575,640.93208 366.36576,640.32527 C 366.67576,639.71846 366.61895,638.98901 366.21875,638.4375 L 353.9375,621.84375 L 366.1875,605.90625 C 366.60282,605.35904 366.67282,604.62397 366.36825,604.00821 C 366.06368,603.39245 365.43697,603.00199 364.75,603 L 357,603 C 356.4184,602.99969 355.87202,603.27869 355.53125,603.75 L 348.0625,614.15625 L 348.0625,604.8125 C 348.06284,604.33169 347.87198,603.87048 347.532,603.5305 C 347.19202,603.19052 346.73081,602.99966 346.25,603 L 339.8125,603 C 339.75004,602.99676 339.68746,602.99676 339.625,603 z M 368.6875,603 C 367.76006,603.09585 367.05691,603.88013 367.0625,604.8125 L 367.0625,639.5 C 367.06216,639.98081 367.25302,640.44202 367.593,640.782 C 367.93298,641.12198 368.39419,641.31284 368.875,641.3125 L 375.3125,641.3125 C 375.79331,641.31284 376.25452,641.12198 376.5945,640.782 C 376.93448,640.44202 377.12534,639.98081 377.125,639.5 L 377.125,604.8125 C 377.12534,604.33169 376.93448,603.87048 376.5945,603.5305 C 376.25452,603.19052 375.79331,602.99966 375.3125,603 L 368.875,603 C 368.81254,602.99676 368.74996,602.99676 368.6875,603 z"
+         id="path3323"
+         style="font-size:46.92286682px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#1d8b1d;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:URW Gothic L;-inkscape-font-specification:URW Gothic L Semi-Bold"
+         inkscape:original="M 390.8125 604.21875 C 385.22869 604.21876 380.71875 608.57253 380.71875 614.0625 C 380.71875 618.42632 383.29214 621.76386 387.9375 623.5 C 392.58285 625.23612 392.85828 625.38981 393.9375 626.1875 C 394.96981 627.03213 395.53125 628.23289 395.53125 629.6875 C 395.53124 632.17442 393.6122 633.90625 390.84375 633.90625 C 387.98145 633.90623 386.43779 632.50296 386.15625 629.59375 L 379.4375 629.59375 C 379.67211 632.31524 380.27982 634.04501 381.6875 635.875 C 383.7521 638.54958 387.18377 640.125 390.84375 640.125 C 397.08448 640.12501 401.90625 635.28766 401.90625 629 C 401.90625 626.13773 400.83018 623.62691 398.8125 621.75 C 397.45172 620.48306 396.34719 619.89192 392.96875 618.625 C 389.68417 617.40501 389.56298 617.34404 389.09375 617.0625 C 387.82683 616.26482 387.1875 615.20442 387.1875 613.9375 C 387.18749 611.87287 388.63847 610.40625 390.75 610.40625 C 392.90844 610.40624 394.21856 611.71636 394.40625 614.0625 L 401.0625 614.0625 C 400.92173 611.43482 400.31393 609.67364 398.90625 607.9375 C 397.02933 605.59137 394.05017 604.21875 390.8125 604.21875 z M 415.1875 604.21875 C 409.60369 604.21876 405.09375 608.57253 405.09375 614.0625 C 405.09374 618.42632 407.66714 621.76386 412.3125 623.5 C 416.95787 625.23612 417.23328 625.38981 418.3125 626.1875 C 419.34481 627.03213 419.90625 628.23289 419.90625 629.6875 C 419.90626 632.17442 417.9872 633.90625 415.21875 633.90625 C 412.35645 633.90623 410.81279 632.50296 410.53125 629.59375 L 403.8125 629.59375 C 404.04713 632.31524 404.65482 634.04501 406.0625 635.875 C 408.1271 638.54958 411.55877 640.125 415.21875 640.125 C 421.45947 640.12501 426.28125 635.28766 426.28125 629 C 426.28124 626.13773 425.20518 623.62691 423.1875 621.75 C 421.82675 620.48306 420.72219 619.89192 417.34375 618.625 C 414.05916 617.40501 413.96923 617.34404 413.5 617.0625 C 412.23307 616.26482 411.5625 615.20442 411.5625 613.9375 C 411.56251 611.87287 413.01347 610.40625 415.125 610.40625 C 417.28346 610.40624 418.59356 611.71636 418.78125 614.0625 L 425.4375 614.0625 C 425.29672 611.43482 424.68893 609.67364 423.28125 607.9375 C 421.40435 605.59137 418.42517 604.21875 415.1875 604.21875 z M 339.8125 604.8125 L 339.8125 639.5 L 346.25 639.5 L 346.25 624.25 L 357 639.5 L 364.75 639.5 L 351.6875 621.84375 L 364.75 604.8125 L 357 604.8125 L 346.25 619.78125 L 346.25 604.8125 L 339.8125 604.8125 z M 368.875 604.8125 L 368.875 639.5 L 375.3125 639.5 L 375.3125 604.8125 L 368.875 604.8125 z "
+         inkscape:radius="1.8110547"
+         sodipodi:type="inkscape:offset" />
+      <text
+         transform="scale(1.0920676,0.9156942)"
+         sodipodi:linespacing="100%"
+         id="text2391"
+         y="639.50159"
+         x="382.08521"
+         style="font-size:46.92286682px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#74e274;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:URW Gothic L;-inkscape-font-specification:URW Gothic L Semi-Bold"
+         xml:space="preserve"><tspan
+           style="fill:#74e274;fill-opacity:1;stroke:none;stroke-width:1"
+           y="639.50159"
+           x="382.08521"
+           id="tspan3173"
+           sodipodi:role="line">KISS</tspan></text>
+      <text
+         sodipodi:linespacing="100%"
+         id="text3175"
+         y="596.06299"
+         x="436.34109"
+         style="font-size:8.08589554px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#888a85;fill-opacity:1;stroke:none;stroke-width:1.00000012;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:URW Gothic L;-inkscape-font-specification:URW Gothic L Semi-Bold"
+         xml:space="preserve"><tspan
+           style="fill:#888a85;fill-opacity:1;stroke:none;stroke-width:1.00000012"
+           y="596.06299"
+           x="436.34109"
+           id="tspan3177"
+           sodipodi:role="line">3.14159265358...</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:9.54137993px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:none;stroke-width:1.00000012;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:URW Gothic L;-inkscape-font-specification:URW Gothic L Semi-Bold"
+         x="416.9595"
+         y="548.72852"
+         id="text3183"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           id="tspan3185"
+           x="416.9595"
+           y="548.72852"
+           style="fill:#d3d7cf;stroke:none;stroke-width:1.00000012"><tspan
+             id="tspan3305"
+             style="fill:#888a85">Keep It</tspan><tspan
+             id="tspan3189"
+             style="fill:#000000;fill-opacity:1"> Simple </tspan><tspan
+             id="tspan3187"
+             style="fill:#babdb6">Stupid</tspan></tspan></text>
+    </g>
+    <g
+       id="g3280">
+      <path
+         d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z"
+         sodipodi:ry="35.785614"
+         sodipodi:rx="35.785614"
+         sodipodi:cy="483.76852"
+         sodipodi:cx="254.47549"
+         id="path3258"
+         style="opacity:1;fill:#0a0b0b;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         sodipodi:type="arc"
+         transform="translate(312,84)" />
+      <text
+         xml:space="preserve"
+         style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;opacity:1;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'"
+         x="565.45801"
+         y="590.26111"
+         id="text3254"
+         sodipodi:linespacing="100%"
+         transform="scale(1.0003269,0.9996732)"><tspan
+           sodipodi:role="line"
+           id="tspan3256"
+           x="573.68872"
+           y="590.26111"
+           style="font-size:94.69944763px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:extra-condensed;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#65c5c5;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-opacity:1;font-family:Gloucester MT Extra Condensed;-inkscape-font-specification:'Gloucester MT Extra Condensed, Extra-Condensed'">π </tspan></text>
+      <path
+         transform="translate(312,84)"
+         sodipodi:type="arc"
+         style="opacity:1;fill:url(#radialGradient3268);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="path3260"
+         sodipodi:cx="254.47549"
+         sodipodi:cy="483.76852"
+         sodipodi:rx="35.785614"
+         sodipodi:ry="35.785614"
+         d="M 290.26111,483.76852 A 35.785614,35.785614 0 1 1 218.68988,483.76852 A 35.785614,35.785614 0 1 1 290.26111,483.76852 z" />
+      <path
+         transform="matrix(0.8309523,-0.5348327,0.7810119,1.213433,-336.04558,184.07477)"
+         d="M 570.54189,546.9314 A 15.458032,7.9632282 0 1 1 539.62583,546.9314 A 15.458032,7.9632282 0 1 1 570.54189,546.9314 z"
+         sodipodi:ry="7.9632282"
+         sodipodi:rx="15.458032"
+         sodipodi:cy="546.9314"
+         sodipodi:cx="555.08386"
+         id="path3270"
+         style="opacity:1;fill:#ffffff;fill-opacity:0.28855722;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter3276)"
+         sodipodi:type="arc" />
+    </g>
+  </g>
+</svg>
diff --git a/static/themes/default/images/logo.png b/static/themes/default/images/logo.png
new file mode 100644 (file)
index 0000000..54f2bea
Binary files /dev/null and b/static/themes/default/images/logo.png differ
diff --git a/static/themes/default/images/overlay.gif b/static/themes/default/images/overlay.gif
new file mode 100644 (file)
index 0000000..842684c
Binary files /dev/null and b/static/themes/default/images/overlay.gif differ
diff --git a/static/themes/default/images/poweredby.png b/static/themes/default/images/poweredby.png
new file mode 100644 (file)
index 0000000..8202859
Binary files /dev/null and b/static/themes/default/images/poweredby.png differ
diff --git a/static/themes/default/templates/error.html b/static/themes/default/templates/error.html
new file mode 100644 (file)
index 0000000..3786697
--- /dev/null
@@ -0,0 +1,3 @@
+<div id="main">
+    <center><img src="/static/images/errorimg.png" alt="error"/></center>
+</div>
diff --git a/static/themes/default/templates/master.html b/static/themes/default/templates/master.html
new file mode 100644 (file)
index 0000000..0e5a78d
--- /dev/null
@@ -0,0 +1,62 @@
+$def with (title, head='', pre_body='', body='', post_body='', left='', foot='', js=[], errors='', msgs='')
+
+$code:
+    theme = 'default'
+    css = listdir('static/themes/'+theme+'/css/')
+
+<html>
+    <head>
+        <title>$title</title>
+        $for j in js:
+            <script src="/static/js/$(j).js" type="text/javascript"></script>
+
+        $for style in css:
+            <link rel="stylesheet" type="text/css" href="/static/themes/$theme/css/$style"/>
+    </head>
+    <body>
+        <div id="header">
+            <img src="/static/themes/$theme/images/logo.png" alt="logo"/>
+        </div>
+        $if msgs:
+            <div id="messages">
+                <div class="floating">
+                    <img src="/static/themes/$theme/images/alert.png"/>
+                </div>
+                <ul>
+                    $for msg in msgs:
+                    <li>$:msg</li>
+                </ul>
+            </div>
+        $if errors:
+            <div id="error">
+                <div class="floating">
+                    <img src="/static/themes/$theme/images/error.png"/>
+                </div>
+                <ul>
+                    $for error in errors:
+                    <li>$:error</li>
+                </ul>
+            </div>
+
+        <div id="head">$:head</div>
+
+        <div id="pre-body">$:pre_body</div>
+        <div id="body">$:body</div>
+        <div id="post-body">$:post_body</div>
+        <div id="left">$:left</div>
+
+        <div id="foot">$:foot</div>
+
+        <div id="fotter">
+            <p>
+                Powered by <a href="http://python.org">Python</a> and 
+                <a href="http://webpy.org">web.py</a>
+            <br/>Licencia GPLv3 pillate el <a href="http://bzr.danigm.net/kisspi/tgz">código</a>
+            </p>
+            <a href="http://danigm.net">
+                <img id="danigm" src="/static/themes/$theme/images/poweredby.png" alt="powered by danigm"/>
+            </a>
+        </div>
+    </body>
+</html>
+
diff --git a/templates/error.html b/templates/error.html
deleted file mode 100644 (file)
index 3786697..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<div id="main">
-    <center><img src="/static/images/errorimg.png" alt="error"/></center>
-</div>
diff --git a/templates/master.html b/templates/master.html
deleted file mode 100644 (file)
index 1eb8d1f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-$def with (css, title, body, js=[], errors='', msgs='', menu=[])
-
-<html>
-    <head>
-        <title>$title</title>
-        $for j in js:
-            <script src="/static/js/$(j).js" type="text/javascript"></script>
-
-        $for style in css:
-            <link rel="stylesheet" type="text/css" href="/static/css/$(style).css"/>
-    </head>
-    <body>
-        <div id="header"></div>
-        $if msgs:
-            <div id="messages">
-                <div class="floating">
-                    <img src="/static/images/alert.png"/>
-                </div>
-                <ul>
-                    $for msg in msgs:
-                    <li>$:msg</li>
-                </ul>
-            </div>
-        $if errors:
-            <div id="error">
-                <div class="floating">
-                    <img src="/static/images/error.png"/>
-                </div>
-                <ul>
-                    $for error in errors:
-                    <li>$:error</li>
-                </ul>
-            </div>
-        
-        $if menu:
-            <div id="menu">
-                $for i in menu:
-                    <a href="${i[1]}">${i[0]}</a>
-                    $if not loop.last:
-                        | 
-            </div>
-
-        $:body
-
-        <div id="fotter">
-            <p>
-                Powered by <a href="http://python.org">Python</a> and 
-                <a href="http://webpy.org">web.py</a>
-            <br/>Licencia GPLv3 pillate el <a href="http://bzr.danigm.net/kisspi/tgz">código</a>
-            </p>
-            <a href="http://danigm.net">
-                <img id="danigm" src="/static/images/poweredby.png"
-                alt="powered by danigm"/>
-            </a>
-        </div>
-    </body>
-</html>
-