vincenttian/61A-Lab-Assistant

View on GitHub
app/views/admins/dashboard/show.html.erb

Summary

Maintainability
Test Coverage
<div class="container">
    <div class="row">    
        <br>
        <h1 align="center">Admin Dashboard</h1>

        <h4>Check Ins</h4>
        <%= button_to "Export Check Ins as CSV", export_check_ins_path(format: 'csv'), :class=> "btn btn-primary" %>

        <br><br>

        <h4>Lab Assistants</h4>

        <% unless @la.empty? %>
            <%= form_tag admin_dashboard_path do %>
                <span>
                    <%= submit_tag "Validate", :id=> "la_validate", :class=> "btn btn-success" %>
                    <%= submit_tag "Invalidate", :id=> "la_invalidate", :class=> "btn btn-warning" %>
                    <%= submit_tag "Delete", :id=> "la_delete", :class=> "btn btn-danger" %>
                </span>
                <span class="float-right">
                    <a class="btn btn-primary" href=<%= admins_match_path %>> Automatically Match Lab Times</a>
                </span>

                <br><br>

                <table class="table table-bordered table-hover table-striped">
                    <thead>
                        <tr>
                            <th></th>
                            <th>Full Name</th>
                            <th>Email</th>
                            <th>SID</th>
                            <th>Validation Status</th>
                            <th>Lab Times </th>
                            <th>Lab Preferences </th>
                            <th>Course </th>
                        </tr>
                    </thead>
                    <tbody>
                        <% for l in @la do %>
                            <tr>
                                <td> <%= check_box_tag 'la_ids[]', l.id %> </td> 
                                <td> <a href= <%="#{lab_assistant_path(l)}"%>> <%= l.first_name %> <%=l.last_name %> </a></td>
                                <td> <%= l.email %> </td>
                                <td> <%= l.SID %> </td>
                                <td> <%= text_for_validation_status(l.validated) %></td>
                                

                                <td> 
                                    <% for labtime in l.lab_times.to_a do %>
                                        <a href=<%= lab_time_path(labtime)%>> <%= labtime.id %> </a>
                                    <% end %>        
                                </td>


                                <td> <%= l.preferred_lab_times %> </td>
                                <td> <%= l.course.name %> </td>
                            </tr>
                        <% end %>
                    </tbody>
                </table>
            <% end %>
        <% else %>
            <p> NO Lab Assistants FOUND </p>
        <% end %>

        <br><br>

        <h4>Teaching Assistants</h4>

        <% unless @ta.empty? %>
            <%= form_tag admin_dashboard_path do %>

                <span>
                    <%= submit_tag "Validate", :id=> "ta_validate", :class=> "btn btn-success" %>
                    <%= submit_tag "Invalidate", :id=> "ta_invalidate", :class=> "btn btn-warning" %>
                    <%= submit_tag "Delete", :id=> "ta_delete", :class=> "btn btn-danger" %>
                </span>

                <br><br>

                <table class="table table-bordered table-hover table-striped">
                    <thead>
                        <tr>
                            <th></th>
                            <th>Full Name</th>
                            <th>Email</th>
                            <th>Validation Status</th>
                            <th>Course</th>
                        </tr>
                    </thead>
                <% for t in @ta do %>
                    <tbody>
                        <tr>
                            <td> <%= check_box_tag 'ta_ids[]', t.id %> </td>
                            <td> <a href= <%="#{teaching_assistant_path(t)}"%>> <%= t.first_name %> <%= t.last_name %> </a></td>
                            <td> <%= t.email %> </td>
                            <td> <%= text_for_validation_status(t.validated) %></td>
                            <td> <%= t.course.name %> </td>
                        </tr>
                <% end %>
                    </tbody>
                </table>
            <% end %>    
        <% else %>
            <p> NO Teaching Assistants FOUND </p>
        <% end %>
        
        <br><br>

        <h4>Create Lab Time</h4>

        <table class="table table-bordered table-hover table-striped">
            <thead>
                <tr>
                    <th></th>
                    <th>Class</th>
                    <th>Day</th>
                    <th>Start Time</th>
                    <th>End Time</th>
                </tr>
            </thead>
            <%= form_for @new_labtime do |f|%>
            <tbody>
                <tr>
                    <td><%= f.submit :class => "btn btn-primary" %></td>
                  <td><%= f.select :course_id, options_for_select(%w[CS61A CS61B CS61C]), {}, { :class => "form-control" } %></td>
                  <td><%= f.select :day, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], {}, { :class => "form-control" }%></td>
                  <td><%= f.time_select :open, {:ampm => true, :minute_step => 30}, { :class => "form-control form-time" } %></td>
                  <td><%= f.time_select :close, {:ampm => true, :minute_step => 30}, { :class => "form-control form-time" } %></td>
              </tr>
            </tbody>
            <% end %>
        </table>

        <br><br>

        <h4> Lab Times </h4>
        <% unless @lt.empty? %>
            <table class="table table-bordered table-hover table-striped">
                <thead>
                    <tr>
                        <th> </th>
                        <th> Assign Teaching Assistant </th>
                        <th> Current Teaching Assistant(s) </th>
                        <th>Course</th>
                        <th>Lab</th>
                        <th>Day</th>
                        <th>Beginning</th>
                        <th>Ending</th>
                    </tr>
                </thead>
                <tbody>
                    <% for t in @lt do %>
                        <tr>
                            <%= form_for [t, t.teaching_assistants.new], :url => lab_times_ta_path do |f| %>
                                <td>
                                  <input class= "btn btn-primary" name="submit_ta" type="submit" value="Assign TA"/>
                                </td>
                                <td> 
                                    <% case t.course_id%>
                                    <% when 1 %>
                                        <% options = options_from_collection_for_select(@a_valid_tas, 'id', 'email') %>
                                    <% when 2 %>
                                        <% options = options_from_collection_for_select(@b_valid_tas, 'id', 'email') %>
                                    <% when 3 %>
                                        <% options = options_from_collection_for_select(@c_valid_tas, 'id', 'email') %>    
                                    <% else %>
                                        <!-- more classes in future -->
                                    <% end %>
                                  <%= f.hidden_field :lab_time_id, :value => t.id %>
                                    <%= f.select :id, options, { include_blank: true }, { :class => "form-control" } %>
                                </td>
                                <td> 
                                    <% for ta in t.teaching_assistants.to_a do %>
                                        <%= ta.email %>
                                    <% end %>
                                </td>
                                <td> <%= Course.find(t.course_id).name %> </td>
                                <td> <a class="lab-<%= t.id %>" href=<%= lab_time_path(t)%>> <%= t.id %> </a> </td>
                                <td> <%= t.day.strftime("%A") %> </td>
                                <td> <%= t.open.strftime("%I:%M%p") %> </td>
                                <td> <%= t.close.strftime("%I:%M%p") %> </td>
                            <% end %>
                        </tr>
                    <% end %>
                </tbody>
            </table>
        <% else %>
            <p> NO Lab Times FOUND </p>
        <% end %>

    </div>
</div>