Skip to content

Commit

Permalink
Issue #201 fixing scenario add problem
Browse files Browse the repository at this point in the history
  • Loading branch information
AbdullRahman ElHusseini committed Apr 14, 2014
1 parent 72073db commit 0b619ef
Show file tree
Hide file tree
Showing 55 changed files with 923 additions and 95 deletions.
1 change: 0 additions & 1 deletion tutor/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

# Ignore the default SQLite database.
/db/*.sqlite3
!/db/development.sqlite3
/db/*.sqlite3-journal

# Ignore all logfiles and tempfiles.
Expand Down
4 changes: 3 additions & 1 deletion tutor/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,14 @@ end
gem 'unicorn'
gem 'foreman'


# Use Capistrano for deployment
# gem 'capistrano', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]

# User authentication
gem 'devise'

# Use composite primary keys in models
gem 'composite_primary_keys', '~> 6.0.1'
11 changes: 11 additions & 0 deletions tutor/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ GEM
tzinfo (~> 0.3.37)
arel (4.0.2)
atomic (1.1.16)
bcrypt (3.1.7)
builder (3.1.4)
coffee-rails (4.0.1)
coffee-script (>= 2.2.0)
Expand All @@ -37,6 +38,12 @@ GEM
coffee-script-source (1.7.0)
composite_primary_keys (6.0.1)
activerecord (>= 4.0.0)
devise (3.2.4)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 3.2.6, < 5)
thread_safe (~> 0.1)
warden (~> 1.2.3)
dotenv (0.10.0)
erubis (2.7.0)
execjs (2.0.2)
Expand All @@ -59,6 +66,7 @@ GEM
mime-types (1.25.1)
minitest (4.7.5)
multi_json (1.9.2)
orm_adapter (0.5.0)
polyglot (0.3.4)
rack (1.5.2)
rack-test (0.6.2)
Expand Down Expand Up @@ -116,13 +124,16 @@ GEM
kgio (~> 2.6)
rack
raindrops (~> 0.7)
warden (1.2.3)
rack (>= 1.0)

PLATFORMS
ruby

DEPENDENCIES
coffee-rails (~> 4.0.0)
composite_primary_keys (~> 6.0.1)
devise
foreman
jbuilder (~> 1.2)
jquery-rails (~> 3.1.0)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
// Place all the styles related to the problems_by_tas controller here.
// Place all the styles related to the problems controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
6 changes: 3 additions & 3 deletions tutor/app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
end
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
class ProblemsByTasController < ApplicationController
class ProblemsController < ApplicationController

# [Add Problem - 4.4]
# Creates a new record to Problem Table
# Parameters:
Expand All @@ -11,10 +12,11 @@ def create
if p.save
redirect_to :action => "edit", :id => p.id
else
flash.keep[:notice] = "Problem are missing paramaters"
flash.keep[:notice] = "Problem is missing paramaters"
redirect_to :back
end
end

# [Add Problem - 4.4]
# Passes the input of the form as paramaters for create action to use it
# Parameters:
Expand All @@ -25,6 +27,7 @@ def create
def permitCreate
params.require(:Problem).permit(:title , :description)
end

# [Edit Problem - 4.5]
# Shows the problem's title and description (Further development is in Sprint 1)
# Parameters:
Expand All @@ -34,6 +37,19 @@ def permitCreate
def edit
@problem = Problem.find_by_id(params[:id])
end

# [Edit Problem - 4.5]
# Checks if the user signed in is a lecturer or a TA
# Parameters:
# none
# Returns: Redirects to add problem page on success, renders error 404 on failure
# Author: Abdullrahman Elhusseny
def new
if lecturer_signed_in? || teaching_assistant_signed_in?
render ('new')
else
render ('public/404')
end
end
end

end
2 changes: 0 additions & 2 deletions tutor/app/helpers/problems_by_tas_helper.rb

This file was deleted.

2 changes: 2 additions & 0 deletions tutor/app/helpers/problems_helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
module ProblemsHelper
end
9 changes: 5 additions & 4 deletions tutor/app/models/lecturer.rb
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
class Lecturer < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable

#Validations

#Relations
has_one :user, as: :sub

has_and_belongs_to_many :courses, join_table: "courses_lecturers"
has_and_belongs_to_many :worked_with, class_name:"TeachingAssistant",join_table: "lecturers_teaching_assistants"
has_and_belongs_to_many :worked_with, class_name:"TeachingAssistant", join_table: "lecturers_teaching_assistants"

has_many :topics

Expand All @@ -16,7 +20,4 @@ class Lecturer < ActiveRecord::Base
#Scoops

#Methods



end
8 changes: 5 additions & 3 deletions tutor/app/models/student.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
class Student < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable

#Validations

Expand All @@ -21,6 +25,4 @@ class Student < ActiveRecord::Base

#Scoops
#Methods


end
end
7 changes: 4 additions & 3 deletions tutor/app/models/teaching_assistant.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
class TeachingAssistant < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable

#Validations

Expand All @@ -8,7 +12,4 @@ class TeachingAssistant < ActiveRecord::Base
has_and_belongs_to_many :courses, join_table: "courses_teaching_assistants"
#Scoops
#Methods



end
12 changes: 12 additions & 0 deletions tutor/app/views/lecturers/confirmations/new.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<h2>Resend confirmation instructions</h2>

<%= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| %>
<%= devise_error_messages! %>

<div><%= f.label :email %><br />
<%= f.email_field :email, autofocus: true %></div>

<div><%= f.submit "Resend confirmation instructions" %></div>
<% end %>

<%= render "lecturers/shared/links" %>
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<p>Welcome <%= @email %>!</p>

<p>You can confirm your account email through the link below:</p>

<p><%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %></p>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<p>Hello <%= @resource.email %>!</p>

<p>Someone has requested a link to change your password. You can do this through the link below.</p>

<p><%= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token) %></p>

<p>If you didn't request this, please ignore this email.</p>
<p>Your password won't change until you access the link above and create a new one.</p>
7 changes: 7 additions & 0 deletions tutor/app/views/lecturers/mailer/unlock_instructions.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<p>Hello <%= @resource.email %>!</p>

<p>Your account has been locked due to an excessive number of unsuccessful sign in attempts.</p>

<p>Click the link below to unlock your account:</p>

<p><%= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @token) %></p>
16 changes: 16 additions & 0 deletions tutor/app/views/lecturers/passwords/edit.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<h2>Change your password</h2>

<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| %>
<%= devise_error_messages! %>
<%= f.hidden_field :reset_password_token %>

<div><%= f.label :password, "New password" %><br />
<%= f.password_field :password, autofocus: true, autocomplete: "off" %></div>

<div><%= f.label :password_confirmation, "Confirm new password" %><br />
<%= f.password_field :password_confirmation, autocomplete: "off" %></div>

<div><%= f.submit "Change my password" %></div>
<% end %>

<%= render "lecturers/shared/links" %>
12 changes: 12 additions & 0 deletions tutor/app/views/lecturers/passwords/new.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<h2>Forgot your password?</h2>

<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %>
<%= devise_error_messages! %>

<div><%= f.label :email %><br />
<%= f.email_field :email, autofocus: true %></div>

<div><%= f.submit "Send me reset password instructions" %></div>
<% end %>

<%= render "lecturers/shared/links" %>
29 changes: 29 additions & 0 deletions tutor/app/views/lecturers/registrations/edit.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<h2>Edit <%= resource_name.to_s.humanize %></h2>

<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
<%= devise_error_messages! %>

<div><%= f.label :email %><br />
<%= f.email_field :email, autofocus: true %></div>

<% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
<div>Currently waiting confirmation for: <%= resource.unconfirmed_email %></div>
<% end %>

<div><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
<%= f.password_field :password, autocomplete: "off" %></div>

<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation, autocomplete: "off" %></div>

<div><%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
<%= f.password_field :current_password, autocomplete: "off" %></div>

<div><%= f.submit "Update" %></div>
<% end %>

<h3>Cancel my account</h3>

<p>Unhappy? <%= button_to "Cancel my account", registration_path(resource_name), data: { confirm: "Are you sure?" }, method: :delete %></p>

<%= link_to "Back", :back %>
18 changes: 18 additions & 0 deletions tutor/app/views/lecturers/registrations/new.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<h2>Sign up</h2>

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>

<div><%= f.label :email %><br />
<%= f.email_field :email, autofocus: true %></div>

<div><%= f.label :password %><br />
<%= f.password_field :password, autocomplete: "off" %></div>

<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation, autocomplete: "off" %></div>

<div><%= f.submit "Sign up" %></div>
<% end %>

<%= render "lecturers/shared/links" %>
17 changes: 17 additions & 0 deletions tutor/app/views/lecturers/sessions/new.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<h2>Sign in</h2>

<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
<div><%= f.label :email %><br />
<%= f.email_field :email, autofocus: true %></div>

<div><%= f.label :password %><br />
<%= f.password_field :password, autocomplete: "off" %></div>

<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end -%>

<div><%= f.submit "Sign in" %></div>
<% end %>

<%= render "lecturers/shared/links" %>
25 changes: 25 additions & 0 deletions tutor/app/views/lecturers/shared/_links.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<%- if controller_name != 'sessions' %>
<%= link_to "Sign in", new_session_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
<%= link_to "Sign up", new_registration_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' %>
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
<%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
<% end -%>
<% end -%>
12 changes: 12 additions & 0 deletions tutor/app/views/lecturers/unlocks/new.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<h2>Resend unlock instructions</h2>

<%= form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f| %>
<%= devise_error_messages! %>

<div><%= f.label :email %><br />
<%= f.email_field :email, autofocus: true %></div>

<div><%= f.submit "Resend unlock instructions" %></div>
<% end %>

<%= render "lecturers/shared/links" %>
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<h1 align ="center">Edit Problem Page</h1>
<h1 align ="center">Add a problem</h1>

<br>
<!--A form that takes the input for the model Problem and calls the action create
Expand All @@ -8,7 +8,6 @@
<%= p.label :title %><br>
<%= p.text_field :title %>
</p>

<p>
<%= p.label :description %><br>
<%= p.text_area :description , :cols => "50", :rows => "10" %>
Expand All @@ -18,7 +17,7 @@
<%= p.submit %>
</p>
<% end %>
<!-- A division for the flash message output to view the action's output -->
<% if flash[:notice] %>
<!-- A division for the flash message output to view the action's output -->
<% if flash[:notice] %>
<div class="notice"><%= flash[:notice] %></div>
<% end %>
Loading

0 comments on commit 0b619ef

Please sign in to comment.