qwester 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. data/README.rdoc +33 -0
  2. data/app/models/qwester/answer_store.rb +11 -1
  3. data/app/models/qwester/rule_set.rb +1 -1
  4. data/db/migrate/20121122130930_add_position_to_answers.rb +11 -0
  5. data/lib/qwester/version.rb +5 -1
  6. data/test/dummy/app/models/admin_user.rb +0 -9
  7. data/test/dummy/db/development.sqlite3 +0 -0
  8. data/test/dummy/db/migrate/{20130111112926_create_rule_sets.qwester.rb → 20130314103647_create_rule_sets.qwester.rb} +1 -1
  9. data/test/dummy/db/migrate/{20130111121500_add_ids_to_questionnaires_questions.qwester.rb → 20130314103655_add_ids_to_questionnaires_questions.qwester.rb} +1 -1
  10. data/test/dummy/db/migrate/20130314103656_add_position_to_answers.qwester.rb +12 -0
  11. data/test/dummy/db/schema.rb +3 -4
  12. data/test/dummy/db/test.sqlite3 +0 -0
  13. data/test/dummy/log/development.log +597 -0
  14. data/test/dummy/log/test.log +13644 -0
  15. data/test/unit/qwester/answer_store_test.rb +5 -0
  16. metadata +39 -39
  17. data/db/migrate/20121122130930_add_cope_index_and_position_to_answers.rb +0 -6
  18. data/test/dummy/db/migrate/20130111112934_add_cope_index_and_position_to_answers.qwester.rb +0 -7
  19. /data/test/dummy/db/migrate/{20130111112924_create_questions.qwester.rb → 20130314103645_create_questions.qwester.rb} +0 -0
  20. /data/test/dummy/db/migrate/{20130111112925_create_answers.qwester.rb → 20130314103646_create_answers.qwester.rb} +0 -0
  21. /data/test/dummy/db/migrate/{20130111112927_create_questionnaires.qwester.rb → 20130314103648_create_questionnaires.qwester.rb} +0 -0
  22. /data/test/dummy/db/migrate/{20130111112928_create_answer_stores.qwester.rb → 20130314103649_create_answer_stores.qwester.rb} +0 -0
  23. /data/test/dummy/db/migrate/{20130111112929_add_questionnaire_id_to_answers.qwester.rb → 20130314103650_add_questionnaire_id_to_answers.qwester.rb} +0 -0
  24. /data/test/dummy/db/migrate/{20130111112930_change_answers_value_to_string.qwester.rb → 20130314103651_change_answers_value_to_string.qwester.rb} +0 -0
  25. /data/test/dummy/db/migrate/{20130111112931_add_button_image_to_questionnaires.qwester.rb → 20130314103652_add_button_image_to_questionnaires.qwester.rb} +0 -0
  26. /data/test/dummy/db/migrate/{20130111112932_create_ckeditor_assets.qwester.rb → 20130314103653_create_ckeditor_assets.qwester.rb} +0 -0
  27. /data/test/dummy/db/migrate/{20130111112933_add_ref_to_questions.qwester.rb → 20130314103654_add_ref_to_questions.qwester.rb} +0 -0
  28. /data/test/dummy/db/migrate/{20130111112935_remove_questionnaire_from_answer.qwester.rb → 20130314103657_remove_questionnaire_from_answer.qwester.rb} +0 -0
  29. /data/test/dummy/db/migrate/{20130111112936_add_rule_to_rule_sets.qwester.rb → 20130314103658_add_rule_to_rule_sets.qwester.rb} +0 -0
  30. /data/test/dummy/db/migrate/{20130111112937_add_multi_answer_to_questions.qwester.rb → 20130314103659_add_multi_answer_to_questions.qwester.rb} +0 -0
  31. /data/test/dummy/db/migrate/{20130111112938_create_answer_stores_questionnaires.qwester.rb → 20130314103660_create_answer_stores_questionnaires.qwester.rb} +0 -0
  32. /data/test/dummy/db/migrate/{20130111112939_add_link_text_to_rule_sets.qwester.rb → 20130314103661_add_link_text_to_rule_sets.qwester.rb} +0 -0
  33. /data/test/dummy/db/migrate/{20130306115340_add_preserved_to_answer_stores.qwester.rb → 20130314103662_add_preserved_to_answer_stores.qwester.rb} +0 -0
data/README.rdoc CHANGED
@@ -180,3 +180,36 @@ initializer:
180
180
  Qwester.active_admin_menu = 'none'
181
181
 
182
182
  See test/dummy/config/initializers/qwester.rb for an example
183
+
184
+ You will also need to add the following to your config/routes so that you can
185
+ reorder items:
186
+
187
+ namespace :admin do
188
+ resources :questionnaires do
189
+ resources :questions, :only => [:move_up, :move_down] do
190
+ member do
191
+ get :move_up
192
+ get :move_down
193
+ end
194
+ end
195
+ end
196
+
197
+ resources :questions do
198
+ resources :answers, :only => [:move_up, :move_down, :remove] do
199
+ member do
200
+ get :move_up
201
+ get :move_down
202
+ get :remove
203
+ end
204
+ end
205
+ end
206
+
207
+ resources :rule_sets do
208
+ resources :answers, :only => [:add, :delete] do
209
+ member do
210
+ put :add
211
+ put :delete
212
+ end
213
+ end
214
+ end
215
+ end
@@ -39,7 +39,7 @@ module Qwester
39
39
 
40
40
  def generate_session_id
41
41
  if !self.session_id or self.session_id.empty?
42
- self.session_id = RandomString.new(15)
42
+ self.session_id = session_id_not_in_database
43
43
  end
44
44
  end
45
45
 
@@ -49,5 +49,15 @@ module Qwester
49
49
  copy.questionnaires = questionnaires
50
50
  return copy if copy.save
51
51
  end
52
+
53
+ def session_id_not_in_database
54
+ session_ids = get_session_ids
55
+ random_string = RandomString.new(15) until random_string and !session_ids.include?(random_string)
56
+ return random_string
57
+ end
58
+
59
+ def get_session_ids
60
+ self.class.select(:session_id).collect(&:session_id)
61
+ end
52
62
  end
53
63
  end
@@ -27,7 +27,7 @@ module Qwester
27
27
 
28
28
 
29
29
  def self.matching(answers)
30
- all.collect{|rule_set| rule_set if rule_set.match(answers)}.compact
30
+ all.select{|rule_set| rule_set.match(answers)}
31
31
  end
32
32
 
33
33
  def match(answers_to_check = nil)
@@ -0,0 +1,11 @@
1
+ class AddPositionToAnswers < ActiveRecord::Migration
2
+ def change
3
+ # Adds unless clause, because original version of migration added another field
4
+ # and file name was changed when this field was removed. This can cause this
5
+ # migration to appear a second time if rake qwester:install:migrations is
6
+ # run again in an app created before the change was made.
7
+ unless column_exists?(:qwester_answers, :position)
8
+ add_column :qwester_answers, :position, :integer
9
+ end
10
+ end
11
+ end
@@ -1,10 +1,14 @@
1
1
  module Qwester
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
4
4
 
5
5
  # History
6
6
  # =======
7
7
  #
8
+ # 0.0.9 - maintenance update
9
+ # Removes cope_index from migrations.
10
+ # Ensures answer_store#session_id is unique
11
+ #
8
12
  # 0.0.8 - add facility to preserve answer stores
9
13
  # This allows snaps shots to be taken, and redundant answer stores to be
10
14
  # removed during routine maintenance.
@@ -8,13 +8,4 @@ class AdminUser < ActiveRecord::Base
8
8
 
9
9
  # Setup accessible (or protected) attributes for your model
10
10
  attr_accessible :email, :password, :password_confirmation, :remember_me
11
- # Include default devise modules. Others available are:
12
- # :token_authenticatable, :confirmable,
13
- # :lockable, :timeoutable and :omniauthable
14
- devise :database_authenticatable,
15
- :recoverable, :rememberable, :trackable, :validatable
16
-
17
- # Setup accessible (or protected) attributes for your model
18
- attr_accessible :email, :password, :password_confirmation, :remember_me
19
- # attr_accessible :title, :body
20
11
  end
Binary file
@@ -3,7 +3,7 @@ class CreateRuleSets < ActiveRecord::Migration
3
3
  def change
4
4
  create_table :qwester_rule_sets do |t|
5
5
  t.string :title
6
- t.string :description
6
+ t.text :description
7
7
  t.string :url
8
8
  t.timestamps
9
9
  end
@@ -9,7 +9,7 @@ class AddIdsToQuestionnairesQuestions < ActiveRecord::Migration
9
9
  execute "UPDATE #{qq_table} SET created_at = '#{Time.now.to_s(:db)}', updated_at = '#{Time.now.to_s(:db)}';"
10
10
 
11
11
  puts "=============================================="
12
- puts "Now run 'rake data:reset_positions RAILS_ENV=#{Rails.env}' to set the positions"
12
+ puts "Now run 'rake qwester:reset_positions RAILS_ENV=#{Rails.env}' to set the positions"
13
13
  puts "=============================================="
14
14
  end
15
15
 
@@ -0,0 +1,12 @@
1
+ # This migration comes from qwester (originally 20121122130930)
2
+ class AddPositionToAnswers < ActiveRecord::Migration
3
+ def change
4
+ # Adds unless clause, because original version of migration added another field
5
+ # and file name was changed when this field was removed. This can cause this
6
+ # migration to appear a second time if rake qwester:install:migrations is
7
+ # run again in an app created before the change was made.
8
+ unless column_exists?(:qwester_answers, :position)
9
+ add_column :qwester_answers, :position, :integer
10
+ end
11
+ end
12
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 20130306115340) do
14
+ ActiveRecord::Schema.define(:version => 20130314103662) do
15
15
 
16
16
  create_table "active_admin_comments", :force => true do |t|
17
17
  t.string "resource_id", :null => false
@@ -65,10 +65,9 @@ ActiveRecord::Schema.define(:version => 20130306115340) do
65
65
  create_table "qwester_answers", :force => true do |t|
66
66
  t.integer "question_id"
67
67
  t.string "value"
68
- t.datetime "created_at", :null => false
69
- t.datetime "updated_at", :null => false
68
+ t.datetime "created_at", :null => false
69
+ t.datetime "updated_at", :null => false
70
70
  t.integer "position"
71
- t.integer "cope_index", :default => 0
72
71
  end
73
72
 
74
73
  create_table "qwester_answers_rule_sets", :id => false, :force => true do |t|
Binary file