Page Source
from utils.controls import *
from utils.output import html
from mod_python import apache
from utils.display import Display, Database, Arguments
from utils.web_exc import WebError
from utils.static_strings import StaticString
from config import docroot
import string, os
import debugging
class PathsDisplay(Display, StaticString, Database):
def __init__(self, req):
Display.__init__(self, req)
def make_page(self, page):
self.prep_database()
page.set_type("info")
page.set_title("Information")
page.append(self.GetString(key='services_website_index',
display=self,
title_fn=page.set_title))
if self.permit_action("add"):
page.add_navigation("%(script)s/add" % self.req.urls,
"Forge Your Own Path")
page.add_navigation("%(aside:)s" % self.req.urls(),
"Asides")
# This page only appears in multiple mode.
page.append(self.multiple_database())
def permit_action(self, action):
return ((action == 'add' and perms.may(self.req.login, "add", "documentation")))
multiple_container_control = SimpleContainerControl(html.UL)
multiple_controls = [
LinkControl("path_name",
"%(docpath!path_name)s",
FieldControl("title"))
]
def db_query(self):
wc = []
# if not logged in, don't show private paths
if not self.req.login:
wc.append("not private")
s = queries.Select(tables="doc_paths",
order="title",
where=wc and string.join(wc, ' AND ') or None)
s.execute()
self.query = s
def is_multiple(self):
return 1
def db_fetch(self):
self.fields = self.query.fetch()
return self.fields
def new(req):
return PathsDisplay(req)