qwester 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. checksums.yaml +15 -0
  2. data/app/models/qwester/answer.rb +4 -1
  3. data/app/models/qwester/answer_store.rb +3 -0
  4. data/app/models/qwester/presentation.rb +4 -2
  5. data/app/models/qwester/presentation_questionnaire.rb +3 -1
  6. data/app/models/qwester/question.rb +3 -1
  7. data/app/models/qwester/questionnaire.rb +3 -1
  8. data/app/models/qwester/questionnaires_question.rb +3 -1
  9. data/app/models/qwester/rule_set.rb +3 -1
  10. data/app/views/qwester/questionnaires/index.html.erb +16 -16
  11. data/app/views/qwester/questionnaires/show.html.erb +4 -4
  12. data/lib/active_admin/admin/answers.rb +2 -1
  13. data/lib/active_admin/admin/presentations.rb +12 -1
  14. data/lib/active_admin/admin/questionnaires.rb +12 -1
  15. data/lib/active_admin/admin/questions.rb +12 -3
  16. data/lib/active_admin/admin/rule_sets.rb +12 -1
  17. data/lib/qwester/version.rb +3 -1
  18. data/lib/qwester.rb +4 -0
  19. data/test/dummy/app/assets/stylesheets/questionnaires.css.scss +4 -0
  20. data/test/dummy/db/development.sqlite3 +0 -0
  21. data/test/dummy/db/test.sqlite3 +0 -0
  22. data/test/dummy/log/development.log +5847 -0
  23. data/test/dummy/log/test.log +18376 -0
  24. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/001/link/blue.png +0 -0
  25. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/001/original/blue.png +0 -0
  26. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/001/thumbnail/blue.png +0 -0
  27. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/002/link/qwester.png +0 -0
  28. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/002/original/qwester.png +0 -0
  29. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/002/thumbnail/qwester.png +0 -0
  30. data/test/dummy/tmp/cache/assets/C26/9F0/sprockets%2F845e497a575c390134890305d73603fa +0 -0
  31. data/test/dummy/tmp/cache/assets/C5E/190/sprockets%2F884e6fc668000102b9764640f74b938f +0 -0
  32. data/test/dummy/tmp/cache/assets/C5F/260/sprockets%2F90424bb1d20261bd99d49853589b6399 +0 -0
  33. data/test/dummy/tmp/cache/assets/C89/F60/sprockets%2F59638d54511f81bd6b41555e34874b4d +0 -0
  34. data/test/dummy/tmp/cache/assets/C9C/330/sprockets%2Fd555282f7ba49f75897eb3f456426429 +0 -0
  35. data/test/dummy/tmp/cache/assets/CA2/BA0/sprockets%2F710a9a1697baf1003a8764f76bd20091 +0 -0
  36. data/test/dummy/tmp/cache/assets/CAC/5B0/sprockets%2F561f9be63d0d3d9059357221a28e153b +0 -0
  37. data/test/dummy/tmp/cache/assets/CC5/620/sprockets%2F03718a976968696d5f1831f6dad5df03 +0 -0
  38. data/test/dummy/tmp/cache/assets/CD4/620/sprockets%2F73bddc14960082707af20860a73c64ea +0 -0
  39. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  40. data/test/dummy/tmp/cache/assets/CDB/040/sprockets%2Fc732474e67003a4eb840eb44c5ca9385 +0 -0
  41. data/test/dummy/tmp/cache/assets/CF3/1B0/sprockets%2F5af3f4726631a5af496e6693e239fe28 +0 -0
  42. data/test/dummy/tmp/cache/assets/D03/3E0/sprockets%2F8c2f11a68d4304d2eb129b8119ad547a +0 -0
  43. data/test/dummy/tmp/cache/assets/D08/630/sprockets%2F01c69e5e94001a45e3837b01bff6c63e +0 -0
  44. data/test/dummy/tmp/cache/assets/D0A/9B0/sprockets%2F3c7c595119cd187f13fad06de3f34212 +0 -0
  45. data/test/dummy/tmp/cache/assets/D0E/4B0/sprockets%2Fe3cc72e3c0e6e76f780d41d1602442e9 +0 -0
  46. data/test/dummy/tmp/cache/assets/D0F/0D0/sprockets%2Fa7cc3b3bb91739976e2a634340bd68e1 +0 -0
  47. data/test/dummy/tmp/cache/assets/D1F/2B0/sprockets%2F56c48fe90949eb21aa5d8aee42349890 +0 -0
  48. data/test/dummy/tmp/cache/assets/D23/750/sprockets%2Fa21a09cf6204922d2df746a50ab0e3b3 +0 -0
  49. data/test/dummy/tmp/cache/assets/D2E/670/sprockets%2F28b755a9120ae2aecca9a29b05b18507 +0 -0
  50. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  51. data/test/dummy/tmp/cache/assets/D38/540/sprockets%2F86e1ad844bc9df4491a2a52b870421db +0 -0
  52. data/test/dummy/tmp/cache/assets/D3B/2A0/sprockets%2F4e293b5ef6851a3acbd8c01914d734b6 +0 -0
  53. data/test/dummy/tmp/cache/assets/D48/640/sprockets%2F9f4f18d910b678b1d0777e04cdaf6f24 +0 -0
  54. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  55. data/test/dummy/tmp/cache/assets/D57/830/sprockets%2Fc0f0fed8ec79871fb9c8848131d888b0 +0 -0
  56. data/test/dummy/tmp/cache/assets/D57/980/sprockets%2Fb53201d73edbdba1453449a2f65c4bc0 +0 -0
  57. data/test/dummy/tmp/cache/assets/D59/000/sprockets%2Fe7426ef4d8ea9028edebe495113e9698 +0 -0
  58. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  59. data/test/dummy/tmp/cache/assets/D61/6E0/sprockets%2F41e7fb3ec1ab3a343c9566c3c81a39c0 +0 -0
  60. data/test/dummy/tmp/cache/assets/D62/500/sprockets%2F4e64511f8fe62cb8ef7697d9559d4fb6 +0 -0
  61. data/test/dummy/tmp/cache/assets/D6B/350/sprockets%2Ffe96748ac9e0ed2203a272c6ea0465ae +0 -0
  62. data/test/dummy/tmp/cache/assets/D74/7A0/sprockets%2Fad303ebb30768ef3c4e4389f57b9c0e5 +0 -0
  63. data/test/dummy/tmp/cache/assets/D75/080/sprockets%2F48cea574b9659113a157eb7ebe7c80cc +0 -0
  64. data/test/dummy/tmp/cache/assets/D79/A60/sprockets%2F84903d1c98ce9ad4bddc8553030ed6f8 +0 -0
  65. data/test/dummy/tmp/cache/assets/D7F/6F0/sprockets%2F19af6fa7fac6d1e87f21652ee97366d2 +0 -0
  66. data/test/dummy/tmp/cache/assets/D81/6B0/sprockets%2F99c2812cc5649953fd0bd8a9af99aca4 +0 -0
  67. data/test/dummy/tmp/cache/assets/D89/EC0/sprockets%2F7b50b81cfb0f1bb5f03ad09583c5e31a +0 -0
  68. data/test/dummy/tmp/cache/assets/D8F/250/sprockets%2F60101e38ae706c7e8da0fd49b4c10dbe +0 -0
  69. data/test/dummy/tmp/cache/assets/D94/790/sprockets%2Fd78be002b446eb324b68bf26bb1b3f8d +0 -0
  70. data/test/dummy/tmp/cache/assets/D98/AB0/sprockets%2F028ba597918a94e6bc11a7ab1aa8fe5b +0 -0
  71. data/test/dummy/tmp/cache/assets/DA6/260/sprockets%2F996fb95f5eb0fa6ea87f911c12ba3e51 +0 -0
  72. data/test/dummy/tmp/cache/assets/DCA/C00/sprockets%2Fc7e141db4230d75aeeb95cee73548eaa +0 -0
  73. data/test/dummy/tmp/cache/assets/DD2/930/sprockets%2F50b8f1d35ba79d23e5ccf44d2992bcfe +0 -0
  74. data/test/dummy/tmp/cache/assets/DDB/7C0/sprockets%2Fd6416913c8bd115ef5ff69fde2fe4e2c +0 -0
  75. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  76. data/test/dummy/tmp/cache/assets/DF0/AF0/sprockets%2F5bf64d042b4148f1aadea4f4c3f9dba3 +0 -0
  77. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  78. data/test/dummy/tmp/cache/assets/E06/340/sprockets%2Fb8e7cc5efc6721bddec4c59b2b94b672 +0 -0
  79. data/test/dummy/tmp/cache/assets/E5F/280/sprockets%2F38185b36c9bd1cd7cee3ccb7f9a2acfc +0 -0
  80. data/test/dummy/tmp/cache/sass/1bbbb17ea2792cc02311376f918123ad52ab195a/_reset.css.scssc +0 -0
  81. data/test/dummy/tmp/cache/sass/2fd9c76d84cefb666046113b053d85103e19230b/questionnaires.css.scssc +0 -0
  82. data/test/dummy/tmp/cache/sass/d2c69e841ace0e6337c850059b4b92ab9932356b/_typography.css.scssc +0 -0
  83. data/test/dummy/tmp/cache/sass/d2c69e841ace0e6337c850059b4b92ab9932356b/print.css.scssc +0 -0
  84. metadata +103 -46
  85. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/001/link/commend_button.png +0 -0
  86. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/001/original/commend_button.png +0 -0
  87. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/001/thumbnail/commend_button.png +0 -0
  88. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/002/link/commend_button.gif +0 -0
  89. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/002/original/commend_button.gif +0 -0
  90. data/test/dummy/public/system/qwester/questionnaires/button_images/000/000/002/thumbnail/commend_button.gif +0 -0
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ Njk1Yzc3YmU1NzA5MDQxN2RiOWY4NjU4NTY4ODcwMmU1MWUwMjdmYw==
5
+ data.tar.gz: !binary |-
6
+ ODVkMDE2ZjNhODUyYjU4YjRiMGI5ZGQwMWM2YTNlNjI4YThhOWYzOA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ N2RjNGJhNDk3ZjlhZmU0M2E3MWNlNzc4YjkyNDA3ZTQ1NmJiY2VmMjNmNzFk
10
+ ZDMzYzQ2MGFiOThjZDg5ZWM0MWQ0MzgwOWZhOTliMzE5N2JkMGI3YzgyYjg0
11
+ YjgwNjRkNDhkMTQyMzQ2ODAxNDNlNThmOWQ0MzliNjJkY2JjNTE=
12
+ data.tar.gz: !binary |-
13
+ M2VhNGE3N2UzMGQ1NTgxNDM3N2MyNGE3YWQwY2Q4ZmIxNjU2ZTgxZWM3YWVm
14
+ ZjY1Yzc4OTE2N2JmMGVkY2U0MzIzYzY2NzE5MzA1MDYzNDFjZGM1NDg4OTRl
15
+ NTI3MmNmZDJiM2UwY2RlMjIyZDUxMzM2MTMwNTk2NGE2N2MwNTc=
@@ -1,6 +1,9 @@
1
1
  module Qwester
2
2
  class Answer < ActiveRecord::Base
3
- attr_accessible :value, :question_id, :position, :weighting
3
+ if Qwester.rails_version == '3'
4
+ attr_accessible :value, :question_id, :position, :weighting
5
+ end
6
+
4
7
 
5
8
  DEFAULT_VALUE = 'Not applicable'
6
9
  STANDARD_VALUES = ['Yes', 'No', DEFAULT_VALUE]
@@ -1,5 +1,8 @@
1
1
  module Qwester
2
2
  class AnswerStore < ActiveRecord::Base
3
+ if Qwester.rails_version == '3'
4
+ attr_accessible
5
+ end
3
6
 
4
7
  has_and_belongs_to_many(
5
8
  :answers,
@@ -1,6 +1,8 @@
1
1
  module Qwester
2
2
  class Presentation < ActiveRecord::Base
3
- attr_accessible :description, :name, :title, :questionnaire_ids, :default
3
+ if Qwester.rails_version == '3'
4
+ attr_accessible :description, :name, :title, :questionnaire_ids, :default
5
+ end
4
6
 
5
7
  has_many(
6
8
  :presentation_questionnaires,
@@ -21,7 +23,7 @@ module Qwester
21
23
  validates(
22
24
  :name,
23
25
  :format => {
24
- :with => /^\w+$/,
26
+ :with => /\A\w+\z/,
25
27
  :message => "must comprise letters or numbers with underscores separating words"
26
28
  },
27
29
  :presence => true,
@@ -1,6 +1,8 @@
1
1
  module Qwester
2
2
  class PresentationQuestionnaire < ActiveRecord::Base
3
- attr_accessible :presentation_id, :questionnaire_id
3
+ if Qwester.rails_version == '3'
4
+ attr_accessible :presentation_id, :questionnaire_id
5
+ end
4
6
 
5
7
  belongs_to :presentation
6
8
  belongs_to :questionnaire
@@ -1,6 +1,8 @@
1
1
  module Qwester
2
2
  class Question < ActiveRecord::Base
3
- attr_accessible :title, :description, :ref, :answers_attributes, :multi_answer
3
+ if Qwester.rails_version == '3'
4
+ attr_accessible :title, :description, :ref, :answers_attributes, :multi_answer
5
+ end
4
6
 
5
7
  has_many(
6
8
  :answers,
@@ -1,6 +1,8 @@
1
1
  module Qwester
2
2
  class Questionnaire < ActiveRecord::Base
3
- attr_accessible :title, :description, :button_image, :question_ids
3
+ if Qwester.rails_version == '3'
4
+ attr_accessible :title, :description, :button_image, :question_ids
5
+ end
4
6
 
5
7
  has_many(
6
8
  :questionnaires_questions,
@@ -1,6 +1,8 @@
1
1
  module Qwester
2
2
  class QuestionnairesQuestion < ActiveRecord::Base
3
- attr_accessible :position
3
+ if Qwester.rails_version == '3'
4
+ attr_accessible :position
5
+ end
4
6
 
5
7
  belongs_to :questionnaire
6
8
  belongs_to :question
@@ -1,7 +1,9 @@
1
1
  require 'array_logic'
2
2
  module Qwester
3
3
  class RuleSet < ActiveRecord::Base
4
- attr_accessible :title, :description, :answers, :url, :rule, :answer_ids, :link_text, :warning_id, :presentation
4
+ if Qwester.rails_version == '3'
5
+ attr_accessible :title, :description, :answers, :url, :rule, :answer_ids, :link_text, :warning_id, :presentation
6
+ end
5
7
 
6
8
  before_save :keep_answers_in_step_with_rule
7
9
 
@@ -1,21 +1,21 @@
1
1
  <h1>Questionnaires</h1>
2
2
  <div>
3
3
  <% @questionnaires.each do |questionnaire| %>
4
-
5
- <%= link_to(
6
- image_tag(questionnaire.button_image.url(:link)),
7
- questionnaire_path(questionnaire),
8
- :class => 'image_link'
9
- )
10
- %>
11
- <br>
12
- <%= link_to(
13
- questionnaire.title,
14
- questionnaire_path(questionnaire),
15
- :class => 'text_link'
16
- )
17
- %>
18
-
4
+ <div class="questionnaire">
5
+ <%= link_to(
6
+ image_tag(questionnaire.button_image.url(:link)),
7
+ questionnaire_path(questionnaire),
8
+ :class => 'image_link'
9
+ )
10
+ %>
11
+ <br>
12
+ <%= link_to(
13
+ questionnaire.title,
14
+ questionnaire_path(questionnaire),
15
+ :class => 'text_link'
16
+ )
17
+ %>
18
+ </div>
19
19
  <% end %>
20
20
  </div>
21
21
 
@@ -35,5 +35,5 @@
35
35
  content_tag(
36
36
  'p',
37
37
  link_to('Clear answers and start again', reset_questionnaires_path)
38
- ) if @qwester_rule_sets.present?
38
+ ) if @qwester_answer_store and @qwester_answer_store.answers.present?
39
39
  %>
@@ -8,8 +8,8 @@
8
8
 
9
9
  <%= form_for(@questionnaire, :url => questionnaire_path(@questionnaire)) do |form| %>
10
10
  <ul>
11
- <%= form.fields_for(@questionnaire.answers, Qwester::Answer) do |answer_form| %>
12
- <% @questionnaire.questions.each do |question| %>
11
+
12
+ <% @questionnaire.questions.each do |question| %>
13
13
  <li>
14
14
  <%= content_tag(
15
15
  'span', question.title,
@@ -21,8 +21,8 @@
21
21
  <%= qwester_answers_selection_list(question) %>
22
22
 
23
23
  </li>
24
- <% end %>
25
- <% end %>
24
+ <% end %>
25
+
26
26
  </ul>
27
27
 
28
28
  <p>
@@ -6,7 +6,7 @@ module Qwester
6
6
  menu_label = "Qwester #{menu_label}" unless Qwester.active_admin_menu
7
7
  menu :parent => Qwester.active_admin_menu, :label => menu_label
8
8
 
9
- actions :all, :except => [:edit]
9
+ actions :all, :except => [:edit, :new]
10
10
  config.batch_actions = false
11
11
 
12
12
  filter :question
@@ -59,6 +59,7 @@ module Qwester
59
59
  redirect_to admin_qwester_question_path(answer.question)
60
60
  end
61
61
 
62
+
62
63
  end if defined?(ActiveAdmin)
63
64
 
64
65
  end
@@ -54,7 +54,18 @@ module Qwester
54
54
  end
55
55
  f.input :questionnaires, :as => :check_boxes, :collection => Questionnaire.all
56
56
  end
57
- f.buttons
57
+ f.actions
58
+ end
59
+
60
+ controller do
61
+ def permitted_params
62
+ params.permit(
63
+ qwester_presentation: [
64
+ :name, :title, :default, :description,
65
+ {questionnaire_ids: []}
66
+ ]
67
+ )
68
+ end
58
69
  end
59
70
 
60
71
  member_action :move_up do
@@ -30,7 +30,18 @@ module Qwester
30
30
  f.input :button_image, :as => :file, :hint => f.template.image_tag(f.object.button_image.url(:link))
31
31
  f.input :questions, :as => :check_boxes, :collection => Question.all
32
32
  end
33
- f.buttons
33
+ f.actions
34
+ end
35
+
36
+ controller do
37
+ def permitted_params
38
+ params.permit(
39
+ qwester_questionnaire: [
40
+ :title, :description, :button_image,
41
+ {question_ids: []}
42
+ ]
43
+ )
44
+ end
34
45
  end
35
46
 
36
47
  show do
@@ -30,11 +30,11 @@ module Qwester
30
30
 
31
31
  table :class => 'sortable_list' do
32
32
  tr do
33
- th 'Value'
33
+ th "Value (#{Answer.weighting_alias_name.humanize})"
34
34
  end
35
35
  qwester_question.answers.each do |answer|
36
36
  tr do
37
- td answer.value
37
+ td "#{answer.value} (#{answer.weighting})"
38
38
  td(answer.first? ? "&nbsp;".html_safe : link_to('Up', move_up_admin_qwester_answer_path(answer)))
39
39
  td(answer.last? ? "&nbsp;".html_safe : link_to('Down', move_down_admin_qwester_answer_path(answer)))
40
40
  td link_to('Delete', remove_admin_qwester_answer_path(answer), :confirm => "Are you sure you want to delete the answer '#{answer.value}'?")
@@ -59,7 +59,7 @@ module Qwester
59
59
  end
60
60
  end
61
61
 
62
- f.buttons
62
+ f.actions
63
63
  end
64
64
 
65
65
  controller do
@@ -69,6 +69,15 @@ module Qwester
69
69
  @qwester_question.build_standard_answers
70
70
  end
71
71
 
72
+ def permitted_params
73
+ params.permit(
74
+ qwester_question: [
75
+ :ref, :title, :description, :multi_answer,
76
+ {answers_attributes: [:value, :position, :weighting]}
77
+ ]
78
+ )
79
+ end
80
+
72
81
  end
73
82
 
74
83
  end if defined?(ActiveAdmin)
@@ -137,7 +137,18 @@ EOF
137
137
 
138
138
  end
139
139
 
140
- f.buttons
140
+ f.actions
141
+ end
142
+
143
+ controller do
144
+ def permitted_params
145
+ params.permit(
146
+ qwester_rule_set: [
147
+ :title, :description, :url, :link_text, :presentation, :rule,
148
+ {answer_ids: []}
149
+ ]
150
+ )
151
+ end
141
152
  end
142
153
 
143
154
  show do
@@ -1,10 +1,12 @@
1
1
  module Qwester
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
4
4
 
5
5
  # History
6
6
  # =======
7
7
  #
8
+ # 0.3.0 - Allows qwester to be hosted in a rails 4 app
9
+ #
8
10
  # 0.2.2 - Removes require statements not needed in production
9
11
  # Some gems needed to be required to run the dummy app, but these may have
10
12
  # caused some javascript and/or asset pipeline errors in production apps.
data/lib/qwester.rb CHANGED
@@ -31,5 +31,9 @@ module Qwester
31
31
  def self.session_key=(key)
32
32
  @session_key = key
33
33
  end
34
+
35
+ def self.rails_version
36
+ @rails_version ||= Rails.version.split('.').first if defined? Rails
37
+ end
34
38
 
35
39
  end
@@ -1,3 +1,7 @@
1
1
  // Place all the styles related to the questionnaires controller here.
2
2
  // They will automatically be included in application.css.
3
3
  // You can use Sass (SCSS) here: http://sass-lang.com/
4
+
5
+ .questionnaire {
6
+ display: inline-block;
7
+ }
Binary file
Binary file