diff --git a/app/models/survey_item.rb b/app/models/survey_item.rb index f24a378..68d710f 100644 --- a/app/models/survey_item.rb +++ b/app/models/survey_item.rb @@ -4,7 +4,7 @@ class SurveyItem < ActiveRecord::Base attr_accessible :description, :display_type, :help, :item_type, :questions_type, :string_type, :title, :archived, :locked, :text_presentation, :max_checkboxes ITEM_TYPES = ["question", "note"] - QUESTIONS_TYPES = ["boolean", "string", "check_box", "radio"] + QUESTIONS_TYPES = ["boolean", "string", "check_box", "radio", "little_string"] DISPLAY_TYPES = ["inline", "grid", "dropdown"] has_many :answers, :class_name => "SurveyItemAnswer", :dependent => :destroy diff --git a/app/models/survey_item_answer.rb b/app/models/survey_item_answer.rb index f4c509a..747896f 100644 --- a/app/models/survey_item_answer.rb +++ b/app/models/survey_item_answer.rb @@ -3,7 +3,7 @@ class SurveyItemAnswer < ActiveRecord::Base belongs_to :survey_item attr_accessible :class_text, :data_type, :field_type, :help_text, :label_text, :archived, :locked has_many :answer_sets - FIELD_TYPES=["normal", "other"] + FIELD_TYPES=["normal", "other", "other_large"] DATA_TYPE = ["integer", "string", "date"] end diff --git a/app/views/admin/survey_types/show.html.haml b/app/views/admin/survey_types/show.html.haml index ef2c4f7..8bf5768 100644 --- a/app/views/admin/survey_types/show.html.haml +++ b/app/views/admin/survey_types/show.html.haml @@ -116,15 +116,15 @@ -categories << "non répondu" -chart_data << {:name => "non répondu", :y => count, :per => per.to_s} - -if item.answers.where(:field_type => 2).count > 0 + -if item.answers.where(:field_type => [2,3]).count > 0 -np = 0 - -item.answers.where(:field_type => 2).each do |a| + -item.answers.where(:field_type => [2,3]).each do |a| %h4 Réponses personnalisées pour " =a.label_text " %table.large - -a.answer_sets.where(:is_checked => true).each do |a| + -a.answer_sets.each do |a| -if a.content? %tr %td{:colspan => 3}=a.content diff --git a/app/views/survey_sets/_answer_set.html.haml b/app/views/survey_sets/_answer_set.html.haml index 09028da..527bae7 100644 --- a/app/views/survey_sets/_answer_set.html.haml +++ b/app/views/survey_sets/_answer_set.html.haml @@ -3,30 +3,32 @@ -.answer_p - +.answer_p + - =f.check_box :is_checked, :class => "checkboxe_#{answer.survey_item.id}" - -checkboxe_class = "checkboxe_#{answer.survey_item.id}" - =f.label :is_checked, answer.label_text + =f.check_box :is_checked, :class => "checkboxe_#{answer.survey_item.id}" + -checkboxe_class = "checkboxe_#{answer.survey_item.id}" + =f.label :is_checked, answer.label_text - =f.text_field :content if answer.field_type == 2 - + =f.text_field :content if answer.field_type == 2 + %br + =f.text_area :content, :class => "large" if answer.field_type == 3 + - + -if 1 == 2 - %script - = raw '$("input[type=checkbox][class='+checkboxe_class+']").click(function() {' - - = raw 'var bol = $("input[type=checkbox][class='+checkboxe_class+']:checked").length >= 1000;' - = raw '$("input[type=checkbox][class='+checkboxe_class+']").not(":checked").attr("disabled",bol);' + %script + = raw '$("input[type=checkbox][class='+checkboxe_class+']").click(function() {' + + = raw 'var bol = $("input[type=checkbox][class='+checkboxe_class+']:checked").length >= 1000;' + = raw '$("input[type=checkbox][class='+checkboxe_class+']").not(":checked").attr("disabled",bol);' - }); - + }); + - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/views/survey_sets/_question_set.html.haml b/app/views/survey_sets/_question_set.html.haml index 609895a..bf7dd64 100644 --- a/app/views/survey_sets/_question_set.html.haml +++ b/app/views/survey_sets/_question_set.html.haml @@ -1,31 +1,32 @@ .question=item.title - + -if item.questions_type == 1 - .answer_p - =f.radio_button :boolean_content, true - =f.label :boolean_content_true, "oui" - =f.radio_button :boolean_content, false - =f.label :boolean_content_false, "non" - + .answer_p + =f.radio_button :boolean_content, true + =f.label :boolean_content_true, "oui" + =f.radio_button :boolean_content, false + =f.label :boolean_content_false, "non" + -elsif item.questions_type == 2 - .answer_p - -if item.text_presentation == 2 - =f.text_area :content, :class => "large" - -else - =f.text_field :content, :class => "large" + .answer_p + -if item.text_presentation == 2 + =f.text_area :content, :class => "large" + -else + =f.text_field :content, :class => "large" + -elsif item.questions_type == 3 - = f.fields_for(:answer_sets) do |f| - =f.hidden_field :survey_item_answer_id - =render :partial => "survey_sets/answer_set", :locals => {:f => f, :answer => f.object.survey_item_answer} - --elsif item.questions_type == 4 - - -item.answers.each do |answer| - .answer_p{:style =>( "display:inline;" if item.display_type == 1)} - =f.radio_button :content, answer.label_text - =f.label :content, answer.label_text, :value => answer.label_text - - - - \ No newline at end of file + = f.fields_for(:answer_sets) do |f| + =f.hidden_field :survey_item_answer_id + =render :partial => "survey_sets/answer_set", :locals => {:f => f, :answer => f.object.survey_item_answer} + +-elsif item.questions_type == 4 + + -item.answers.each do |answer| + .answer_p{:style =>( "display:inline;" if item.display_type == 1)} + =f.radio_button :content, answer.label_text + =f.label :content, answer.label_text, :value => answer.label_text + + + + \ No newline at end of file diff --git a/db/migrate/20130717000000_sondage_frapna.rb b/db/migrate/20130717000000_sondage_frapna.rb new file mode 100644 index 0000000..9192fb3 --- /dev/null +++ b/db/migrate/20130717000000_sondage_frapna.rb @@ -0,0 +1,76 @@ +# -*- encoding : utf-8 -*- + +class SondageFrapna < ActiveRecord::Migration + def up + + @survey = SurveyType.create(:name => "Questionnaire : la gestion quantitative de la ressource en eau", :slug => "07-13-ressource-en-eau", :description => "Dans notre bassin et jusqu’à récemment, la protection de la ressource en eau portait majoritairement sur sa qualité. Lutter contre les dégradations du milieu aquatique (remblais, décharges sauvages, aménagements illégaux), prévenir les pollutions et les contaminations des milieux aquatiques et de l’eau potable étaient les priorités. Un autre enjeu fort pèse désormais sur ces milieux : la diminution de la quantité de la ressource en eau, qui influence évidemment sa qualité ainsi que la bonne santé des écosystèmes aquatiques. + + +Intrinsèquement, la diminution de la quantité d’eau disponible pose des problèmes d’usage de la ressource. En effet, l’été, on assiste à une augmentation des besoins en eau en raison des fortes chaleurs, tandis que l’évaporation et l’évapotranspiration des végétaux augmente, les cours d’eau se réchauffent et que la ressource se raréfie. La dégradation des zones humides au cours du 20ème siècle, l’arrachage des haies, l’endiguement des cours d’eau, la régression des ripisylves (forêt sur les berges du cours d’eau), la monoculture et le développement de cultures très consommatrices d’eau pour répondre à l’intensification de la productivité ne permettent plus au milieu de stocker l’eau pour la restituer en période où cette ressource commence à manquer. Or, les usages de l’eau sont nombreux, que ce soit pour l’usage domestique, dans la production industrielle, pour les pratiques agricoles, etc. + + +Les problèmes deviennent récurrents et face à cela des arrêtés sécheresses sont pris tous les ans alors qu’ils sont censés répondre uniquement à une gestion de crise. + + +Par ailleurs, en montagne où l’étiage1 est plutôt hivernal, des pratiques telles que l’enneigement artificiel se développent avec une pression sur la ressource incompatible avec le maintien d’un bon état écologique des cours d’eau. + + +Notre association souhaite connaître votre avis sur cet enjeu. Pour cela nous vous invitons à répondre à ces quelques questions, qui nous serviront pour évaluer votre ressenti face à cette problématique qui mobilise de nombreux acteurs. + + +Les réponses aux questionnaires donneront lieu à l’édition d’une plaquette destinée au grand public, pour expliquer simplement les enjeux de la gestion quantitative de la ressource en eau. +") + + + item = @survey.items.build(:questions_type => 2, :text_presentation => 1, :title => "Merci de renseigner le N° de votre département ou celui pour lequel vous souhaitez apporter des réponses :", :item_type => 1) + +item = @survey.items.build(:questions_type => 3, :title => "Tout au long de votre expérience personnelle et/ou professionnelle, percevez-vous une diminution de la ressource en eau ?", :item_type => 1) +item.answers.build(:label_text => "Oui en Rhône–Alpes", :field_type => 1) +item.answers.build(:label_text => "Non en Rhône-Alpes", :field_type => 1) +item.answers.build(:label_text => "Ne sais pas/ pas d’avis pour Rhône-Alpes", :field_type => 1) +item.answers.build(:label_text => "Oui dans mon département", :field_type => 1) +item.answers.build(:label_text => "Non dans mon département", :field_type => 1) +item.answers.build(:label_text => "Ne sais pas/ pas d’avis dans mon département", :field_type => 1) + + +item = @survey.items.build(:questions_type => 3, :title => "Dans votre département, quels éléments vous permettent de constater la baisse de la quantité d’eau disponible ?", :item_type => 1) +item.answers.build(:label_text => "Restrictions sur l’usage domestique de l’eau", :field_type => 1) +item.answers.build(:label_text => "Sécheresse agricole - pertes pour les cultures", :field_type => 1) +item.answers.build(:label_text => "Baisse des débits/niveaux d’eau des cours d’eau, des sources voire à sec", :field_type => 1) +item.answers.build(:label_text => "Absence de pluie prolongée", :field_type => 1) +item.answers.build(:label_text => "Information dans la presse/TV", :field_type => 1) +item.answers.build(:label_text => "Autres > Précisez ", :field_type => 3) + + +item = @survey.items.build(:questions_type => 3, :title => "Selon vous, dans votre département, quels sont les usages qui posent un problème sur la quantité d’eau disponible ?", :item_type => 1) +item.answers.build(:label_text => "L’usage domestique (arrosage jardin, lavage voiture, piscine privée, bains)", :field_type => 1) +item.answers.build(:label_text => "L’usage industriel (refroidissement, production de matériaux, usage hydroélectrique)", :field_type => 1) +item.answers.build(:label_text => "L’usage agricole, irrigation des cultures", :field_type => 1) +item.answers.build(:label_text => "L’usage touristique (neige artificielle, arrosage espaces verts, piscine, spa, aménagement d’étangs de loisir)", :field_type => 1) + + +item = @survey.items.build(:questions_type => 3, :title => "Parmi les solutions proposées pour diminuer les problèmes de quantité de la ressource en eau, quelle priorisation souhaiteriez-vous appliquer dans votre département ? (merci d’indiquer l’ordre de priorité par des chiffres, de 1 à 6, devant les carrés)", :item_type => 1) +item.answers.build(:label_text => "Adaptation des cultures (plantes et méthodes) et des techniques d’irrigation", :field_type => 1) +item.answers.build(:label_text => "Sensibilisation des ménages/collectivités et restrictions obligatoires plus sévères en cas de sécheresse, aide à la mise en place de dispositifs/bonnes pratiques pour limiter les prélèvements.", :field_type => 1) +item.answers.build(:label_text => "Changement et adaptation des procédés et des productions industriels", :field_type => 1) +item.answers.build(:label_text => "Adaptation de l’urbanisation en fonction de la disponibilité de la ressource en eau", :field_type => 1) +item.answers.build(:label_text => "Adaptation de l’usage touristique de la ressource en eau en cas de sécheresse", :field_type => 1) +item.answers.build(:label_text => "Suspension ou interdiction de certains usages, précisez lesquels : ", :field_type => 3) +item.answers.build(:label_text => "Autres > Précisez ", :field_type => 3) + + + + + item = @survey.items.build(:questions_type => 2, :text_presentation => 2, :title => "Selon vous, y a-t-il des structures ou des outils spécifiques qui tentent de répondre à la problématique de la gestion quantitative de la ressource en eau (Merci de développer ci-dessous) ?", :item_type => 1) + + + @survey.save + + + + end + + def down + @survey = SurveyType.find_by_slug("07-13-ressource-en-eau").destroy + end +end diff --git a/db/schema.rb b/db/schema.rb index 694f394..cc72f84 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20130629170803) do +ActiveRecord::Schema.define(:version => 20130717000000) do create_table "admins", :force => true do |t| t.string "email", :default => "", :null => false