't moet af, orders werken
This commit is contained in:
parent
df24bcd58e
commit
4318f5b56a
73 changed files with 295 additions and 802 deletions
BIN
.DS_Store
vendored
Normal file
BIN
.DS_Store
vendored
Normal file
Binary file not shown.
18
Gemfile
18
Gemfile
|
@ -1,5 +1,6 @@
|
||||||
source 'https://rubygems.org'
|
source 'https://rubygems.org'
|
||||||
ruby '2.1.4'
|
ruby '2.1.5'
|
||||||
|
|
||||||
|
|
||||||
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
||||||
gem 'rails', '4.1.7'
|
gem 'rails', '4.1.7'
|
||||||
|
@ -23,6 +24,9 @@ gem 'jbuilder', '~> 2.0'
|
||||||
# bundle exec rake doc:rails generates the API under doc/api.
|
# bundle exec rake doc:rails generates the API under doc/api.
|
||||||
gem 'sdoc', '~> 0.4.0', group: :doc
|
gem 'sdoc', '~> 0.4.0', group: :doc
|
||||||
|
|
||||||
|
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
||||||
|
gem 'spring', group: :development
|
||||||
|
|
||||||
# Use ActiveModel has_secure_password
|
# Use ActiveModel has_secure_password
|
||||||
# gem 'bcrypt', '~> 3.1.7'
|
# gem 'bcrypt', '~> 3.1.7'
|
||||||
|
|
||||||
|
@ -35,18 +39,16 @@ gem 'sdoc', '~> 0.4.0', group: :doc
|
||||||
# Use debugger
|
# Use debugger
|
||||||
# gem 'debugger', group: [:development, :test]
|
# gem 'debugger', group: [:development, :test]
|
||||||
|
|
||||||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
|
||||||
gem 'tzinfo-data', platforms: [:mingw, :mswin , :x64_mingw]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#bootstrap
|
#bootstrap
|
||||||
gem 'bootstrap-sass', '3.2.0.0'
|
gem 'bootstrap-sass', '3.2.0.0'
|
||||||
|
|
||||||
|
#debug stuff
|
||||||
|
gem 'byebug'
|
||||||
|
|
||||||
#generate data
|
#passwords
|
||||||
gem 'faker', '1.4.2'
|
gem 'bcrypt', '3.1.7'
|
||||||
|
|
||||||
#paginate stuff
|
#paginate stuff
|
||||||
gem 'will_paginate', '3.0.7'
|
gem 'will_paginate', '3.0.7'
|
||||||
gem 'bootstrap-will_paginate', '0.0.10'
|
gem 'bootstrap-will_paginate', '0.0.10'
|
||||||
|
|
28
Gemfile.lock
28
Gemfile.lock
|
@ -28,11 +28,16 @@ GEM
|
||||||
thread_safe (~> 0.1)
|
thread_safe (~> 0.1)
|
||||||
tzinfo (~> 1.1)
|
tzinfo (~> 1.1)
|
||||||
arel (5.0.1.20140414130214)
|
arel (5.0.1.20140414130214)
|
||||||
|
bcrypt (3.1.7)
|
||||||
bootstrap-sass (3.2.0.0)
|
bootstrap-sass (3.2.0.0)
|
||||||
sass (~> 3.2)
|
sass (~> 3.2)
|
||||||
bootstrap-will_paginate (0.0.10)
|
bootstrap-will_paginate (0.0.10)
|
||||||
will_paginate
|
will_paginate
|
||||||
builder (3.2.2)
|
builder (3.2.2)
|
||||||
|
byebug (3.5.1)
|
||||||
|
columnize (~> 0.8)
|
||||||
|
debugger-linecache (~> 1.2)
|
||||||
|
slop (~> 3.6)
|
||||||
coffee-rails (4.0.1)
|
coffee-rails (4.0.1)
|
||||||
coffee-script (>= 2.2.0)
|
coffee-script (>= 2.2.0)
|
||||||
railties (>= 4.0.0, < 5.0)
|
railties (>= 4.0.0, < 5.0)
|
||||||
|
@ -40,13 +45,13 @@ GEM
|
||||||
coffee-script-source
|
coffee-script-source
|
||||||
execjs
|
execjs
|
||||||
coffee-script-source (1.8.0)
|
coffee-script-source (1.8.0)
|
||||||
|
columnize (0.8.9)
|
||||||
|
debugger-linecache (1.2.0)
|
||||||
erubis (2.7.0)
|
erubis (2.7.0)
|
||||||
execjs (2.2.2)
|
execjs (2.2.2)
|
||||||
faker (1.4.2)
|
|
||||||
i18n (~> 0.5)
|
|
||||||
hike (1.2.3)
|
hike (1.2.3)
|
||||||
i18n (0.6.11)
|
i18n (0.6.11)
|
||||||
jbuilder (2.2.4)
|
jbuilder (2.2.5)
|
||||||
activesupport (>= 3.0.0, < 5)
|
activesupport (>= 3.0.0, < 5)
|
||||||
multi_json (~> 1.2)
|
multi_json (~> 1.2)
|
||||||
jquery-rails (3.1.2)
|
jquery-rails (3.1.2)
|
||||||
|
@ -56,7 +61,7 @@ GEM
|
||||||
mail (2.6.3)
|
mail (2.6.3)
|
||||||
mime-types (>= 1.16, < 3)
|
mime-types (>= 1.16, < 3)
|
||||||
mime-types (2.4.3)
|
mime-types (2.4.3)
|
||||||
minitest (5.4.2)
|
minitest (5.4.3)
|
||||||
multi_json (1.10.1)
|
multi_json (1.10.1)
|
||||||
rack (1.5.2)
|
rack (1.5.2)
|
||||||
rack-test (0.6.2)
|
rack-test (0.6.2)
|
||||||
|
@ -88,6 +93,8 @@ GEM
|
||||||
sdoc (0.4.1)
|
sdoc (0.4.1)
|
||||||
json (~> 1.7, >= 1.7.7)
|
json (~> 1.7, >= 1.7.7)
|
||||||
rdoc (~> 4.0)
|
rdoc (~> 4.0)
|
||||||
|
slop (3.6.0)
|
||||||
|
spring (1.2.0)
|
||||||
sprockets (2.11.3)
|
sprockets (2.11.3)
|
||||||
hike (~> 1.2)
|
hike (~> 1.2)
|
||||||
multi_json (~> 1.0)
|
multi_json (~> 1.0)
|
||||||
|
@ -97,36 +104,35 @@ GEM
|
||||||
actionpack (>= 3.0)
|
actionpack (>= 3.0)
|
||||||
activesupport (>= 3.0)
|
activesupport (>= 3.0)
|
||||||
sprockets (>= 2.8, < 4.0)
|
sprockets (>= 2.8, < 4.0)
|
||||||
sqlite3 (1.3.10-x64-mingw32)
|
sqlite3 (1.3.10)
|
||||||
thor (0.19.1)
|
thor (0.19.1)
|
||||||
thread_safe (0.3.4)
|
thread_safe (0.3.4)
|
||||||
tilt (1.4.1)
|
tilt (1.4.1)
|
||||||
turbolinks (2.5.1)
|
turbolinks (2.5.2)
|
||||||
coffee-rails
|
coffee-rails
|
||||||
tzinfo (1.2.2)
|
tzinfo (1.2.2)
|
||||||
thread_safe (~> 0.1)
|
thread_safe (~> 0.1)
|
||||||
tzinfo-data (1.2014.9)
|
|
||||||
tzinfo (>= 1.0.0)
|
|
||||||
uglifier (2.5.3)
|
uglifier (2.5.3)
|
||||||
execjs (>= 0.3.0)
|
execjs (>= 0.3.0)
|
||||||
json (>= 1.8.0)
|
json (>= 1.8.0)
|
||||||
will_paginate (3.0.7)
|
will_paginate (3.0.7)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
x64-mingw32
|
ruby
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
|
bcrypt (= 3.1.7)
|
||||||
bootstrap-sass (= 3.2.0.0)
|
bootstrap-sass (= 3.2.0.0)
|
||||||
bootstrap-will_paginate (= 0.0.10)
|
bootstrap-will_paginate (= 0.0.10)
|
||||||
|
byebug
|
||||||
coffee-rails (~> 4.0.0)
|
coffee-rails (~> 4.0.0)
|
||||||
faker (= 1.4.2)
|
|
||||||
jbuilder (~> 2.0)
|
jbuilder (~> 2.0)
|
||||||
jquery-rails
|
jquery-rails
|
||||||
rails (= 4.1.7)
|
rails (= 4.1.7)
|
||||||
sass-rails (~> 4.0.3)
|
sass-rails (~> 4.0.3)
|
||||||
sdoc (~> 0.4.0)
|
sdoc (~> 0.4.0)
|
||||||
|
spring
|
||||||
sqlite3
|
sqlite3
|
||||||
turbolinks
|
turbolinks
|
||||||
tzinfo-data
|
|
||||||
uglifier (>= 1.3.0)
|
uglifier (>= 1.3.0)
|
||||||
will_paginate (= 3.0.7)
|
will_paginate (= 3.0.7)
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
# Place all the behaviors and hooks related to the matching controller here.
|
|
||||||
# All this logic will automatically be available in application.js.
|
|
||||||
# You can use CoffeeScript in this file: http://coffeescript.org/
|
|
|
@ -1,3 +0,0 @@
|
||||||
# Place all the behaviors and hooks related to the matching controller here.
|
|
||||||
# All this logic will automatically be available in application.js.
|
|
||||||
# You can use CoffeeScript in this file: http://coffeescript.org/
|
|
|
@ -1,3 +0,0 @@
|
||||||
# Place all the behaviors and hooks related to the matching controller here.
|
|
||||||
# All this logic will automatically be available in application.js.
|
|
||||||
# You can use CoffeeScript in this file: http://coffeescript.org/
|
|
|
@ -1,74 +1,3 @@
|
||||||
@import "bootstrap-sprockets";
|
|
||||||
@import "bootstrap";
|
|
||||||
|
|
||||||
body {
|
|
||||||
padding-top: 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* header */
|
|
||||||
|
|
||||||
#logo {
|
|
||||||
float: left;
|
|
||||||
margin-right: 10px;
|
|
||||||
font-size: 1.7em;
|
|
||||||
color: #fff;
|
|
||||||
text-transform: uppercase;
|
|
||||||
letter-spacing: -1px;
|
|
||||||
padding-top: 9px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#logo:hover {
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* footer */
|
|
||||||
|
|
||||||
footer {
|
|
||||||
margin-top: 45px;
|
|
||||||
padding-top: 5px;
|
|
||||||
border-top: 1px solid #eaeaea;
|
|
||||||
color: #777;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer a {
|
|
||||||
color: #555;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer a:hover {
|
|
||||||
color: #222;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer small {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer ul {
|
|
||||||
float: right;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer ul li {
|
|
||||||
float: left;
|
|
||||||
margin-left: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
||||||
* listed below.
|
* listed below.
|
||||||
|
@ -84,3 +13,43 @@ footer ul li {
|
||||||
*= require_tree .
|
*= require_tree .
|
||||||
*= require_self
|
*= require_self
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@import "bootstrap-sprockets";
|
||||||
|
@import "bootstrap";
|
||||||
|
|
||||||
|
/* mixins, variables, etc. */
|
||||||
|
|
||||||
|
$gray-medium-light: #eaeaea;
|
||||||
|
|
||||||
|
@mixin box_sizing {
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
/* miscellaneous */
|
||||||
|
|
||||||
|
.debug_dump {
|
||||||
|
clear: both;
|
||||||
|
float: left;
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 45px;
|
||||||
|
@include box_sizing;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* forms */
|
||||||
|
|
||||||
|
input, textarea, select, .uneditable-input {
|
||||||
|
border: 1px solid #bbb;
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
@include box_sizing;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
height: auto !important;
|
||||||
|
}
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
// Place all the styles related to the Products controller here.
|
|
||||||
// They will automatically be included in application.css.
|
|
||||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
|
|
@ -1,3 +0,0 @@
|
||||||
// Place all the styles related to the Sessions controller here.
|
|
||||||
// They will automatically be included in application.css.
|
|
||||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
|
|
@ -1,3 +0,0 @@
|
||||||
// Place all the styles related to the StaticPages controller here.
|
|
||||||
// They will automatically be included in application.css.
|
|
||||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
|
|
@ -1,3 +1,32 @@
|
||||||
// Place all the styles related to the Users controller here.
|
// Place all the styles related to the Users controller here.
|
||||||
// They will automatically be included in application.css.
|
// They will automatically be included in application.css.
|
||||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
// You can use Sass (SCSS) here: http://sass-lang.com/
|
||||||
|
|
||||||
|
|
||||||
|
/* sidebar */
|
||||||
|
|
||||||
|
aside {
|
||||||
|
section.user_info {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
section {
|
||||||
|
padding: 10px 0;
|
||||||
|
margin-top: 20px;
|
||||||
|
&:first-child {
|
||||||
|
border: 0;
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: 1.4em;
|
||||||
|
text-align: left;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -2,18 +2,6 @@ class ApplicationController < ActionController::Base
|
||||||
# Prevent CSRF attacks by raising an exception.
|
# Prevent CSRF attacks by raising an exception.
|
||||||
# For APIs, you may want to use :null_session instead.
|
# For APIs, you may want to use :null_session instead.
|
||||||
protect_from_forgery with: :exception
|
protect_from_forgery with: :exception
|
||||||
include SessionsHelper
|
|
||||||
include ProductsHelper
|
|
||||||
include OrdersHelper
|
|
||||||
|
|
||||||
private
|
include OrdersHelper
|
||||||
|
|
||||||
# Confirms a logged-in user.
|
|
||||||
def logged_in_user
|
|
||||||
unless logged_in?
|
|
||||||
store_location
|
|
||||||
#flash[:danger] = "Please log in."
|
|
||||||
redirect_to login_url
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,29 +1,37 @@
|
||||||
class OrdersController < ApplicationController
|
class OrdersController < ApplicationController
|
||||||
before_action :logged_in_user, only: [ :destroy]
|
|
||||||
|
|
||||||
def new
|
def new
|
||||||
|
@users = User.all
|
||||||
|
end
|
||||||
|
|
||||||
|
def create_session
|
||||||
|
user = User.find(params[:user_id])
|
||||||
|
if user
|
||||||
|
ordering(user)
|
||||||
|
redirect_to order_path
|
||||||
|
else
|
||||||
|
redirect_to overview_path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def order
|
||||||
|
@order = current_ordering_user.orders.build
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def create
|
||||||
|
@order = current_ordering_user.orders.build(order_params)
|
||||||
|
if @order.save
|
||||||
|
flash[:success] = "order created!"
|
||||||
|
end_order
|
||||||
|
redirect_to overview_path
|
||||||
|
else
|
||||||
|
redirect_to overview_path
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
end
|
end_order
|
||||||
|
redirect_to overview_path
|
||||||
|
|
||||||
def show
|
|
||||||
@user = User.find(params[:id])
|
|
||||||
@order = @user.orders.build
|
|
||||||
end
|
|
||||||
|
|
||||||
def create
|
|
||||||
user = User.find( 3) #MUST BE FIXED
|
|
||||||
@order = user.orders.build(order_params)
|
|
||||||
if @order.save
|
|
||||||
#@flash[:success] = "Micropost created!"
|
|
||||||
redirect_to root_url
|
|
||||||
else
|
|
||||||
@logs = []
|
|
||||||
render 'static_pages/home'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
@ -31,6 +39,4 @@ class OrdersController < ApplicationController
|
||||||
def order_params
|
def order_params
|
||||||
params.require(:order).permit(:products)
|
params.require(:order).permit(:products)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
class ProductsController < ApplicationController
|
|
||||||
def new
|
|
||||||
@product = Product.new
|
|
||||||
end
|
|
||||||
|
|
||||||
def show
|
|
||||||
@product = Product.find(params[:id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def create
|
|
||||||
@product = Product.new(product_params) # Not the final implementation!
|
|
||||||
if @product.save
|
|
||||||
redirect_to @product
|
|
||||||
else
|
|
||||||
render 'new'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def edit
|
|
||||||
@product = Product.find(params[:id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def update
|
|
||||||
@product = Product.find(params[:id])
|
|
||||||
if @product.update_attributes(product_params)
|
|
||||||
redirect_to @product
|
|
||||||
else
|
|
||||||
render 'edit'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def product_params
|
|
||||||
params.require(:product).permit(:name, :sale_price, :purchase_price,
|
|
||||||
:image_path)
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,21 +0,0 @@
|
||||||
class SessionsController < ApplicationController
|
|
||||||
def new
|
|
||||||
end
|
|
||||||
|
|
||||||
def create
|
|
||||||
user = User.find_by(name: params[:session][:name])
|
|
||||||
if user
|
|
||||||
log_in user
|
|
||||||
redirect_back_or user
|
|
||||||
else
|
|
||||||
#flash.now[:danger] = 'Invalid username'
|
|
||||||
render 'new'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def destroy
|
|
||||||
log_out
|
|
||||||
redirect_to root_url
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
|
@ -1,19 +0,0 @@
|
||||||
class StaticPagesController < ApplicationController
|
|
||||||
def home
|
|
||||||
if logged_in?
|
|
||||||
@order = current_user.orders.build if logged_in?
|
|
||||||
@logs = current_user.feed.paginate(page: params[:page])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def overview
|
|
||||||
@users = User.all
|
|
||||||
end
|
|
||||||
|
|
||||||
def order
|
|
||||||
end
|
|
||||||
|
|
||||||
def help
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
|
@ -1,68 +1,30 @@
|
||||||
class UsersController < ApplicationController
|
class UsersController < ApplicationController
|
||||||
before_action :logged_in_user, only: [ :index, :edit, :update, :show]
|
|
||||||
before_action :correct_user, only: [:edit, :update]
|
|
||||||
|
|
||||||
def index
|
|
||||||
@users = User.paginate(page: params[:page])
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@user = User.new
|
@user = User.new
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@user = User.find(params[:id])
|
@user = User.find(params[:id])
|
||||||
@orders = @user.orders.paginate(page: params[:page])
|
@orders = @user.orders.paginate(page: params[:page])
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@user = User.new(user_params)
|
@user = User.new(user_params)
|
||||||
if @user.save
|
if @user.save
|
||||||
log_in @user
|
|
||||||
flash[:success] = "Welcome to the Sample App!"
|
|
||||||
redirect_to @user
|
|
||||||
else
|
|
||||||
render 'new'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def order
|
|
||||||
@user = User.find(params[:id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def edit
|
|
||||||
@user = User.find(params[:id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def update
|
|
||||||
@user = User.find(params[:id])
|
|
||||||
if @user.update_attributes(user_params)
|
|
||||||
redirect_to @user
|
redirect_to @user
|
||||||
else
|
else
|
||||||
render 'edit'
|
render 'new'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def index
|
||||||
|
@users = User.all
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def user_params
|
def user_params
|
||||||
params.require(:user).permit(:name, :marks)
|
params.require(:user).permit(:name, :last_name, :password,
|
||||||
end
|
:password_confirmation, :nickname)
|
||||||
|
end
|
||||||
# Confirms a logged-in user.
|
|
||||||
def logged_in_user
|
|
||||||
unless logged_in?
|
|
||||||
store_location
|
|
||||||
flash[:danger] = "Please log in."
|
|
||||||
redirect_to login_url
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Confirms the correct user.
|
|
||||||
def correct_user
|
|
||||||
@user = User.find(params[:id])
|
|
||||||
redirect_to(root_url) unless current_user?(@user)
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,10 +1,20 @@
|
||||||
module OrdersHelper
|
module OrdersHelper
|
||||||
|
|
||||||
def select_user(user)
|
def ordering(user)
|
||||||
selected_user = user.id
|
session[:order_user_id] = user.id
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def current_ordering_user
|
||||||
|
@current_ordering_user ||= User.find_by(id: session[:order_user_id])
|
||||||
|
end
|
||||||
|
|
||||||
|
def end_order
|
||||||
|
session.delete(:order_user_id)
|
||||||
|
@current_ordering_user = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def ordering?
|
||||||
|
!current_ordering_user.nil?
|
||||||
|
end
|
||||||
|
|
||||||
def selected_user
|
|
||||||
return selected_user
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
module ProductsHelper
|
|
||||||
|
|
||||||
def current_product?(product)
|
|
||||||
product == current_product
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,36 +0,0 @@
|
||||||
module SessionsHelper
|
|
||||||
|
|
||||||
def log_in(user)
|
|
||||||
session[:user_id] = user.id
|
|
||||||
end
|
|
||||||
|
|
||||||
def current_user
|
|
||||||
@current_user ||= User.find_by(id: session[:user_id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def logged_in?
|
|
||||||
!current_user.nil?
|
|
||||||
end
|
|
||||||
|
|
||||||
def log_out
|
|
||||||
session.delete(:user_id)
|
|
||||||
@current_user = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
# Redirects to stored location (or to the default).
|
|
||||||
def redirect_back_or(default)
|
|
||||||
redirect_to(session[:forwarding_url] || default)
|
|
||||||
session.delete(:forwarding_url)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Stores the URL trying to be accessed.
|
|
||||||
def store_location
|
|
||||||
session[:forwarding_url] = request.url if request.get?
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
def current_user?(user)
|
|
||||||
user == current_user
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
|
@ -1,2 +0,0 @@
|
||||||
module StaticPagesHelper
|
|
||||||
end
|
|
|
@ -1,6 +1,4 @@
|
||||||
class Order < ActiveRecord::Base
|
class Order < ActiveRecord::Base
|
||||||
belongs_to :user
|
belongs_to :users
|
||||||
|
|
||||||
default_scope -> { order('created_at DESC') }
|
default_scope -> { order('created_at DESC') }
|
||||||
validates :products, presence: true, length: { maximum: 140 }
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
class Product < ActiveRecord::Base
|
|
||||||
after_initialize :init
|
|
||||||
|
|
||||||
|
|
||||||
def init
|
|
||||||
self.name ||= "FOOBAR"
|
|
||||||
self.sale_price ||= 0
|
|
||||||
self.purchase_price ||= 0
|
|
||||||
self.image_path ||= "/" #paperclip gem
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,18 +1,13 @@
|
||||||
class User < ActiveRecord::Base
|
class User < ActiveRecord::Base
|
||||||
has_many :orders, dependent: :destroy
|
has_many :orders
|
||||||
after_initialize :init
|
before_save :init
|
||||||
|
|
||||||
validates :name, presence: true, length: { maximum: 50 },
|
|
||||||
uniqueness: true
|
|
||||||
|
|
||||||
def init
|
|
||||||
self.marks ||= 0
|
def init
|
||||||
self.role ||= "user"
|
self.balance ||= 0
|
||||||
end
|
end
|
||||||
|
|
||||||
def feed
|
|
||||||
# This is preliminary. See "Following users" for the full implementation.
|
|
||||||
Order.where("user_id = ?", id)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
has_secure_password
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
<footer class="footer">
|
|
||||||
<small>
|
|
||||||
Tab, <a href="#">The barman</a>
|
|
||||||
by <a href="#">Basho</a>
|
|
||||||
</small>
|
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
<li><%= link_to "About", '#' %></li>
|
|
||||||
<li><%= link_to "Contact", '#' %></li>
|
|
||||||
<li><a href="http://zeus.ugent.be/">News</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
|
@ -1,33 +0,0 @@
|
||||||
<header class="navbar navbar-fixed-top navbar-inverse">
|
|
||||||
<div class="container">
|
|
||||||
<%= link_to 'Taþ' , root_path , id: "logo" %>
|
|
||||||
<nav>
|
|
||||||
<ul class="nav navbar-nav pull-right">
|
|
||||||
<li><%= link_to "Home", root_path %></li>
|
|
||||||
<li><%= link_to "Overview", overview_path %></li>
|
|
||||||
<li><%= link_to "Help", help_path %></li>
|
|
||||||
|
|
||||||
<!-- account -->
|
|
||||||
<% if logged_in? %>
|
|
||||||
<li><%= link_to "Users", users_path %></li>
|
|
||||||
<li class="dropdown">
|
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
|
||||||
Account <b class="caret"></b>
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li><%= link_to "Profile", current_user %></li>
|
|
||||||
<li><%= link_to "Settings", edit_user_path(current_user) %></li>
|
|
||||||
<li class="divider"></li>
|
|
||||||
<li>
|
|
||||||
<%= link_to "Log out", logout_path, method: "delete" %>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<% else %>
|
|
||||||
<li><%= link_to "Log in", login_path %></li>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
|
@ -1,18 +1,16 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>TaÞ</title>
|
<title>Tab002</title>
|
||||||
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
|
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
|
||||||
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
|
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
|
||||||
<%= csrf_meta_tags %>
|
<%= csrf_meta_tags %>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<%= render 'layouts/header' %>
|
<%= yield %>
|
||||||
<div class="container">
|
|
||||||
<%= yield %>
|
<%= debug(params) if Rails.env.development? %>
|
||||||
<%= render 'layouts/footer' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
<li id="order-<%= order.id %>">
|
<li id="order-<%= order.id %>">
|
||||||
|
|
||||||
<span class="user"><%= link_to order.user.name, order.user %></span>
|
|
||||||
<span class="products"><%= order.products %></span>
|
<span class="products"><%= order.products %></span>
|
||||||
<span class="timestamp">
|
<span class="timestamp">
|
||||||
Posted <%= time_ago_in_words(order.created_at) %> ago.
|
Posted <%= time_ago_in_words(order.created_at) %> ago.
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -1,3 +1,17 @@
|
||||||
<h1>Orders#new</h1>
|
|
||||||
<p>Find me in app/views/orders/new.html.erb</p>
|
<ul class="users">
|
||||||
<p>In opbouw!</p>
|
<% @users.each do |user| %>
|
||||||
|
<li>
|
||||||
|
|
||||||
|
<%= form_for overview_path do |f| %>
|
||||||
|
<%= hidden_field_tag 'user_id', user.id %>
|
||||||
|
|
||||||
|
<%= f.submit user.name , class: "btn btn-primary" %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<%= form_for(@order) do |f| %>
|
<%= current_ordering_user.name %>
|
||||||
<%= render 'shared/error_messages', object: f.object %>
|
<%= form_for @order do |f| %>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<%= f.text_area :products, placeholder: "Compose new order..." %>
|
<%= f.text_area :products, placeholder: "Compose new order..." %>
|
||||||
</div>
|
</div>
|
||||||
<%= f.submit "Order", class: "btn btn-primary" %>
|
<%= f.submit "Order", class: "btn btn-primary" %>
|
||||||
<% end %>
|
<% end %>
|
|
@ -1,3 +0,0 @@
|
||||||
<%= @user.name %>
|
|
||||||
|
|
||||||
<%= render 'shared/order_form' %>
|
|
|
@ -1,2 +0,0 @@
|
||||||
<h1>Products#create</h1>
|
|
||||||
<p>Find me in app/views/products/create.html.erb</p>
|
|
|
@ -1,26 +0,0 @@
|
||||||
<h1>Product edit</h1>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
<%= form_for(@product) do |f| %>
|
|
||||||
<%= render 'shared/error_messages', object: f.object %>
|
|
||||||
|
|
||||||
<%= f.label :name %>
|
|
||||||
<%= f.text_field :name %>
|
|
||||||
</br>
|
|
||||||
<%= f.label :purchase_price %>
|
|
||||||
<%= f.number_field :purchase_price %>
|
|
||||||
</br>
|
|
||||||
<%= f.label :sale_price %>
|
|
||||||
<%= f.number_field :sale_price %>
|
|
||||||
</br>
|
|
||||||
<%= f.label :image_path %>
|
|
||||||
<%= f.text_field :image_path %>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</br>
|
|
||||||
<%= f.submit "Update product", class: "btn btn-primary" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,25 +0,0 @@
|
||||||
<h1>Product creation</h1>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
<%= form_for(@product) do |f| %>
|
|
||||||
<%= render 'shared/error_messages', object: f.object %>
|
|
||||||
<%= f.label :name %>
|
|
||||||
<%= f.text_field :name %>
|
|
||||||
</br>
|
|
||||||
<%= f.label :purchase_price %>
|
|
||||||
<%= f.number_field :purchase_price %>
|
|
||||||
</br>
|
|
||||||
<%= f.label :sale_price %>
|
|
||||||
<%= f.number_field :sale_price %>
|
|
||||||
</br>
|
|
||||||
<%= f.label :image_path %>
|
|
||||||
<%= f.text_field :image_path %>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</br>
|
|
||||||
<%= f.submit "Create product", class: "btn btn-primary" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,8 +0,0 @@
|
||||||
<h1>Products#show</h1>
|
|
||||||
<p>Find me in app/views/products/show.html.erb</p>
|
|
||||||
name: <%= @product.name %></br>
|
|
||||||
verkoop prijs: <%= @product.sale_price %> EUR cent</br>
|
|
||||||
aankoop prijs: <%= @product.purchase_price %> EUR cent</br>
|
|
||||||
|
|
||||||
|
|
||||||
<%= link_to "Edit", edit_product_path(@product), class: "btn btn-lg btn-primary" %>
|
|
|
@ -1,19 +0,0 @@
|
||||||
<h1>Sessions#new</h1>
|
|
||||||
<p>Find me in app/views/sessions/new.html.erb</p>
|
|
||||||
<h1>Log in</h1>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
<%= form_for(:session, url: login_path) do |f| %>
|
|
||||||
|
|
||||||
<%= f.label :name %>
|
|
||||||
<%= f.text_field :name, class: 'form-control' %>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<%= f.submit "Log in", class: "btn btn-primary" %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<p>New user? <%= link_to "Sign up now!", signup_path %></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,12 +0,0 @@
|
||||||
<% if object.errors.any? %>
|
|
||||||
<div id="error_explanation">
|
|
||||||
<div class="alert alert-danger">
|
|
||||||
The form contains <%= pluralize(object.errors.count, "error") %>.
|
|
||||||
</div>
|
|
||||||
<ul>
|
|
||||||
<% object.errors.full_messages.each do |msg| %>
|
|
||||||
<li><%= msg %></li>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
|
@ -1,6 +0,0 @@
|
||||||
<% if @logs.any? %>
|
|
||||||
<ol class="orders">
|
|
||||||
<%= render @logs %>
|
|
||||||
</ol>
|
|
||||||
<%= will_paginate @logs %>
|
|
||||||
<% end %>
|
|
|
@ -1,3 +0,0 @@
|
||||||
<h1><%= current_user.name %></h1>
|
|
||||||
<span><%= link_to "view my profile", current_user %></span>
|
|
||||||
<span><%= pluralize(current_user.orders.count, "order") %></span>
|
|
|
@ -1,14 +0,0 @@
|
||||||
<% @users.each do |user| %>
|
|
||||||
|
|
||||||
<% link = 'orders/' + user.id.to_s %>
|
|
||||||
<tr class="clickableRow" href= <%= link %> >
|
|
||||||
<td><%= user.id %></td>
|
|
||||||
<td><%= user.name %></td>
|
|
||||||
<td><% user.marks.times do %>
|
|
||||||
<%= "|" %>
|
|
||||||
<% end %>
|
|
||||||
</td>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<%end%>
|
|
|
@ -1 +0,0 @@
|
||||||
<h1> HELP MIJ!!!! O.O </h1>
|
|
|
@ -1,24 +0,0 @@
|
||||||
<h1>StaticPages#home</h1>
|
|
||||||
<p>Find me in app/views/static_pages/home.html.erb</p>
|
|
||||||
|
|
||||||
<% if logged_in? %>
|
|
||||||
<div class="row">
|
|
||||||
<aside class="col-md-4">
|
|
||||||
<section class="user_info">
|
|
||||||
<%= render 'shared/user_info' %>
|
|
||||||
</section>
|
|
||||||
<section class="order_form">
|
|
||||||
<%= render 'shared/order_form' %>
|
|
||||||
</section>
|
|
||||||
</aside>
|
|
||||||
<div class="col-md-8">
|
|
||||||
<h3>User logs</h3>
|
|
||||||
<%= render 'shared/feed' %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% else %>
|
|
||||||
|
|
||||||
<%= link_to "Sign up now!", signup_path , class: "btn btn-lg btn-primary" %>
|
|
||||||
|
|
||||||
|
|
||||||
<% end %>
|
|
|
@ -1,26 +0,0 @@
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<table class="table table-striped">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>#</th>
|
|
||||||
<th>Username</th>
|
|
||||||
<th>Marks</th>
|
|
||||||
<th> </th>
|
|
||||||
<th></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<%= render "static_pages/user" %>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
jQuery(document).ready(function($) {
|
|
||||||
$(".clickableRow").click(function() {
|
|
||||||
window.document.location = $(this).attr("href");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
|
@ -1,23 +0,0 @@
|
||||||
<% provide(:title, "Edit user") %>
|
|
||||||
<h1>Update your profile</h1>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
<%= form_for(@user) do |f| %>
|
|
||||||
<%= render 'shared/error_messages', object: f.object %>
|
|
||||||
|
|
||||||
|
|
||||||
<%= f.label :name %>
|
|
||||||
<%= f.text_field :name, class: 'form-control' %>
|
|
||||||
|
|
||||||
<%= f.label :marks %>
|
|
||||||
<%= f.number_field :marks, class: 'form-control' %>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<%= f.submit "Save changes", class: "btn btn-primary" %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,7 +1,5 @@
|
||||||
<h1>All users</h1>
|
<h1>All users</h1>
|
||||||
|
|
||||||
<%= will_paginate %>
|
|
||||||
|
|
||||||
<ul class="users">
|
<ul class="users">
|
||||||
<% @users.each do |user| %>
|
<% @users.each do |user| %>
|
||||||
<li>
|
<li>
|
||||||
|
@ -9,5 +7,3 @@
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<%= will_paginate %>
|
|
|
@ -3,16 +3,22 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 col-md-offset-3">
|
<div class="col-md-6 col-md-offset-3">
|
||||||
<%= form_for(@user) do |f| %>
|
<%= form_for(@user) do |f| %>
|
||||||
<%= render 'shared/error_messages', object: f.object %>
|
<%= f.label :nickname %>
|
||||||
|
<%= f.text_field :nickname %>
|
||||||
|
|
||||||
<%= f.label :name %>
|
<%= f.label :name %>
|
||||||
<%= f.text_field :name %>
|
<%= f.text_field :name %>
|
||||||
</br>
|
|
||||||
<%= f.label :marks %>
|
|
||||||
<%= f.number_field :marks %> (tijdelijk)
|
|
||||||
|
|
||||||
|
<%= f.label :last_name %>
|
||||||
</br>
|
<%= f.text_field :last_name %>
|
||||||
|
|
||||||
|
<%= f.label :password %>
|
||||||
|
<%= f.password_field :password %>
|
||||||
|
|
||||||
|
<%= f.label :password_confirmation, "Confirmation" %>
|
||||||
|
<%= f.password_field :password_confirmation %>
|
||||||
|
|
||||||
<%= f.submit "Create my account", class: "btn btn-primary" %>
|
<%= f.submit "Create my account", class: "btn btn-primary" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
0
app/views/users/order.html.erb
Normal file
0
app/views/users/order.html.erb
Normal file
|
@ -1,13 +1,22 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<aside class="col-md-4">
|
<aside class="col-md-4">
|
||||||
<section class="user_info">
|
<section class="user_info">
|
||||||
<h1>
|
<h1>Name: <%= @user.name %></h1>
|
||||||
|
<h1>Last name: <%= @user.last_name %></h1>
|
||||||
<%= @user.name %>
|
<h1>Nickname: <%= @user.nickname %></h1>
|
||||||
<%= @user.marks %>
|
<h1>Balance: <%= @user.balance %></h1>
|
||||||
</h1>
|
<h1>User id: <%= @user.id %></h1>
|
||||||
|
<% if ordering? %>
|
||||||
|
<h1>Ordering!</h1>
|
||||||
|
<% else %>
|
||||||
|
<h1>Not ordering!</h1>
|
||||||
|
<% end %>
|
||||||
|
<%= link_to "End order", end_order_path, method: "delete" %>
|
||||||
|
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<% if @user.orders.any? %>
|
<% if @user.orders.any? %>
|
||||||
<h3>Orders (<%= @user.orders.count %>)</h3>
|
<h3>Orders (<%= @user.orders.count %>)</h3>
|
||||||
|
@ -17,4 +26,4 @@
|
||||||
<%= will_paginate @orders %>
|
<%= will_paginate @orders %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
2
bin/bundle
Normal file → Executable file
2
bin/bundle
Normal file → Executable file
|
@ -1,3 +1,3 @@
|
||||||
#!/usr/bin/env ruby.exe
|
#!/usr/bin/env ruby
|
||||||
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
|
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
|
||||||
load Gem.bin_path('bundler', 'bundle')
|
load Gem.bin_path('bundler', 'bundle')
|
||||||
|
|
6
bin/rails
Normal file → Executable file
6
bin/rails
Normal file → Executable file
|
@ -1,4 +1,8 @@
|
||||||
#!/usr/bin/env ruby.exe
|
#!/usr/bin/env ruby
|
||||||
|
begin
|
||||||
|
load File.expand_path("../spring", __FILE__)
|
||||||
|
rescue LoadError
|
||||||
|
end
|
||||||
APP_PATH = File.expand_path('../../config/application', __FILE__)
|
APP_PATH = File.expand_path('../../config/application', __FILE__)
|
||||||
require_relative '../config/boot'
|
require_relative '../config/boot'
|
||||||
require 'rails/commands'
|
require 'rails/commands'
|
||||||
|
|
6
bin/rake
Normal file → Executable file
6
bin/rake
Normal file → Executable file
|
@ -1,4 +1,8 @@
|
||||||
#!/usr/bin/env ruby.exe
|
#!/usr/bin/env ruby
|
||||||
|
begin
|
||||||
|
load File.expand_path("../spring", __FILE__)
|
||||||
|
rescue LoadError
|
||||||
|
end
|
||||||
require_relative '../config/boot'
|
require_relative '../config/boot'
|
||||||
require 'rake'
|
require 'rake'
|
||||||
Rake.application.run
|
Rake.application.run
|
||||||
|
|
18
bin/spring
Executable file
18
bin/spring
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
# This file loads spring without using Bundler, in order to be fast
|
||||||
|
# It gets overwritten when you run the `spring binstub` command
|
||||||
|
|
||||||
|
unless defined?(Spring)
|
||||||
|
require "rubygems"
|
||||||
|
require "bundler"
|
||||||
|
|
||||||
|
if match = Bundler.default_lockfile.read.match(/^GEM$.*?^ (?: )*spring \((.*?)\)$.*?^$/m)
|
||||||
|
ENV["GEM_PATH"] = ([Bundler.bundle_path.to_s] + Gem.path).join(File::PATH_SEPARATOR)
|
||||||
|
ENV["GEM_HOME"] = ""
|
||||||
|
Gem.paths = ENV
|
||||||
|
|
||||||
|
gem "spring", match[1]
|
||||||
|
require "spring/binstub"
|
||||||
|
end
|
||||||
|
end
|
|
@ -6,7 +6,7 @@ require 'rails/all'
|
||||||
# you've limited to :test, :development, or :production.
|
# you've limited to :test, :development, or :production.
|
||||||
Bundler.require(*Rails.groups)
|
Bundler.require(*Rails.groups)
|
||||||
|
|
||||||
module Tab
|
module Tab002
|
||||||
class Application < Rails::Application
|
class Application < Rails::Application
|
||||||
# Settings in config/environments/* take precedence over those specified here.
|
# Settings in config/environments/* take precedence over those specified here.
|
||||||
# Application configuration should go into files in config/initializers
|
# Application configuration should go into files in config/initializers
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Be sure to restart your server when you modify this file.
|
# Be sure to restart your server when you modify this file.
|
||||||
|
|
||||||
Rails.application.config.session_store :cookie_store, key: '_Tab_session'
|
Rails.application.config.session_store :cookie_store, key: '_Tab_0_0_2_session'
|
||||||
|
|
|
@ -1,43 +1,17 @@
|
||||||
Rails.application.routes.draw do
|
Rails.application.routes.draw do
|
||||||
|
|
||||||
get 'products/new'
|
|
||||||
|
|
||||||
get 'products/show'
|
|
||||||
|
|
||||||
get 'products/create'
|
root "users#index"
|
||||||
|
|
||||||
get 'products/edit'
|
|
||||||
|
|
||||||
get 'orders/show'
|
|
||||||
|
|
||||||
root 'static_pages#home'
|
|
||||||
|
|
||||||
get 'sessions/new'
|
|
||||||
|
|
||||||
get 'users/new'
|
|
||||||
|
|
||||||
|
|
||||||
get 'help' => 'static_pages#help'
|
|
||||||
get 'static_pages/home'
|
|
||||||
get 'overview' => 'static_pages#overview'
|
|
||||||
get 'static_pages/overview'
|
|
||||||
|
|
||||||
#order stuff
|
|
||||||
get 'order' => 'orders#new'
|
|
||||||
post 'order' => 'orders#create'
|
|
||||||
delete 'chaos' => 'orders#destroy'
|
|
||||||
|
|
||||||
#account stuff
|
|
||||||
get 'signup' => 'users#new'
|
|
||||||
get 'login' => 'sessions#new'
|
|
||||||
post 'login' => 'sessions#create'
|
|
||||||
delete 'logout' => 'sessions#destroy'
|
|
||||||
|
|
||||||
resources :users
|
resources :users
|
||||||
resources :orders
|
|
||||||
|
|
||||||
#product
|
get 'overview' => 'orders#new'
|
||||||
resources :products
|
post 'overview' => 'orders#create_session'
|
||||||
|
delete 'end_order' => 'orders#destroy'
|
||||||
|
|
||||||
|
get 'order' => 'orders#order'
|
||||||
|
post 'orders' => 'orders#create'
|
||||||
|
|
||||||
|
|
||||||
# The priority is based upon order of creation: first created -> highest priority.
|
# The priority is based upon order of creation: first created -> highest priority.
|
||||||
# See how all your routes lay out with "rake routes".
|
# See how all your routes lay out with "rake routes".
|
||||||
|
|
|
@ -11,10 +11,10 @@
|
||||||
# if you're sharing your code publicly.
|
# if you're sharing your code publicly.
|
||||||
|
|
||||||
development:
|
development:
|
||||||
secret_key_base: 00f7233f9fe2e58e16b50f63f48e7160e9e99152b092004907130f4b7b8e3aac1b03f80b78b7666edf83ed84e20fd81890eec7e09ef3198cb47ee91bd08fa0ef
|
secret_key_base: 5d40610321e19e4f71ee2ba8af4f426fe15096c405da3800c6b33bed6779f2d11f55a0edc455974b19a01fd71f6cd508dba980305dbc55ff82521a2d12f891d8
|
||||||
|
|
||||||
test:
|
test:
|
||||||
secret_key_base: c3861256e97380e1bcc1b78be6a5cc5b1b4bb3caacad11bb3b8de0d1a27d8df35d6fb6fe41f7c5cd41235c49d8ebd63a8aacf9925410a6714dc051b22edc2783
|
secret_key_base: 961437e28e7d6055ffaad9cf1f8d614354f57f10cb2d7601c9d6ede72a03b9c9535ad9e63507e3eb31252c4895970a63117493408f2e9a46c7a0c4a5a7836b81
|
||||||
|
|
||||||
# Do not keep production secrets in the repository,
|
# Do not keep production secrets in the repository,
|
||||||
# instead read values from the environment.
|
# instead read values from the environment.
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
class CreateProducts < ActiveRecord::Migration
|
|
||||||
def change
|
|
||||||
create_table :products do |t|
|
|
||||||
t.string :name
|
|
||||||
t.integer :sale_price
|
|
||||||
t.integer :purchase_price
|
|
||||||
t.string :image_path
|
|
||||||
t.string :type
|
|
||||||
|
|
||||||
t.timestamps
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -2,8 +2,10 @@ class CreateUsers < ActiveRecord::Migration
|
||||||
def change
|
def change
|
||||||
create_table :users do |t|
|
create_table :users do |t|
|
||||||
t.string :name
|
t.string :name
|
||||||
t.integer :marks
|
t.string :last_name
|
||||||
t.string :role
|
t.integer :balance
|
||||||
|
t.string :nickname
|
||||||
|
t.string :password_digest
|
||||||
|
|
||||||
t.timestamps
|
t.timestamps
|
||||||
end
|
end
|
|
@ -1,10 +1,11 @@
|
||||||
class CreateOrders < ActiveRecord::Migration
|
class CreateOrders < ActiveRecord::Migration
|
||||||
def change
|
def change
|
||||||
create_table :orders do |t|
|
create_table :orders do |t|
|
||||||
t.text :products
|
|
||||||
t.references :user, index: true
|
t.references :user, index: true
|
||||||
|
t.string :products
|
||||||
|
t.integer :cost
|
||||||
|
|
||||||
t.timestamps
|
t.timestamps null: false
|
||||||
end
|
end
|
||||||
add_index :orders, [:user_id, :created_at]
|
add_index :orders, [:user_id, :created_at]
|
||||||
end
|
end
|
25
db/schema.rb
25
db/schema.rb
|
@ -11,32 +11,25 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20141110141100) do
|
ActiveRecord::Schema.define(version: 20141123151756) do
|
||||||
|
|
||||||
create_table "orders", force: true do |t|
|
create_table "orders", force: true do |t|
|
||||||
t.text "products"
|
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
t.datetime "created_at"
|
t.string "products"
|
||||||
t.datetime "updated_at"
|
t.integer "cost"
|
||||||
|
t.datetime "created_at", null: false
|
||||||
|
t.datetime "updated_at", null: false
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "orders", ["user_id", "created_at"], name: "index_orders_on_user_id_and_created_at"
|
add_index "orders", ["user_id", "created_at"], name: "index_orders_on_user_id_and_created_at"
|
||||||
add_index "orders", ["user_id"], name: "index_orders_on_user_id"
|
add_index "orders", ["user_id"], name: "index_orders_on_user_id"
|
||||||
|
|
||||||
create_table "products", force: true do |t|
|
|
||||||
t.string "name"
|
|
||||||
t.integer "sale_price"
|
|
||||||
t.integer "purchase_price"
|
|
||||||
t.string "image_path"
|
|
||||||
t.string "type"
|
|
||||||
t.datetime "created_at"
|
|
||||||
t.datetime "updated_at"
|
|
||||||
end
|
|
||||||
|
|
||||||
create_table "users", force: true do |t|
|
create_table "users", force: true do |t|
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.integer "marks"
|
t.string "last_name"
|
||||||
t.string "role"
|
t.integer "balance"
|
||||||
|
t.string "nickname"
|
||||||
|
t.string "password_digest"
|
||||||
t.datetime "created_at"
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
16
db/seeds.rb
16
db/seeds.rb
|
@ -5,19 +5,3 @@
|
||||||
#
|
#
|
||||||
# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
|
# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
|
||||||
# Mayor.create(name: 'Emanuel', city: cities.first)
|
# Mayor.create(name: 'Emanuel', city: cities.first)
|
||||||
|
|
||||||
|
|
||||||
User.create!(name: "Example User", marks: 5)
|
|
||||||
|
|
||||||
99.times do |n|
|
|
||||||
name = Faker::Name.name
|
|
||||||
marks = n+1
|
|
||||||
User.create!(name: name,
|
|
||||||
marks: marks)
|
|
||||||
end
|
|
||||||
|
|
||||||
users = User.order(:created_at).take(6)
|
|
||||||
50.times do
|
|
||||||
products = Faker::Lorem.sentence(5)
|
|
||||||
users.each { |user| user.orders.create!(products: products) }
|
|
||||||
end
|
|
|
@ -1,9 +1,7 @@
|
||||||
require 'test_helper'
|
require 'test_helper'
|
||||||
|
|
||||||
class OrdersControllerTest < ActionController::TestCase
|
class OrdersControllerTest < ActionController::TestCase
|
||||||
test "should get new" do
|
# test "the truth" do
|
||||||
get :new
|
# assert true
|
||||||
assert_response :success
|
# end
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
require 'test_helper'
|
|
||||||
|
|
||||||
class ProductsControllerTest < ActionController::TestCase
|
|
||||||
test "should get new" do
|
|
||||||
get :new
|
|
||||||
assert_response :success
|
|
||||||
end
|
|
||||||
|
|
||||||
test "should get show" do
|
|
||||||
get :show
|
|
||||||
assert_response :success
|
|
||||||
end
|
|
||||||
|
|
||||||
test "should get create" do
|
|
||||||
get :create
|
|
||||||
assert_response :success
|
|
||||||
end
|
|
||||||
|
|
||||||
test "should get edit" do
|
|
||||||
get :edit
|
|
||||||
assert_response :success
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
|
@ -1,9 +0,0 @@
|
||||||
require 'test_helper'
|
|
||||||
|
|
||||||
class SessionsControllerTest < ActionController::TestCase
|
|
||||||
test "should get new" do
|
|
||||||
get :new
|
|
||||||
assert_response :success
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
|
@ -1,14 +0,0 @@
|
||||||
require 'test_helper'
|
|
||||||
|
|
||||||
class StaticPagesControllerTest < ActionController::TestCase
|
|
||||||
test "should get home" do
|
|
||||||
get :home
|
|
||||||
assert_response :success
|
|
||||||
end
|
|
||||||
|
|
||||||
test "should get overview" do
|
|
||||||
get :overview
|
|
||||||
assert_response :success
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
|
@ -6,4 +6,9 @@ class UsersControllerTest < ActionController::TestCase
|
||||||
assert_response :success
|
assert_response :success
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "should get show" do
|
||||||
|
get :show
|
||||||
|
assert_response :success
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
10
test/fixtures/orders.yml
vendored
10
test/fixtures/orders.yml
vendored
|
@ -1,9 +1,11 @@
|
||||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||||
|
|
||||||
one:
|
one:
|
||||||
products:
|
user:
|
||||||
user_id:
|
products: MyString
|
||||||
|
cost:
|
||||||
|
|
||||||
two:
|
two:
|
||||||
products:
|
user:
|
||||||
user_id:
|
products: MyString
|
||||||
|
cost:
|
||||||
|
|
11
test/fixtures/products.yml
vendored
11
test/fixtures/products.yml
vendored
|
@ -1,11 +0,0 @@
|
||||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
|
||||||
|
|
||||||
one:
|
|
||||||
name: MyString
|
|
||||||
sale-price: 1
|
|
||||||
purchase-price: 1
|
|
||||||
|
|
||||||
two:
|
|
||||||
name: MyString
|
|
||||||
sale-price: 1
|
|
||||||
purchase-price: 1
|
|
12
test/fixtures/users.yml
vendored
12
test/fixtures/users.yml
vendored
|
@ -2,10 +2,14 @@
|
||||||
|
|
||||||
one:
|
one:
|
||||||
name: MyString
|
name: MyString
|
||||||
marks: 1
|
last_name: MyString
|
||||||
role: MyString
|
balance: 1
|
||||||
|
nickname: MyString
|
||||||
|
password_digest: MyString
|
||||||
|
|
||||||
two:
|
two:
|
||||||
name: MyString
|
name: MyString
|
||||||
marks: 1
|
last_name: MyString
|
||||||
role: MyString
|
balance: 1
|
||||||
|
nickname: MyString
|
||||||
|
password_digest: MyString
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
require 'test_helper'
|
|
||||||
|
|
||||||
class ProductsHelperTest < ActionView::TestCase
|
|
||||||
end
|
|
|
@ -1,4 +0,0 @@
|
||||||
require 'test_helper'
|
|
||||||
|
|
||||||
class SessionsHelperTest < ActionView::TestCase
|
|
||||||
end
|
|
|
@ -1,4 +0,0 @@
|
||||||
require 'test_helper'
|
|
||||||
|
|
||||||
class StaticPagesHelperTest < ActionView::TestCase
|
|
||||||
end
|
|
|
@ -1,7 +0,0 @@
|
||||||
require 'test_helper'
|
|
||||||
|
|
||||||
class ProductTest < ActiveSupport::TestCase
|
|
||||||
# test "the truth" do
|
|
||||||
# assert true
|
|
||||||
# end
|
|
||||||
end
|
|
Loading…
Reference in a new issue