LiteracyVolunteersOfMA/lvm-rails

View on GitHub
app/views/tutors/_form.html.erb

Summary

Maintainability
Test Coverage

<% if @tutor.errors.any? %>
  <div id="error_explanation">
    <h2>
      <%= pluralize(@tutor.errors.count, "error") %> prohibited
      this tutor from being saved:
    </h2>
    <ul>
    <% @tutor.errors.full_messages.each do |msg| %>
      <li><%= msg %></li>
    <% end %>
    </ul>
  </div>
<% end %>

<form role="form">

  <section id="lvmInfo">
    <h4>LVM Information</h4>
    <hr>
    <div class="row">
      <div class="col-md-4">
        <%= f.input :smartt_id, label: "SMARTT ID", placeholder: "####-######", maxlength: 11, required: false, input_html: { class: "mask_smartt_id" } %>
      </div>

      <div class="col-md-4">
        <%= f.input :last_name_id, label: "Last name ID", placeholder: "#####", maxlength: 5, required: false %>
      </div>

      <div class="col-md-4">
        <div class="pull-right">
          <%= f.input :intake_date, input_html: { class: 'datepicker' }, placeholder: "YYYY-MM-DD", required: false %>
        </div>
      </div>

    </div>

    <div class="row">
      <div class="col-md-12">
        <label class="control-label select optional" for="tutor_all_tags">Tags</label>
        <p class="help-block">Select tags from the list or create a new tag by typing in a word or phrase and then hitting the comma key.</p>
        <%= f.input :all_tags,
                    label: false,
                    as: :select,
                    collection: Tag.order(:name).map{ |i| [i.name, i.name]},
                    input_html: {multiple: true},
                    required: false %>
      </div>
    </div>
  </section>

  <section id="contactInfo">
    <h4>Contact Information</h4>
    <hr>
    <div class="row">
      <div class ="col-md-6">
        <%= f.input :first_name, maxlength: 255, required: false %>
      </div>

      <div class ="col-md-6">
        <%= f.input :last_name, maxlength: 255, required: false %>
      </div>
    </div>

    <div class="row">
      <div class ="col-md-6">
        <%= f.input :address1, label: "Address 1", maxlength: 255, required: false %>
      </div>

      <div class ="col-md-6">
        <%= f.input :address2, label: "Address 2", maxlength: 255, required: false %>
      </div>
    </div>

    <div class="row">
      <div class="col-md-8">
        <%= f.input :city, maxlength: 255, required: false %>
      </div>

      <div class="col-md-2">
        <%= f.input :zip, label: "Zip Code", placeholder: "#####", maxlength: 5, required: false, input_html: { class: "mask_zip" } %>
      </div>

      <div class="col-md-2">
        <%= f.input :state, collection: us_states, selected: "MA", required: false %>
      </div>
    </div>

    <div class="row">
      <div class="col-md-12">
        <p class="help-block"> At least one phone number is required.</p>
      </div>

      <div class="col-md-4">
        <%= f.input :home_phone, maxlength: 14, placeholder: "(###) ###-####", required: false, input_html: { class: "mask_phone" } %>
      </div>

      <div class="col-md-4">
        <%= f.input :cell_phone, maxlength: 14, placeholder: "(###) ###-####", required: false, input_html: { class: "mask_phone" } %>
      </div>

      <div class="col-md-4">
        <%= f.input :other_phone, maxlength: 14, placeholder: "(###) ###-####", required: false, input_html: { class: "mask_phone" } %>
      </div>
    </div>

    <div class="row">
      <div class="col-md-6">
        <%= f.input :email_preferred, as: :string, label: "Preferred email", maxlength: 255, required: false, input_html: { class: "mask_email" } %>
      </div>

      <div class="col-md-6">
        <%= f.input :email_other, as: :string, label: "Other email", maxlength: 255, required: false, input_html: { class: "mask_email" } %>
      </div>
    </div>

    <div class="row">
      <div class="col-md-4">
        <%= f.input :emergency_contact_name, maxlength: 255, required: false %>
      </div>

      <div class="col-md-4">
        <%= f.input :emergency_contact_phone, maxlength: 14, placeholder: "(###) ###-####", required: false, input_html: { class: "mask_phone" } %>
      </div>

      <div class="col-md-4">
        <%= f.input :emergency_contact_email, as: :string, maxlength: 255, required: false, input_html: { class: "mask_email" } %>
      </div>
    </div>

    <hr>

    <div class="row">
      <div class="col-md-12">
        <div class="form-group">
          <label class="control-label"> Contact Method Preferences </label>
        </div>
      </div>
    </div>

    <div class="row">
      <div class="col-md-4">
        <%= f.input :preferred_contact_method, collection: general_contact_preferences, label: "General Contact", required: false %>
      </div>

      <div class="col-md-4">
        <%= f.input :preferred_contact_class_listing, collection: roster_contact_preferences, label: "Class Roster", required: false %>
      </div>

      <div class="col-md-4">
        <%= f.input :preferred_contact_data_collection, collection: general_contact_preferences, label: "Data Collection", required: false %>
      </div>
    </div>
  </section>

  <section id="personalInfo">
    <h4>Personal Information</h4>
    <hr>
    <div class="row">
      <div class="col-md-4">
        <div class="form-group">
          <label class="control-label radio-label"> Gender </label>
          <%= f.collection_radio_buttons :gender, [[:female, 'Female'] ,[:male, 'Male'], [:other, 'Other']], :first, :last %>
        </div>
      </div>

      <div class="col-md-2">
        <div class="form-group">
          <label class="control-label radio-label"> Hispanic or Latino </label>
          <%= f.collection_radio_buttons :hispanic_or_latino, [[:true, 'Yes'] ,[:false, 'No']], :first, :last %>
        </div>
      </div>

      <div class="col-md-3">
        <div class="form-group">
          <%= f.input :date_of_birth, input_html: { class: 'datepicker' }, placeholder: "YYYY-MM-DD", required: false %>
        </div>
      </div>

      <div class="col-md-3">
        <%= f.input :status, collection: status_options, required: false %>
      </div>
    </div>

    <div class="row">
      <div class="col-md-4">
        <%= f.input :native_language, collection: native_language, selected: "English", required: false %>
      </div>

      <div class="col-md-4">
        <%= f.input :race, collection: race, required: false %>
      </div>

      <div class="col-md-4">
        <%= f.input :country_of_birth, as: :string, maxlength: 255, required: false %>
      </div>

    </div>
  </section>


  <section id="preferences">
    <h4>Tutoring Preferences</h4>
    <hr>
    <div class="row">
      <div class="col-md-3">
        <%= f.input :availability,
                    as: :check_boxes,
                    collection: availability_times,
                    checked: @tutor.current_availability_array,
                    required: false %>
      </div>
      <div class="col-md-3">
        <%= f.input :age_preference,
                    as: :check_boxes,
                    collection: age_preference,
                    checked: @tutor.age_preference_array,
                    label: "Student Preference",
                    required: false %>
      </div>
      <div class="col-md-6">
        <%= f.input :category_preference,
                    as: :check_boxes,
                    collection: category_preference,
                    checked: @tutor.category_preference_array,
                    label: "I feel comfortable working with the following student categories:",
                    required: false %>
        <%= f.input :preferred_student_level,
                    collection: preferred_student_level,
                    label: "Preferred Student Level",
                    required: false %>
        <%= f.input :transporation,
                    as: :check_boxes,
                    collection: transportation_preference,
                    checked: @tutor.transportation_preference_array,
                    label: "What kind of transportation will you be using to get to tutoring sessions?",
                    required: false %>
        <%= f.input :meet_at_local_library, as: :radio_buttons, label: 'Can you meet at the local library?', required: false %>
        <%= f.input :where_can_meet, label: 'If not, where can you meet?', required: false %>

      </div>
      <div class="col-md-12">
        <%= f.input :other_preferences, as: :text, label: 'Other Preferences', required: false %>
      </div>
    </div>
  </section>

  <section id="experience">
    <h4>Education and Experience</h4>
    <hr>
    <div class="row">
      <div class="col-md-4">
        <div class="form-group">
          <label class="control-label radio-label"> Criminal Conviction </label>
          <%= f.collection_radio_buttons :criminal_conviction, [[:true, 'Yes'] ,[:false, 'No']], :first, :last %>
        </div>
      </div>

      <div class="col-md-4">
        <div class="form-group">
          <label class="control-label radio-label"> Release on File </label>
          <%= f.collection_radio_buttons :release_on_file, [[:true, 'Yes'] ,[:false, 'No']], :first, :last %>
        </div>
      </div>

      <div class="col-md-4">
        <%= f.input :release_sign_date, input_html: { class: 'datepicker' }, placeholder: "YYYY-MM-DD", required: false %>
      </div>
    </div>

    <div class="row">
      <div class="col-md-4">
        <%= f.input :orientation_date, input_html: { class: 'datepicker' }, placeholder: "YYYY-MM-DD", required: false %>
      </div>

      <div class="col-md-4">
        <%= f.input :training_date, input_html: { class: 'datepicker' }, placeholder: "YYYY-MM-DD", required: false %>
      </div>

      <div class="col-md-4">
        <div class="form-group">
          <label class="control-label radio-label"> Training Type </label>
          <%= f.collection_radio_buttons :training_type, [[:abe, 'ABE'] ,[:esol, 'ESOL']], :first, :last %>
        </div>
      </div>
    </div>

    <hr>

    <div class="row">
      <div class="col-md-4">
        <%= f.input :referral, collection: referral, required: false %>
      </div>

      <div class="col-md-4">
        <%= f.input :referral_other, label: "If Other:", maxlength: 255, required: false %>
      </div>

      <div class="col-md-4">
        <%= f.input :education, collection: education, required: false %>
      </div>
    </div>

    <div class="row">
      <div class="col-md-6">
        <%= f.input :colleges_attended, as: :text, required: false %>
      </div>

      <div class="col-md-6">
        <%= f.input :educational_accomplishments, as: :text, required: false %>
      </div>
    </div>

    <div class="row">
      <div class="col-md-6">
        <%= f.input :previous_teaching_experience, as: :text, required: false %>
      </div>

      <div class="col-md-6">
        <%= f.input :previous_volunteer_experience, as: :text, required: false %>
      </div>
    </div>

    <hr>

    <div class="row">
      <div class="col-md-6">
        <%= f.input :teachable_subjects, as: :text, required: false %>
      </div>

      <div class="col-md-6">
        <%= f.input :hobbies, as: :text, required: false %>
      </div>
    </div>

    <hr>

    <div class="row">
      <div class="col-md-6">
        <%= f.input :employment_status, collection: employment, required: false %>
      </div>

      <div class="col-md-6">
        <%= f.input :occupation, label: "Specific Occupation", maxlength: 255, required: false %>
      </div>
    </div>

    <div class="row">
      <div class="col-md-6">
        <%= f.input :employer_name, maxlength: 255, required: false %>
      </div>

      <div class="col-md-6">
        <%= f.input :past_occupation, maxlength: 255, required: false %>
      </div>
    </div>
  </section>

  <section id="languageProficiencies">
    <h4>Language Proficiencies</h4>
    <hr>
    <%= simple_fields_for :language_proficiencies do |o| %>
      <% native_language.each_with_index do |l, idx| %>
        <% lang = l[0] %>
        <% if idx % 4 == 0 %>
          <div class="row">
        <% end %>
        <div class="col-md-3">
          <div class="form-group">
            <div> <%= lang %> </div>
            <div class="input-group">
              <div class="collection_radio_buttons">
                <%= o.select lang, language_proficiency %>
              </div>
            </div>
          </div>
        </div>
        <% if idx % 4 == 3 %>
          </div>
        <% end %>
      <% end %>
    <% end %>
  </section>

  <section>
    <%= f.button :submit %>
  </section>
  <hr>
</form>

<script>$('.datepicker').datepicker({ 'dateFormat': 'yy-mm-dd' });</script>
<script>
  $('.mask_zip').inputmask("99999", { "placeholder": "#" });
  $('.mask_phone').inputmask("(999) 999-9999", { "placeholder": "#" });
  $('.mask_smartt_id').inputmask("9999-999999", { "placeholder": "#" });
  $('.mask_email').inputmask({ alias: "email" });
</script>

<%= javascript_tag do %>
  var lp = JSON.parse('<%= @tutor.language_proficiencies? ? @tutor.language_proficiencies.html_safe : {} %>');
  for (var language in lp) {
    var proficiency = lp[language];
    $("#language_proficiencies_" + language).val(proficiency);
  }
<% end %>

<script>initChosenTagSelect("tutor");</script>