def get_managed(value, arg): managed_users = ManagedUser.get_managed_users(value) donut_vals = [] if managed_users and len(managed_users) > 0: for managed_user in managed_users: args = arg.split(" ") if args[0] == "track": if EnrollProgram.is_enrolled_track(managed_user.user.email, args[1]): enrolled_programs_count = float(len(EnrollProgram.get_enrolled_programs(managed_user.user.email, args[1]))) programs_count = float(Program.all().ancestor(Track.get_by_key_name(args[1])).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 donut_vals.append((managed_user.user.name,[DonutSegment(engage_score, '#1c758a'), DonutSegment(score, '#58c4dd')])) elif args[0] == "program": if EnrollProgram.is_enrolled_program(managed_user.user.email, args[1], args[2]): track = Track.get_by_key_name(args[2]) program = Program.get_by_key_name(args[1], parent=track) modules = ProgramModule.all().ancestor(program).order('name') 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 donut_vals.append((managed_user.user.name,[DonutSegment(engage_score, '#1c758a'), DonutSegment(score, '#58c4dd')])) return DonutFactory.get_donuts(100, 0.875, donut_vals, 'transparent', '#ddd')
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))
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)
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)
def post(self): track_id = self['track'] program_id = self['program'] expert_email = self['expert'] program = Program.get_by_key_name(program_id, parent=Track.get_by_key_name(track_id)) program.expert = Expert.get_by_key_name(expert_email) program.put() self.redirect("/tracks/program_listing?program_id=%s&track_id=%s"%(program_id, track_id))
def get_managed(value, arg): managed_users = ManagedUser.get_managed_users(value) donut_vals = [] if managed_users and len(managed_users) > 0: for managed_user in managed_users: args = arg.split(" ") if args[0] == "track": if EnrollProgram.is_enrolled_track(managed_user.user.email, args[1]): enrolled_programs_count = float( len( EnrollProgram.get_enrolled_programs( managed_user.user.email, args[1]))) programs_count = float(Program.all().ancestor( Track.get_by_key_name(args[1])).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 donut_vals.append((managed_user.user.name, [ DonutSegment(engage_score, '#1c758a'), DonutSegment(score, '#58c4dd') ])) elif args[0] == "program": if EnrollProgram.is_enrolled_program(managed_user.user.email, args[1], args[2]): track = Track.get_by_key_name(args[2]) program = Program.get_by_key_name(args[1], parent=track) modules = ProgramModule.all().ancestor(program).order( 'name') 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 donut_vals.append((managed_user.user.name, [ DonutSegment(engage_score, '#1c758a'), DonutSegment(score, '#58c4dd') ])) return DonutFactory.get_donuts(100, 0.875, donut_vals, 'transparent', '#ddd')
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))
def post(self): track_id = self['track'] program_id = self['program'] expert_email = self['expert'] program = Program.get_by_key_name( program_id, parent=Track.get_by_key_name(track_id)) program.expert = Expert.get_by_key_name(expert_email) program.put() self.redirect("/tracks/program_listing?program_id=%s&track_id=%s" % (program_id, track_id))
def setup_modules(): for track in tracks: track_obj = Track.get_by_key_name(track.id) for program in track.programs: start_date = datetime.now() program_obj = Program.get_by_key_name(program.id, parent=track_obj) if program.modules: for module in program.modules: start_date = start_date + timedelta(days=3) ProgramModule(parent=program_obj, name=module.title, units=module.units, start_date=start_date).put()
def get_enrolled_programs(cls, email, track_id): track_programs = Program.all().ancestor( Track.get_by_key_name(track_id)) enrolled_programs = [] for program in track_programs: enrolled_program = EnrollProgram.get_by_key_name(email, parent=program) if enrolled_program: enrolled_programs.append(enrolled_program) return enrolled_programs
def _json(self): return { 'name': self.name, 'bio': self.bio, 'image': self.image, 'location': self.city + ', ' + self.state, 'tracks': ', '.join( [Track.get_by_key_name(track).name for track in self.tracks]) }
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)
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)
def setup_programs(): for track in tracks: track_obj = Track.get_by_key_name(track.id) for program in track.programs: Program(key_name=program.id, parent=track_obj, image=program.snapshot, slots=program.num_spots , name=program.title, description=program.description, start_date=datetime.strptime(program.start_date, "%b %d %Y")).put()
def is_enrolled_program(cls, email, program_id, track_id): return EnrollProgram.get_by_key_name( email, parent=Program.get_by_key_name( program_id, parent=Track.get_by_key_name(track_id)))
def _json(self): return {'name': self.name, 'bio': self.bio, 'image': self.image, 'location': self.city+', '+self.state, 'tracks': ', '.join([Track.get_by_key_name(track).name for track in self.tracks])}