openpolitics/groupthink

View on GitHub
app/views/proposals/show.html.erb

Summary

Maintainability
Test Coverage
<h1>
  <%= @proposal.title %>
  <a href='<%= @proposal.url %>'>
    <%= fa_icon 'github' %>
  </a>
</h1>

<div class='row' style='text-align: center'>
  <div class='col-md-3 user'>
    Proposer
    <br/>
    <%= render partial: 'shared/person', locals: { person: @proposal.proposer } %>
  </div>
  <div class='col-md-3'>
    State
    <br/>
    <h2>
      <span class='label label-<%= row_class(@proposal) %>'>
        <%= state_icon(@proposal.state) %>
        <%= @proposal.state.capitalize %>
      </span>
    </h2>
  </div>
  <div class='col-md-3'>
    Vote Score
    <br/>
    <% rowclass = @proposal.blocked? ? "danger" : "warning" %>
    <% rowclass = 'success' if @proposal.passed? %>
    <h2><span class='label label-<%= rowclass %>'><%= @proposal.score %></span></h2>
  </div>
  <div class='col-md-3'>
    Age
    <br/>
    <h2>
      <% rowclass = @proposal.too_old? || @proposal.too_new? ? "danger" : "success" %>
      <span class='label label-<%= rowclass %>'><%= @proposal.age %> days</span>
    </h2>
  </div>
</div>

<hr/>

<div class='row'>

  <div class='col-md-9'>

    <% @activity.each do |x| %>
      <%= render partial: "shared/#{x[0]}", locals: x[1] %>
    <% end %>

    <% if signed_in? %>
      <div style="clear: both">
        <div class='panel panel-primary' id="vote">
          <div class="panel-heading">
            Comment<% if @can_vote %> and vote<% end %>:
          </div>
          <div class='panel-body'>
            <%= form_tag comment_proposal_path(@proposal) do %>
              <div class="form-group">
                <%= text_area_tag :comment, "", {rows: 5, class: "form-control"} %>
              </div>
              <% if @can_vote %>
                <div class="form-group">
                  <label class="radio-inline">
                    <input type="radio" name="vote" id="vote-none" value="none" checked="true"> Not voting
                  </label>
                  <label class="radio-inline">
                    <input type="radio" name="vote" id="vote-yes" value="yes"> <%= vote_icon('yes') %> Yes
                  </label>
                  <label class="radio-inline">
                    <input type="radio" name="vote" id="vote-no" value="no"> <%= vote_icon('no') %> No
                  </label>
                  <label class="radio-inline">
                    <input type="radio" name="vote" id="vote-abstention" value="abstention"> <%= vote_icon('abstention') %> Abstain
                  </label>
                  <label class="radio-inline">
                    <input type="radio" name="vote" id="vote-block" value="block"> <%= vote_icon('block') %> Block
                  </label>
                </div>
              <% end %>
              <button type="submit" class="btn btn-primary">Submit</button>
            <% end %>
          </div>
        </div>
      </div>
    <% end %>

  </div>

  <div class='col-md-3'>

    <% if !signed_in? %>
      <div>
        <p>
          <%= link_to ("#{t(:sign_in)} to comment and vote "+fa_icon("sign-in")).html_safe,
                new_user_session_path, class: 'btn btn-primary btn-block'
          %>
        </p>
      </div>
    <% end %>

    <% if @can_vote %>
      <div class='hidden-sm hidden-xs'>
        <p>
          <a href='#vote' class='btn btn-primary btn-block'>
            <%= fa_icon 'check' %> Vote now!
          </a>
        </p>
      </div>
    <% end %>

    <div class='panel panel-default hidden-sm hidden-xs''>
      <div class="panel-heading">
        Activity
      </div>
      <div class='panel-body'>
        <% @proposal.participants.each do |user| %>
          <div class='alert alert-<%= user_row_class(user.vote(@proposal)) %>'>
            <%= render partial: 'shared/person', locals: { person: user, size: "small" } %>
            <%= vote_icon(user.vote(@proposal), size: "lg") %>
          </div>
        <% end %>
      </div>
    </div>

  </div>

</div>