from patchtracker import Conf 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.link = self._link Template.__init__(self, file=file, searchList=ourSearchList) def _link(self, where, name): return str("%s"%(where,name)) 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})