diff --git a/app/assets/stylesheets/participation.scss b/app/assets/stylesheets/participation.scss index 8c1529531..4726d0114 100644 --- a/app/assets/stylesheets/participation.scss +++ b/app/assets/stylesheets/participation.scss @@ -1368,6 +1368,73 @@ ul.ballot-list { .poll { padding: $line-height; + position: relative; + + .icon-poll-answer { + border-top: 0; + border-bottom: 60px solid transparent; + height: 0; + position: absolute; + right: 0; + top: 0; + width: 0; + + &.can-answer:after, + &.cant-answer:after, + &.not-logged-in:after, + &.already-answer:after, + &.unverified:after { + font-family: "icons" !important; + left: 34px; + position: absolute; + top: 5px; + } + + &.can-answer { + border-right: 60px solid $info-bg; + + &:after { + color: $color-info; + content: "\6c"; + } + } + + &.cant-answer { + border-right: 60px solid $alert-bg; + + &:after { + color: $color-alert; + content: "\74"; + } + } + + &.not-logged-in { + border-right: 60px solid $info-bg; + + &:after { + color: $color-info; + content: "\6f"; + } + } + + &.unverified { + border-right: 60px solid $warning-bg; + + &:after { + color: $color-warning; + content: "\6f"; + } + } + + &.already-answer { + border-right: 60px solid $success-bg; + + &:after { + color: $color-success; + content: "\59"; + } + } + } .dates { color: $text-medium; @@ -1375,6 +1442,7 @@ ul.ballot-list { @include breakpoint(medium) { float: right; + margin-right: $line-height; } } diff --git a/app/views/polls/_poll_group.html.erb b/app/views/polls/_poll_group.html.erb index 20770014b..d9a36bd47 100644 --- a/app/views/polls/_poll_group.html.erb +++ b/app/views/polls/_poll_group.html.erb @@ -1,20 +1,59 @@ <% poll_group.each do |poll| %>
+ <% if poll.answerable_by?(current_user) && poll.votable_by?(current_user) %> + <%= link_to poll, + class: "icon-poll-answer can-answer", + title: t("polls.index.can_answer") do %> + + <%= t("polls.index.can_answer") %> + + <% end %> + <% elsif current_user.nil? %> + <%= link_to new_user_session_path, + class: "icon-poll-answer not-logged-in", + title: t("polls.index.cant_answer_not_logged_in") do %> + + <%= t("polls.index.cant_answer_not_logged_in") %> + + <% end %> + <% elsif current_user.unverified? %> + <%= link_to verification_path, + class: "icon-poll-answer unverified", + title: t("polls.index.cant_answer_verify") do %> + + <%= t("polls.index.cant_answer_verify") %> + + <% end %> + <% elsif !poll.votable_by?(current_user) %> +
"> + <%= t("polls.index.already_answer") %> +
+ <% else %> +
"> + <%= t("polls.index.cant_answer") %> +
+ <% end %>
<%= poll_dates(poll) %>
-

<%= link_to poll.name, poll %>

-
    + <% if poll.questions.count == 1 %> <% poll.questions.each do |question| %> -
  • <%= link_to question.title, question_path(question) %>
  • +

    <%= link_to question.title, poll %>

    <% end %> -
+ <% else %> +

<%= link_to poll.name, poll %>

+
    + <% poll.questions.each do |question| %> +
  • <%= link_to question.title, question_path(question) %>
  • + <% end %> +
+ <% end %> <% if poll.geozones.any? %> -

+

<%= t("polls.index.geozone_info") %>

<% end %> -
    +
      <% poll.geozones.each do |g| %>
    • <%= g.name %>
    • <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index dd1d12976..3f812fffb 100755 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -406,6 +406,11 @@ en: no_geozone_restricted: "All city" geozone_restricted: "Districts" geozone_info: "Only can participate people in the Census of: " + can_answer: "You can participate in this poll!" + cant_answer: "This poll is not available on your geozone" + cant_answer_not_logged_in: "You must sign in or sign up to participate" + cant_answer_verify: "You must verify your account in order to answer" + already_answer: "You already have participated in this poll" show: dates_title: "Participation dates" cant_answer_not_logged_in: "You must %{signin} or %{signup} to participate." diff --git a/config/locales/es.yml b/config/locales/es.yml index 0ced2f9c8..adeae8825 100755 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -406,6 +406,11 @@ es: no_geozone_restricted: "Toda la ciudad" geozone_restricted: "Distritos" geozone_info: "Solo pueden participar las personas empadronadas en: " + can_answer: "¡Puedes participar en esta votación!" + cant_answer: "Esta votación no está disponible en tu zona" + cant_answer_not_logged_in: "Necesitas iniciar sesión o registrarte para participar" + cant_answer_verify: "Por favor verifica tu cuenta para poder responder" + already_answer: "Ya has participado en esta votación" show: dates_title: "Fechas de participación" cant_answer_not_logged_in: "Necesitas %{signin} o %{signup} para participar."