Skip to content

Instantly share code, notes, and snippets.

@MilanGrubnic70
Last active August 29, 2015 14:02
Show Gist options
  • Save MilanGrubnic70/9a400924114b7f07bfc9 to your computer and use it in GitHub Desktop.
Save MilanGrubnic70/9a400924114b7f07bfc9 to your computer and use it in GitHub Desktop.
mac1
<div class="container">
<h1>User Skills and Levels</h1>
<%# TODO: display the skills and proficiency levels for each user ... %>
<table>
<thead>
<tr>
<th>Name</th>
<th>Skill</th>
<th>Years</th>
<th>Formal?</th>
</tr>
</thead>
<tbody>
<% if session[:user_id] %>
<% @users.each do |user| %>
<% user.proficiencies.each_with_index do |pros, index| %>
<tr>
<% if index == 0 %>
<td><%= pros.user.name %></td>
<% else %>
<td></td>
<% end %>
<td><%= pros.skill.name %><%= " (#{pros.skill.context})" %></td>
<td><%= pros.experience %></td>
<td><%= pros.education %></td>
</tr>
<% end %>
<% end %>
<% end %>
</tbody>
</table>
<a href="/skills/<%=session[:user_id]%>"> Edit Your Skills </a>
</div>
<h3> Add A New Skill </h3>
<form method="post" action="/skill/new">
<label>Skill Name: <input type="text" name="skill"></label>
<label>Experience in Years: <input type="integer" name="experience"></label>
<p> Do you have a formal education? </p>
<label>Yes: <input type="radio" name="education" value="true">
<label>No: <input type="radio" name="education" value="false">
<br>
<input type="submit" value="Submit">
</form>
get '/' do
# render home page
@users = User.all
@pros = Proficiency.all
erb :index
end
#----------- SESSIONS -----------
get '/sessions/new' do
# render sign-in page
@email = nil
erb :sign_in
end
post '/sessions' do
# sign-in
@email = params[:email]
user = User.authenticate(@email, params[:password])
if user
# successfully authenticated; set up session and redirect
session[:user_id] = user.id
redirect '/'
else
# an error occurred, re-render the sign-in form, displaying an error
@error = "Invalid email or password."
erb :sign_in
end
end
delete '/sessions/:id' do
# sign-out -- invoked via AJAX
return 401 unless params[:id].to_i == session[:user_id].to_i
session.clear
200
end
#----------- USERS -----------
get '/users/new' do
# render sign-up page
@user = User.new
erb :sign_up
end
post '/users' do
# sign-up
@user = User.new params[:user]
if @user.save
# successfully created new account; set up the session and redirect
session[:user_id] = @user.id
redirect '/'
else
# an error occurred, re-render the sign-up form, displaying errors
erb :sign_up
end
end
#proficiencies___________________________________________
get '/skills/:user_id' do
@user = User.find(params[:user_id])
@pros = Proficiency.where(user_id: params[:user_id])
erb :proficiencies
end
get '/skill/new' do
@skills = Skill.all
erb :new_skill
end
post '/skill/new' do
Proficiency.create(user_id: session[:user_id],
experience: params[:experience],
education: params[:education])
redirect "/skills/#{session[:user_id]}"
end
# edit
post '/skill/delete' do
UserSkill.find(params[:user_skill_id]).destroy
redirect back
end
post '/skill/edit' do
@skills = Skill.all
@user_skill = UserSkill.find(params[:user_skill_id])
erb :edit_skill
end
post '/skill/update' do
target_skill = UserSkill.find(params[:user_skill_id])
target_skill.update(yrs_exp: params[:yrs_exp],
is_formal: params[:is_formal]
)
redirect "/skills/#{session[:user_id]}"
end
# post '/skill/edit' do
# UserSkill.find(params[:user_skill_id])
# end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment