Beispiel #1
0
 def get(self):
     track = Track.get_by_key_name(self['track_id'])
     program = Program.get_by_key_name(self['program_id'], parent=track)
     modules = ProgramModule.all().ancestor(program).order('name')
     template_values = {'program':program,
                        'track':track,
                        'modules':modules,
                        'listing_heading':program.name}
     template_values['is_member'] = True if 'member' in self.session else False
     if 'member' in self.session:
         email = self.session['member']
         member = Member.get_by_email(email)
         template_values['member'] = member
         if member.role == MEMBER_ROLE[MANAGER]:
             template_values['is_manager'] = True
         else:
             modules_count = modules.count()*1.0
             completed_modules = []
             for module in modules:
                 if module.completed:
                     completed_modules.append(module)
             completed_modules_count = len(completed_modules)
             score = (completed_modules_count/modules_count)*100.0
             engage_score = round(score*random(),0)
             engage_score = int(engage_score) if engage_score > 1 else 1
             template_values['donuts'] = DonutFactory.get_donuts(100, 0.875, [('Engineer1', [DonutSegment(engage_score, '#1c758a'), DonutSegment(score, '#58c4dd')], '/assets/img/tracks/mobile_dev.png')], 'transparent', '#ddd')
     self.render_template(template_name='program_listing.html', template_values=template_values)
Beispiel #2
0
 def post(self):
     email = self.session['member']
     track_id = self['track_id']
     program_id = self['program_id']
     program = Program.get_by_key_name(program_id, parent=Track.get_by_key_name(track_id))
     EnrollProgram.create(Member.get_by_email(email), program)
     self.redirect("/tracks/program_listing?program_id=%s&track_id=%s"%(program_id, track_id))
Beispiel #3
0
 def get(self):
     template_values = {}
     active_track = self['track_id']
     if active_track:
         template_values['active_track'] = active_track
     template_values['page_title_centered'] = get_page_title_centered_contents()
     template_values['tracks'] = [self._make_json(track) for track in Track.all().order('order')]
     template_values['is_member'] = True if 'member' in self.session else False
     template_values['track_donuts'] = {}
     if 'member' in self.session:
         email = self.session['member']
         member = Member.get_by_email(email)
         template_values['member'] = member
         template_values['enrolled_tracks'] = {}
         for track in Tracks.get_tracks():
             template_values['enrolled_tracks'][track.id] = EnrollProgram.is_enrolled_track(email, track.id)
         if member.role == MEMBER_ROLE[MANAGER]:
             template_values['is_manager'] = True
         else:
             for track in Tracks.get_tracks():
                 enrolled_programs_count = float(len(EnrollProgram.get_enrolled_programs(email, track.id)))
                 programs_count = float(Program.all().ancestor(Track.get_by_key_name(track.id)).count())
                 score = round((enrolled_programs_count/programs_count)*100,2)
                 engage_score = round(random()*score,0)
                 engage_score = int(engage_score) if engage_score > 1 else 1
                 template_values['track_donuts'][track.id] = [Donut(100, 0.875, member.name, [DonutSegment(engage_score, '#1c758a'), DonutSegment(score, '#58c4dd')], 'transparent', '#ddd')]
     self.render_template(template_name='tracks.html', template_values=template_values)
Beispiel #4
0
 def post(self):
     email = self.session['member']
     track_id = self['track_id']
     program_id = self['program_id']
     program = Program.get_by_key_name(
         program_id, parent=Track.get_by_key_name(track_id))
     EnrollProgram.create(Member.get_by_email(email), program)
     self.redirect("/tracks/program_listing?program_id=%s&track_id=%s" %
                   (program_id, track_id))
Beispiel #5
0
 def get(self):
     path = 'member_profile_image.html'
     email = self.session['member']
     member = Member.get_by_email(email)
     image_upload_url = blobstore.create_upload_url('/api/members/' + email + '/update')
     template_values = {'member': member, 'image_upload_url': image_upload_url}
     template_values['is_member'] = True if 'member' in self.session else False
     #if 'member' in self.session:
     #    template_values['member'] = Member.get_member_json(self.session['member'])
     self.write(self.get_rendered_html(path, template_values), 200)
Beispiel #6
0
 def get(self):
     path = 'member_profile.html'
     email = self.session['member']
     member = Member.get_by_email(email)
     form_url = '/api/members/' + email + '/update'
     template_values = {'member': member, 'form_url': form_url}
     template_values['is_member'] = True if 'member' in self.session else False
     #if 'member' in self.session:
     #    template_values['member'] = Member.get_member_json(self.session['member'])
     self.write(self.get_rendered_html(path, template_values), 200)
Beispiel #7
0
 def get(self):
     path = 'member_profile.html'
     email = self.session['member']
     member = Member.get_by_email(email)
     form_url = '/api/members/' + email + '/update'
     template_values = {'member': member, 'form_url': form_url}
     template_values[
         'is_member'] = True if 'member' in self.session else False
     #if 'member' in self.session:
     #    template_values['member'] = Member.get_member_json(self.session['member'])
     self.write(self.get_rendered_html(path, template_values), 200)
Beispiel #8
0
 def get(self, email):
     member = Member.get_by_email(email)
     if member and member.image:
         if member.image_coords:
             left_x, top_y, right_x, bottom_y = member.image_coords
             image = images.Image(blob_key=member.image)
             image.crop(left_x=left_x, top_y=top_y, right_x=right_x, bottom_y=bottom_y)
             self.response.headers['Content-Type'] = 'image/png'
             self.response.out.write(image.execute_transforms())
         else:
             image = blobstore.BlobInfo.get(member.image)
             self.send_blob(image)
Beispiel #9
0
 def get(self, email):
     member = Member.get_by_email(email)
     if member and member.image:
         if member.image_coords:
             left_x, top_y, right_x, bottom_y = member.image_coords
             image = images.Image(blob_key=member.image)
             image.crop(left_x=left_x,
                        top_y=top_y,
                        right_x=right_x,
                        bottom_y=bottom_y)
             self.response.headers['Content-Type'] = 'image/png'
             self.response.out.write(image.execute_transforms())
         else:
             image = blobstore.BlobInfo.get(member.image)
             self.send_blob(image)
Beispiel #10
0
 def get(self):
     path = 'member_profile_image.html'
     email = self.session['member']
     member = Member.get_by_email(email)
     image_upload_url = blobstore.create_upload_url('/api/members/' +
                                                    email + '/update')
     template_values = {
         'member': member,
         'image_upload_url': image_upload_url
     }
     template_values[
         'is_member'] = True if 'member' in self.session else False
     #if 'member' in self.session:
     #    template_values['member'] = Member.get_member_json(self.session['member'])
     self.write(self.get_rendered_html(path, template_values), 200)
Beispiel #11
0
 def post(self):
     email = self['email']
     password = self['password'] if self['password'] else None
     redirect_url = str(self['redirect_url']) if self['redirect_url'] else '/community'
     member = Member.get_by_email(email)
     if 'member' in self.session and not email is self.session['member']:
         self.response.out.write('another user already logged in')
         return
     if not email or not member:
         self.response.out.write('user not in db')
         return
     if not check_password_hash(password, member.password):
         self.response.out.write('wrong password')
         return
     self.session['member'] = email
     self.redirect(redirect_url)
Beispiel #12
0
 def post(self):
     email = self['email']
     password = self['password'] if self['password'] else None
     redirect_url = str(
         self['redirect_url']) if self['redirect_url'] else '/community'
     member = Member.get_by_email(email)
     if 'member' in self.session and not email is self.session['member']:
         self.response.out.write('another user already logged in')
         return
     if not email or not member:
         self.response.out.write('user not in db')
         return
     if not check_password_hash(password, member.password):
         self.response.out.write('wrong password')
         return
     self.session['member'] = email
     self.redirect(redirect_url)
Beispiel #13
0
 def get(self):
     template_values = {}
     active_track = self['track_id']
     if active_track:
         template_values['active_track'] = active_track
     template_values[
         'page_title_centered'] = get_page_title_centered_contents()
     template_values['tracks'] = [
         self._make_json(track) for track in Track.all().order('order')
     ]
     template_values[
         'is_member'] = True if 'member' in self.session else False
     template_values['track_donuts'] = {}
     if 'member' in self.session:
         email = self.session['member']
         member = Member.get_by_email(email)
         template_values['member'] = member
         template_values['enrolled_tracks'] = {}
         for track in Tracks.get_tracks():
             template_values['enrolled_tracks'][
                 track.id] = EnrollProgram.is_enrolled_track(
                     email, track.id)
         if member.role == MEMBER_ROLE[MANAGER]:
             template_values['is_manager'] = True
         else:
             for track in Tracks.get_tracks():
                 enrolled_programs_count = float(
                     len(
                         EnrollProgram.get_enrolled_programs(
                             email, track.id)))
                 programs_count = float(Program.all().ancestor(
                     Track.get_by_key_name(track.id)).count())
                 score = round(
                     (enrolled_programs_count / programs_count) * 100, 2)
                 engage_score = round(random() * score, 0)
                 engage_score = int(engage_score) if engage_score > 1 else 1
                 template_values['track_donuts'][track.id] = [
                     Donut(100, 0.875, member.name, [
                         DonutSegment(engage_score, '#1c758a'),
                         DonutSegment(score, '#58c4dd')
                     ], 'transparent', '#ddd')
                 ]
     self.render_template(template_name='tracks.html',
                          template_values=template_values)
Beispiel #14
0
 def post(self):
     result_json = {'redirect_url': str(self['redirect_url']) if self['redirect_url'] else '/community', 'error': False}
     email = self['email']
     password = self['password'] if self['password'] else None
     member = Member.get_by_email(email)
     if 'member' in self.session and not email is self.session['member']:
         del self.session['member']
     if not email or not member:
         result_json['error'] = True
         result_json['errormsg'] = 'Member not found'
     elif not check_password_hash(password, member.password):
         result_json['error'] = True
         result_json['errormsg'] = 'Incorrect password'
     else:
         self.session['member'] = email
         redirect_url = '/tracks'
         result_json['redirect_url'] = redirect_url
     self.write(
         json.dumps(
             result_json
         ),200,'application/json'
     )
Beispiel #15
0
 def post(self):
     result_json = {
         'redirect_url': str(self['redirect_url'])
         if self['redirect_url'] else '/community',
         'error': False
     }
     email = self['email']
     password = self['password'] if self['password'] else None
     member = Member.get_by_email(email)
     if 'member' in self.session and not email is self.session['member']:
         del self.session['member']
     if not email or not member:
         result_json['error'] = True
         result_json['errormsg'] = 'Member not found'
     elif not check_password_hash(password, member.password):
         result_json['error'] = True
         result_json['errormsg'] = 'Incorrect password'
     else:
         self.session['member'] = email
         redirect_url = '/tracks'
         result_json['redirect_url'] = redirect_url
     self.write(json.dumps(result_json), 200, 'application/json')
Beispiel #16
0
 def get(self):
     track = Track.get_by_key_name(self['track_id'])
     program = Program.get_by_key_name(self['program_id'], parent=track)
     modules = ProgramModule.all().ancestor(program).order('name')
     template_values = {
         'program': program,
         'track': track,
         'modules': modules,
         'listing_heading': program.name
     }
     template_values[
         'is_member'] = True if 'member' in self.session else False
     if 'member' in self.session:
         email = self.session['member']
         member = Member.get_by_email(email)
         template_values['member'] = member
         if member.role == MEMBER_ROLE[MANAGER]:
             template_values['is_manager'] = True
         else:
             modules_count = modules.count() * 1.0
             completed_modules = []
             for module in modules:
                 if module.completed:
                     completed_modules.append(module)
             completed_modules_count = len(completed_modules)
             score = (completed_modules_count / modules_count) * 100.0
             engage_score = round(score * random(), 0)
             engage_score = int(engage_score) if engage_score > 1 else 1
             template_values['donuts'] = DonutFactory.get_donuts(
                 100, 0.875, [('Engineer1', [
                     DonutSegment(engage_score, '#1c758a'),
                     DonutSegment(score, '#58c4dd')
                 ], '/assets/img/tracks/mobile_dev.png')], 'transparent',
                 '#ddd')
     self.render_template(template_name='program_listing.html',
                          template_values=template_values)