def get(self): url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' # if there is a 'key' in query string then it is a view for a specific template... if self.request.get('keyname'): kn = self.request.get('keyname') template_file = 'templates/admin/cert_temp.html' url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' ctemp = CertificationTemplate.get_by_key_name(kn) if ctemp: ctemp.code4 = ctemp.key().name() ctemp.els = ctemp.elements template_values = {'url': url,'url_linktext': url_linktext,'ctemp': ctemp} else: template_file = 'templates/admin/cert_temps.html' ctemps_query = CertificationTemplate.all() ctemps = ctemps_query.fetch(100) for ctemp in ctemps: ctemp.code4 = ctemp.key().name() if ctemp.prereq: ctemp.p = ctemp.prereq.key().name() template_values = {'url': url,'url_linktext': url_linktext,'ctemps': ctemps} path = os.path.join(os.path.dirname(__file__), template_file) self.response.out.write(template.render(path, template_values))
def get(self): user = users.get_current_user() url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' member = Member.get_by_key_name(user.email()) # if there is a 'id' in query string then it is a view for a specific cert... if self.request.get('certid'): cid = int(self.request.get('certid')) template_file = 'templates/master/cert.html' user = users.get_current_user() url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' c = Certification.get_by_id(cid) if c: # i dunno pass #get all cert_temps ctemps_query = CertificationTemplate.all() ctemps = ctemps_query.fetch(100) for ctemp in ctemps: ctemp.code4 = ctemp.key().name() template_values = {'url': url,'url_linktext': url_linktext,'cert': c, 'ctemps':ctemps} else: member.canteach = ['KB1','KB2','KB3','IK1','IK2','IK3','EX1','EX2'] template_file = 'templates/master/certs.html' cs_query = Certification.gql("WHERE createdBy= :1", users.get_current_user()) cs = cs_query.fetch(100) template_values = {'url': url,'url_linktext': url_linktext, 'member':member,'certs':cs} path = os.path.join(os.path.dirname(__file__), template_file) self.response.out.write(template.render(path, template_values))
def post(self): method = self.request.get('method') ctkey = self.request.get('ctkey') # required for redirect elkey = self.request.get('elkey') if method == 'delete': k = db.Key.from_path("Element", elkey) db.delete(k) elif method == 'update' or method == 'post': short = self.request.get('short') desc = self.request.get('desc') note = self.request.get('note') prereq = self.request.get('prereq') # save or update the element or task if method == 'post': ordstr = self.request.get('ord') ord = int(ordstr) ct = CertificationTemplate.get_by_key_name(ctkey) if ct: kn = ctkey + '-' + ordstr el = Element(key_name=kn,certtemp=ct,short=short,ord=ord) # continue setting Element fields if desc: el.desc = desc if note: el.note = note if prereq: el_pre = Element.get_by_key_name(prereq) if el_pre: el.prereq = el_pre else: # todo : raise error - Element prereq does not exist pass elkey = el.put() else: # todo - raise error - can't create Element without CertificationTemplate pass else: # method == 'update' el = Element.get_by_key_name(elkey) if el: # update element if desc : el.desc = desc if note : el.note = note if prereq: el_pre = Element.get_by_key_name(prereq) if el_pre: el.prereq = el_pre else: # todo : raise error - Element prereq does not exist pass elkey = el.put() else: # todo raise error - can't located Element to update pass else: # todo : raise error - method not supplied or supported pass self.redirect('/admin/templates?keyname='+ctkey)
def get(self): url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' # if there is a 'id' in query string then it is a view for a specific cert... if self.request.get('certid'): cid = int(self.request.get('certid')) template_file = 'templates/admin/cert.html' url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' c = Certification.get_by_id(cid) if c: # i dunno pass #get all cert_temps ctemps_query = CertificationTemplate.all() ctemps = ctemps_query.fetch(100) for ctemp in ctemps: ctemp.code4 = ctemp.key().name() template_values = {'url': url,'url_linktext': url_linktext,'cert': c, 'ctemps':ctemps} else: template_file = 'templates/admin/certs.html' cs_query = Certification.all() cs = cs_query.fetch(100) for c in cs: c.id = c.key().id() c.templatekeyname = c.template.key().name() #get all cert_temps ctemps_query = CertificationTemplate.all() ctemps = ctemps_query.fetch(100) for ctemp in ctemps: ctemp.code4 = ctemp.key().name() template_values = {'url': url,'url_linktext': url_linktext,'certs': cs, 'ctemps':ctemps} path = os.path.join(os.path.dirname(__file__), template_file) self.response.out.write(template.render(path, template_values))
def get(self): user = users.get_current_user() url = users.create_logout_url(self.request.uri) url_linktext = "Logout" member = Member.get_by_key_name(user.email()) # if there is a 'id' in query string then it is a view for a specific cert... if self.request.get("certid"): cid = int(self.request.get("certid")) template_file = "templates/examiner/cert.html" user = users.get_current_user() url = users.create_logout_url(self.request.uri) url_linktext = "Logout" c = Certification.get_by_id(cid) if c: # i dunno pass # get all cert_temps ctemps_query = CertificationTemplate.all() ctemps = ctemps_query.fetch(100) for ctemp in ctemps: ctemp.code4 = ctemp.key().name() template_values = {"url": url, "url_linktext": url_linktext, "cert": c, "ctemps": ctemps} else: if member.level == 7: member.canteach = [ {"level": "KB1"}, {"level": "KB2"}, {"level": "KB3"}, {"level": "IK1", "mustscore": True}, {"level": "IK2", "mustscore": True}, ] elif member.level == 8: member.canteach = [ {"level": "KB1"}, {"level": "KB2"}, {"level": "KB3"}, {"level": "IK1"}, {"level": "IK2"}, {"level": "IK3", "mustscore": True}, ] template_file = "templates/examiner/certs.html" cs_query = Certification.gql("WHERE createdBy= :1", users.get_current_user()) cs = cs_query.fetch(100) template_values = {"url": url, "url_linktext": url_linktext, "member": member, "certs": cs} path = os.path.join(os.path.dirname(__file__), template_file) self.response.out.write(template.render(path, template_values))
def get(self): url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' # provide an email: get one, no email, get all mkey = self.request.get('memberkey') if mkey: # get specific member member = Member.get_by_key_name(mkey) ctemps_query = CertificationTemplate.all() ctemps = ctemps_query.fetch(100) template_file = 'templates/admin/member.html' template_values = {'url': url,'url_linktext': url_linktext,'member': member, 'ctemps': ctemps} else: # get all members members = Member.all() template_file = 'templates/admin/members.html' template_values = {'url': url,'url_linktext': url_linktext,'members': members} path = os.path.join(os.path.dirname(__file__), template_file) self.response.out.write(template.render(path, template_values))
def get(self): user = users.get_current_user() url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' member = Member.get_by_key_name(user.email()) if member.level == 4: member.canteach = [{'level':'KB1','musttaskscore':True},{'level':'KB2','mustscore':True}] member.musttaskscore = {'KB1':True,'KB2':True} member.musttaskscorejson = "{'KB1':true,'KB2':true}" elif member.level == 5: member.canteach = [{'level':'KB1','mustscore':True},{'level':'KB2','mustscore':True},{'level':'KB3','mustscore':True}] member.musttaskscore = {'KB1':False,'KB2':False,'KB3':True} member.musttaskscorejson = "{'KB1':false,'KB2':false,'KB3':true}" elif member.level == 6: member.canteach = [{'level':'KB1'},{'level':'KB2'},{'level':'KB3','mustscore':True}] member.musttaskscore = {'KB1':False,'KB2':False,'KB3':False} member.musttaskscorejson = "{'KB1':false,'KB2':false,'KB3':false}" # if there is a 'id' in query string then it is a view for a specific cert... if self.request.get('certid'): cid = int(self.request.get('certid')) template_file = 'templates/instructor/cert.html' user = users.get_current_user() url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' c = Certification.get_by_id(cid) if c: ctkn = c.template.key().name() c.musttaskscore = member.musttaskscore[ctkn] #get all cert_temps ctemps_query = CertificationTemplate.all() ctemps = ctemps_query.fetch(100) for ctemp in ctemps: ctemp.code4 = ctemp.key().name() template_values = {'url': url,'url_linktext': url_linktext,'cert': c,'member':member, 'ctemps':ctemps} else: template_file = 'templates/instructor/certs.html' cs_query = Certification.gql("WHERE createdBy= :1", users.get_current_user()) cs = cs_query.fetch(100) template_values = {'url': url,'url_linktext': url_linktext,'member':member,'certs':cs} path = os.path.join(os.path.dirname(__file__), template_file) self.response.out.write(template.render(path, template_values))
def post(self): method = self.request.get("method") if self.request.get("id"): cert_id = int(self.request.get("id")) email = self.request.get("recipient") fnam = self.request.get("fnam") lnam = self.request.get("lnam") if self.request.get("completed") == "1": completed = True else: completed = False templatekey = self.request.get("ctemp") if method == "update": # an edit c = Certification.get_by_id(cert_id) if completed: if c.completed: # already completed pass else: # update their level (member record) if templatekey == "KB1": level = 1 elif templatekey == "KB2": level = 2 elif templatekey == "KB3": level = 3 elif templatekey == "IK1": level = 4 elif templatekey == "IK2": level = 5 elif templatekey == "IK3": level = 6 elif templatekey == "EX1": level = 7 elif templatekey == "EX2": level = 8 elif templatekey == "M": level = 9 else: pass c.completed = True c.owner.level = level # updated Member's level using an algorithm to evaluate elements if c.put() and c.completed: # triggers an email to email pass self.redirect("/examiner/certifications") elif method == "delete": # delete the record and related scores c = Certification.get_by_id(cert_id) for s in c.scores: s.delete() # also delete the member if there are no other certs related and the member has no user mem = c.owner c.delete() if mem.user: pass else: memcs = Certification.all() memcs = Certification.gql("WHERE owner= :1", c.owner) if memcs.count(limit=2) > 0: pass else: # also check to see if this user is the creater of the record... if mem.createdBy == users.get_current_user(): mem.delete() self.redirect("/examiner/certifications") # TODO adjust level else: # a new post c = Certification() template = CertificationTemplate.get_by_key_name(templatekey) c.template = template mem = Member.get_by_key_name(email) if mem: # ... what if the fnam and lnam are different? an update? pass else: # create a new member mem = Member(key_name=email, fnam=fnam, lnam=lnam) mem.put() if completed: c.completed = True if templatekey == "KB1": level = 1 elif templatekey == "KB2": level = 2 elif templatekey == "KB3": level = 3 elif templatekey == "IK1": level = 4 elif templatekey == "IK2": level = 5 elif templatekey == "IK3": level = 6 elif templatekey == "EX1": level = 7 elif templatekey == "EX2": level = 8 elif templatekey == "M": level = 9 mem.level = level mem.put() c.owner = mem c.put() # Trigger email to certification recipient from google.appengine.api import mail message = mail.EmailMessage( sender="WorldKiteOrg-DoNotReply <*****@*****.**>", subject="Congratulations - your WorldKite Certification is completed", ) message.to = mem.key().name() message.body = "Congratulations" + mem.fnam + " " + mem.lnam message.body += """ """ message.body += c.template.key().name() + " " + c.template.short message.body += """ Visit http://worldkite.org and login with the email address you provided for your World Kite certification. We use Google's system for authentication so if you email account is not already registered with Google then you will be prompted to do so. Please let us know if you have any questions by dropping an email to: [email protected] Welcome to our team! World Kite Organization """ message.send() # now check the template and create new scores for each Element related to the CertTemp # first, get all CertificationTemplate.elements for el in template.elements: # now for each el, create a new ElemScore elsc = ElemScore() elsc.certtemp_elem = el elsc.certification = c if completed: elsc.score = 1 else: elsc.score = 0 elsc.put() self.redirect("/examiner/certifications?certid=" + str(c.key().id()))
def post(self): method = self.request.get('method') if self.request.get('id'): cert_id = int(self.request.get('id')) email = self.request.get('recipient') fnam = self.request.get('fnam') lnam = self.request.get('lnam') if self.request.get('completed') == '1': completed = True else: completed = False templatekey = self.request.get('ctemp') if method == "update": # an edit c = Certification.get_by_id(cert_id) if completed: if c.completed: #already completed pass else: #update their level (member record) if templatekey == 'KB1': level = 1 elif templatekey == 'KB2': level = 2 elif templatekey == 'KB3': level = 3 elif templatekey == 'IK1': level = 4 elif templatekey == 'IK2': level = 5 elif templatekey == 'IK3': level = 6 elif templatekey == 'EX1': level = 7 elif templatekey == 'EX2': level = 8 elif templatekey == 'M': level = 9 else: pass c.completed = True c.owner.level = level #updated Member's level using an algorithm to evaluate elements if c.put() and c.completed: #triggers an email to email pass self.redirect('/master/certifications') elif method == "delete": # delete the record and related scores c = Certification.get_by_id(cert_id) for s in c.scores: s.delete() #also delete the member if there are no other certs related and the member has no user mem = c.owner c.delete() if mem.user: pass else: memcs = Certification.all() memcs = Certification.gql("WHERE owner= :1", c.owner) if memcs.count(limit=2) > 0: pass else: # also check to see if this user is the creater of the record... if mem.createdBy == users.get_current_user(): mem.delete() self.redirect('/master/certifications') # TODO adjust level else: # a new post c = Certification() template = CertificationTemplate.get_by_key_name(templatekey) c.template = template mem = Member.get_by_key_name(email) if (mem): #... what if the fnam and lnam are different? an update? pass else: # create a new member mem = Member(key_name=email,fnam=fnam,lnam=lnam) mem.put() # TODO don't forget to send them an email to confirm membership!!! if completed: c.completed = True if templatekey == 'KB1': level = 1 elif templatekey == 'KB2': level = 2 elif templatekey == 'KB3': level = 3 elif templatekey == 'IK1': level = 4 elif templatekey == 'IK2': level = 5 elif templatekey == 'IK3': level = 6 elif templatekey == 'EX1': level = 7 elif templatekey == 'EX2': level = 8 elif templatekey == 'M': level = 9 mem.level = level mem.put() c.owner = mem c.put() # now check the template and create new scores for each Element related to the CertTemp # first, get all CertificationTemplate.elements for el in template.elements: # now for each el, create a new ElemScore elsc = ElemScore() elsc.certtemp_elem = el elsc.certification = c if completed: elsc.score = 1 else: elsc.score = 0 elsc.put() self.redirect('/master/certifications?certid=' + str(c.key().id()))
def post(self): method = self.request.get('method') cert_id = None if self.request.get('id'): cert_id = int(self.request.get('id')) email = self.request.get('recipient') fnam = self.request.get('fnam') lnam = self.request.get('lnam') if self.request.get('completed') == '1': completed = True else: completed = False templatekey = self.request.get('ctemp') if method == "update": # an edit c = Certification.get_by_id(cert_id) if completed: if c.completed: #already completed pass else: #update their level (member record) if templatekey == 'KB1': level = 1 elif templatekey == 'KB2': level = 2 elif templatekey == 'KB3': level = 3 elif templatekey == 'IK1': level = 4 elif templatekey == 'IK2': level = 5 elif templatekey == 'IK3': level = 6 elif templatekey == 'EX1': level = 7 elif templatekey == 'EX2': level = 8 elif templatekey == 'M': level = 9 else: level = 0 c.completed = True c.owner.level = level #updated Member's level using an algorithm to evaluate elements if c.put() and c.completed: #triggers an email to email pass self.redirect('/admin/certifications') elif method == "delete": # delete the record and related scores c = Certification.get_by_id(cert_id) for s in c.scores: s.delete() c.delete() self.redirect('/admin/certifications') # todo : adjust level else: # a new post c = Certification() template = CertificationTemplate.get_by_key_name(templatekey) c.template = template mem = Member.get_by_key_name(email) # goddamit, email should be the keyname for a member!!! if mem: #... what if the fnam and lnam are different? an update? pass else: # create a new member mem = Member(key_name=email,fnam=fnam,lnam=lnam) mem.put() # todo : don't forget to send them an email to confirm membership!!! if completed: c.completed = True if templatekey == 'KB1': level = 1 elif templatekey == 'KB2': level = 2 elif templatekey == 'KB3': level = 3 elif templatekey == 'IK1': level = 4 elif templatekey == 'IK2': level = 5 elif templatekey == 'IK3': level = 6 elif templatekey == 'EX1': level = 7 elif templatekey == 'EX2': level = 8 elif templatekey == 'M': level = 9 else: level = 0 mem.level = level mem.put() c.owner = mem c.put() # now check the template and create new scores for each Element related to the CertTemp # first, get all CertificationTemplate.elements for el in template.elements: # now for each el, create a new ElemScore elsc = ElemScore() elsc.certtemp_elem = el elsc.certification = c if completed: elsc.score = 1 else: elsc.score = 0 elsc.put() self.redirect('/admin/members?memberkey=' + email)
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')