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 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): 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 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 post(self): # we need to be able to update scores for an uncompleted certification # passing (score) id, score, method (update) method = self.request.get("method") certid = int(self.request.get("certid")) scid = int(self.request.get("id")) score = int(self.request.get("score")) sc = ElemScore.get_by_id(scid) sc.score = score sc.put() # TODO check to see if all the scores are passing and update cert.completed if so... c = Certification.get_by_id(certid) completed = True for s in c.scores: if s.score == 0: complete = False break if completed: if c.completed: # already completed pass else: c.completed = True c.put() ctkn = c.template.key().name() if ctkn == "KB1": level = 1 elif ctkn == "KB2": level = 2 elif ctkn == "KB3": level = 3 elif ctkn == "IK1": level = 4 elif ctkn == "IK2": level = 5 elif ctkn == "IK3": level = 6 else: level = 0 c.owner.level = level if c.put() and c.completed: # triggers an email to email c.owner.put() self.redirect("/examiner/certifications?certid=" + self.request.get("certid"))
def post(self): # we need to be able to update scores for an uncompleted certification # passing (score) id, score, method (update) method = self.request.get('method') certid = int(self.request.get('certid')) scid = int(self.request.get('id')) score =int(self.request.get('score')) sc = ElemScore.get_by_id(scid) sc.score = score sc.put() # TODO check to see if all the scores are passing and update cert.completed if so... cert = Certification.get_by_id(certid) complete = True for s in cert.scores: if s.score == 0: complete = False break if complete: cert.completed = True cert.put() self.redirect('/admin/certifications?certid='+self.request.get('certid'))
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): # we need to be able to update scores for an uncompleted certification # passing (score) id, score, method (update) method = self.request.get('method') certid = int(self.request.get('certid')) scid = int(self.request.get('id')) score = None elsc_completed = self.request.get('completed') sc = ElemScore.get_by_id(scid) sc.completed = True if self.request.get('score'): score=int(self.request.get('score')) sc.score = score else: # it may be completed if elsc_completed == 'completed': # updated all the tasks to int 2 and score it 2 as well... for tscore in sc.taskscores: tscore.score = 2 tscore.put() sc.score = 2 else: # it might have been unchecked for tscore in sc.taskscores: tscore.score = 0 tscore.put() sc.score=0 sc.completed = False sc.put() # TODO check to see if all the other scores are passing and update cert.completed if so... c = Certification.get_by_id(certid) completed = True for s in c.scores: if s.score < 1: completed = False break if completed: if c.completed: #already completed pass else: c.completed = True c.put() ctkn = c.template.key().name() if ctkn == 'KB1': level = 1 elif ctkn == 'KB2': level = 2 elif ctkn == 'KB3': level = 3 else: level = 0 c.owner.level = level if c.put() and c.completed: c.owner.put() # trigger an email to recipient of certification from google.appengine.api import mail message = mail.EmailMessage(sender="WorldKiteOrg-DoNotReply <*****@*****.**>",subject="Congratulations - your WorldKite Certification is completed") message.to = member.key().name() message.body = "Congratulations" + member.fnam + " " + member.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() self.response.out.write('/instructor/certifications?certid='+self.request.get('certid')) else: pass
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)