Basic done
Showing
| ... | ... | @@ -56,6 +56,7 @@ gem 'vacuum' |
| gem "breadcrumbs_on_rails" | ||
| gem 'momentjs-rails', '>= 2.8.1' | ||
| gem 'bootstrap3-datetimepicker-rails', '~> 4.7.14' | ||
| gem 'draper', '~> 1.3' | ||
| group :test do | ||
| # gem 'capybara' # Integration test tool to simulate a user on a website. | ||
| # gem 'capybara_minitest_spec' # MiniTest::Spec expectations for Capybara node matchers. | ||
| ... | ... |
app/assets/javascripts/components/cart.js
0 → 100644
app/assets/javascripts/components/libs.js
0 → 100644
app/controllers/orders_controller.rb
0 → 100644
app/decorators/user_decorator.rb
0 → 100644
app/helpers/order_helper.rb
0 → 100644
app/mailers/user_mailer.rb
0 → 100644
app/models/line_item.rb
0 → 100644
app/models/order.rb
0 → 100644
| class Order < ActiveRecord::Base | ||
| enum state: [:card, :checkout] | ||
| has_many :line_items, dependent: :destroy | ||
| belongs_to :user | ||
| accepts_nested_attributes_for :line_items | ||
| def recalculate | ||
| count = line_items.sum(:quantity) | ||
| total_price = 0 | ||
| line_items.each do |item| | ||
|
||
| total_price += item.quantity*item.price | ||
| end | ||
| self.update_columns(item_count: count, item_total: total_price) | ||
| end | ||
| def checkout | ||
| pid = generate_token | ||
| self.update_columns(state: Order.states[:checkout], pid: pid) | ||
| end | ||
| private | ||
| def generate_token | ||
| loop do | ||
| random_token = SecureRandom.urlsafe_base64(nil, false) | ||
| break random_token unless Order.exists?(pid: random_token) | ||
| end | ||
| end | ||
| end | ||
app/services/cart_service.rb
0 → 100644
app/views/layouts/cart.html.slim
0 → 100644
app/views/orders/edit.html.slim
0 → 100644
app/views/orders/show.html.slim
0 → 100644
db/migrate/20150715093526_create_orders.rb
0 → 100644