diff options
Diffstat (limited to 'patchtracker/Templates.py')
-rwxr-xr-x | patchtracker/Templates.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/patchtracker/Templates.py b/patchtracker/Templates.py new file mode 100755 index 0000000..d8657c1 --- /dev/null +++ b/patchtracker/Templates.py @@ -0,0 +1,61 @@ +from patchtracker import Conf +from patchtracker.DiffGzHandler import DiffGzHandler + +from Cheetah.Template import Template +from Cheetah.Compiler import Compiler +import os +import errno + +class OurTemplate(Template): + def __init__(self, file, searchList=None): + ourSearchList={"conf":Conf} + if searchList: + for k,v in searchList.iteritems(): + ourSearchList[k]=v + Template.__init__(self, file=file, searchList=ourSearchList) + + +class PackageVersTemplate(OurTemplate): + def __init__(self, srcpkg, suite): + self.src = srcpkg + self.suite = suite + tpl=os.sep.join([Conf.template_dir, "package_vers.tmpl"]) + sl = {} + if srcpkg.diffgz_name: + dfile = os.sep.join([Conf.archive_root,srcpkg.loc,srcpkg.diffgz_name]) + sl['diffhandler'] = DiffGzHandler(dfile) + else: + sl['diffhandler'] = None + OurTemplate.__init__(self, file=tpl, searchList=sl) + +class FrontPageTemplate(OurTemplate): + def __init__(self, allindex): + tpl = os.sep.join([Conf.template_dir, "frontpage.tmpl"]) + OurTemplate.__init__(self, file=tpl) + self.allindex = allindex + +class LetterTocTemplate(OurTemplate): + def __init__(self, letter, collection): + self.pkgs = collection + self.idx = letter + self.dists = {} + for name,packagelist in collection.iteritems(): + for d in packagelist.iterkeys(): + self.dists[d] = True + tpl = os.sep.join([Conf.template_dir, "letter_toc.tmpl"]) + OurTemplate.__init__(self, file=tpl) + + def releases(self): + return dists + +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): + tpl = os.sep.join([Conf.template_dir, "patch_view.tmpl"]) + sl = {'package':pkg, 'version':vers, 'name':name, 'patch':patch} + OurTemplate.__init__(self, file=tpl, searchList=sl) + |