def post(self):
        p = self.request.get('prereq')
        short = self.request.get('short')
        desc = self.request.get('desc')
        key3 = self.request.get('key3')
        method = self.request.get('method')
        if key3:
            ctemp = CertificationTemplate.get_by_key_name(key3)
            if method == "update":
                # an edit
                if p:
                    pr = CertificationTemplate.get_by_key_name(p)
                    ctemp.prereq = pr
                if short: ctemp.short = short
                if desc: ctemp.desc = desc
                ctemp.put()
            elif method == "delete":
                # a deletion
                # first delete all dependencies
                # ctemp.elements
                for el in ctemp.elements:
                    el.elem.delete()
                    el.delete()
                ctemp.delete()
        else:
            # a new post
            if p:
                ctp = CertificationTemplate.get_by_key_name(p)
                ctemp = CertificationTemplate(key_name=key3)
                ctemp.short = short
                ctemp.desc = desc
                ctemp.prereq = ctp
                ctemp.put()
            else:
                ctemp = CertificationTemplate(key_name=key3, short=short)
                ctemp.short = short
                ctemp.desc = desc
                ctemp.put()

        self.redirect('/admin/templates')