~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to src/dispatch/__init__.py

  • Committer: mattgiuca
  • Date: 2007-12-12 02:21:50 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:38
dispatch: Request now fully handles all attributes by setting the correct
    headers when it writes, and calling the given HTML function.
    New module html which provides functions to write HTML header and footer.
    __init__ uses this more formally, abstracting the "test application"
        function.

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
import conf
33
33
import conf.apps
34
34
 
35
 
import request
 
35
from request import Request
 
36
import html
36
37
 
37
38
root_dir = conf.root_dir
38
39
 
43
44
    req: An Apache request object.
44
45
    """
45
46
    # Make the request object into an IVLE request which can be passed to apps
46
 
    req = request.Request(req)
47
 
 
 
47
    req = Request(req, html.write_html_head)
 
48
 
 
49
    # TODO: Handle applications
 
50
    test_app(req)
 
51
 
 
52
    # When done, write out the HTML footer if the app has requested it
 
53
    if req.write_html_head_foot:
 
54
        # MAKE SURE we write the head (we would never do that if the app, nor
 
55
        # write_html_foot, ever writes anything - so just to be sure).
 
56
        req.write("", flush=0)
 
57
        html.write_html_foot(req)
 
58
 
 
59
    # Have Apache output its own HTML code if non-200 status codes were found
 
60
    return req.status
 
61
 
 
62
def test_app(req):
 
63
    """This (temporary) function serves as an IVLE application. It takes an
 
64
    IVLE request and conforms to the application API."""
48
65
    # TEMP: Dummy (test) handler
 
66
 
 
67
    # Set request attributes
49
68
    req.content_type = "text/html"
50
 
    req.write("<html>\n")
 
69
    req.write_html_head_foot = True     # Have dispatch print head and foot
 
70
 
 
71
    # Start writing data
51
72
    req.write("<p>Hello, IVLE!</p>\n")
52
73
    req.write('<p><img src="' + make_path("media/images/mime/dir.png")
53
74
        + '" /> ')
56
77
 
57
78
    print_apps_list(req)
58
79
 
59
 
    req.write("</html>")
60
 
    return apache.OK
61
 
 
62
80
def make_path(path):
63
81
    """Given a path relative to the IVLE root, makes the path relative to the
64
82
    site root using conf.root_dir. This path can be used in URLs sent to the