# ➜ bin/rails db:environment:set RAILS_ENV=development # ➜ rails db:schema:load # ➜ rails db:seed # Create Organization org = Org.create!(name: "Conditional Tests Organisation", abbreviation: "CONTO", org_type: 1, language: Language.where(default_language: true).first || Language.first, managed: true ) # Create admin user user = User.create!( email: "admin@conto.org", firstname: "Admin", surname: "User", password: "password123", password_confirmation: "password123", org: org ) user.perms = [Perm.where(name: "change_org_details").first, Perm.where(name: "modify_templates").first] user.save! # Create template with org and required attributes template = Template.new( title: "Conditional Questions Test Template", org: org, locale: "en", visibility: "organisationally_visible" ) # Create a phase phase = Phase.new(title: "Planning Phase", number: 1, modifiable: true) template.phases << phase template.save! # Create 3 sections section1 = Section.new(title: "Section 1: (Q2 is the Conditional Question for testing)", number: 1, modifiable: true) section2 = Section.new(title: "Section 2", number: 2, modifiable: true) section3 = Section.new(title: "Section 3", number: 3, modifiable: true) phase.sections << [section1, section2, section3] template.save! radiobutton_options_section1 = [QuestionOption.new(text: "Yes (REMOVES: Q5 (checkbox), Q9 (radiobuttons), Q14 (textarea), Q17(text), Q18 (date), Q20 (dropdown))", number: 1, is_default: false), QuestionOption.new(text: "No (REMOVES: Q6 (dropdown), Q7 (textarea), Q11 (date), Q10 (text), Q16(radiobuttons), Q19 (checkbox))", number: 2, is_default: false), QuestionOption.new(text: "Don't Know", number: 3, is_default: false)] checkbox_options_section1 = [QuestionOption.new(text: "Personal Data", number: 1, is_default: false), QuestionOption.new(text: "Business Data", number: 2, is_default: false), QuestionOption.new(text: "Transactional Data", number: 3, is_default: false), QuestionOption.new(text: "Media Data", number: 4, is_default: false), QuestionOption.new(text: "Qualitative Data", number: 5, is_default: false), QuestionOption.new(text: "Knowledge Data", number: 6, is_default: false)] dropdown_options_section1 = [QuestionOption.new(text: "Yes", number: 1, is_default: false), QuestionOption.new(text: "No", number: 2, is_default: false), QuestionOption.new(text: "N/A", number: 3, is_default: false)] # Add 7 questions to Section 1 questions_section1 = [ Question.new(text: "Q1. Project title", number: 1, question_format: QuestionFormat.textarea.first, modifiable: true, versionable_id:1), Question.new(text: "Q2. Will your data be open? THE CONDITIONAL QUESTION", number: 2, question_format: QuestionFormat.radiobuttons.first, modifiable: true, versionable_id:1, question_options: radiobutton_options_section1), Question.new(text: "Q3. Name the main person coordinating this project.", number: 3, question_format: QuestionFormat.textfield.first, modifiable: true, versionable_id:1), Question.new(text: "Q4. Start date of project?", number: 4, question_format: QuestionFormat.date.first, modifiable: true, versionable_id:1), Question.new(text: "Q5. What data will be publicly shared?", number: 5, question_format: QuestionFormat.checkbox.first, modifiable: true, versionable_id:1, question_options: checkbox_options_section1), Question.new(text: "Q6. Does the research collect personal data?", number: 6, question_format: QuestionFormat.dropdown.first, modifiable: true, versionable_id:1, question_options: dropdown_options_section1), Question.new(text: "Q7. Please give a description of project. ", number: 7, question_format: QuestionFormat.textarea.first, modifiable: true, versionable_id:1) ] section1.questions = questions_section1 # Add questions to Section 2 and 3 similarly # Save template template.save! # Section 2 radiobutton_options_section2 = [QuestionOption.new(text: "Canada", number: 1, is_default: false), QuestionOption.new(text: "France", number: 2, is_default: false), QuestionOption.new(text: "UK", number: 3, is_default: false), QuestionOption.new(text: "Other", number: 4, is_default: false)] checkbox_options_section2 = [QuestionOption.new(text: "Public", number: 1, is_default: false), QuestionOption.new(text: "Private", number: 2, is_default: false), QuestionOption.new(text: "Community", number: 3, is_default: false)] dropdown_options_section2 = [QuestionOption.new(text: "Creative Commons Attribution 4.0 International Public License", number: 1, is_default: false), QuestionOption.new(text: "Other", number: 2, is_default: false)] # Add 7 questions to Section 2 questions_section2 = [ Question.new(text: "Q8. Describe how you will collect your data.", number: 1, question_format: QuestionFormat.textarea.first, modifiable: true, versionable_id:1), Question.new(text: "Q9. Choose the main country for this project", number: 2, question_format: QuestionFormat.radiobuttons.first, modifiable: true, versionable_id:1, question_options: radiobutton_options_section2), Question.new(text: "Q10. Who is the main funder for this project", number: 3, question_format: QuestionFormat.textfield.first, modifiable: true, versionable_id:1), Question.new(text: "Q11. When does funding end?", number: 4, question_format: QuestionFormat.date.first, modifiable: true, versionable_id:1), Question.new(text: "Q12. What type of organisations will you share your data?", number: 5, question_format: QuestionFormat.checkbox.first, modifiable: true, versionable_id:1, question_options: checkbox_options_section2), Question.new(text: "Q13. Under what Open licence will be the data/code released? ", number: 6, question_format: QuestionFormat.dropdown.first, modifiable: true, versionable_id:1, question_options: dropdown_options_section2), Question.new(text: "Q14. Which persons/organisations will you share your data with?", number: 7, question_format: QuestionFormat.textarea.first, modifiable: true, versionable_id:1) ] section2.questions = questions_section2 # Section 3 radiobutton_options_section3 = [QuestionOption.new(text: "Yes", number: 1, is_default: false), QuestionOption.new(text: "No", number: 2, is_default: false), QuestionOption.new(text: "Don't Know", number: 3, is_default: false)] checkbox_options_section3 = [QuestionOption.new(text: "Experiments", number: 1, is_default: false), QuestionOption.new(text: "Surveys", number: 2, is_default: false), QuestionOption.new(text: "Observations", number: 3, is_default: false), QuestionOption.new(text: "Case studies", number: 4, is_default: false), QuestionOption.new(text: "Interviews and focus groups", number: 5, is_default: false), QuestionOption.new(text: "Secondary data analysis", number: 6, is_default: false), QuestionOption.new(text: "Mixed methods", number: 1, is_default: false)] dropdown_options_section3 = [QuestionOption.new(text: "French", number: 1, is_default: false), QuestionOption.new(text: "English", number: 2, is_default: false), QuestionOption.new(text: "Spanish", number: 3, is_default: false), QuestionOption.new(text: "Other", number: 3, is_default: false)] # Add 7 questions to Section 3 questions_section3 = [ Question.new(text: "Q15. Who will benefit from this project?", number: 1, question_format: QuestionFormat.textarea.first, modifiable: true, versionable_id:1), Question.new(text: "Q16. Will your data be placed in a research data repository?", number: 2, question_format: QuestionFormat.radiobuttons.first, modifiable: true, versionable_id:1, question_options: radiobutton_options_section3), Question.new(text: "Q17. Expected data volume?", number: 3, question_format: QuestionFormat.textfield.first, modifiable: true, versionable_id:1), Question.new(text: "Q18. Date you expect to complete project", number: 4, question_format: QuestionFormat.date.first, modifiable: true, versionable_id:1), Question.new(text: "Q19. Main research methods to be used", number: 5, question_format: QuestionFormat.checkbox.first, modifiable: true, versionable_id:1, question_options: checkbox_options_section3), Question.new(text: "Q20. What will be the main language the research is conducted in?", number: 6, question_format: QuestionFormat.dropdown.first, modifiable: true, versionable_id:1, question_options: dropdown_options_section3), Question.new(text: "Q21. Team members", number: 7, question_format: QuestionFormat.textarea.first, modifiable: true, versionable_id:1) ] section3.questions = questions_section3 # Set up conditional question # Yes (REMOVES: Q5 (checkbox), Q9 (radiobuttons), Q14 (textarea), Q17(text), Q18 (date), Q20 (dropdown)) condition1 = Condition.create!( action_type: 'remove', question: questions_section1[1], option_list: [radiobutton_options_section1[0].id], remove_data: [section1.questions[4].id, section2.questions[1].id, section2.questions[6].id, section3.questions[2].id, section3.questions[3].id, section3.questions[5].id] ) # Set up conditional question # No (REMOVES: Q6 (dropdown), Q7 (textarea), Q10 (text), Q11 (date), Q16(radiobuttons), Q19 (checkbox)) condition2 = Condition.create!( action_type: 'remove', question: questions_section1[1], option_list: [radiobutton_options_section1[1].id], remove_data: [section1.questions[5].id, section1.questions[6].id, section2.questions[2].id, section2.questions[3].id, section3.questions[1].id, section3.questions[4].id] ) template.publish!