diff options
Diffstat (limited to 'patchtracker/Templates.py')
-rwxr-xr-x | patchtracker/Templates.py | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/patchtracker/Templates.py b/patchtracker/Templates.py deleted file mode 100755 index 42140a8..0000000 --- a/patchtracker/Templates.py +++ /dev/null @@ -1,103 +0,0 @@ -from patchtracker import Conf, DB -from patchtracker.DiffGzHandler import DiffGzHandler -from patchtracker.DebTarHandler import DebTarHandler -from patchtracker.SourceArchive import ReleaseList - -from Cheetah.Template import Template -from Cheetah.Compiler import Compiler -import os, errno -import re - -class OurTemplate(Template): - def __init__(self, file, searchList=None): - ourSearchList={"conf":Conf, "crumbs":[]} - if searchList: - for k,v in searchList.iteritems(): - ourSearchList[k]=v - self.escape_name = self._escape_name - self.wrappable_version = self._wrappable_version - self.link = self._link - Template.__init__(self, file=file, searchList=ourSearchList) - - def _link(self, where, name): - return str("<a href=\"%s\">%s</a>"%(where,name)) - - def _escape_name(self, name): - return re.sub("([^a-zA-Z0-9-])", (lambda x: "_%d"%(ord(x.group(1)))), name) - - def _wrappable_version(self, version): - """ output a version that can be broken up by a web browser using - the unicode zero-whitespace-break character (​) """ - return '​'.join([version[i:i+12] for i in range(0,len(version),12)]) - -class PackageVersTemplate(OurTemplate): - def __init__(self, srcpkg): - self.src = srcpkg - tpl=os.sep.join([Conf.template_dir, "package_vers.tmpl"]) - sl = {} - # XXX c/p from PatchCmd.make_diffhandler - db = DB.PatchTrackerDB() - dfile = db.findDiffGz(srcpkg.name,srcpkg.version) - if dfile: - sl['diffhandler'] = DiffGzHandler(dfile) - else: - dfile = db.findDebTar(srcpkg.name, srcpkg.version) - if dfile: - sl['diffhandler'] = DebTarHandler(dfile) - sl['crumbs'] = [("package/"+srcpkg.name,srcpkg.name), - ("package/"+srcpkg.name+"/"+srcpkg.version, - srcpkg.name+"/"+srcpkg.version)] - OurTemplate.__init__(self, file=tpl, searchList=sl) - -class FrontPageTemplate(OurTemplate): - def __init__(self, indices): - tpl = os.sep.join([Conf.template_dir, "frontpage.tmpl"]) - OurTemplate.__init__(self, file=tpl) - self.indices = indices - -class LetterTocTemplate(OurTemplate): - def __init__(self, letter, collection): - self.pkgs = collection - self.idx = letter - self.dists = ReleaseList("debian") - sl = {} - sl['crumbs'] = [("index/"+letter,"index for "+letter)] - tpl = os.sep.join([Conf.template_dir, "letter_toc.tmpl"]) - OurTemplate.__init__(self, file=tpl, searchList=sl) - -class SearchResultsTemplate(OurTemplate): - def __init__(self, search, searchtype, collection): - self.pkgs = {} - self.idx = search - self.searchtype = searchtype - self.dists = ReleaseList("debian") - for idx in collection.indices(): - for name,packagelist in collection.getletter(idx).iteritems(): - self.pkgs[name] = packagelist - tpl = os.sep.join([Conf.template_dir, "searchresults.tmpl"]) - OurTemplate.__init__(self, file=tpl) - - -class ErrorTemplate(OurTemplate): - def __init__(self, msg): - tpl = os.sep.join([Conf.template_dir, "cgi_error.tmpl"]) - OurTemplate.__init__(self, file=tpl, searchList={'error':msg}) - -class PatchTemplate(OurTemplate): - def __init__(self, pkg=None, vers=None, name=None, patch=None,patchtype=None): - tpl = os.sep.join([Conf.template_dir, "patch_view.tmpl"]) - sl = {'package':pkg, 'version':vers, 'name':name, - 'patch':patch, 'patchtype':patchtype} - sl['crumbs'] = [("package/"+pkg,pkg), - ("package/"+pkg+"/"+vers, pkg+"/"+vers)] - if patchtype == "debianonly": - sl['crumbs'].append( ("patch/%s/view/%s/%s"%(patchtype,pkg,vers), - "./debian-dir only patch") ) - elif patchtype == "series": - sl['crumbs'].append(("patch/%s/view/%s/%s/%s"%(patchtype,pkg,vers,name), - "series patch "+name) ) - elif patchtype == "misc": - sl['crumbs'].append(("patch/%s/view/%s/%s/%s"%(patchtype,pkg,vers,name), - "direct patch of "+name) ) - OurTemplate.__init__(self, file=tpl, searchList=sl) - |