📄 dept.py
字号:
#
# $Workfile: Dept.py $ $Revision: 5 $
# $Date: 10/04/01 5:06p $ $Author: Sholden $
#
import Web
from cachequery import CacheQuery
from dtuple import TupleDescriptor, DatabaseTuple
from dbsource import dbsource
import mx.DateTime
DptNames = ["DptCode", "DptName", "DptWelcome", "DptLinks", "DptLnksTxt"]
conn = dbsource().conn
cursor = conn.cursor()
qDept = CacheQuery("department", DptNames, ("DptCode", ),
conn, ORDER=("DptName",), refresh=30)
qLnks = CacheQuery("links", ("LnkURL", "LnkText"), ("DptCode", ),
conn, refresh=30)
class Page(Web.Page):
"""Abstract page implementing departmental look and feel."""
def __init__(self, *args, **kw):
Web.Page.__init__(self, *args, **kw)
if len(self.path) == 0:
self.DptCode = "*ABSENT*"
else:
self.DptCode = self.path[0]
self.path = self.path[1:]
self.dpt = qDept((self.DptCode, ))
if not self.dpt:
self.DptCode = "*NOSUCH*"
self.dpt = qDept(("*NOSUCH*",))
self.dpt = self.dpt[0]
now = mx.DateTime.today()
stmt = """SELECT DptCode, newsitem.NwsNum, NwsHead FROM newsitem, deptnews
WHERE DptCode=?
AND deptnews.NwsNum=newsitem.NwsNum
AND ? BETWEEN NewsItem.NwsStart AND NewsItem.NwsEnd"""
cursor.execute(stmt, (self.dpt.DptCode, now))
self.Nws = cursor.fetchall()
self.lnk = qLnks((self.dpt.DptCode, ))
stmt = """SELECT QodHook, QodQuestion, QodAlist, QodAnswer
FROM Qod WHERE ? BETWEEN QodDate AND QodDate+1
AND DptCode = ?
AND QodShow"""
cursor.execute(stmt, (now, self.dpt.DptCode))
self.qod = cursor.fetchall()
if self.qod:
self.qod = self.qod[0]
# There *SHOULD* be at most one ... but we use the first to be safe!
def Title(self):
"""Title is department name."""
if self.DptCode:
return "Department %s" % self.dpt.DptName
else:
return "No Department Name Given"
def NavBar(self):
"""Generate navigation bar for any department page."""
result = ["""<FONT size="-2">"""]
result.append("""<A HREF="/">HOME</A><BR><BR>""")
if self.DptCode:
result.append("""<A HREF="/DeptHome/%s/">Dept Home</A><BR><BR>""" % self.dpt.DptCode)
if len(self.Nws):
result.append("""<A HREF="/DeptNews/%s/">News</A><BR><BR>""" % self.dpt.DptCode)
if self.dpt.DptLnksTxt:
result.append("%s<BR><BR>" % self.dpt.DptLnksTxt)
if len(self.lnk):
result.append("""<A HREF="/DeptLinks/%s/">More Links</A><BR><BR>""" % self.dpt.DptCode)
if len(self.qod):
# Departmental question of the day
result.append("""<B>Today's question:</B><BR><BR>
<A HREF="/DeptQod/%s/">%s ...</A><BR><BR>""" % (self.dpt.DptCode, self.qod[0]))
result.append("""</FONT>""")
return "\n".join(result)
def DeptHeader(self):
"""Page starts with the department name."""
if self.DptCode:
text = self.dpt.DptName
else:
text = "No Department Name"
return """<P><B><FONT COLOR="BLUE">%s</FONT></B></BR><HR>""" % text
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -