Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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())
Beispiel #4
0
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)
Beispiel #5
0
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())
Beispiel #6
0
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)
Beispiel #7
0
 def load_user(userid):
     return User.find(userid)