LiteracyVolunteersOfMA/lvm-rails

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

Summary

Maintainability
Test Coverage

<% if @student.errors.any? %>
  <div id="error_explanation">
    <h2>
      <%= pluralize(@student.errors.count, "error") %> prohibited
      this student from being saved:
    </h2>
    <ul>
    <% @student.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, input_html: { class: "last_name_id" } %>
      </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="student_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, as: :string, label: "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>

  <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>

    <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: "Preferred Contact", required: false %>
      </div>
    </div>

    <div class="row">
      <div class="col-md-1">
      </div>

      <div class="col-md-2">
        <div class="form-group">
          <label class="control-label"> Mail </label>

          <%= f.label :mail_ok,  class: 'checkbox'  do %>
          <%= f.check_box :mail_ok, as: :boolean, input_html: {checked: false}, label: "mail ok?", required: false %>
          mail ok?
          <% end %>
       </div>
      </div>

      <div class="col-md-2">
        <div class="form-group">
          <label class="control-label"> Email </label>
          <%= f.label :email_ok,  class: 'checkbox'  do %>
          <%= f.check_box :email_ok, as: :boolean, input_html: {checked: false}, label: "email ok?", required: false %>
          email ok?
          <% end %>
       </div>
      </div>

      <div class="col-md-2">
        <div class="form-group">
          <label class="control-label"> Cell Phone </label>
          <%= f.label :cell_ok,  class: 'checkbox'  do %>
          <%= f.check_box :cell_ok, as: :boolean, input_html: {checked: false}, label: "cell ok?", required: false %>
          cell ok?
          <% end %>
          <%= f.label :cell_lvm_ok,  class: 'checkbox'  do %>
          <%= f.check_box :cell_lvm_ok, as: :boolean, input_html: {checked: false}, label: "lvm ok?", required: false %>
          lvm ok?
          <% end %>
       </div>
      </div>
      <div class="col-md-2">
        <div class="form-group">
          <label class="control-label"> Home Phone </label>
          <%= f.label :home_ok,  class: 'checkbox'  do %>
          <%= f.check_box :home_ok, as: :boolean, input_html: {checked: false}, label: "home ok?", required: false %>
          home ok?
          <% end %>
          <%= f.label :home_lvm_ok,  class: 'checkbox'  do %>
          <%= f.check_box :home_lvm_ok, as: :boolean, input_html: {checked: false}, label: "lvm ok?", required: false %>
          lvm ok?
          <% end %>
       </div>
      </div>
      <div class="col-md-2">
        <div class="form-group">
          <label class="control-label"> Work Phone </label>
          <%= f.label :work_ok,  class: 'checkbox'  do %>
          <%= f.check_box :work_ok, as: :boolean, input_html: {checked: false}, label: "work ok?", required: false %>
          work ok?
          <% end %>
          <%= f.label :work_lvm_ok,  class: 'checkbox'  do %>
          <%= f.check_box :work_lvm_ok, as: :boolean, input_html: {checked: false}, label: "lvm ok?", required: false %>
          lvm ok?
          <% end %>
       </div>
      </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: @student.current_availability_array,
                    required: false %>
      </div>
      <div class="col-md-3">
        <%= f.input :age_preference,
                    as: :check_boxes,
                    collection: age_preference,
                    checked: @student.age_preference_array,
                    label: "Student Preference",
                    required: false %>
      </div>
      <div class="col-md-6">
        <%= f.input :transportation,
                    as: :check_boxes,
                    collection: transportation_preference,
                    checked: @student.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="background">
    <h4>Background</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">
        <div class="form-group">
          <label class="control-label radio-label"> Immigrant or US Native </label>
          <%= f.collection_radio_buttons :immigrant_status, [[:true, 'Immigrant'] ,[:false, 'US native']], :first, :last %>
        </div>
      </div>
    </div>
  </section>

  <section id="referral">
    <h4>Referral & Services</h4>
    <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-12">
          <%= f.input :why_lvm, as: :text, label: 'Why LVM?', required: false %>
      </div>
    </div>

    <hr>

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

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

  </section>

  <section id="cdbg">
    <h4>CDBG Information</h4>
    <hr>
    <div class="row">
      <div class="col-md-3">
        <div class="form-group">
          <label class="control-label radio-label"> CBDG required </label>
          <%= f.collection_radio_buttons :cdbg_required, [[:true, 'Yes'] ,[:false, 'No']], :first, :last %>
        </div>
      </div>

      <div class="col-md-3">
        <div class="form-group">
          <label class="control-label radio-label"> US citizen </label>
          <%= f.collection_radio_buttons :cdbg_us_citizen, [[:true, 'Yes'] ,[:false, 'No']], :first, :last %>
        </div>
      </div>

      <div class="col-md-3">
        <div class="form-group">
          <label class="control-label radio-label"> Legal resident (green card or other)</label>
          <%= f.collection_radio_buttons :cdbg_legal_resident, [[:true, 'Yes'] ,[:false, 'No']], :first, :last %>
        </div>
      </div>

      <div class="col-md-3">
        <div class="form-group">
          <label class="control-label radio-label"> Female head of household </label>
          <%= f.collection_radio_buttons :cdbg_female_head_of_household, [[:true, 'Yes'] ,[:false, 'No']], :first, :last %>
        </div>
      </div>
    </div>

    <div class="row">
      <div class="col-md-6">
        <%= f.input :cdbg_household_size, label: " Houshold size ", placeholder: '0', as: :integer, maxlength: 2, required: false %>
      </div>

      <div class="col-md-6">
        <%= f.input :cdbg_household_income, label: " Household income ", collection: income_ranges, required: false %>
      </div>
    </div>

  </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": "#" });
  $('.last_name_id').inputmask("99999", { "placeholder": "#" });
  $('.mask_email').inputmask({ alias: "email" });
</script>

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