Not doing so made it trickier to define a flex layout, since the icon-successful element is given a `position: absolute`, but only for successful proposals, while for unsuccessful proposals it was taking the standard `position: static` value. We're also reusing the `successful?` method instead of rewriting it in the view, and fixing a small issue where the icon wasn't displayed for proposals having the exact needed votes (we were using `>` instead of `>=` in the condition). Note that legislation proposals use the method `Proposal.votes_needed_for_success`, which is probaby a mistake caused by copying the code from the proposal view. Fixing this issue is out of the scope of this commit (and pull request), though.
96 lines
3.7 KiB
Plaintext
96 lines
3.7 KiB
Plaintext
<div id="<%= dom_id(proposal) %>"
|
|
class="proposal clear <%= ("successful" if proposal.successful?) %>"
|
|
data-type="proposal">
|
|
<div class="panel <%= "with-image" if proposal.image.present? %>">
|
|
<% if proposal.successful? %>
|
|
<div class="icon-successful"></div>
|
|
<% end %>
|
|
|
|
<% if proposal.image.present? %>
|
|
<div class="row">
|
|
<div class="small-12 medium-3 large-2 column text-center">
|
|
<%= image_tag proposal.image.variant(:thumb),
|
|
alt: proposal.image.title.unicode_normalize %>
|
|
</div>
|
|
|
|
<div class="<%= css_for_proposal_info_row(proposal) %>">
|
|
<% else %>
|
|
<div class="row">
|
|
<div class="<%= css_for_proposal_info_row(proposal) %>">
|
|
<% end %>
|
|
<div class="proposal-content">
|
|
<% cache [locale_and_user_status(proposal), "index", proposal, proposal.author] do %>
|
|
<h3><%= link_to proposal.title, namespaced_proposal_path(proposal) %></h3>
|
|
<p class="proposal-info">
|
|
<%= l proposal.created_at.to_date %>
|
|
<span class="bullet"> • </span>
|
|
<%= render Shared::CommentsCountComponent.new(
|
|
proposal.comments_count,
|
|
url: namespaced_proposal_path(proposal, anchor: "comments")
|
|
) %>
|
|
|
|
<% if proposal.author.hidden? || proposal.author.erased? %>
|
|
<span class="bullet"> • </span>
|
|
<span class="author">
|
|
<%= t("proposals.show.author_deleted") %>
|
|
</span>
|
|
<% else %>
|
|
<span class="bullet"> • </span>
|
|
<span class="author">
|
|
<%= proposal.author.name %>
|
|
</span>
|
|
<% if proposal.author.display_official_position_badge? %>
|
|
<span class="bullet"> • </span>
|
|
<span class="label round level-<%= proposal.author.official_level %>">
|
|
<%= proposal.author.official_position %>
|
|
</span>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if proposal.author.verified_organization? %>
|
|
<span class="bullet"> • </span>
|
|
<span class="label round is-association">
|
|
<%= t("shared.collective") %>
|
|
</span>
|
|
<% end %>
|
|
|
|
<% if Geozone.any? %>
|
|
<span class="bullet"> • </span>
|
|
<span class="geozone">
|
|
<%= link_to geozone_name(proposal), proposals_path(search: geozone_name(proposal)) %>
|
|
</span>
|
|
<% end %>
|
|
</p>
|
|
<div class="proposal-description">
|
|
<p><%= proposal.summary %></p>
|
|
<div class="truncate"></div>
|
|
</div>
|
|
<%= render "shared/tags", taggable: proposal, limit: 5 %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
|
|
<% if show_proposal_votes? %>
|
|
<div id="<%= dom_id(proposal) %>_votes"
|
|
class="small-12 medium-3 column supports-container">
|
|
<% if proposal.successful? %>
|
|
<div class="padding">
|
|
<div class="supports text-center">
|
|
<%= render "proposals/supports", proposal: proposal %>
|
|
</div>
|
|
</div>
|
|
<% elsif proposal.archived? %>
|
|
<div class="padding text-center">
|
|
<strong><%= t("proposals.proposal.supports", count: proposal.total_votes) %></strong>
|
|
<p><%= t("proposals.proposal.archived") %></p>
|
|
</div>
|
|
<% else %>
|
|
<%= render "votes", proposal: proposal %>
|
|
<% end %>
|
|
</div>
|
|
<% end %>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|