summaryrefslogtreecommitdiff
path: root/examples/todo/SitePage.py
blob: 178e47169d62b11e9387be5bdf09bf7ab3344954 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

import os
from wsgikit.webkit.wkservlet import Page
import api


class SitePage(Page):

    manager = None
    
    def awake(self, trans):
        super(SitePage, self).awake(trans)
        if not getattr(self, 'manager', None):
            datadir = trans.request().environ().get('wsgikit.config',{}).get('datadir','.')
            self.manager = api.Manager.load(root=datadir)
        self.baseURL = trans.request().environ()['todo.base_url']
        self.username = self.session().value('username', None)
        if not self.username and self.loginRequired():
            self.transaction().forward('/login')

    def loginRequired(self):
        return True

    def sleep(self, trans):
        super(SitePage, self).sleep(trans)
        if self.manager:
            self.manager.save()
    
    def preAction(self, actionName):
        pass

    def postAction(self, actionName):
        pass

    def writeStyleSheet(self):
        self.write("""<meta http-equiv="Content-Type" content="text/html;
            charset=ISO-8859-1" />\n""")
        self.write("""<link href="%s/main.css" rel="stylesheet"
            type="text/css" media="screen"/>\n""" % self.baseURL)

    def writeDocType(self):
        self.write("""<?xml version="1.0" encoding="iso-8859-1"?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n""")

    def title(self):
        return "WSGIKit ToDo list test"

    def htBodyArgs(self):
        return ""

    def writeBodyParts(self):
        self.writePreContent()
        self.writeContent()
        self.writePostContent()

    def writePreContent(self):
        self.write("""<h1><img src="%s/check.png" align="absmiddle" />WSGIKit ToDo
            List</h1><hr />""" % self.baseURL)

    def writeContent(self):
        self.write("Blank Page")

    def writePostContent(self):
        self.write("""<p class="faded">Copyright not needed</p><pre>%s</pre>""" % self.htmlEncode(repr(self.manager)))