Eliminate the Work.abstract property and move the Document.content property
to Work.content instead. Update affected views, and re-base some classes
that were deriving from Document just to get Document.content to now be
derived from Work instead.
The Document class now has a "pass" body with no additional properties. It
is debatable whether Work should become Document, since I am not sure that
we plan to be able to generically display, say, a Quiz or a Question (which
are Works) on the home page (which can only specifically display a Document,
or now, the basic Work entity...).
Patch by: Todd Larsen
Review by: to-be-reviewed
import hotshot, time, os
from django.core.handlers.modpython import ModPythonHandler
PROFILE_DATA_DIR = "/var/log/cmsprofile"
def handler(req):
'''
Handler that uses hotshot to store profile data.
Stores profile data in PROFILE_DATA_DIR. Since hotshot has no way (that I
know of) to append profile data to a single file, each request gets its own
profile. The file names are in the format <url>.<n>.prof where <url> is
the request path with "/" replaced by ".", and <n> is a timestamp with
microseconds to prevent overwriting files.
Use the gather_profile_stats.py script to gather these individual request
profiles into aggregated profiles by request path.
'''
profname = "%s.%.3f.prof" % (req.uri.strip("/").replace('/', '.'), time.time())
profname = os.path.join(PROFILE_DATA_DIR, profname)
prof = hotshot.Profile(profname)
return prof.runcall(ModPythonHandler(), req)