From c06982e643ab93711c2000f7562ce2cd3eb06fea Mon Sep 17 00:00:00 2001 From: Benjamin Cousaert Date: Tue, 9 Dec 2014 11:18:54 +0100 Subject: [PATCH 1/9] Fix controller permitted parameters --- app/controllers/products_controller.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/controllers/products_controller.rb b/app/controllers/products_controller.rb index 058317c..1cc8cd7 100644 --- a/app/controllers/products_controller.rb +++ b/app/controllers/products_controller.rb @@ -41,8 +41,7 @@ class ProductsController < ApplicationController private def product_params - params.require(:product).permit(:name, :purchase_price, :sale_price, - :avatar) + params.require(:product).permit(:name, :price, :avatar) end end From 26cb04dd33a74067247a4c351f08dca552ff0b67 Mon Sep 17 00:00:00 2001 From: ohsab Date: Tue, 9 Dec 2014 11:38:10 +0100 Subject: [PATCH 2/9] overview button --- app/assets/stylesheets/application.css.scss | 11 +++++++++++ app/controllers/application_controller.rb | 1 + app/helpers/application_helper.rb | 5 +++++ app/views/orders/index.html.erb | 3 --- app/views/orders/overview.html.erb | 2 +- 5 files changed, 18 insertions(+), 4 deletions(-) delete mode 100644 app/views/orders/index.html.erb diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss index 0c8c33c..b16803d 100644 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -40,6 +40,11 @@ $gray-medium-light: #eaeaea; @include box_sizing; } +ul +{ + list-style-type: none; +} + /* forms */ @@ -85,3 +90,9 @@ footer ul li { float: left; margin-left: 15px; } + +.overview{ + width: 100%; + margin-bottom: 5px; + +} diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index f854d35..60c348c 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -4,4 +4,5 @@ class ApplicationController < ActionController::Base protect_from_forgery with: :exception include OrdersHelper + include ApplicationHelper end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index de6be79..4c12342 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,2 +1,7 @@ module ApplicationHelper + #tijdelijk voor layout + def koelkast(status) + @koelkast ||= status + end + end diff --git a/app/views/orders/index.html.erb b/app/views/orders/index.html.erb deleted file mode 100644 index cbbaa97..0000000 --- a/app/views/orders/index.html.erb +++ /dev/null @@ -1,3 +0,0 @@ -

<%= @user.nickname %>

- -<%= render @orders %> diff --git a/app/views/orders/overview.html.erb b/app/views/orders/overview.html.erb index 27f5350..3d9628b 100644 --- a/app/views/orders/overview.html.erb +++ b/app/views/orders/overview.html.erb @@ -1,7 +1,7 @@ From 98b47597589f9d5b4c0205115c2ad2eb56324400 Mon Sep 17 00:00:00 2001 From: ohsab Date: Tue, 9 Dec 2014 12:01:25 +0100 Subject: [PATCH 3/9] new overview --- app/assets/stylesheets/application.css.scss | 7 ++----- app/views/orders/overview.html.erb | 10 +++------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss index b16803d..3c54cc1 100644 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -40,10 +40,7 @@ $gray-medium-light: #eaeaea; @include box_sizing; } -ul -{ - list-style-type: none; -} + /* forms */ @@ -92,7 +89,7 @@ footer ul li { } .overview{ - width: 100%; + width: 33%; margin-bottom: 5px; } diff --git a/app/views/orders/overview.html.erb b/app/views/orders/overview.html.erb index 3d9628b..a4d4d1f 100644 --- a/app/views/orders/overview.html.erb +++ b/app/views/orders/overview.html.erb @@ -1,7 +1,3 @@ -
    - <% @users.each do |user| %> -
  • - <%= link_to user.name , new_user_order_path(user), class: "btn btn-primary overview"%> -
  • - <% end %> -
+<% @users.each do |user| %> + <%= link_to user.name , new_user_order_path(user), class: "btn btn-primary overview"%> +<% end %> From b064cb21efa512649d434c9e0310e1566ca974c3 Mon Sep 17 00:00:00 2001 From: ohsab Date: Tue, 9 Dec 2014 12:08:49 +0100 Subject: [PATCH 4/9] knopjes --- app/assets/stylesheets/application.css.scss | 3 +++ app/views/orders/overview.html.erb | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss index 3c54cc1..f26673b 100644 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -91,5 +91,8 @@ footer ul li { .overview{ width: 33%; margin-bottom: 5px; + padding-top: 15px; + padding-bottom: 15px; + } diff --git a/app/views/orders/overview.html.erb b/app/views/orders/overview.html.erb index a4d4d1f..35ea209 100644 --- a/app/views/orders/overview.html.erb +++ b/app/views/orders/overview.html.erb @@ -1,3 +1,3 @@ <% @users.each do |user| %> - <%= link_to user.name , new_user_order_path(user), class: "btn btn-primary overview"%> + <%= link_to user.name , new_user_order_path(user), class: "btn btn-info overview"%> <% end %> From db37c694aa873af37bdf480929a58ccb6d5e16e7 Mon Sep 17 00:00:00 2001 From: ohsab Date: Tue, 9 Dec 2014 13:10:36 +0100 Subject: [PATCH 5/9] color btn --- app/assets/stylesheets/application.css.scss | 18 ++++++++++++++---- app/controllers/orders_controller.rb | 3 ++- app/helpers/application_helper.rb | 16 ++++++++++++++++ app/views/layouts/application.html.erb | 4 ++-- app/views/orders/overview.html.erb | 18 +++++++++++++++--- 5 files changed, 49 insertions(+), 10 deletions(-) diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss index f26673b..11e2cc1 100644 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -89,10 +89,20 @@ footer ul li { } .overview{ - width: 33%; - margin-bottom: 5px; - padding-top: 15px; - padding-bottom: 15px; + width: 49%; + height: 49%; + border-radius: 0px; + margin: -2px; + padding: 18px; + border-color: #000; + border: 0px; + + font-weight: bold; + font-size: 24px; } + +.center{ + text-align: center; +} diff --git a/app/controllers/orders_controller.rb b/app/controllers/orders_controller.rb index e774a1d..287ea81 100644 --- a/app/controllers/orders_controller.rb +++ b/app/controllers/orders_controller.rb @@ -1,6 +1,7 @@ class OrdersController < ApplicationController def overview - @users = User.all + @users_by_name = User.all.order(:name) + @users_by_order = User.all end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4c12342..4313912 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,7 +1,23 @@ +require 'digest/md5' module ApplicationHelper + + def get_color(user) + @color = Digest::MD5.hexdigest(user.name)[0..5] + end + + def get_inverted_color(user) + @inverted_color = Digest::MD5.hexdigest(user.name)[0..5].reverse + end + + def get_color_style(user) + @style = "background-color: #"+ get_color(user) +"; color: #"+ + get_inverted_color(user)+ ";" + end + #tijdelijk voor layout def koelkast(status) @koelkast ||= status end + end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index b3f3328..5a590f4 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -13,8 +13,8 @@
<%= yield %> - - <%= render "layouts/footer" %> + + <%#= render "layouts/footer" %>
<%= debug(params) if Rails.env.development? %> diff --git a/app/views/orders/overview.html.erb b/app/views/orders/overview.html.erb index 35ea209..adbba94 100644 --- a/app/views/orders/overview.html.erb +++ b/app/views/orders/overview.html.erb @@ -1,3 +1,15 @@ -<% @users.each do |user| %> - <%= link_to user.name , new_user_order_path(user), class: "btn btn-info overview"%> -<% end %> +
+

sort by name

+ + <% @users_by_name.each do |user| %> + <%= link_to user.name , new_user_order_path(user), class: "btn btn-info overview", + style: get_color_style(user) %> + <% end %> +
+
+

sort by orders

+ <% @users_by_order.each do |user| %> + <%= link_to user.name , new_user_order_path(user), class: "btn btn-info overview", + style: get_color_style(user) %> + <% end %> +
From a64642956561908cdbdb40fea24d3891e4cc9391 Mon Sep 17 00:00:00 2001 From: Tom Naessens Date: Tue, 9 Dec 2014 13:41:35 +0100 Subject: [PATCH 6/9] Use decent bootstrap errors --- app/views/application/_errors.html.erb | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/app/views/application/_errors.html.erb b/app/views/application/_errors.html.erb index d7c0fb2..6a3452e 100644 --- a/app/views/application/_errors.html.erb +++ b/app/views/application/_errors.html.erb @@ -1,5 +1,14 @@ -
    - <% model.errors.full_messages.each do |e| %> - <%= content_tag(:li, e) %> - <% end %> -
+<% if model.errors.any? %> +
+
+ <%= pluralize(model.errors.count, "error") %> prohibited this <%= model.class.name.downcase %> from being saved: +
+
+
    + <% model.errors.full_messages.each do |msg| %> +
  • <%= msg %>
  • + <% end %> +
+
+
+<% end %> From fe5f4949e6f0528726f65677b9d79c9f35e73fd9 Mon Sep 17 00:00:00 2001 From: Tom Naessens Date: Tue, 9 Dec 2014 13:44:34 +0100 Subject: [PATCH 7/9] Remove unused links from footer --- app/views/layouts/_footer.html.erb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/views/layouts/_footer.html.erb b/app/views/layouts/_footer.html.erb index 5d7474d..018625a 100644 --- a/app/views/layouts/_footer.html.erb +++ b/app/views/layouts/_footer.html.erb @@ -1,13 +1,12 @@
<%= link_to "Tab", root_path %> - by Zeus WPI + by <%= link_to "Zeus WPI", "//zeus.ugent.be" %>
From 1a50fb5cf2b6ad71238f3059b8c7a1b4c0b9ee99 Mon Sep 17 00:00:00 2001 From: Tom Naessens Date: Tue, 9 Dec 2014 14:39:27 +0100 Subject: [PATCH 8/9] Make things a lot more beautiful --- app/assets/stylesheets/application.css.scss | 4 ++ app/controllers/products_controller.rb | 10 ++-- app/helpers/application_helper.rb | 48 +++++++++++++++++++ app/models/product.rb | 10 ++++ .../application/_form_check_box.html.erb | 6 +++ .../_form_collection_select.html.erb | 5 ++ .../application/_form_date_field.html.erb | 7 +++ .../application/_form_email_field.html.erb | 4 ++ app/views/application/_form_errors.html.erb | 14 ++++++ .../_form_fancy_text_area.html.erb | 4 ++ .../application/_form_number_field.html.erb | 4 ++ .../application/_form_password_field.html.erb | 4 ++ .../application/_form_text_area.html.erb | 4 ++ .../application/_form_text_field.html.erb | 4 ++ app/views/layouts/_header.html.erb | 7 ++- app/views/layouts/application.html.erb | 31 ++++++------ app/views/products/_form.html.erb | 17 +++++++ app/views/products/_product.html.erb | 12 +++++ app/views/products/edit.html.erb | 24 +--------- app/views/products/index.html.erb | 14 ++---- app/views/products/new.html.erb | 16 +------ app/views/products/show.html.erb | 11 ----- 22 files changed, 178 insertions(+), 82 deletions(-) create mode 100644 app/views/application/_form_check_box.html.erb create mode 100644 app/views/application/_form_collection_select.html.erb create mode 100644 app/views/application/_form_date_field.html.erb create mode 100644 app/views/application/_form_email_field.html.erb create mode 100644 app/views/application/_form_errors.html.erb create mode 100644 app/views/application/_form_fancy_text_area.html.erb create mode 100644 app/views/application/_form_number_field.html.erb create mode 100644 app/views/application/_form_password_field.html.erb create mode 100644 app/views/application/_form_text_area.html.erb create mode 100644 app/views/application/_form_text_field.html.erb create mode 100644 app/views/products/_form.html.erb create mode 100644 app/views/products/_product.html.erb delete mode 100644 app/views/products/show.html.erb diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss index 11e2cc1..5e44107 100644 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -56,6 +56,10 @@ input { height: auto !important; } +/* boostrap */ +body { + padding-top: 80px; +} /* footer */ diff --git a/app/controllers/products_controller.rb b/app/controllers/products_controller.rb index 1cc8cd7..6d71fc3 100644 --- a/app/controllers/products_controller.rb +++ b/app/controllers/products_controller.rb @@ -6,16 +6,12 @@ class ProductsController < ApplicationController def create @product = Product.new(product_params) if @product.save - redirect_to @product + redirect_to action: :index else - render 'new' + render :new end end - def show - @product = Product.find(params[:id]) - end - def index @products = Product.all end @@ -27,7 +23,7 @@ class ProductsController < ApplicationController def update @product = Product.find(params[:id]) if @product.update_attributes(product_params) - redirect_to @product + redirect_to action: :index else render 'edit' end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4313912..19f22f9 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -14,10 +14,58 @@ module ApplicationHelper get_inverted_color(user)+ ";" end + def euro(f) + "€#{number_with_precision f, precision: 2}" + end + #tijdelijk voor layout def koelkast(status) @koelkast ||= status end + # Form helpers + def form_errors(object) + render partial: "form_errors", locals: {object: object} + end + + def form_text_field(f, tag) + render partial: "form_text_field", locals: {f: f, tag: tag} + end + + def form_password_field(f, tag) + render partial: "form_password_field", locals: {f: f, tag: tag} + end + + def form_text_area(f, tag) + render partial: "form_text_area", locals: {f: f, tag: tag} + end + + def form_fancy_text_area(f, tag) + render partial: "form_fancy_text_area", locals: {f: f, tag: tag} + end + + def form_email_field(f, tag) + render partial: "form_email_field", locals: {f: f, tag: tag} + end + + def form_date_field(f, tag, id, value) + render partial: "form_date_field", locals: {f: f, tag: tag, id: id, value: value} + end + + def form_number_field(f, tag) + render partial: "form_number_field", locals: {f: f, tag: tag} + end + + def form_collection_select(f, *args) + # This line enable passing optional arguments such as include_blank to the + # partial. If nothing is passed, an empty options hash is appended. + args << {} if args.length < 5 + + render partial: "form_collection_select", locals: {f: f, args: args} + end + + def form_check_box(f, tag) + render partial: "form_check_box", locals: {f: f, tag: tag} + end end diff --git a/app/models/product.rb b/app/models/product.rb index c7c31f7..4463062 100644 --- a/app/models/product.rb +++ b/app/models/product.rb @@ -24,4 +24,14 @@ class Product < ActiveRecord::Base def count(order) order_products.find_by(order: order).count end + + def price + (read_attribute(:price) || 0) / 100.0 + end + + def price=(value) + if value.is_a? String then value.sub!(',', '.') end + write_attribute(:price, (value.to_f * 100).to_int) + end + end diff --git a/app/views/application/_form_check_box.html.erb b/app/views/application/_form_check_box.html.erb new file mode 100644 index 0000000..8d8e429 --- /dev/null +++ b/app/views/application/_form_check_box.html.erb @@ -0,0 +1,6 @@ +
+ + <%= f.check_box tag %> +
diff --git a/app/views/application/_form_collection_select.html.erb b/app/views/application/_form_collection_select.html.erb new file mode 100644 index 0000000..99bd7e5 --- /dev/null +++ b/app/views/application/_form_collection_select.html.erb @@ -0,0 +1,5 @@ +<%# To pass options to the collection_select, add {options} as the last argument %> +
+ <%= f.label args.first %>: + <%= f.collection_select *args, {class: 'form-control'} %> +
diff --git a/app/views/application/_form_date_field.html.erb b/app/views/application/_form_date_field.html.erb new file mode 100644 index 0000000..31cbe37 --- /dev/null +++ b/app/views/application/_form_date_field.html.erb @@ -0,0 +1,7 @@ +
+ <%= f.label tag %>: +
+ + <%= f.text_field tag, class: 'form-control', id: id, value: value %> +
+
diff --git a/app/views/application/_form_email_field.html.erb b/app/views/application/_form_email_field.html.erb new file mode 100644 index 0000000..c60dbd8 --- /dev/null +++ b/app/views/application/_form_email_field.html.erb @@ -0,0 +1,4 @@ +
+ <%= f.label tag %>: + <%= f.email_field tag, class: 'form-control' %> +
diff --git a/app/views/application/_form_errors.html.erb b/app/views/application/_form_errors.html.erb new file mode 100644 index 0000000..18c5c18 --- /dev/null +++ b/app/views/application/_form_errors.html.erb @@ -0,0 +1,14 @@ +<% if object.errors.any? %> +
+
+ <%= pluralize(object.errors.count, "error") %> prohibited this <%= object.class.name.downcase %> from being saved: +
+
+
    + <% object.errors.full_messages.each do |msg| %> +
  • <%= msg %>
  • + <% end %> +
+
+
+<% end %> diff --git a/app/views/application/_form_fancy_text_area.html.erb b/app/views/application/_form_fancy_text_area.html.erb new file mode 100644 index 0000000..32bb3db --- /dev/null +++ b/app/views/application/_form_fancy_text_area.html.erb @@ -0,0 +1,4 @@ +
+ <%= f.label tag %>: + <%= f.text_area tag, class: 'form-control ckeditor' %> +
diff --git a/app/views/application/_form_number_field.html.erb b/app/views/application/_form_number_field.html.erb new file mode 100644 index 0000000..5baa83e --- /dev/null +++ b/app/views/application/_form_number_field.html.erb @@ -0,0 +1,4 @@ +
+ <%= f.label tag %>: + <%= f.number_field tag, class: 'form-control', min: 0 %> +
diff --git a/app/views/application/_form_password_field.html.erb b/app/views/application/_form_password_field.html.erb new file mode 100644 index 0000000..54e670a --- /dev/null +++ b/app/views/application/_form_password_field.html.erb @@ -0,0 +1,4 @@ +
+ <%= f.label tag %>: + <%= f.password_field tag, class: 'form-control' %> +
diff --git a/app/views/application/_form_text_area.html.erb b/app/views/application/_form_text_area.html.erb new file mode 100644 index 0000000..256bfb7 --- /dev/null +++ b/app/views/application/_form_text_area.html.erb @@ -0,0 +1,4 @@ +
+ <%= f.label tag %>: + <%= f.text_area tag, class: 'form-control' %> +
diff --git a/app/views/application/_form_text_field.html.erb b/app/views/application/_form_text_field.html.erb new file mode 100644 index 0000000..7390ad4 --- /dev/null +++ b/app/views/application/_form_text_field.html.erb @@ -0,0 +1,4 @@ +
+ <%= f.label tag %>: + <%= f.text_field tag, class: 'form-control' %> +
diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index 9549175..322431c 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -1,7 +1,12 @@ -