decidim-proposals 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +2 -0
  3. data/app/controllers/decidim/proposals/admin/proposals_controller.rb +2 -0
  4. data/app/controllers/decidim/proposals/proposals_controller.rb +42 -5
  5. data/app/forms/decidim/proposals/proposal_form.rb +3 -1
  6. data/app/helpers/decidim/proposals/proposal_votes_helper.rb +1 -1
  7. data/app/models/decidim/proposals/abilities/admin_user.rb +45 -0
  8. data/app/models/decidim/proposals/abilities/current_user.rb +22 -4
  9. data/app/models/decidim/proposals/abilities/process_admin_user.rb +57 -0
  10. data/app/models/decidim/proposals/proposal.rb +23 -2
  11. data/app/services/decidim/proposals/proposal_search.rb +25 -13
  12. data/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +1 -1
  13. data/app/views/decidim/proposals/admin/proposals/_form.html.erb +1 -1
  14. data/app/views/decidim/proposals/admin/proposals/index.html.erb +16 -10
  15. data/app/views/decidim/proposals/admin/proposals/new.html.erb +1 -1
  16. data/app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb +4 -4
  17. data/app/views/decidim/proposals/proposals/_filters.html.erb +15 -3
  18. data/app/views/decidim/proposals/proposals/_proposal.html.erb +3 -11
  19. data/app/views/decidim/proposals/proposals/_proposals.html.erb +2 -1
  20. data/app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb +3 -1
  21. data/app/views/decidim/proposals/proposals/_tags.html.erb +10 -0
  22. data/app/views/decidim/proposals/proposals/_vote_button.html.erb +23 -21
  23. data/app/views/decidim/proposals/proposals/_votes_count.html.erb +9 -6
  24. data/app/views/decidim/proposals/proposals/_votes_limit.html.erb +1 -3
  25. data/app/views/decidim/proposals/proposals/index.html.erb +3 -3
  26. data/app/views/decidim/proposals/proposals/index.js.erb +6 -1
  27. data/app/views/decidim/proposals/proposals/new.html.erb +2 -2
  28. data/app/views/decidim/proposals/proposals/show.html.erb +23 -28
  29. data/config/i18n-tasks.yml +2 -0
  30. data/config/locales/ca.yml +30 -15
  31. data/config/locales/en.yml +19 -4
  32. data/config/locales/es.yml +19 -4
  33. data/config/locales/eu.yml +5 -0
  34. data/db/migrate/20170205082832_add_index_to_decidim_proposals_proposals_proposal_votes_count.rb +7 -0
  35. data/lib/decidim/proposals/admin_engine.rb +7 -0
  36. data/lib/decidim/proposals/feature.rb +16 -3
  37. data/lib/decidim/proposals/test/factories.rb +1 -1
  38. metadata +19 -15
  39. data/app/views/decidim/proposals/proposals/_share.html.erb +0 -33
@@ -1,6 +1,6 @@
1
1
  <h3><%= t ".title" %></h3>
2
2
 
3
- <%= form_for(@form) do |f| %>
3
+ <%= decidim_form_for(@form) do |f| %>
4
4
  <%= render partial: 'form', object: f %>
5
5
 
6
6
  <div class="actions">
@@ -1,14 +1,14 @@
1
1
  var $proposalVotesCount = $('#proposal-<%= proposal.id %>-votes-count');
2
2
  var $proposalVoteButton = $('#proposal-<%= proposal.id %>-vote-button');
3
3
 
4
- $proposalVotesCount.html('<%= j(render partial: 'decidim/proposals/proposals/votes_count', locals: { proposal: proposal, from_proposals_list: @from_proposals_list }) %>');
5
- $proposalVoteButton.html('<%= j(render partial: 'decidim/proposals/proposals/vote_button', locals: { proposal: proposal, from_proposals_list: @from_proposals_list }) %>');
4
+ morphdom($proposalVotesCount[0], '<%= j(render partial: 'decidim/proposals/proposals/votes_count', locals: { proposal: proposal, from_proposals_list: @from_proposals_list }) %>');
5
+ morphdom($proposalVoteButton[0], '<%= j(render partial: 'decidim/proposals/proposals/vote_button', locals: { proposal: proposal, from_proposals_list: @from_proposals_list }) %>');
6
6
 
7
7
  <% if vote_limit_enabled? %>
8
8
  var $remainingVotesCount = $('#remaining-votes-count');
9
9
  var $notVotedButtons = $('.card__button.button').not('.success');
10
10
 
11
- $remainingVotesCount.html('<%= j(render partial: 'decidim/proposals/proposals/remaining_votes_count') %>');
11
+ morphdom($remainingVotesCount[0], '<%= j(render partial: 'decidim/proposals/proposals/remaining_votes_count') %>');
12
12
 
13
13
  <% if remaining_votes_count_for(current_user) == 0 %>
14
14
  $notVotedButtons.attr('disabled', true);
@@ -17,4 +17,4 @@ $proposalVoteButton.html('<%= j(render partial: 'decidim/proposals/proposals/vot
17
17
  $notVotedButtons.attr('disabled', false);
18
18
  $notVotedButtons.val('<%= t('decidim.proposals.proposals.vote_button.vote') %>');
19
19
  <% end %>
20
- <% end %>
20
+ <% end %>
@@ -12,17 +12,29 @@
12
12
  </div>
13
13
  </div>
14
14
 
15
- <%= form.collection_radio_buttons :origin, [["all", t('.all')], ["official", t('.official')], ["citizenship", t('.citizenship')]], :first, :last, legend_title: t('.origin') %>
15
+ <% if feature_settings.official_proposals_enabled %>
16
+ <%= form.collection_radio_buttons :origin, [["all", t('.all')], ["official", t('.official')], ["citizenship", t('.citizenship')]], :first, :last, legend_title: t('.origin') %>
17
+ <% end %>
18
+
19
+ <% if feature_settings.proposal_answering_enabled && current_settings.proposal_answering_enabled %>
20
+ <%= form.collection_radio_buttons :state, [["all", t('.all')], ["accepted", t('.accepted')], ["rejected", t('.rejected')]], :first, :last, legend_title: t('.state') %>
21
+ <% end %>
16
22
 
17
- <%= form.collection_radio_buttons :state, [["all", t('.all')], ["accepted", t('.accepted')], ["rejected", t('.rejected')]], :first, :last, legend_title: t('.state') %>
23
+ <% if linked_classes_for(Decidim::Proposals::Proposal).any? %>
24
+ <%= form.collection_radio_buttons :related_to, linked_classes_filter_values_for(Decidim::Proposals::Proposal), :first, :last, legend_title: t('.related_to') %>
25
+ <% end %>
18
26
 
19
27
  <% if current_user && current_settings.votes_enabled? %>
20
28
  <%= form.collection_check_boxes :activity, [["voted", t('.voted')]], :first, :last, legend_title: t('.activity') %>
21
29
  <% end %>
22
30
 
31
+ <% if current_organization.scopes.any? && feature_settings.scoped_proposals_enabled %>
32
+ <%= form.collection_check_boxes :scope_id, current_organization.scopes, lambda {|scope| scope.id.to_s}, :name, legend_title: t('.scopes') %>
33
+ <% end %>
34
+
23
35
  <% if current_feature.categories.any? %>
24
36
  <%= form.categories_select :category_id, current_feature.categories, legend_title: t('.category'), disable_parents: false, label: false, include_blank: true %>
25
37
  <% end %>
26
38
 
27
- <%= form.hidden_field :random_seed %>
39
+ <%= hidden_field_tag :order, order, id: nil, class: "order_filter" %>
28
40
  <% end %>
@@ -19,21 +19,13 @@
19
19
  </div>
20
20
  <%= render partial: "proposal_badge", locals: { proposal: proposal } %>
21
21
  <p><%= truncate(proposal.body, length: 100) %></p>
22
- <% if proposal.category %>
23
- <ul class="tags tags--proposal">
24
- <li><a href=""><%= translated_attribute(proposal.category.name) %></a></li>
25
- </ul>
26
- <% end %>
22
+ <%= render partial: "tags", locals: { proposal: proposal } %>
27
23
  </div>
28
24
  <div class="card__footer">
29
25
  <div class="card__support">
30
26
  <% if current_settings.votes_enabled? %>
31
- <div id="proposal-<%= proposal.id %>-votes-count" class="card__support__data">
32
- <%= render partial: "votes_count", locals: { proposal: proposal, from_proposals_list: true } %>
33
- </div>
34
- <div id="proposal-<%= proposal.id %>-vote-button">
35
- <%= render partial: "vote_button", locals: { proposal: proposal, from_proposals_list: true } %>
36
- </div>
27
+ <%= render partial: "votes_count", locals: { proposal: proposal, from_proposals_list: true } %>
28
+ <%= render partial: "vote_button", locals: { proposal: proposal, from_proposals_list: true } %>
37
29
  <% elsif !current_settings.votes_enabled? || current_settings.votes_enabled? && current_settings.votes_blocked? %>
38
30
  <div class="card__support__data"></div>
39
31
  <%= link_to t(".view_proposal"), proposal, class: "card__button button small secondary" %>
@@ -1,4 +1,5 @@
1
+ <%= order_selector [:random, :most_voted, :recent], i18n_scope: "decidim.proposals.proposals.orders" %>
1
2
  <div class="row small-up-1 medium-up-2 card-grid">
2
3
  <%= render @proposals %>
3
4
  </div>
4
- <%= decidim_paginate @proposals, random_seed: @random_seed %>
5
+ <%= decidim_paginate @proposals, random_seed: random_seed %>
@@ -1 +1,3 @@
1
- <%= remaining_votes_count_for(current_user) %>
1
+ <span id="remaining-votes-count" class="extra__suport-number">
2
+ <%= remaining_votes_count_for(current_user) %>
3
+ </span>
@@ -0,0 +1,10 @@
1
+ <% if proposal.category.present? || proposal.scope.present? %>
2
+ <ul class="tags tags--proposal" >
3
+ <% if proposal.category.present? %>
4
+ <li><%= link_to translated_attribute(proposal.category.name), decidim_proposals.proposals_path(filter: { category_id: proposal.category.id }) %></li>
5
+ <% end %>
6
+ <% if proposal.scope.present? && feature_settings.scoped_proposals_enabled %>
7
+ <li><%= link_to proposal.scope.name, decidim_proposals.proposals_path(filter: { scope_id: [proposal.scope.id] }) %></li>
8
+ <% end %>
9
+ </ul>
10
+ <% end %>
@@ -1,25 +1,27 @@
1
- <% if current_user %>
2
- <% if proposal.voted_by? current_user %>
3
- <% if vote_limit_enabled? %>
4
- <%= button_to t('.already_voted'), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), method: :delete, remote: true, data: { disable: true }, class: "card__button button #{vote_button_classes(from_proposals_list)} success" %>
5
- <% else %>
6
- <button class="card__button button <%= vote_button_classes(from_proposals_list) %> success">
7
- <%= t('.already_voted') %>
8
- </button>
9
- <% end %>
1
+ <div id="proposal-<%= proposal.id %>-vote-button">
2
+ <% if !current_user %>
3
+ <button class="card__button button <%= vote_button_classes(from_proposals_list) %>" data-toggle="loginModal">
4
+ <%= t('.vote') %>
5
+ </button>
10
6
  <% else %>
11
- <% if vote_limit_enabled? && remaining_votes_count_for(current_user) == 0 %>
12
- <%= button_to t('.no_votes_remaining'), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), remote: true, data: { disable: true }, class: "card__button button #{vote_button_classes(from_proposals_list)}", disabled: true %>
13
- <% elsif current_settings.votes_blocked? %>
14
- <button class="card__button button <%= vote_button_classes(from_proposals_list) %> disabled">
15
- <%= t('.votes_blocked') %>
16
- </button>
7
+ <% if @voted_proposals ? @voted_proposals.include?(proposal.id) : proposal.voted_by?(current_user) %>
8
+ <% if vote_limit_enabled? %>
9
+ <%= action_authorized_button_to :vote, t('.already_voted'), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), method: :delete, remote: true, data: { disable: true }, class: "card__button button #{vote_button_classes(from_proposals_list)} success" %>
10
+ <% else %>
11
+ <button class="card__button button <%= vote_button_classes(from_proposals_list) %> success">
12
+ <%= t('.already_voted') %>
13
+ </button>
14
+ <% end %>
17
15
  <% else %>
18
- <%= button_to t('.vote'), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), remote: true, data: { disable: true }, class: "card__button button #{vote_button_classes(from_proposals_list)}" %>
16
+ <% if vote_limit_enabled? && remaining_votes_count_for(current_user) == 0 %>
17
+ <%= action_authorized_button_to :vote, t('.no_votes_remaining'), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), remote: true, data: { disable: true }, class: "card__button button #{vote_button_classes(from_proposals_list)}", disabled: true %>
18
+ <% elsif current_settings.votes_blocked? %>
19
+ <button class="card__button button <%= vote_button_classes(from_proposals_list) %> disabled">
20
+ <%= t('.votes_blocked') %>
21
+ </button>
22
+ <% else %>
23
+ <%= action_authorized_button_to "vote", t('.vote'), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), remote: true, data: { disable: true }, class: "card__button button #{vote_button_classes(from_proposals_list)}" %>
24
+ <% end %>
19
25
  <% end %>
20
26
  <% end %>
21
- <% else %>
22
- <button class="card__button button <%= vote_button_classes(from_proposals_list) %>" data-toggle="loginModal">
23
- <%= t('.vote') %>
24
- </button>
25
- <% end %>
27
+ </div>
@@ -1,6 +1,9 @@
1
- <span class="<%= votes_count_classes(from_proposals_list)[:number] %>">
2
- <%= proposal.votes.size %>
3
- </span>
4
- <span class="<%= votes_count_classes(from_proposals_list)[:label] %>">
5
- <%= t('.count', count: proposal.votes.size) %>
6
- </span>
1
+ <div id="proposal-<%= proposal.id %>-votes-count" class="card__support__data">
2
+ <span class="<%= votes_count_classes(from_proposals_list)[:number] %>">
3
+ <%= proposal.proposal_votes_count %>
4
+ </span>
5
+ <span class="<%= votes_count_classes(from_proposals_list)[:label] %>">
6
+ <%= t('.count', count: proposal.proposal_votes_count) %>
7
+ </span>
8
+
9
+ </div>
@@ -10,9 +10,7 @@
10
10
  <div class="card card--nomargin text-center">
11
11
  <div class="card__content">
12
12
  <span class="definition-data__title"><%= t('.vote_limit.left', limit: feature_settings.vote_limit) %></span>
13
- <span id="remaining-votes-count" class="extra__suport-number">
14
- <%= render partial: "remaining_votes_count" %>
15
- </span>
13
+ <%= render partial: "remaining_votes_count" %>
16
14
  <span class="extra__suport-text"><%= t('.vote_limit.votes') %></span>
17
15
  </div>
18
16
  </div>
@@ -4,8 +4,8 @@
4
4
  <h2 id="proposals-count" class="title-action__title section-heading">
5
5
  <%= render partial: "count" %>
6
6
  </h2>
7
- <% if can? :create, Decidim::Proposals::Proposal %>
8
- <%= link_to new_proposal_path, class: "title-action__action button small hollow" do %>
7
+ <% if current_settings.creation_enabled %>
8
+ <%= action_authorized_link_to :create, new_proposal_path, class: "title-action__action button small hollow" do %>
9
9
  <%= t(".new_proposal") %>
10
10
  <%= icon "plus" %>
11
11
  <% end %>
@@ -30,4 +30,4 @@
30
30
  </div>
31
31
 
32
32
  <%= javascript_include_tag("decidim/filters") %>
33
- <%= render partial: "decidim/shared/login_modal" %>
33
+ <%= javascript_include_tag "decidim/orders" %>
@@ -1,5 +1,10 @@
1
1
  var $proposals = $('#proposals');
2
2
  var $proposalsCount = $('#proposals-count');
3
+ var $orderFilterInput = $('.order_filter');
3
4
 
4
5
  $proposals.html('<%= j(render partial: "proposals") %>');
5
- $proposalsCount.html('<%= j(render partial: "count") %>');
6
+ $proposalsCount.html('<%= j(render partial: "count") %>');
7
+ $orderFilterInput.val('<%= order %>');
8
+
9
+ var $dropdownMenu = $('.dropdown.menu:last');
10
+ $dropdownMenu.foundation();
@@ -9,7 +9,7 @@
9
9
  <div class="columns large-6 medium-centered">
10
10
  <div class="card">
11
11
  <div class="card__content">
12
- <%= form_for(@form) do |form| %>
12
+ <%= decidim_form_for(@form) do |form| %>
13
13
  <div class="field">
14
14
  <%= form.text_field :title %>
15
15
  </div>
@@ -24,7 +24,7 @@
24
24
  </div>
25
25
  <% end %>
26
26
 
27
- <% if @form.scopes&.any? %>
27
+ <% if @form.scopes&.any? && feature_settings.scoped_proposals_enabled %>
28
28
  <div class="field">
29
29
  <%= form.select :scope_id, @form.scopes.map{|s| [s.name, s.id]}, prompt: t(".select_a_scope") %>
30
30
  </div>
@@ -1,7 +1,8 @@
1
- <% content_for :meta_description, @proposal.body %>
2
- <% content_for :meta_title, @proposal.title %>
3
- <% content_for :meta_url, proposal_url(@proposal.id) %>
4
- <% content_for :twitter_handler, current_organization.twitter_handler %>
1
+ <% add_decidim_meta_tags({
2
+ description: @proposal.body,
3
+ title: @proposal.title,
4
+ url: proposal_url(@proposal.id)
5
+ }) %>
5
6
 
6
7
  <%= render partial: "votes_limit" %>
7
8
  <div class="row column view-header">
@@ -34,30 +35,30 @@
34
35
  </div>
35
36
  </div>
36
37
  <% end %>
37
- <%= render partial: "share", locals: { proposal: @proposal } %>
38
+ <%= render partial: "decidim/shared/share_modal" %>
38
39
  </div>
39
40
  <div class="columns mediumlarge-8 mediumlarge-pull-4">
40
41
  <div class="section">
41
42
  <%= render partial: "proposal_badge", locals: { proposal: @proposal } %>
42
43
  <p><%= @proposal.body %></p>
43
- <% if @proposal.category || @proposal.scope %>
44
- <ul class="tags tags--proposal">
45
- <% if @proposal.category %>
46
- <li><a href=""><%= translated_attribute(@proposal.category.name) %></a></li>
47
- <% end %>
48
- <% if @proposal.scope %>
49
- <li><a href=""><%= @proposal.scope.name %></a></li>
50
- <% end %>
51
- </ul>
52
- <% end %>
44
+ <%= render partial: "tags", locals: { proposal: @proposal } %>
53
45
  </div>
54
- <% if @proposal.rejected? %>
55
- <div class="section">
56
- <div class="callout warning">
57
- <h5><%= t(".proposal_rejected_reason") %></h5>
58
- <p><%= translated_attribute @proposal.answer %></p>
46
+ <% if @proposal.answered? && translated_attribute(@proposal.answer).present? %>
47
+ <% if @proposal.accepted? %>
48
+ <div class="section">
49
+ <div class="callout success">
50
+ <h5><%= t(".proposal_accepted_reason") %></h5>
51
+ <p><%= translated_attribute @proposal.answer %></p>
52
+ </div>
59
53
  </div>
60
- </div>
54
+ <% else %>
55
+ <div class="section">
56
+ <div class="callout warning">
57
+ <h5><%= t(".proposal_rejected_reason") %></h5>
58
+ <p><%= translated_attribute @proposal.answer %></p>
59
+ </div>
60
+ </div>
61
+ <% end %>
61
62
  <% end %>
62
63
  <%= linked_resources_for @proposal, :results, "included_proposals" %>
63
64
  <%= linked_resources_for @proposal, :projects, "included_proposals" %>
@@ -65,13 +66,7 @@
65
66
  </div>
66
67
  </div>
67
68
 
68
- <%= content_for :expanded do %>
69
- <% if feature_settings.comments_always_enabled || current_settings.comments_enabled %>
70
- <%= comments_for @proposal, arguable: true, votable: true %>
71
- <% end %>
72
- <% end %>
73
-
74
- <%= render partial: "decidim/shared/login_modal" %>
69
+ <%= comments_for @proposal %>
75
70
 
76
71
  <%= javascript_include_tag "decidim/proposals/social_share" %>
77
72
  <%= stylesheet_link_tag "decidim/proposals/social_share" %>
@@ -6,3 +6,5 @@ ignore_unused:
6
6
  - "decidim.resource_links.*"
7
7
  - "activemodel.attributes.proposal.*"
8
8
  - "decidim.proposals.answers.*"
9
+ - "decidim.features.proposals.actions.*"
10
+ - "decidim.proposals.proposals.orders.*"
@@ -10,12 +10,23 @@ ca:
10
10
  decidim:
11
11
  features:
12
12
  proposals:
13
+ actions:
14
+ create: Crear propostes
15
+ vote: Votar
13
16
  name: Propostes
14
17
  settings:
18
+ global:
19
+ comments_enabled: Comentaris habilitats
20
+ official_proposals_enabled: Propostes oficials habilitades
21
+ proposal_answering_enabled: Resposta oficial a propostes activades
22
+ scoped_proposals_enabled: Propostes amb àmbits
23
+ vote_limit: Límit de vot
15
24
  step:
25
+ comments_blocked: Comentaris bloquejats
16
26
  creation_enabled: Habilitar de creació de propostes
17
- votes_blocked: Vots bloquejats
18
- votes_enabled: Vots habilitats
27
+ proposal_answering_enabled: Resposta oficial a propostes activades
28
+ votes_blocked: Suports bloquejats
29
+ votes_enabled: Suports habilitats
19
30
  proposals:
20
31
  actions:
21
32
  answer: Respondre
@@ -75,6 +86,8 @@ ca:
75
86
  official: Oficial
76
87
  origin: Origen
77
88
  rejected: Rebutjades
89
+ related_to: Relacionat amb
90
+ scopes: Àmbits
78
91
  search: Cerca
79
92
  state: Estat
80
93
  voted: Votat
@@ -87,37 +100,39 @@ ca:
87
100
  new_proposal: Nova proposta
88
101
  linked_proposals:
89
102
  proposal_votes:
90
- one: <span class="card--list__data__number">1</span>vot
91
- other: <span class="card--list__data__number">%{count}</span>vots
103
+ one: <span class="card--list__data__number">1</span>suport
104
+ other: <span class="card--list__data__number">%{count}</span>suports
92
105
  new:
93
106
  back: Enrere
94
107
  select_a_category: Si us plau, seleccioni una categoria
95
108
  select_a_scope: Si us plau, seleccioni un àmbit
96
109
  send: Enviar
97
110
  title: Nova proposta
111
+ orders:
112
+ label: 'Ordenar propostes per:'
113
+ most_voted: Més votat
114
+ random: Aleatori
115
+ recent: Recent
98
116
  proposal:
99
117
  view_proposal: Veure proposta
100
- share:
101
- close_window: Tanca la finestra
102
- share: Compartir
103
- share_link: Comparteix l'enllaç
104
118
  show:
119
+ proposal_accepted_reason: 'Aquesta proposta ha estat acceptada perquè:'
105
120
  proposal_rejected_reason: 'Aquesta proposta ha estat rebutjada perquè:'
106
121
  vote_button:
107
122
  already_voted: Ja has votat
108
- no_votes_remaining: No hi ha vots restants
123
+ no_votes_remaining: No hi ha suports restants
109
124
  vote: Votar
110
- votes_blocked: Votació desactivada
125
+ votes_blocked: Recollida de suports desactivada
111
126
  votes_count:
112
127
  count:
113
- one: VOT
114
- other: VOTS
128
+ one: SUPORT
129
+ other: SUPORTS
115
130
  votes_limit:
116
131
  vote_limit:
117
- description: En lloc de votar tantes propostes com vulgui, només es pot votar fins %{limit} propostes.
132
+ description: En lloc de donar suport a tantes propostes com es vulgui, només es pot donar suport fins a un màxim de %{limit} propostes.
118
133
  left: Restant
119
- title: Té %{limit} vots a distribuir
120
- votes: Vots
134
+ title: Té %{limit} suports a distribuir
135
+ votes: Suports
121
136
  resource_links:
122
137
  included_proposals:
123
138
  results: 'La proposta apareix en aquests resultats:'
@@ -11,10 +11,21 @@ en:
11
11
  decidim:
12
12
  features:
13
13
  proposals:
14
+ actions:
15
+ create: Create proposals
16
+ vote: Vote
14
17
  name: Proposals
15
18
  settings:
19
+ global:
20
+ comments_enabled: Comments enabled
21
+ official_proposals_enabled: Official proposals enabled
22
+ proposal_answering_enabled: Proposal answering enabled
23
+ scoped_proposals_enabled: Scoped proposals enabled
24
+ vote_limit: Vote limit
16
25
  step:
26
+ comments_blocked: Comments blocked
17
27
  creation_enabled: Proposal creation enabled
28
+ proposal_answering_enabled: Proposal answering enabled
18
29
  votes_blocked: Votes blocked
19
30
  votes_enabled: Votes enabled
20
31
  proposals:
@@ -76,6 +87,8 @@ en:
76
87
  official: Official
77
88
  origin: Origin
78
89
  rejected: Rejected
90
+ related_to: Related to
91
+ scopes: Scopes
79
92
  search: Search
80
93
  state: State
81
94
  voted: Voted
@@ -96,13 +109,15 @@ en:
96
109
  select_a_scope: Please select a scope
97
110
  send: Send
98
111
  title: New proposal
112
+ orders:
113
+ label: 'Order proposals by:'
114
+ most_voted: Most voted
115
+ random: Random
116
+ recent: Recent
99
117
  proposal:
100
118
  view_proposal: View proposal
101
- share:
102
- close_window: Close window
103
- share: Share
104
- share_link: Share link
105
119
  show:
120
+ proposal_accepted_reason: 'This proposal has been accepted because:'
106
121
  proposal_rejected_reason: 'This proposal has been rejected because:'
107
122
  vote_button:
108
123
  already_voted: Already voted