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
|
class Category < ActiveRecord::Base
|
||||||
has_many :sub_categories
|
has_many :sub_categories
|
||||||
|
has_many :filter_criterias, as: :owner
|
||||||
belongs_to :section
|
belongs_to :section
|
||||||
end
|
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
|
class Section < ActiveRecord::Base
|
||||||
has_many :categories
|
has_many :categories
|
||||||
|
has_many :filter_criterias, as: :owner
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
class SubCategory < ActiveRecord::Base
|
class SubCategory < ActiveRecord::Base
|
||||||
belongs_to :category
|
belongs_to :category
|
||||||
has_many :items
|
has_many :items
|
||||||
|
has_many :filter_criterias, as: :owner
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
Rails.application.routes.draw do
|
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 :item_in_carts do as_routes end
|
||||||
resources :carts do as_routes end
|
resources :carts do as_routes end
|
||||||
resources :multi_media_descriptions 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.
|
# 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
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
@@ -30,6 +30,20 @@ ActiveRecord::Schema.define(version: 20150206041455) do
|
|||||||
t.string "image_url"
|
t.string "image_url"
|
||||||
end
|
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|
|
create_table "item_in_carts", force: :cascade do |t|
|
||||||
t.integer "cart_id"
|
t.integer "cart_id"
|
||||||
t.integer "item_id"
|
t.integer "item_id"
|
||||||
@@ -72,10 +86,8 @@ ActiveRecord::Schema.define(version: 20150206041455) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
create_table "sub_categories", force: :cascade do |t|
|
create_table "sub_categories", force: :cascade do |t|
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.integer "category_id"
|
t.integer "category_id"
|
||||||
t.datetime "created_at", null: false
|
|
||||||
t.datetime "updated_at", null: false
|
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "units", force: :cascade do |t|
|
create_table "units", force: :cascade do |t|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
class Category < ActiveRecord::Base
|
class Category < ActiveRecord::Base
|
||||||
has_many :sub_categories
|
has_many :sub_categories
|
||||||
|
has_many :filter_criterias, as: :owner
|
||||||
belongs_to :section
|
belongs_to :section
|
||||||
end
|
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
|
class Section < ActiveRecord::Base
|
||||||
has_many :categories
|
has_many :categories
|
||||||
|
has_many :filter_criterias, as: :owner
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
class SubCategory < ActiveRecord::Base
|
class SubCategory < ActiveRecord::Base
|
||||||
belongs_to :category
|
belongs_to :category
|
||||||
|
has_many :filter_criterias, as: :owner
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user