From 19cdca76b1b98e1f2a49bd8ef5f3ce1d45db0610 Mon Sep 17 00:00:00 2001 From: Edin Dazdarevic Date: Wed, 15 Apr 2015 00:10:37 +0200 Subject: [PATCH] added menu sub sub items (horrible name i know) --- back-office/app/models/menu_sub_item.rb | 1 + back-office/app/models/menu_sub_sub_item.rb | 3 +++ back-office/lib/tasks/ribica.rake | 8 +++++++ front-api/controllers/menu_item.rb | 4 +++- ...20150414214540_create_menu_sub_sub_item.rb | 10 +++++++++ front-api/db/schema.rb | 21 ++++++++++++------- front-api/models/menu_sub_item.rb | 1 + front-api/models/menu_sub_sub_item.rb | 3 +++ .../shared/menuItemListComponent.js | 5 +++-- 9 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 back-office/app/models/menu_sub_sub_item.rb create mode 100644 front-api/db/migrate/20150414214540_create_menu_sub_sub_item.rb create mode 100644 front-api/models/menu_sub_sub_item.rb diff --git a/back-office/app/models/menu_sub_item.rb b/back-office/app/models/menu_sub_item.rb index 081dc23..c12b441 100644 --- a/back-office/app/models/menu_sub_item.rb +++ b/back-office/app/models/menu_sub_item.rb @@ -1,3 +1,4 @@ class MenuSubItem < ActiveRecord::Base belongs_to :menu_item + has_many :menu_sub_sub_items end diff --git a/back-office/app/models/menu_sub_sub_item.rb b/back-office/app/models/menu_sub_sub_item.rb new file mode 100644 index 0000000..02ca533 --- /dev/null +++ b/back-office/app/models/menu_sub_sub_item.rb @@ -0,0 +1,3 @@ +class MenuSubSubItem < ActiveRecord::Base + belongs_to :menu_sub_item +end diff --git a/back-office/lib/tasks/ribica.rake b/back-office/lib/tasks/ribica.rake index 3f525e0..1ff9d91 100644 --- a/back-office/lib/tasks/ribica.rake +++ b/back-office/lib/tasks/ribica.rake @@ -292,6 +292,14 @@ namespace :ribica do msi.url = "/sekcija/#{section.name}/kategorija/#{category.id}/#{category.name}" msi.ordinal = section.order mi.menu_sub_items << msi + + category.sub_categories.each do |sub_category| + mssi = MenuSubSubItem.new + mssi.title = sub_category.name + mssi.url = "/podkategorija/#{sub_category.id}/#{sub_category.name}" + mssi.ordinal = sub_category.order + msi.menu_sub_sub_items << mssi + end end mi.save! end diff --git a/front-api/controllers/menu_item.rb b/front-api/controllers/menu_item.rb index 63e0955..0b496a1 100644 --- a/front-api/controllers/menu_item.rb +++ b/front-api/controllers/menu_item.rb @@ -1,4 +1,6 @@ get '/menuitem' do # list all menu items - MenuItem.eager_load(:menu_sub_items).order("menu_items.ordinal, menu_sub_items.ordinal").to_json(:include => [:menu_sub_items]) + MenuItem.eager_load(menu_sub_items: :menu_sub_sub_items) + .order("menu_items.ordinal, menu_sub_items.ordinal, menu_sub_sub_items.ordinal") + .to_json(:include => [:menu_sub_items => {:include => :menu_sub_sub_items}]) end diff --git a/front-api/db/migrate/20150414214540_create_menu_sub_sub_item.rb b/front-api/db/migrate/20150414214540_create_menu_sub_sub_item.rb new file mode 100644 index 0000000..34d080b --- /dev/null +++ b/front-api/db/migrate/20150414214540_create_menu_sub_sub_item.rb @@ -0,0 +1,10 @@ +class CreateMenuSubSubItem < ActiveRecord::Migration + def change + create_table :menu_sub_sub_items do |t| + t.string :title + t.string :url + t.integer :ordinal + t.integer :menu_sub_item_id + end + end +end diff --git a/front-api/db/schema.rb b/front-api/db/schema.rb index 034c4a9..b3ee2a8 100644 --- a/front-api/db/schema.rb +++ b/front-api/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150404114006) do +ActiveRecord::Schema.define(version: 20150414214540) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -117,7 +117,7 @@ ActiveRecord::Schema.define(version: 20150404114006) do t.decimal "current_input_price", precision: 5, scale: 2 t.decimal "list_price", precision: 5, scale: 2 t.integer "unit_id" - t.decimal "units_in_pack", precision: 5, scale: 3 + t.decimal "units_in_pack", precision: 6, scale: 2 t.text "description" t.integer "sub_category_id" t.integer "stock" @@ -126,8 +126,8 @@ ActiveRecord::Schema.define(version: 20150404114006) do t.datetime "updated_at", null: false t.string "tags" t.json "traits" - t.integer "supplier_id" t.decimal "weight", precision: 5, scale: 3 + t.integer "supplier_id" t.integer "delivery_time_estimation_id" t.integer "brand_id" end @@ -168,6 +168,13 @@ ActiveRecord::Schema.define(version: 20150404114006) do t.integer "menu_item_id" end + create_table "menu_sub_sub_items", force: :cascade do |t| + t.string "title" + t.string "url" + t.integer "ordinal" + t.integer "menu_sub_item_id" + end + create_table "multi_media_descriptions", force: :cascade do |t| t.string "url" t.integer "item_id" @@ -190,11 +197,9 @@ ActiveRecord::Schema.define(version: 20150404114006) do end create_table "sub_categories", force: :cascade do |t| - t.string "name" - t.integer "category_id" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.integer "order" + t.string "name" + t.integer "category_id" + t.integer "order" end create_table "suppliers", force: :cascade do |t| diff --git a/front-api/models/menu_sub_item.rb b/front-api/models/menu_sub_item.rb index 081dc23..c12b441 100644 --- a/front-api/models/menu_sub_item.rb +++ b/front-api/models/menu_sub_item.rb @@ -1,3 +1,4 @@ class MenuSubItem < ActiveRecord::Base belongs_to :menu_item + has_many :menu_sub_sub_items end diff --git a/front-api/models/menu_sub_sub_item.rb b/front-api/models/menu_sub_sub_item.rb new file mode 100644 index 0000000..02ca533 --- /dev/null +++ b/front-api/models/menu_sub_sub_item.rb @@ -0,0 +1,3 @@ +class MenuSubSubItem < ActiveRecord::Base + belongs_to :menu_sub_item +end diff --git a/front-ui/app/components/shared/menuItemListComponent.js b/front-ui/app/components/shared/menuItemListComponent.js index 0983515..27dabb6 100644 --- a/front-ui/app/components/shared/menuItemListComponent.js +++ b/front-ui/app/components/shared/menuItemListComponent.js @@ -116,8 +116,9 @@ var MenuItemListComponent = React.createClass({ )