def profile_page(id=None): if id == None: user = current_user else: user = User.find(id) if user == None: abort(404) profile_data = {} if user.role == ROLES.DEVELOPER: profile_data = { 'ongoing_projects': user.get_ongoing_projects(), 'completed_projects': user.get_completed_projects(), 'username': user.username, 'avatar': user.avatar, 'description': user.bio, 'skills': user.get_skills(), 'role' : user.role, 'codeacademy_badges': user.get_code_academy_badges() } elif user.role == ROLES.PROPOSER: profile_data = { 'ongoing_proposals': user.get_ongoing_proposals(), 'pending_proposals': user.get_pending_proposals(), 'completed_proposals': user.get_completed_proposals(), 'name': user.name, 'description': user.bio, 'avatar': user.avatar, 'role' : user.role} else: abort(400) print current_user.role return render_template('profile.html', user=user, **profile_data)
def landing_page(id=None): if id == None: abort(404) user = User.find(id) if user == None: abort(404) landing_page_data = {} if user.role == ROLES.DEVELOPER: landing_page_data = { 'avatar': user.avatar, 'username': user.username, 'role': user.role, 'ongoing_projects': user.get_ongoing_projects(), 'completed_projects': user.get_completed_projects(), 'suggested_projects': get_suggestions() } elif user.role == ROLES.PROPOSER: landing_page_data = { 'avatar': user.avatar, 'name': user.name, 'role': user.role, 'ongoing_proposals': user.get_ongoing_proposals(), 'pending_proposals': user.get_pending_proposals(), 'completed_proposals': user.get_completed_proposals() } else: abort(400) def get_suggestions(): pending_projects = Project.get_all_pending_projects() skills = user.get_skills() suggestions = [] skills_needed = [] for p in pending_projects: skills_needed = p.get_skills() for s in skills: if s in skills_needed: suggestions.append(p) break return suggestions return render_template('landing_page.html', **landing_page_data)
def settings(): user = User.find(current_user.id) settings_form = SettingsForm() #setattr(current_user, key, getattr(settings_form, key)) print dir(settings_form.skills) print settings_form.skills.data settings_form.skills.choices = [(skill.id, skill.name) for skill in Skill.query.all()] if settings_form.validate_on_submit(): if settings_form.name.data: current_user.set_name(settings_form.name.data) if settings_form.email.data: current_user.set_email(settings_form.email.data) if settings_form.bio.data: current_user.set_bio(settings_form.bio.data) if settings_form.code_academy_username.data: current_user.set_code_academy_username( settings_form.code_academy_username.data) current_user.get_code_academy_badges() existing_skill_ids = [skill.id for skill in user.skills] if settings_form.skills.data and settings_form.skills.data != existing_skill_ids: print 'editing skills' for skill_id in settings_form.skills.data: if skill_id not in existing_skill_ids: user.add_skill_id(skill_id) for skill_id in existing_skill_ids: if skill_id not in settings_form.skills.data: user.remove_skill_id(skill_id) flash('Settings changed') settings_form.name.data = user.name settings_form.email.data = user.email settings_form.avatar.data = user.avatar settings_form.bio.data = user.bio settings_form.code_academy_username.data = user.code_academy_username settings_form.skills.data = [skill.id for skill in user.skills] return render_template('settings.html', settings_form=settings_form, skills=Skill.query.all())
def landing_page(id=None): if id == None: abort(404) user = User.find(id) if user == None: abort(404) landing_page_data = {} if user.role == ROLES.DEVELOPER: landing_page_data = { 'avatar': user.avatar, 'username': user.username, 'role' : user.role, 'ongoing_projects': user.get_ongoing_projects(), 'completed_projects': user.get_completed_projects(), 'suggested_projects': get_suggestions() } elif user.role == ROLES.PROPOSER: landing_page_data = { 'avatar': user.avatar, 'name': user.name, 'role' : user.role, 'ongoing_proposals': user.get_ongoing_proposals(), 'pending_proposals': user.get_pending_proposals(), 'completed_proposals': user.get_completed_proposals() } else: abort(400) def get_suggestions(): pending_projects = Project.get_all_pending_projects() skills = user.get_skills() suggestions = [] skills_needed = [] for p in pending_projects: skills_needed = p.get_skills() for s in skills: if s in skills_needed: suggestions.append(p) break return suggestions return render_template('landing_page.html', **landing_page_data)
def settings(): user = User.find(current_user.id) settings_form = SettingsForm() #setattr(current_user, key, getattr(settings_form, key)) print dir(settings_form.skills) print settings_form.skills.data settings_form.skills.choices = [(skill.id, skill.name) for skill in Skill.query.all()] if settings_form.validate_on_submit(): if settings_form.name.data: current_user.set_name(settings_form.name.data) if settings_form.email.data: current_user.set_email(settings_form.email.data) if settings_form.bio.data: current_user.set_bio(settings_form.bio.data) if settings_form.code_academy_username.data: current_user.set_code_academy_username(settings_form.code_academy_username.data) current_user.get_code_academy_badges() existing_skill_ids = [skill.id for skill in user.skills] if settings_form.skills.data and settings_form.skills.data != existing_skill_ids: print 'editing skills' for skill_id in settings_form.skills.data: if skill_id not in existing_skill_ids: user.add_skill_id(skill_id) for skill_id in existing_skill_ids: if skill_id not in settings_form.skills.data: user.remove_skill_id(skill_id) flash('Settings changed') settings_form.name.data = user.name settings_form.email.data = user.email settings_form.avatar.data = user.avatar settings_form.bio.data = user.bio settings_form.code_academy_username.data = user.code_academy_username settings_form.skills.data = [skill.id for skill in user.skills] return render_template('settings.html', settings_form=settings_form, skills=Skill.query.all())
def profile_page(id=None): if id == None: user = current_user else: user = User.find(id) if user == None: abort(404) profile_data = {} if user.role == ROLES.DEVELOPER: profile_data = { 'ongoing_projects': user.get_ongoing_projects(), 'completed_projects': user.get_completed_projects(), 'username': user.username, 'avatar': user.avatar, 'description': user.bio, 'skills': user.get_skills(), 'role': user.role, 'codeacademy_badges': user.get_code_academy_badges() } elif user.role == ROLES.PROPOSER: profile_data = { 'ongoing_proposals': user.get_ongoing_proposals(), 'pending_proposals': user.get_pending_proposals(), 'completed_proposals': user.get_completed_proposals(), 'name': user.name, 'description': user.bio, 'avatar': user.avatar, 'role': user.role } else: abort(400) print current_user.role return render_template('profile.html', user=user, **profile_data)
def load_user(userid): return User.find(userid)