def get(self): path = 'list_member.html' company_id = int(str(self['company_id'])) c = Company.get_by_id(company_id) if not c: self.write('no company') return session = get_current_session() user_id = session['me_email'] access_type = self.get_access_type(c, user_id) q = CompanyMember.all().ancestor(c) users = [{'name': User.get_by_key_name(company_member.user_id).name, 'influence': company_member.influence, 'expertise': company_member.expertise} for company_member in q] donuts = 2 donuts -= 1 donut_size = 80-(5*donuts) score_font_size = 40-(3*donuts) tooltip_font_size = 14-donuts template_values = {'company_id': company_id, 'name': c.name, 'influence': c.influence_avg if c.influence_avg else 0.0, 'expertise': c.expertise_avg if c.expertise_avg else [], 'users': users, 'access_type': access_type, 'admin_id': user_id, 'donut_size': donut_size, 'score_font_size': score_font_size, 'tooltip_font_size': tooltip_font_size} self.write(self.get_rendered_html(path, template_values), 200)
def get_companies_for(self, email): members = CompanyMember.all().filter('user_id =', email) companies = [] for company_member in members.fetch(100): user = User.get_by_key_name(company_member.user_id) companies.append({'value' : company_member.parent().key().id(), 'name' : company_member.parent().name, 'member_name' : user.name, 'member_id' : company_member.key().id()}) return companies
def get(self): path = 'list_member.html' company_id = int(str(self['company_id'])) c = Company.get_by_id(company_id) if not c: self.write('no company') return session = get_current_session() user_id = session['me_email'] access_type = self.get_access_type(c, user_id) q = CompanyMember.all().ancestor(c) users = [{ 'name': User.get_by_key_name(company_member.user_id).name, 'influence': company_member.influence, 'expertise': company_member.expertise } for company_member in q] donuts = 2 donuts -= 1 donut_size = 80 - (5 * donuts) score_font_size = 40 - (3 * donuts) tooltip_font_size = 14 - donuts template_values = { 'company_id': company_id, 'name': c.name, 'influence': c.influence_avg if c.influence_avg else 0.0, 'expertise': c.expertise_avg if c.expertise_avg else [], 'users': users, 'access_type': access_type, 'admin_id': user_id, 'donut_size': donut_size, 'score_font_size': score_font_size, 'tooltip_font_size': tooltip_font_size } self.write(self.get_rendered_html(path, template_values), 200)
def get_access_type(self, company, user_id): if user_id: company_member = CompanyMember.all().ancestor(company).filter( 'user_id', user_id).get() if company_member: return 'admin' if company_member.is_admin else 'member' return 'public'
def isAdminAccess(req_handler): session = get_current_session() admin_id = session['me_email'] company_id = req_handler['company_id'] c = model.company.Company.get_by_id(int(company_id)) from model.company_members import CompanyMember company_member = CompanyMember.all().ancestor(c).filter('user_id', admin_id).get() return True if (company_member and company_member.is_admin) else False
def isAdminAccess(req_handler): session = get_current_session() admin_id = session['me_email'] company_id = req_handler['company_id'] c = model.company.Company.get_by_id(int(company_id)) from model.company_members import CompanyMember company_member = CompanyMember.all().ancestor(c).filter( 'user_id', admin_id).get() return True if (company_member and company_member.is_admin) else False
def get(self): company = Company.get_by_id(int(str(self['company_id']))) if not company: self.write('no company') return members = CompanyMember.all().ancestor(company) ret_val = [] for member in members.fetch(1000): user = User.get_by_key_name(member.user_id) ret_val.append({'name' : user.name, 'id' : member.key().id()}) self.write(json.dumps(ret_val))
def get(self): path = 'startup_details.html' company_id = int(str(self['company_id'])) c = Company.get_by_id(company_id) dev_stats = self.get_dev_stats(c) tl_stats = self.get_tl_stats() if not c: self.write('no company') return aggregated_designs = Design.aggregate_data_for(c) session = get_current_session() q = CompanyMember.all().ancestor(c) design_stats = [('Live Apps', aggregated_designs['live_apps']), ('Shots', aggregated_designs['shots']), ('Likes', aggregated_designs['likes']), ('Followers', aggregated_designs['followers'])] picture_rows = [] picture_row = [] picture_urls = aggregated_designs['shot_urls'] for index, picture_url in enumerate(picture_urls, start=1): picture_row.append(picture_url) if index%3 == 0: picture_rows.append(picture_row) picture_row = [] elif index == len(picture_urls): picture_rows.append(picture_row) scores = [('Design', c.influence_avg if c.influence_avg else 0.0), ('Development', (c.influence_avg + 0.23) if c.influence_avg else 0.0), ('Community', (c.influence_avg + 0.37) if c.influence_avg else 0.0)] template_values = {'company_id': company_id, 'city': cities_map[str(company_id)] if str(company_id) in cities_map else cities_map['default'], 'name': c.name, 'image': c.image, 'hello': c.hello if c.hello else '', 'profile': c.profile if c.profile else '', 'influence': c.influence_avg if c.influence_avg else 0.0, 'expertise': c.expertise_avg if c.expertise_avg else [], 'design_stats': design_stats, 'pictures':picture_rows, 'nav_color':'dark-nav', 'dev_stats':dev_stats, 'tl_stats':tl_stats, 'donuts':DonutFactory.get_donuts(128, 0.8, scores, '#333333', '#139fe1', 'transparent')} self.write(self.get_rendered_html(path, template_values), 200)
def get_access_type(self, company, user_id): if user_id: company_member = CompanyMember.all().ancestor(company).filter('user_id', user_id).get() if company_member: return 'admin' if company_member.is_admin else 'member' return 'public'
def get_size_for(self, c): q = CompanyMember.all().ancestor(c) return q.count()
def get(self): path = 'startup_details.html' company_id = int(str(self['company_id'])) c = Company.get_by_id(company_id) dev_stats = self.get_dev_stats(c) tl_stats = self.get_tl_stats() if not c: self.write('no company') return aggregated_designs = Design.aggregate_data_for(c) session = get_current_session() q = CompanyMember.all().ancestor(c) design_stats = [('Live Apps', aggregated_designs['live_apps']), ('Shots', aggregated_designs['shots']), ('Likes', aggregated_designs['likes']), ('Followers', aggregated_designs['followers'])] picture_rows = [] picture_row = [] picture_urls = aggregated_designs['shot_urls'] for index, picture_url in enumerate(picture_urls, start=1): picture_row.append(picture_url) if index % 3 == 0: picture_rows.append(picture_row) picture_row = [] elif index == len(picture_urls): picture_rows.append(picture_row) scores = [('Design', c.influence_avg if c.influence_avg else 0.0), ('Development', (c.influence_avg + 0.23) if c.influence_avg else 0.0), ('Community', (c.influence_avg + 0.37) if c.influence_avg else 0.0)] template_values = { 'company_id': company_id, 'city': cities_map[str(company_id)] if str(company_id) in cities_map else cities_map['default'], 'name': c.name, 'image': c.image, 'hello': c.hello if c.hello else '', 'profile': c.profile if c.profile else '', 'influence': c.influence_avg if c.influence_avg else 0.0, 'expertise': c.expertise_avg if c.expertise_avg else [], 'design_stats': design_stats, 'pictures': picture_rows, 'nav_color': 'dark-nav', 'dev_stats': dev_stats, 'tl_stats': tl_stats, 'donuts': DonutFactory.get_donuts(128, 0.8, scores, '#333333', '#139fe1', 'transparent') } self.write(self.get_rendered_html(path, template_values), 200)
def fetch_users_for(company): return CompanyMember.all().ancestor(company)