surveyor 0.14.1 → 0.14.2

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.
data/README.md CHANGED
@@ -114,6 +114,13 @@ To work on the plugin code (for enhancements, and bug fixes, etc...) fork this g
114
114
 
115
115
  # Changes
116
116
 
117
+ 0.14.2
118
+
119
+ * lowercase localization. feature instead of story in cucumber feature
120
+ * add results section
121
+ * add simple admin section for displaying survey result set
122
+ * Added manual numbering to labels as well
123
+
117
124
  0.14.1
118
125
 
119
126
  * typo in repeaters - use survey\_section\_id instead of section\_id
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.14.1
1
+ 0.14.2
@@ -0,0 +1,12 @@
1
+ class ResultsController < ApplicationController
2
+ layout 'results'
3
+ def index
4
+ @surveys = Survey.all
5
+ end
6
+
7
+ def show
8
+ @survey = Survey.find(params[:id])
9
+ @response_sets = @survey.response_sets
10
+ @questions = SurveySection.find_by_survey_id(params[:id]).questions
11
+ end
12
+ end
@@ -0,0 +1,20 @@
1
+ module ResultsHelper
2
+ def display_response(r_set,question)
3
+ sets = r_set.responses.select{|r| r.question.display_order == question.display_order}
4
+ if sets.size == 0
5
+ return "-"
6
+ elsif sets.size == 1
7
+ return (sets.first.string_value || sets.first.text_value || show_answer(sets.first))
8
+ else
9
+ txt = ""
10
+ sets.each do |set|
11
+ txt << show_answer(set) + "<br/>"
12
+ end
13
+ return txt
14
+ end
15
+ end
16
+
17
+ def show_answer(set)
18
+ set.answer.text
19
+ end
20
+ end
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
6
+ <title>Survey: Result Sets</title>
7
+ <%= surveyor_includes %>
8
+ </head>
9
+ <body>
10
+ <div id="flash"><%= flash[:notice] %></div>
11
+ <%= yield %>
12
+ </body>
13
+ </html>
@@ -2,6 +2,8 @@
2
2
  - case renderer
3
3
  - when :label
4
4
  - div_for question, :class => "label #{question.css_class(response_set)}" do
5
+ - if question.survey_section.survey.manual_numbering
6
+ .number= question.number||'&nbsp;'
5
7
  %span.text= question.text
6
8
  %span.help= question.help_text
7
9
  - when :image
@@ -0,0 +1,17 @@
1
+ <h1>Listing Surveys</h1>
2
+
3
+ <table class="list_table">
4
+ <tr>
5
+ <th>ID</th>
6
+ <th>Name</th>
7
+ <th>Operation</th>
8
+ </tr>
9
+
10
+ <% @surveys.each do |survey| -%>
11
+ <tr>
12
+ <td><%=h survey.id %></td>
13
+ <td><%=h survey.title %></td>
14
+ <td><%= link_to "show results list(#{survey.response_sets.count})", show_one_survey_results_path(survey) %></td>
15
+ </tr>
16
+ <% end %>
17
+ </table>
@@ -0,0 +1,25 @@
1
+ <table class="list_table">
2
+ <tr>
3
+ <th>ID</th>
4
+ <th>Code</th>
5
+ <% @questions.each do |question| %>
6
+ <% next if question.display_order == 1 %>
7
+ <th><%= "[" +question.display_order.to_s + "]" + question.text %></th>
8
+ <% end %>
9
+ </tr>
10
+
11
+ <% @response_sets.each do |r_set| %>
12
+ <tr>
13
+ <td><%=h r_set.id %></td>
14
+ <td><%=h r_set.access_code %></td>
15
+ <% @questions.each do |question| %>
16
+ <% next if question.display_order == 1 %>
17
+ <td><%= display_response(r_set,question) %></td>
18
+ <% end %>
19
+ </tr>
20
+ <% end %>
21
+ </table>
22
+
23
+ <br />
24
+
25
+ <%= link_to "Back", admin_results_path %>
data/config/routes.rb CHANGED
@@ -5,5 +5,10 @@ ActionController::Routing::Routes.draw do |map|
5
5
  s.view_my_survey "surveys/:survey_code/:response_set_code.:format", :conditions => {:method => :get}, :action => "show", :format => "html" # GET viewable/printable? survey
6
6
  s.edit_my_survey "surveys/:survey_code/:response_set_code/take", :conditions => {:method => :get}, :action => "edit" # GET editable survey
7
7
  s.update_my_survey "surveys/:survey_code/:response_set_code", :conditions => {:method => :put}, :action => "update" # PUT edited survey
8
+ end
9
+
10
+ map.with_options :controller => 'results' do |r|
11
+ r.show_surveys_result_lists "surveys/results", :conditions => {:method => :get}, :action => "index"
12
+ r.show_one_survey_results "surveys/:id/result", :conditions => {:method => :get}, :action => "show"
8
13
  end
9
14
  end
@@ -1,4 +1,4 @@
1
- Story: Logging in
1
+ Feature: Logging in
2
2
  As an anonymous user with an account
3
3
  I want to log in to my account
4
4
  So that I can be myself
@@ -0,0 +1,125 @@
1
+ body { background-color: #fff; color: #333; }
2
+
3
+ body, p, ol, ul, td {
4
+ font-family: verdana, arial, helvetica, sans-serif;
5
+ font-size: 13px;
6
+ line-height: 18px;
7
+ }
8
+
9
+ pre {
10
+ background-color: #eee;
11
+ padding: 10px;
12
+ font-size: 11px;
13
+ }
14
+
15
+ a { color: #000; }
16
+ a:visited { color: #666; }
17
+ a:hover { color: #fff; background-color:#000; }
18
+
19
+ .fieldWithErrors {
20
+ padding: 2px;
21
+ background-color: red;
22
+ display: table;
23
+ }
24
+
25
+ #errorExplanation {
26
+ width: 400px;
27
+ border: 2px solid red;
28
+ padding: 7px;
29
+ padding-bottom: 12px;
30
+ margin-bottom: 20px;
31
+ background-color: #f0f0f0;
32
+ }
33
+
34
+ #errorExplanation h2 {
35
+ text-align: left;
36
+ font-weight: bold;
37
+ padding: 5px 5px 5px 15px;
38
+ font-size: 12px;
39
+ margin: -7px;
40
+ background-color: #c00;
41
+ color: #fff;
42
+ }
43
+
44
+ #errorExplanation p {
45
+ color: #333;
46
+ margin-bottom: 0;
47
+ padding: 5px;
48
+ }
49
+
50
+ #errorExplanation ul li {
51
+ font-size: 12px;
52
+ list-style: square;
53
+ }
54
+
55
+
56
+
57
+ textarea, .preview {
58
+ width: 310px;
59
+ height: 360px;
60
+ }
61
+ .preview {
62
+ border: #abc 1px dotted;
63
+ padding: 3px;
64
+ }
65
+
66
+ .bluebox { padding:10px; border:1px solid #577BBF; background-color:#E6EDFF; }
67
+ input[type=submit] {
68
+ padding: 3px 7px;
69
+ font-weight: bold;
70
+ }
71
+
72
+ .list_table{width:100%;border-collapse: collapse;empty-cells: show;}
73
+ .list_table th{font: bold 12px Verdana, sans-serif; color: #fff;padding: 5px 15px 5px 5px;border: solid 1px #A0BDE4;background-color: #577BBF;}
74
+ .list_table tr td {border-collapse: collapse;padding: 5px 4px;color: #333;font-family: Verdana, sans-serif;font-size: 12px;border: 1px solid #DCE7F1;}
75
+ .list_table tr { background-color: #FFF; }
76
+ .list_table tr.even { background-color:#F2F5FB;}
77
+ .list_table tr:hover { background-color: #FDFCEA;}
78
+ .list_table tr.group td {background-color: #eee;font-weight:bold;font-size:13px;}
79
+ .list_table .border2px{border-left:2px solid #DCE7F1;}
80
+ .list_table a{padding:0 5px;}
81
+ .list_table th.asc{background:#577BBF url(../images/idp_views/arrow_down.gif) no-repeat right;}
82
+ .list_table th.desc{background:#577BBF url(../images/idp_views/arrow_up.gif) no-repeat right;}
83
+ .list_table th a{color:white;text-decoration:underline;}
84
+ .list_table .group{text-align:center;background:#f3f3f3;border-top:1px dotted #586A7E;border-bottom:1px dotted #586A7E;}
85
+ .list_table .group_top{border-top:1px dotted #586A7E;}
86
+ .list_table .group_bottom{border-bottom:1px dotted #586A7E;}
87
+ .list_table_page{padding:5px;text-align:center;}
88
+ .list_table_page form{display:inline}
89
+
90
+ .list_table1 {width:100%;border-collapse: collapse;empty-cells: show;}
91
+ .list_table1 th{ font: bold 12px Verdana, sans-serif; color: #577BBF; padding:3px 5px; background-color:#F2F5FB; border: 1px solid #DCE7F1; }
92
+ .list_table1 tr td {border-collapse: collapse;padding: 2px;color: #333;font-family: Verdana, sans-serif;font-size: 10px;border: 1px solid #DCE7F1;}
93
+ .list_table1 tr { background-color: #FFF; }
94
+ .list_table1 tr:hover { background-color: #FDFCEA;}
95
+
96
+ .legend_table { border-top: 1px solid #DCE7F1; border-bottom: 1px solid #DCE7F1; padding:1px 0; }
97
+
98
+ .list_table2 { width:100%; empty-cells: show; border-collapse:collapse;}
99
+ .list_table2 th{ font: bold 12px Verdana; padding:5px; text-align:left; background-color:#FFF;}
100
+ .list_table2 tr td { border-collapse:collapse; padding: 0px 3px; font-family: Verdana, sans-serif;font-size: 10px; border:1px solid #FFF; }
101
+ .list_table2 a:link { text-decoration:underline; color:#03F;}
102
+ .list_table2 a:visited { text-decoration:underline; color:#03F; }
103
+ .list_table2 a:hover { text-decoration:none; color:#03F; }
104
+
105
+ .list_table3{width:100%;border-collapse: collapse;empty-cells: show; margin:5px 0;}
106
+ .list_table3 th{font: bold 12px Arial; color: #fff;padding: 3px;border: solid 1px #A0BDE4;background-color: #577BBF;}
107
+ .list_table3 tr td { border-collapse: collapse;padding: 5px 2px; font-family: Arial;font-size: 11px;border: 1px solid #DCE7F1; line-height:1.2em;}
108
+ .list_table3 tr { background-color: #FFF;}
109
+ .list_table3 tr.even { background-color:#F2F5FB;}
110
+ .list_table3 tr:hover { background-color: #FDFCEA;}
111
+
112
+ .list_table4{ border-collapse: collapse;empty-cells: show;}
113
+ .list_table4 th{font: bold 11px Arial; padding: 3px; text-align:left; background-color:#F2F5FB; border: 1px solid #DCE7F1; color:#577BBF;}
114
+ .list_table4 tr td { border-collapse: collapse;padding: 0px 3px; font-family: Arial;font-size: 10px;border: 1px solid #DCE7F1;}
115
+ .list_table4 tr { background-color: #FFF; }
116
+ .list_table4 tr.even { background-color:#F2F5FB;}
117
+ .list_table4 tr:hover { background-color: #FDFCEA;}
118
+
119
+ .list_table5 { width:100%; empty-cells: show; border-collapse:collapse; margin:5px 0;}
120
+ .list_table5 th{ font: bold 12px Verdana; padding:5px; text-align:left; background-color:#FFF;}
121
+ .list_table5 tr td { border-collapse:collapse; padding: 5px; font-family: Verdana, sans-serif;font-size: 12px; }
122
+ .list_table5 a:link { text-decoration:underline; color:#03F;}
123
+ .list_table5 a:visited { text-decoration:underline; color:#03F; }
124
+ .list_table5 a:hover { text-decoration:none; color:#03F; }
125
+
@@ -5,11 +5,12 @@ en:
5
5
  surveyor:
6
6
  take_these_surveys: "You may take these surveys"
7
7
  take_it: "Take it"
8
- Completed_survey: "Completed survey"
9
- Unable_to_find_your_responses: "Unable to find your responses to the survey"
10
- Unable to_find_that_survey: "Unable to find that survey"
8
+ completed_survey: "Completed survey"
9
+ unable_to_find_your_responses: "Unable to find your responses to the survey"
10
+ unable_to_update_survey: "Unable to update survey"
11
+ unable_to_find_that_survey: "Unable to find that survey"
11
12
  survey_started_success: "Survey started successfully"
12
13
  click_here_to_finish: "Click here to finish"
13
14
  previous_section: "&laquo; Previous section"
14
15
  next_section: "Next section &raquo;"
15
- Select_one: "Select one ..."
16
+ select_one: "Select one ..."
@@ -5,9 +5,10 @@ he:
5
5
  surveyor:
6
6
  take_these_surveys: "תוכלו לבצע סקרים אלו"
7
7
  take_it: "בצע"
8
- Completed_survey: "סיום הסקר"
9
- Unable_to_find_your_responses: "לא נמצאו תשובותיך לסקר"
10
- Unable to_find_that_survey: "לא ניתן לאתר את הסקר המבוקש"
8
+ completed_survey: "סיום הסקר"
9
+ unable_to_find_your_responses: "לא נמצאו תשובותיך לסקר"
10
+ unable_to_update_survey: ""
11
+ unable_to_find_that_survey: "לא ניתן לאתר את הסקר המבוקש"
11
12
  survey_started_success: "הסקר הוחל בהצלחה"
12
13
  click_here_to_finish: "לסיום"
13
14
  previous_section: "חזרה &raquo;"
@@ -35,7 +35,7 @@ module Surveyor
35
35
  }
36
36
  end
37
37
  else
38
- flash[:notice] = t('surveyor.Unable_to_find_your_responses')
38
+ flash[:notice] = t('surveyor.unable_to_find_your_responses')
39
39
  redirect_to surveyor_index
40
40
  end
41
41
  end
@@ -53,7 +53,7 @@ module Surveyor
53
53
  @questions = @section.questions
54
54
  @dependents = (@response_set.unanswered_dependencies - @section.questions) || []
55
55
  else
56
- flash[:notice] = t('surveyor.Unable_to_find_your_responses')
56
+ flash[:notice] = t('surveyor.unable_to_find_your_responses')
57
57
  redirect_to surveyor_index
58
58
  end
59
59
  end
@@ -64,7 +64,7 @@ module Surveyor
64
64
  if @response_set = ResponseSet.find_by_access_code(params[:response_set_code], :include => {:responses => :answer},:lock => true)
65
65
  @response_set.current_section_id = params[:current_section_id]
66
66
  else
67
- flash[:notice] = t('surveyor.Unable_to_find_your_responses')
67
+ flash[:notice] = t('surveyor.unable_to_find_your_responses')
68
68
  redirect_to(available_surveys_path) and return
69
69
  end
70
70
 
@@ -81,10 +81,10 @@ module Surveyor
81
81
  respond_to do |format|
82
82
  format.html do
83
83
  if saved && params[:finish]
84
- flash[:notice] = t('surveyor.Completed_survey')
84
+ flash[:notice] = t('surveyor.completed_survey')
85
85
  redirect_to surveyor_finish
86
86
  else
87
- flash[:notice] = t('surveyor.Unable_to_update_survey') if !saved #and !saved.nil? # saved.nil? is true if there are no questions on the page (i.e. if it only contains a label)
87
+ flash[:notice] = t('surveyor.unable_to_update_survey') if !saved #and !saved.nil? # saved.nil? is true if there are no questions on the page (i.e. if it only contains a label)
88
88
  redirect_to :action => "edit", :anchor => anchor_from(params[:section]), :params => {:section => section_id_from(params[:section])}
89
89
  end
90
90
  end
data/surveyor.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{surveyor}
8
- s.version = "0.14.1"
8
+ s.version = "0.14.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Brian Chamberlain", "Mark Yoon"]
@@ -20,7 +20,9 @@ Gem::Specification.new do |s|
20
20
  "README.md",
21
21
  "Rakefile",
22
22
  "VERSION",
23
+ "app/controllers/results_controller.rb",
23
24
  "app/controllers/surveyor_controller.rb",
25
+ "app/helpers/results_helper.rb",
24
26
  "app/helpers/survey_form_builder.rb",
25
27
  "app/helpers/surveyor_helper.rb",
26
28
  "app/models/answer.rb",
@@ -35,11 +37,14 @@ Gem::Specification.new do |s|
35
37
  "app/models/survey_section_sweeper.rb",
36
38
  "app/models/validation.rb",
37
39
  "app/models/validation_condition.rb",
40
+ "app/views/layouts/results.html.erb",
38
41
  "app/views/layouts/surveyor_default.html.erb",
39
42
  "app/views/partials/_answer.html.haml",
40
43
  "app/views/partials/_question.html.haml",
41
44
  "app/views/partials/_question_group.html.haml",
42
45
  "app/views/partials/_section.html.haml",
46
+ "app/views/results/index.html.erb",
47
+ "app/views/results/show.html.erb",
43
48
  "app/views/surveyor/edit.html.haml",
44
49
  "app/views/surveyor/new.html.haml",
45
50
  "app/views/surveyor/show.html.haml",
@@ -107,6 +112,7 @@ Gem::Specification.new do |s|
107
112
  "generators/surveyor/templates/assets/javascripts/surveyor.js",
108
113
  "generators/surveyor/templates/assets/stylesheets/jquery-ui-slider-additions.css",
109
114
  "generators/surveyor/templates/assets/stylesheets/reset.css",
115
+ "generators/surveyor/templates/assets/stylesheets/results.css",
110
116
  "generators/surveyor/templates/assets/stylesheets/sass/surveyor.sass",
111
117
  "generators/surveyor/templates/assets/stylesheets/ui.theme.css",
112
118
  "generators/surveyor/templates/locales/surveyor_en.yml",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: surveyor
3
3
  version: !ruby/object:Gem::Version
4
- hash: 37
4
+ hash: 35
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 14
9
- - 1
10
- version: 0.14.1
9
+ - 2
10
+ version: 0.14.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Brian Chamberlain
@@ -61,7 +61,9 @@ files:
61
61
  - README.md
62
62
  - Rakefile
63
63
  - VERSION
64
+ - app/controllers/results_controller.rb
64
65
  - app/controllers/surveyor_controller.rb
66
+ - app/helpers/results_helper.rb
65
67
  - app/helpers/survey_form_builder.rb
66
68
  - app/helpers/surveyor_helper.rb
67
69
  - app/models/answer.rb
@@ -76,11 +78,14 @@ files:
76
78
  - app/models/survey_section_sweeper.rb
77
79
  - app/models/validation.rb
78
80
  - app/models/validation_condition.rb
81
+ - app/views/layouts/results.html.erb
79
82
  - app/views/layouts/surveyor_default.html.erb
80
83
  - app/views/partials/_answer.html.haml
81
84
  - app/views/partials/_question.html.haml
82
85
  - app/views/partials/_question_group.html.haml
83
86
  - app/views/partials/_section.html.haml
87
+ - app/views/results/index.html.erb
88
+ - app/views/results/show.html.erb
84
89
  - app/views/surveyor/edit.html.haml
85
90
  - app/views/surveyor/new.html.haml
86
91
  - app/views/surveyor/show.html.haml
@@ -148,6 +153,7 @@ files:
148
153
  - generators/surveyor/templates/assets/javascripts/surveyor.js
149
154
  - generators/surveyor/templates/assets/stylesheets/jquery-ui-slider-additions.css
150
155
  - generators/surveyor/templates/assets/stylesheets/reset.css
156
+ - generators/surveyor/templates/assets/stylesheets/results.css
151
157
  - generators/surveyor/templates/assets/stylesheets/sass/surveyor.sass
152
158
  - generators/surveyor/templates/assets/stylesheets/ui.theme.css
153
159
  - generators/surveyor/templates/locales/surveyor_en.yml