added filter criteria models
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
class FilterCriteriaController < ApplicationController
|
||||
active_scaffold :"filter_criteria" do |conf|
|
||||
#conf.columns = [:title, :field_name, :type]
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,4 @@
|
||||
class FilterCriteriaValuesController < ApplicationController
|
||||
active_scaffold :"filter_criteria_value" do |conf|
|
||||
end
|
||||
end
|
||||
2
back-office/app/helpers/filter_criteria_helper.rb
Normal file
2
back-office/app/helpers/filter_criteria_helper.rb
Normal file
@@ -0,0 +1,2 @@
|
||||
module FilterCriteriaHelper
|
||||
end
|
||||
2
back-office/app/helpers/filter_criteria_values_helper.rb
Normal file
2
back-office/app/helpers/filter_criteria_values_helper.rb
Normal file
@@ -0,0 +1,2 @@
|
||||
module FilterCriteriaValuesHelper
|
||||
end
|
||||
@@ -1,4 +1,5 @@
|
||||
class Category < ActiveRecord::Base
|
||||
has_many :sub_categories
|
||||
has_many :filter_criterias, as: :owner
|
||||
belongs_to :section
|
||||
end
|
||||
|
||||
9
back-office/app/models/filter_criteria.rb
Normal file
9
back-office/app/models/filter_criteria.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
class FilterCriteria < ActiveRecord::Base
|
||||
has_many :filter_criteria_values
|
||||
belongs_to :owner, polymorphic: true
|
||||
validates_presence_of :title
|
||||
self.inheritance_column = :_type_disabled
|
||||
def owner_type=(class_name)
|
||||
super(class_name.constantize.base_class.to_s)
|
||||
end
|
||||
end
|
||||
3
back-office/app/models/filter_criteria_value.rb
Normal file
3
back-office/app/models/filter_criteria_value.rb
Normal file
@@ -0,0 +1,3 @@
|
||||
class FilterCriteriaValue < ActiveRecord::Base
|
||||
belongs_to :filter_criteria
|
||||
end
|
||||
@@ -1,3 +1,4 @@
|
||||
class Section < ActiveRecord::Base
|
||||
has_many :categories
|
||||
has_many :filter_criterias, as: :owner
|
||||
end
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
class SubCategory < ActiveRecord::Base
|
||||
belongs_to :category
|
||||
has_many :items
|
||||
|
||||
has_many :filter_criterias, as: :owner
|
||||
end
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
Rails.application.routes.draw do
|
||||
|
||||
resources :filter_criteria_values do as_routes end
|
||||
resources :filter_criteria do as_routes end
|
||||
resources :item_in_carts do as_routes end
|
||||
resources :carts do as_routes end
|
||||
resources :multi_media_descriptions do as_routes end
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
require 'test_helper'
|
||||
|
||||
class FilterCriteriaControllerTest < ActionController::TestCase
|
||||
setup do
|
||||
@filter_criterium = filter_criteria(:one)
|
||||
end
|
||||
|
||||
test "should get index" do
|
||||
get :index
|
||||
assert_response :success
|
||||
assert_not_nil assigns(:filter_criteria)
|
||||
end
|
||||
|
||||
test "should get new" do
|
||||
get :new
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should create filter_criterium" do
|
||||
assert_difference('FilterCriterium.count') do
|
||||
post :create, filter_criterium: { field_name: @filter_criterium.field_name, owner_id: @filter_criterium.owner_id, owner_type: @filter_criterium.owner_type, title: @filter_criterium.title, type: @filter_criterium.type }
|
||||
end
|
||||
|
||||
assert_redirected_to filter_criterium_path(assigns(:filter_criterium))
|
||||
end
|
||||
|
||||
test "should show filter_criterium" do
|
||||
get :show, id: @filter_criterium
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should get edit" do
|
||||
get :edit, id: @filter_criterium
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should update filter_criterium" do
|
||||
patch :update, id: @filter_criterium, filter_criterium: { field_name: @filter_criterium.field_name, owner_id: @filter_criterium.owner_id, owner_type: @filter_criterium.owner_type, title: @filter_criterium.title, type: @filter_criterium.type }
|
||||
assert_redirected_to filter_criterium_path(assigns(:filter_criterium))
|
||||
end
|
||||
|
||||
test "should destroy filter_criterium" do
|
||||
assert_difference('FilterCriterium.count', -1) do
|
||||
delete :destroy, id: @filter_criterium
|
||||
end
|
||||
|
||||
assert_redirected_to filter_criteria_path
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,49 @@
|
||||
require 'test_helper'
|
||||
|
||||
class FilterCriteriaValuesControllerTest < ActionController::TestCase
|
||||
setup do
|
||||
@filter_criteria_value = filter_criteria_values(:one)
|
||||
end
|
||||
|
||||
test "should get index" do
|
||||
get :index
|
||||
assert_response :success
|
||||
assert_not_nil assigns(:filter_criteria_values)
|
||||
end
|
||||
|
||||
test "should get new" do
|
||||
get :new
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should create filter_criteria_value" do
|
||||
assert_difference('FilterCriteriaValue.count') do
|
||||
post :create, filter_criteria_value: { filter_criteria_id: @filter_criteria_value.filter_criteria_id, filter_text: @filter_criteria_value.filter_text, filter_value: @filter_criteria_value.filter_value }
|
||||
end
|
||||
|
||||
assert_redirected_to filter_criteria_value_path(assigns(:filter_criteria_value))
|
||||
end
|
||||
|
||||
test "should show filter_criteria_value" do
|
||||
get :show, id: @filter_criteria_value
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should get edit" do
|
||||
get :edit, id: @filter_criteria_value
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should update filter_criteria_value" do
|
||||
patch :update, id: @filter_criteria_value, filter_criteria_value: { filter_criteria_id: @filter_criteria_value.filter_criteria_id, filter_text: @filter_criteria_value.filter_text, filter_value: @filter_criteria_value.filter_value }
|
||||
assert_redirected_to filter_criteria_value_path(assigns(:filter_criteria_value))
|
||||
end
|
||||
|
||||
test "should destroy filter_criteria_value" do
|
||||
assert_difference('FilterCriteriaValue.count', -1) do
|
||||
delete :destroy, id: @filter_criteria_value
|
||||
end
|
||||
|
||||
assert_redirected_to filter_criteria_values_path
|
||||
end
|
||||
end
|
||||
15
back-office/test/fixtures/filter_criteria.yml
vendored
Normal file
15
back-office/test/fixtures/filter_criteria.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
one:
|
||||
title: MyString
|
||||
field_name: MyString
|
||||
type: 1
|
||||
owner_type: MyString
|
||||
owner_id: 1
|
||||
|
||||
two:
|
||||
title: MyString
|
||||
field_name: MyString
|
||||
type: 1
|
||||
owner_type: MyString
|
||||
owner_id: 1
|
||||
11
back-office/test/fixtures/filter_criteria_values.yml
vendored
Normal file
11
back-office/test/fixtures/filter_criteria_values.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
one:
|
||||
filter_text: MyString
|
||||
filter_value: MyString
|
||||
filter_criteria_id: 1
|
||||
|
||||
two:
|
||||
filter_text: MyString
|
||||
filter_value: MyString
|
||||
filter_criteria_id: 1
|
||||
7
back-office/test/models/filter_criteria_value_test.rb
Normal file
7
back-office/test/models/filter_criteria_value_test.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
require 'test_helper'
|
||||
|
||||
class FilterCriteriaValueTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
||||
7
back-office/test/models/filter_criterium_test.rb
Normal file
7
back-office/test/models/filter_criterium_test.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
require 'test_helper'
|
||||
|
||||
class FilterCriteriumTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
||||
20
front-api/controllers/filter_criteria.rb
Normal file
20
front-api/controllers/filter_criteria.rb
Normal file
@@ -0,0 +1,20 @@
|
||||
get '/filter/section/:id' do |id_s|
|
||||
# get filter criteria for a section with id
|
||||
FilterCriteria.where(:owner_type => "Section").where(:owner_id => id_s.to_i).to_json(
|
||||
:include => [:filter_criteria_values]
|
||||
)
|
||||
end
|
||||
|
||||
get '/filter/category/:id' do |id_s|
|
||||
# get filter criteria for a category with id
|
||||
FilterCriteria.where(:owner_type => "Category").where(:owner_id => id_s.to_i).to_json(
|
||||
:include => [:filter_criteria_values]
|
||||
)
|
||||
end
|
||||
|
||||
get '/filter/subcategory/:id' do |id_s|
|
||||
# get filter criteria for a subcategory with id
|
||||
FilterCriteria.where(:owner_type => "Subcategory").where(:owner_id => id_s.to_i).to_json(
|
||||
:include => [:filter_criteria_values]
|
||||
)
|
||||
end
|
||||
@@ -0,0 +1,11 @@
|
||||
class CreateFilterCriteria < ActiveRecord::Migration
|
||||
def change
|
||||
create_table :filter_criteria do |t|
|
||||
t.string :title
|
||||
t.string :field_name
|
||||
t.integer :type # list, checkbox list
|
||||
t.string :owner_type # section, cat, subcat
|
||||
t.integer :owner_id
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,9 @@
|
||||
class CreateFilterCriteriaValues < ActiveRecord::Migration
|
||||
def change
|
||||
create_table :filter_criteria_values do |t|
|
||||
t.string :filter_text
|
||||
t.string :filter_value
|
||||
t.integer :filter_criteria_id
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -11,7 +11,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20150206041455) do
|
||||
ActiveRecord::Schema.define(version: 20150207120207) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
@@ -30,6 +30,20 @@ ActiveRecord::Schema.define(version: 20150206041455) do
|
||||
t.string "image_url"
|
||||
end
|
||||
|
||||
create_table "filter_criteria", force: :cascade do |t|
|
||||
t.string "title"
|
||||
t.string "field_name"
|
||||
t.integer "type"
|
||||
t.integer "owner_type"
|
||||
t.integer "owner_id"
|
||||
end
|
||||
|
||||
create_table "filter_criteria_values", force: :cascade do |t|
|
||||
t.string "filter_text"
|
||||
t.string "filter_value"
|
||||
t.integer "filter_criteria_id"
|
||||
end
|
||||
|
||||
create_table "item_in_carts", force: :cascade do |t|
|
||||
t.integer "cart_id"
|
||||
t.integer "item_id"
|
||||
@@ -72,10 +86,8 @@ ActiveRecord::Schema.define(version: 20150206041455) 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.string "name"
|
||||
t.integer "category_id"
|
||||
end
|
||||
|
||||
create_table "units", force: :cascade do |t|
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
class Category < ActiveRecord::Base
|
||||
has_many :sub_categories
|
||||
has_many :filter_criterias, as: :owner
|
||||
belongs_to :section
|
||||
end
|
||||
|
||||
9
front-api/models/filter_criteria.rb
Normal file
9
front-api/models/filter_criteria.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
class FilterCriteria < ActiveRecord::Base
|
||||
has_many :filter_criteria_values
|
||||
belongs_to :owner, polymorphic: true
|
||||
|
||||
self.inheritance_column = :_type_disabled
|
||||
def owner_type=(class_name)
|
||||
super(class_name.constantize.base_class.to_s)
|
||||
end
|
||||
end
|
||||
3
front-api/models/filter_criteria_value.rb
Normal file
3
front-api/models/filter_criteria_value.rb
Normal file
@@ -0,0 +1,3 @@
|
||||
class FilterCriteriaValue < ActiveRecord::Base
|
||||
belongs_to :filter_criteria
|
||||
end
|
||||
@@ -1,3 +1,4 @@
|
||||
class Section < ActiveRecord::Base
|
||||
has_many :categories
|
||||
has_many :filter_criterias, as: :owner
|
||||
end
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
class SubCategory < ActiveRecord::Base
|
||||
belongs_to :category
|
||||
has_many :filter_criterias, as: :owner
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user