decidim-proposals/app/views/decidim/proposals/admin/proposals/show.html.erb
<% add_decidim_page_title(translated_attribute(proposal.title)) %>
<div class="component__show">
<div class="card">
<div class="component__show_header">
<h2 class="component__show_header-title">
<%= decidim_html_escape(present(proposal).title).html_safe %>
</h2>
</div>
<div class="component__show_nav">
<div class="component__show_nav-author">
<div class="component__show_nav-circle">
<%= icon "award-line" %>
</div>
<div>
<% coauthor_presenters_for(proposal).each do |presented_author| %>
<li class="component__show_nav-author-title">
<%= link_to_if(
presented_author.profile_path.present?,
presented_author.name,
presented_author.profile_path,
target: :blank
) %>
<% if presented_author.can_be_contacted? && presented_author.nickname != present(current_user).nickname %>
<%= link_to_current_or_new_conversation_with(presented_author) %>
<% end %>
</li>
<% end %>
<span class="component__show_nav-author-date">
<%= l proposal.created_at, format: :decidim_short %>
</span>
</div>
</div>
<div class="ml-auto">
<%= link_to resource_locator(proposal).url, class: "button button__sm button__transparent-secondary", target: :blank, data: { "external-link": false } do %>
<%= icon "eye-line", class: "fill-current" %>
<%= t ".link" %>
<% end %>
</div>
</div>
<div class="component__show_grid">
<div class="component__show_grid-item">
<div class="card-section">
<div class="row column">
<span class="component__show-title"><%= t ".body" %></span>
<p class="component__show-text">
<%= simple_format(present(proposal).body(strip_tags: true)) %>
</p>
</div>
</div>
<% presented_endorsers = endorsers_presenters_for(proposal) %>
<% if presented_endorsers.any? %>
<%= render partial: "endorsers", locals: { presented_endorsers:, proposal: } %>
<% end %>
<% if proposal.documents.any? %>
<%= render partial: "documents", locals: { proposal: } %>
<% end %>
<% if proposal.photos.any? %>
<%= render partial: "photos", locals: { proposal: } %>
<% end %>
<% proposal_meetings = proposal.linked_resources(:meetings, "proposals_from_meeting") %>
<% if proposal_meetings.any? %>
<%= render partial: "meetings", locals: { proposal_meetings: } %>
<% end %>
<% if allowed_to?(:create, :proposal_note, proposal: proposal) %>
<div class="card-section">
<%= render "decidim/proposals/admin/proposal_notes/proposal_notes" %>
</div>
<% end %>
<% if allowed_to?(:create, :proposal_answer, proposal: proposal) && !proposal.emendation? %>
<div class="card-section">
<%= render "decidim/proposals/admin/proposal_answers/form" %>
</div>
<% end %>
</div>
<div class="component__show_grid-item">
<% if proposal.category.present? %>
<div class="card-section">
<div class="row column">
<span class="component__show-title"><%= t("models.proposal.fields.category", scope: "decidim.proposals") %></span>
<div class="flex items-center gap-x-2 mt-2">
<%= icon "price-tag-3-line", class: "fill-gray" %>
<p class="component__show-icon-text">
<%= translated_attribute proposal.category.name %>
</p>
</div>
</div>
</div>
<% end %>
<% if proposal.scope.present? %>
<div class="card-section">
<div class="row column">
<span class="component__show-title"><%= t("models.proposal.fields.scope", scope: "decidim.proposals") %></span>
<div class="flex items-center gap-x-2 mt-2">
<%= icon "scan-line", class: "fill-gray" %>
<p class="component__show-icon-text">
<%= translated_attribute proposal.scope.name %>
</p>
</div>
</div>
</div>
<% end %>
<div class="card-section">
<div class="row column" data-supports>
<span class="component__show-title"><%= t ".votes_count" %></span>
<div class="flex items-center gap-x-2 mt-2">
<%= icon "service-line", class: "fill-gray" %>
<p class="component__show-icon-text" data-count>
<%= proposal.proposal_votes_count %>
</p>
<div class="flex items-center gap-x-2 border-l border-gray pl-2">
<%= icon "bar-chart-2-line", class: "fill-gray" %>
<p class="component__show-icon-text" data-ranking>
<%= i18n_votes_ranking_for(proposal) %>
</p>
</div>
</div>
</div>
</div>
<div class="card-section">
<div class="row column" data-endorsements>
<span class="component__show-title"><%= t ".endorsements_count" %></span>
<div class="flex items-center gap-x-2 mt-2">
<%= icon "like", class: "fill-gray" %>
<p class="component__show-icon-text" data-count>
<%= proposal.endorsements_count %>
</p>
<div class="flex items-center gap-x-2 border-l border-gray pl-2">
<%= icon "bar-chart-2-line", class: "fill-gray" %>
<p class="component__show-icon-text" data-ranking>
<%= i18n_endorsements_ranking_for(proposal) %>
</p>
</div>
</div>
</div>
</div>
<div class="card-section">
<div class="row column" data-amendments>
<span class="component__show-title"><%= t ".amendments_count" %></span>
<div class="flex items-center gap-x-2 mt-2" data-count>
<%= icon "Decidim::Amendment", class: "fill-gray" %>
<p class="component__show-icon-text">
<%= proposal.amendments.count %>
</p>
</div>
</div>
</div>
<div class="card-section">
<div class="row column" data-comments>
<span class="component__show-title"><%= t ".comments_count" %></span>
<div class="flex items-center gap-x-2 mt-2">
<%= icon "chat-1-line", class: "fill-gray" %>
<p class="component__show-icon-text" data-count>
<%= proposal.comments_count %>
</p>
<div class="flex items-center gap-x-3 border-l border-gray pl-2" id="proposal-comments-alignment-count">
<div>
<p class="component__show-icon-text" data-positive>
<%= icon "thumb-up-line", class: "fill-gray" %>
<%= proposal.comments.positive.count %>
</p>
</div>
<div>
<p class="component__show-icon-text" data-neutral>
<%= icon "scales-line", class: "fill-gray" %>
<%= proposal.comments.neutral.count %>
</p>
</div>
<div>
<p class="component__show-icon-text" data-negative>
<%= icon "thumb-up-fill", class: "fill-gray" %>
<%= proposal.comments.negative.count %>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<% if proposal.valuators.any? %>
<div class="card">
<div class="card-divider">
<h2 class="card-title">
<%= t ".valuators" %>
</h2>
</div>
<div class="card-section">
<div class="row column">
<strong><%= t ".assigned_valuators" %>:</strong>
<ul id="valuators">
<% proposal.valuation_assignments.each do |assignment| %>
<% presented_valuator = present(assignment.valuator) %>
<li>
<%= link_to(
presented_valuator.name,
presented_valuator.profile_path,
target: :blank
) %>
<% if allowed_to? :unassign_from_valuator, :proposals, valuator: assignment.valuator %>
<%= icon_link_to(
"delete-bin-line",
proposal_valuation_assignment_path(proposal, assignment.valuator_role),
t(".remove_assignment"),
method: :delete,
data: { confirm: t(".remove_assignment_confirmation") },
class: "red-icon"
) %>
<% end %>
</li>
<% end %>
</ul>
</div>
</div>
</div>
<% end %>
</div>