mysociety/alaveteli

View on GitHub
app/views/admin_general/timeline.html.erb

Summary

Maintainability
Test Coverage
<% @title = "Timeline" %>
<div class="btn-toolbar">
  <div class="btn-group">
    <% time_filters.each do |time_label, date| %>
      <%= link_to time_label,
                  admin_timeline_path(start_date: date&.utc&.iso8601, event_type: params[:event_type]),
                  class: "btn #{'active' if current_time_filter == time_label}" %>
    <% end %>
  </div>
  <div class="btn-group">
    <% event_types.each do |event_type, event_label| %>
      <%= link_to event_label,
                  admin_timeline_path(start_date: params[:start_date], event_type: event_type),
                  class: "btn #{'active' if current_event_type == event_label}" %>
    <% end %>
  </div>
</div>
<div class="row">
  <div class="span12">
    <h1><%= @events_title %></h1>
  </div>
</div>

<% last_date = nil %>
<% for event, event_at in @events %>
    <% if last_date != event_at.to_date %>
      <% if last_date.nil? %>
        <p>
      <% end %>

      <h3 class="timeline_date">
        <%= simple_date(event_at) %>
        <span class="timeline_day"><%= event_at.strftime('%A') %></span>
      </h3>

      <p>
    <% else %>
      <br>
    <% end %>

    <% last_date = event_at.to_date %>

    <%= time_tag event_at, simple_time(event_at), title: event_at %>

    <% if event.is_a? InfoRequestEvent %>

      <% if event.info_request.embargo && cannot?(:admin, AlaveteliPro::Embargo) %>
        An embargoed request
      <% else %>
        <%= both_links(event.info_request) %>
      <% end %>

      <% if lookup_context.template_exists?(event.event_type, ['admin_general'], true) %>
      <%= render :partial => event.event_type, :locals => { :event => event } %>
      <% else %>

        <% if event.info_request.embargo && can?(:admin, AlaveteliPro::Embargo) %>
          had '<%= event.event_type %>' done to it, parameters <%= event.params %>.
        <% else %>
          had '<%= event.event_type %>' done to it, parameters hidden.
        <% end %>
      <% end %>

    <% else %>
      <%= both_links(event.public_body) %>
      <% if event.previous %>
      was updated by administrator <strong><%= event.last_edit_editor %></strong>.
      Changed fields:
        <strong>
          <%= event.compare(event.previous).map{ |change| change[:name] }.to_sentence %>
        </strong>
      <% else %>
      was created by administrator <strong><%= event.last_edit_editor %></strong>.
      <% end %>
    <% end %>
<% end %>

<%= will_paginate(@events) %>

<% if not @events.empty? %>
  </p>
<% end %>