summaryrefslogtreecommitdiff
path: root/patchtracker/Templates.py
diff options
context:
space:
mode:
Diffstat (limited to 'patchtracker/Templates.py')
-rwxr-xr-xpatchtracker/Templates.py61
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)
+