app/views/devise/sessions/new.html.erb
<% content_for :page_title, t('devise.sessions.new.page_title') %>
<div class="row justify-content-md-center">
<div class="col col-md-12 col-lg-8">
<h1 class='mt-lg-4 mt-sm-0'><%= t('devise.sessions.new.title') %>…</h1>
<ul class="nav nav-tabs" id="signinTabs" role="tablist">
<li class="nav-item">
<a class="nav-link font-weight-bold <%= 'active' if params[:role] != 'pupil'%>" id="staff-tab" data-toggle="tab" href="#staff" role="tab" aria-controls="staff" aria-selected="true"><%= t('devise.sessions.new.email_address_and_password') %></a>
</li>
<li class="nav-item">
<a class="nav-link font-weight-bold <%= 'active' if params[:role] == 'pupil' %>" id="pupil-tab" data-toggle="tab" href="#pupil" role="tab" aria-controls="pupil" aria-selected="false"><%= t('devise.sessions.new.pupil_password') %></a>
</li>
</ul>
<div class="tab-content" id="signinTabsContent">
<div class="tab-pane fade <%= 'show active' if params[:role] != 'pupil'%>" id="staff" role="tabpanel" aria-labelledby="staff-tab">
<%= form_for(resource, as: resource_name, url: session_path(resource_name), html: {class: 'form-horizontal mt-3'}) do |f| %>
<%= render "devise/shared/error_messages", resource: resource %>
<div class="form-group row">
<%= f.label :email, class: "col-sm-4 col-form-label" %>
<div class="col-sm-6">
<%= f.email_field :email, autofocus: true , class: "form-control" %>
</div>
</div>
<div class="form-group row">
<%= f.label :password, class: "col-sm-4 col-form-label" %>
<div class="col-sm-6">
<%= f.password_field :password, autocomplete: "off", class: "form-control" %>
</div>
</div>
<% if devise_mapping.rememberable? -%>
<div class="form-group row">
<%= f.label :remember_me, t('devise.sessions.new.remember_me'), class: "col-sm-4 col-form-label" %>
<div class="col-sm-6">
<%= f.check_box :remember_me, class: "form-control col-1" %>
</div>
</div>
<% end -%>
<div class="form-group row">
<div class="col-sm-6 offset-sm-4">
<%= f.submit t('devise.sessions.new.sign_in'), class: 'btn btn-primary' %>
</div>
</div>
<div class="form-group row">
<div class="col-sm-6 offset-sm-4">
<%= render "devise/shared/links" %>
</div>
</div>
<% end %>
</div>
<div class="tab-pane fade <%= 'show active' if params[:role] == 'pupil'%>" id="pupil" role="tabpanel" aria-labelledby="pupil-tab">
<%= simple_form_for :pupil, url: pupils_session_path, html: { autocomplete: 'off', class: 'mt-3'} do |f| %>
<%- if @school %>
<%= link_to t('devise.sessions.new.not_your_school'), url_for(role: 'pupil'), class: 'float-right'%>
<h3><%= t('devise.sessions.new.pupil_sign_in_for') %> <%= @school&.name %></h3>
<%= f.hidden_field :school_id, value: @school&.id %>
<% else %>
<%= f.input :school_id, as: :select, collection: @schools, label_method: lambda { |school| school_name_group(school) } , label: t('devise.sessions.new.select_your_school') %>
<% end %>
<%= f.input :password, as: :string, label: t('devise.sessions.new.your_pupil_password'), input_html: {autocapitalize: :none}%>
<%= f.submit t('devise.sessions.new.sign_in'), class: 'btn btn-primary' %>
<% end %>
</div>
</div>
</div>
</div>