decidim-proposals 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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