decidim-proposals 0.9.3 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +18 -1
  3. data/app/assets/config/admin/decidim_proposals_manifest.js +1 -0
  4. data/app/assets/javascripts/decidim/proposals/admin/proposals.es6 +113 -0
  5. data/app/assets/javascripts/decidim/proposals/identity_selector_dialog.js.es6 +56 -0
  6. data/app/commands/decidim/proposals/admin/answer_proposal.rb +11 -5
  7. data/app/commands/decidim/proposals/admin/create_proposal.rb +25 -3
  8. data/app/commands/decidim/proposals/admin/create_proposal_note.rb +13 -8
  9. data/app/commands/decidim/proposals/admin/import_proposals.rb +83 -0
  10. data/app/commands/decidim/proposals/admin/update_proposal_category.rb +68 -0
  11. data/app/commands/decidim/proposals/create_proposal.rb +0 -12
  12. data/app/commands/decidim/proposals/endorse_proposal.rb +56 -0
  13. data/app/commands/decidim/proposals/publish_proposal.rb +60 -0
  14. data/app/commands/decidim/proposals/unendorse_proposal.rb +40 -0
  15. data/app/commands/decidim/proposals/update_proposal.rb +3 -3
  16. data/app/commands/decidim/proposals/vote_proposal.rb +1 -1
  17. data/app/commands/decidim/proposals/withdraw_proposal.rb +1 -1
  18. data/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +1 -1
  19. data/app/controllers/decidim/proposals/admin/proposal_notes_controller.rb +2 -2
  20. data/app/controllers/decidim/proposals/admin/proposals_controller.rb +50 -1
  21. data/app/controllers/decidim/proposals/admin/proposals_imports_controller.rb +35 -0
  22. data/app/controllers/decidim/proposals/proposal_endorsements_controller.rb +56 -0
  23. data/app/controllers/decidim/proposals/proposals_controller.rb +82 -9
  24. data/app/events/decidim/proposals/admin/update_proposal_category_event.rb +11 -0
  25. data/app/events/decidim/proposals/creation_enabled_event.rb +8 -0
  26. data/app/events/decidim/proposals/endorsing_enabled_event.rb +8 -0
  27. data/app/events/decidim/proposals/proposal_endorsed_event.rb +29 -0
  28. data/app/events/decidim/proposals/publish_proposal_event.rb +21 -0
  29. data/app/events/decidim/proposals/voting_enabled_event.rb +8 -0
  30. data/app/forms/decidim/proposals/admin/proposal_form.rb +9 -2
  31. data/app/forms/decidim/proposals/admin/proposals_import_form.rb +60 -0
  32. data/app/forms/decidim/proposals/proposal_form.rb +16 -5
  33. data/app/helpers/decidim/proposals/application_helper.rb +1 -0
  34. data/app/helpers/decidim/proposals/proposal_endorsements_helper.rb +117 -0
  35. data/app/helpers/decidim/proposals/proposal_votes_helper.rb +13 -6
  36. data/app/helpers/decidim/proposals/proposal_wizard_helper.rb +105 -0
  37. data/app/jobs/decidim/proposals/settings_change_job.rb +48 -0
  38. data/app/models/decidim/proposals/abilities/current_user_ability.rb +30 -8
  39. data/app/models/decidim/proposals/proposal.rb +38 -38
  40. data/app/models/decidim/proposals/proposal_endorsement.rb +31 -0
  41. data/app/models/decidim/proposals/proposal_note.rb +7 -0
  42. data/app/presenters/decidim/proposals/admin_log/proposal_note_presenter.rb +39 -0
  43. data/app/presenters/decidim/proposals/admin_log/proposal_presenter.rb +47 -0
  44. data/app/presenters/decidim/proposals/admin_log/value_types/proposal_state_presenter.rb +16 -0
  45. data/app/queries/decidim/proposals/similar_proposals.rb +53 -0
  46. data/app/types/decidim/proposals/proposal_type.rb +34 -0
  47. data/app/types/decidim/proposals/proposals_type.rb +34 -0
  48. data/app/views/decidim/participatory_processes/participatory_process_groups/_highlighted_proposals.html.erb +8 -0
  49. data/app/views/decidim/participatory_processes/participatory_process_groups/_proposal.html.erb +27 -0
  50. data/app/views/decidim/participatory_spaces/_highlighted_proposals.html.erb +10 -0
  51. data/app/views/decidim/participatory_spaces/_proposal.html.erb +27 -0
  52. data/app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb +15 -0
  53. data/app/views/decidim/proposals/admin/proposals/_js-callout.html.erb +6 -0
  54. data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +63 -0
  55. data/app/views/decidim/proposals/admin/proposals/index.html.erb +12 -73
  56. data/app/views/decidim/proposals/admin/proposals/update_category.js.erb +25 -0
  57. data/app/views/decidim/proposals/admin/proposals_imports/new.html.erb +28 -0
  58. data/app/views/decidim/proposals/proposal_endorsements/_identity.html.erb +4 -0
  59. data/app/views/decidim/proposals/proposal_endorsements/identities.html.erb +12 -0
  60. data/app/views/decidim/proposals/proposal_endorsements/update_buttons_and_counters.js.erb +9 -0
  61. data/app/views/decidim/proposals/proposals/_endorsement_button.html.erb +11 -0
  62. data/app/views/decidim/proposals/proposals/_endorsement_identities_cabin.html.erb +13 -0
  63. data/app/views/decidim/proposals/proposals/_endorsement_xxs.html.erb +9 -0
  64. data/app/views/decidim/proposals/proposals/_endorsements_card_row.html.erb +22 -0
  65. data/app/views/decidim/proposals/proposals/_endorsements_count.html.erb +5 -0
  66. data/app/views/decidim/proposals/proposals/_endorsements_listing.html.erb +34 -0
  67. data/app/views/decidim/proposals/proposals/_proposal.html.erb +2 -2
  68. data/app/views/decidim/proposals/proposals/_proposal_preview.html.erb +36 -0
  69. data/app/views/decidim/proposals/proposals/_proposal_similar.html.erb +21 -0
  70. data/app/views/decidim/proposals/proposals/_vote_button.html.erb +8 -8
  71. data/app/views/decidim/proposals/proposals/_votes_count.html.erb +23 -6
  72. data/app/views/decidim/proposals/proposals/_voting_rules.html.erb +7 -3
  73. data/app/views/decidim/proposals/proposals/_wizard_aside.html.erb +16 -0
  74. data/app/views/decidim/proposals/proposals/_wizard_header.html.erb +31 -0
  75. data/app/views/decidim/proposals/proposals/compare.html.erb +19 -0
  76. data/app/views/decidim/proposals/proposals/edit_draft.html.erb +55 -0
  77. data/app/views/decidim/proposals/proposals/new.html.erb +7 -20
  78. data/app/views/decidim/proposals/proposals/preview.html.erb +18 -0
  79. data/app/views/decidim/proposals/proposals/show.html.erb +13 -4
  80. data/config/locales/ca.yml +156 -15
  81. data/config/locales/en.yml +156 -15
  82. data/config/locales/es.yml +157 -16
  83. data/config/locales/eu.yml +151 -7
  84. data/config/locales/fi.yml +151 -7
  85. data/config/locales/fr.yml +153 -9
  86. data/config/locales/gl.yml +151 -7
  87. data/config/locales/it.yml +151 -7
  88. data/config/locales/nl.yml +151 -7
  89. data/config/locales/pl.yml +148 -22
  90. data/config/locales/pt-BR.yml +151 -7
  91. data/config/locales/pt.yml +151 -7
  92. data/config/locales/ru.yml +0 -9
  93. data/config/locales/sv.yml +151 -7
  94. data/config/locales/uk.yml +87 -13
  95. data/db/migrate/20170307085300_migrate_proposal_reports_data_to_reports.rb +1 -1
  96. data/db/migrate/20171201115434_create_proposal_endorsements.rb +16 -0
  97. data/db/migrate/20171201122623_add_counter_cache_endorsements_to_proposals.rb +8 -0
  98. data/db/migrate/20171212102250_enable_pg_extensions.rb +7 -0
  99. data/db/migrate/20171220084719_add_published_at_to_proposals.rb +14 -0
  100. data/lib/decidim/proposals.rb +15 -0
  101. data/lib/decidim/proposals/admin_engine.rb +8 -0
  102. data/lib/decidim/proposals/commentable_proposal.rb +39 -0
  103. data/lib/decidim/proposals/engine.rb +69 -1
  104. data/lib/decidim/proposals/feature.rb +51 -6
  105. data/lib/decidim/proposals/test/factories.rb +78 -2
  106. data/lib/decidim/proposals/version.rb +1 -1
  107. metadata +76 -20
  108. data/app/events/decidim/proposals/create_proposal_event.rb +0 -9
@@ -18,7 +18,7 @@
18
18
  <% end %>
19
19
  </div>
20
20
  <% if @proposal.withdrawable_by?(current_user) %>
21
- <%= action_authorized_link_to :withdraw, withdraw_proposal_path(@proposal), method: :put, class: "title-action__action button small hollow", data: {confirm: t('.withdraw_confirmation')} do %>
21
+ <%= action_authorized_link_to :withdraw, withdraw_proposal_path(@proposal), method: :put, class: "title-action__action button small hollow", title: t('.withdraw_btn_hint'), data: {confirm: t('.withdraw_confirmation')} do %>
22
22
  <%= t('.withdraw_proposal') %>
23
23
  <%= icon "x" %>
24
24
  <% end %>
@@ -30,20 +30,26 @@
30
30
  <% if can?(:edit, @proposal) %>
31
31
  <%= link_to t(".edit_proposal"), edit_proposal_path(@proposal), class: "button secondary hollow expanded button-sc button--icon follow-button" %>
32
32
  <% end %>
33
- <% if current_settings.votes_enabled? || current_user %>
34
- <div class="card extra">
33
+ <% if current_settings.votes_enabled? || show_endorsements_card? || current_user %>
34
+ <div class="card">
35
35
  <div class="card__content">
36
36
  <% if current_settings.votes_enabled? %>
37
37
  <%= render partial: "votes_count", locals: { proposal: @proposal, from_proposals_list: false } %>
38
38
  <%= render partial: "vote_button", locals: { proposal: @proposal, from_proposals_list: false } %>
39
39
  <% end %>
40
+ <%= render partial: "endorsements_card_row", locals: { proposal: @proposal } %>
41
+ <br/>
40
42
  <% if current_user %>
41
43
  <%= render partial: "decidim/shared/follow_button", locals: { followable: @proposal } %>
44
+ <% else %>
45
+ <p class="mt-s mb-none">
46
+ <%= t(".sign_in_or_up", {in: link_to(t(".sign_in"), decidim.new_user_session_path), up: link_to(t(".sign_up"), decidim.new_user_registration_path)}).html_safe %>
47
+ </p>
42
48
  <% end %>
43
49
  </div>
44
50
  </div>
45
51
  <% end %>
46
- <%= feature_reference(@proposal) %>
52
+ <%= resource_reference(@proposal) %>
47
53
  <%= render partial: "decidim/shared/share_modal" %>
48
54
  <%= embed_modal_for proposal_proposal_widget_url(@proposal, format: :js) %>
49
55
  </div>
@@ -83,10 +89,13 @@
83
89
  <%= linked_resources_for @proposal, :results, "included_proposals" %>
84
90
  <%= linked_resources_for @proposal, :projects, "included_proposals" %>
85
91
  <%= linked_resources_for @proposal, :meetings, "proposals_from_meeting" %>
92
+ <%= linked_resources_for @proposal, :proposals, "copied_from_component" %>
86
93
  </div>
87
94
  </div>
88
95
  <%= attachments_for @proposal %>
89
96
 
97
+ <a name="list-of-endorsements"></a>
98
+ <%= render partial: 'endorsements_listing', locals: {proposal: @proposal} %>
90
99
  <%= comments_for @proposal %>
91
100
 
92
101
  <%= javascript_include_tag "decidim/proposals/social_share" %>
@@ -2,67 +2,127 @@ ca:
2
2
  activemodel:
3
3
  attributes:
4
4
  proposal:
5
+ answer: Resposta
6
+ answered_at: Respost el
5
7
  body: Cos
6
8
  category_id: Categoria
7
9
  has_address: Té adreça
8
10
  scope_id: Àmbit
11
+ state: Estat
9
12
  title: Títol
10
13
  user_group_id: Crear proposta
11
14
  proposal_answer:
12
15
  answer: Resposta
16
+ proposals_copy:
17
+ copy_proposals: Entenc que això importarà totes les propostes del component seleccionat a l'actual i que aquesta acció no es pot revertir.
18
+ origin_feature_id: Component des d'on copiar les propostes
13
19
  decidim:
14
20
  events:
15
21
  proposals:
22
+ creation_enabled:
23
+ email_intro: 'Ara pots crear noves propostes a %{participatory_space_title}. Comença a participar a aquesta pàgina:'
24
+ email_outro: Has rebut aquesta notificació perquè estàs seguint %{participatory_space_title}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
25
+ email_subject: Les propostes ja estan disponibles a %{participatory_space_title}
26
+ notification_title: Ara pots començar <a href="%{resource_path}">noves propostes</a> a <a href="%{participatory_space_url}">%{participatory_space_title}</a>
27
+ endorsing_enabled:
28
+ email_intro: 'Pots adherir-te a les propostes de %{participatory_space_title}. Comença a participar en aquesta pàgina:'
29
+ email_outro: Has rebut aquesta notificació perquè estàs seguint %{participatory_space_title}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
30
+ email_subject: Ara ja et pots adherir a les propostes de %{participatory_space_title}
31
+ notification_title: Ara ja pots començar a <a href="%{resource_path}">adherir-te a propostes</a> a <a href="%{participatory_space_url}">%{participatory_space_title}</a>
16
32
  proposal_accepted:
17
33
  email_intro: 'S''ha acceptat la proposta "%{resource_title}". Pots llegir la resposta des d''aquesta pàgina:'
18
34
  email_outro: Has rebut aquesta notificació perquè que segueixes "%{resource_title}". El pots deixar de seguir al link anterior.
19
35
  email_subject: Una proposta que segueixes ha estat acceptada
20
36
  notification_title: S'ha acceptat la proposta <a href="%{resource_path}">%{resource_title}</a>.
21
- proposal_created:
22
- email_intro: "%{author_name} %{author_nickname}, a qui segueixes, ha creat una nova proposta. Revisa-la i contribueix:"
23
- email_outro: Has rebut aquesta notificació perquè estàs seguint %{author_nickname}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
24
- email_subject: Nova proposta de %{author_nickname}
25
- notification_title: La proposta "<a href="%{resource_path}">%{resource_title}</a>" ha estat creada per en/na <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
37
+ proposal_endorsed:
38
+ email_intro: "%{endorser_name} %{endorser_nickname}, a qui segueixes, acaba d'adherir-se a una proposta que et pot resultar interessant, revisar-la i contribueix:"
39
+ email_outro: Has rebut aquesta notificació perquè estàs seguint a %{endorser_nickname}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
40
+ email_subject: "%{endorser_nickname} s'ha adherit a una proposta"
41
+ notification_title: La proposta <a href="%{resource_path}">%{resource_title}</a> ha estat aprovada per <a href="%{endorser_path}">%{endorser_name} %{endorser_nickname}</a>.
26
42
  proposal_evaluating:
27
43
  email_intro: 'La proposta "%{resource_title}" s''està avaluant actualment. Pots consultar una resposta en aquesta pàgina:'
28
44
  email_outro: Has rebut aquesta notificació perquè que segueixes "%{resource_title}". El pots deixar de seguir al link anterior.
29
45
  email_subject: S'està avaluant una proposta que segueixes
30
46
  notification_title: S'ha avaluat la proposta <a href="%{resource_path}">%{resource_title}</a>.
47
+ proposal_published:
48
+ email_intro: "%{author_name} %{author_nickname}, a qui segueixes, ha publicat una nova proposta. Revisa-la i contribueix:"
49
+ email_outro: Has rebut aquesta notificació perquè estàs seguint %{author_nickname}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
50
+ email_subject: Nova proposta de %{author_nickname}
51
+ notification_title: La proposta "<a href="%{resource_path}">%{resource_title}</a>" ha estat publicada per en/na <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
52
+ proposal_published_for_space:
53
+ email_intro: S'ha afegit la proposta "%{resource_title}" a l'espai "%{participatory_space_title}" que estàs seguint.
54
+ email_outro: Has rebut aquesta notificació perquè estàs seguint "%{participatory_space_title}". Pots deixar de seguir-lo des de l'enllaç anterior.
55
+ email_subject: Nova proposta afegida a %{participatory_space_title}
56
+ notification_title: S'ha afegit la proposta <a href="%{resource_path}">%{resource_title}</a> a %{participatory_space_title}
31
57
  proposal_rejected:
32
58
  email_intro: 'La proposta "%{resource_title}" ha estat rebutjada. Pots llegir la resposta des d''aquesta pàgina:'
33
59
  email_outro: Has rebut aquesta notificació perquè que segueixes "%{resource_title}". El pots deixar de seguir al link anterior.
34
60
  email_subject: S'ha rebutjat una proposta que segueixes
35
61
  notification_title: S'ha rebutjat la proposta <a href="%{resource_path}">%{resource_title}</a>.
62
+ proposal_update_category:
63
+ email_intro: 'Un administrador ha actualitzat la categoria de la teva proposta "%{resource_title}", fes-hi una ullada:'
64
+ email_outro: Has rebut aquesta notificació perquè ets l'autor de la proposta.
65
+ email_subject: S'ha actualitzat la categoria de la proposta %{resource_title}
66
+ notification_title: La categoria de la proposta <a href="%{resource_path}">%{resource_title}</a> ha estat actualitzada per un administrador.
67
+ voting_enabled:
68
+ email_intro: 'Pots començar a donar suports a les propostes de %{participatory_space_title}. Comença a participar a aquesta pàgina:'
69
+ email_outro: Has rebut aquesta notificació perquè estàs seguint %{participatory_space_title}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
70
+ email_subject: Has rebut aquesta notificació perquè estàs seguint %{participatory_space_title}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
71
+ notification_title: Ja pots començar a <a href="%{resource_path}">donar suports a propostes</a> a <a href="%{participatory_space_url}">%{participatory_space_title}</a>
36
72
  features:
37
73
  proposals:
38
74
  actions:
39
75
  create: Crear
76
+ endorse: Adherir-se
40
77
  vote: Donar suport
78
+ withdraw: Retirar
41
79
  name: Propostes
42
80
  settings:
43
81
  global:
44
82
  announcement: Avís
45
83
  attachments_allowed: Permetre arxius adjunts
84
+ can_accumulate_supports_beyond_threshold: Pot acumular suports més enllà del llindar
46
85
  comments_enabled: Comentaris habilitats
47
86
  geocoding_enabled: Geocodificació habilitada
48
- maximum_votes_per_proposal: Suports màxims per proposta
49
87
  new_proposal_help_text: Text d'ajuda al crear una nova proposta
50
88
  official_proposals_enabled: Propostes oficials habilitades
51
89
  proposal_answering_enabled: Resposta oficial a propostes activades
52
90
  proposal_edit_before_minutes: Les propostes poden ser editades pels autors abans que passin aquest nombre de minuts
91
+ proposal_length: Longitud màxima del cos de la proposta
53
92
  proposal_limit: Límit de propostes per usuari
93
+ proposal_wizard_step_1_help_text: Text d'ajuda a la creació de propostes
94
+ proposal_wizard_step_2_help_text: Text d'ajuda a la comparació de propostes
95
+ proposal_wizard_step_3_help_text: Text del pas "Publicar" de l'assistent de propostes
96
+ threshold_per_proposal: Llindar per proposta
54
97
  vote_limit: Límit de suports per usuari
55
98
  step:
56
99
  announcement: Avís
57
100
  comments_blocked: Comentaris bloquejats
58
101
  creation_enabled: Habilitar de creació de propostes
102
+ endorsements_blocked: Bloquejar adhesions
103
+ endorsements_enabled: Adhesions habilitades
59
104
  proposal_answering_enabled: Resposta oficial a propostes activades
60
105
  votes_blocked: Suports bloquejats
61
106
  votes_enabled: Suports habilitats
62
107
  votes_hidden: Suports ocults (si els suports estan habilitats, marcant aquesta opció amagarà el nombre de suports)
108
+ participatory_processes:
109
+ participatory_process_groups:
110
+ highlighted_proposals:
111
+ proposals: Propostes
112
+ proposal:
113
+ creation_date: 'Data de creació: %{date}'
114
+ view_proposal: Veure proposta
115
+ participatory_spaces:
116
+ highlighted_proposals:
117
+ proposals: Propostes
118
+ see_all_proposals: Veure totes les propostes
119
+ proposal:
120
+ creation_date: 'Creació: %{date}'
121
+ view_proposal: Veure proposta
63
122
  proposals:
64
123
  actions:
65
124
  answer: Respondre
125
+ import: Importa des d'un altre component
66
126
  new: Nova
67
127
  private_notes: Notes privades
68
128
  title: Accions
@@ -102,16 +162,41 @@ ca:
102
162
  attachment_legend: "(Opcional) Afegiu un fitxer adjunt"
103
163
  select_a_category: Selecciona una categoria
104
164
  index:
165
+ actions: Accions
166
+ cancel: Cancel·lar
167
+ change_category: Canvia la categoria
168
+ selected: seleccionat
105
169
  title: Propostes
170
+ update: Actualitza
106
171
  new:
107
172
  create: Crear
108
173
  title: Crear proposta
174
+ update_category:
175
+ invalid: 'Aquestes propostes ja tenien la categoria %{category}: %{proposals}.'
176
+ select_a_category: Selecciona una categoria
177
+ select_a_proposal: Selecciona una proposta
178
+ success: 'Les propostes s''han actualitzat correctament a la categoria %{category}: %{proposals}.'
179
+ proposals_imports:
180
+ create:
181
+ invalid: Hi ha hagut un problema important les propostes
182
+ success: "%{number} propostes importades correctament"
183
+ new:
184
+ create: Importa propostes
185
+ no_features: No hi ha cap altre component de propostes en aquest espai participatiu des d'on importar-les.
186
+ select_feature: Seleccioneu un component
187
+ select_states: Consulteu els estats de les propostes per importar
109
188
  shared:
110
189
  info_proposal:
111
190
  body: Cos
112
191
  created_at: Data de creació
113
192
  proposal_votes_count: Nombre de suports
114
193
  proposals: Propostes
194
+ admin_log:
195
+ proposal:
196
+ answer: "%{user_name} ha respost a la proposta %{resource_name} a l'espai %{space_name}"
197
+ create: "%{user_name} ha creat la proposta %{resource_name} sobre l'espai %{space_name} com a proposta oficial"
198
+ proposal_note:
199
+ create: "%{user_name} ha deixat una nota privada a la proposta %{resource_name} dins l'espai %{space_name}"
115
200
  answers:
116
201
  accepted: Acceptada
117
202
  evaluating: En avaluació
@@ -120,7 +205,7 @@ ca:
120
205
  withdrawn: Retirada
121
206
  create:
122
207
  error: Hi ha hagut errors en desar la proposta.
123
- success: Proposta creada correctament.
208
+ success: La proposta s'ha creat correctament. S'ha desat com a esborrany.
124
209
  models:
125
210
  proposal:
126
211
  fields:
@@ -136,10 +221,24 @@ ca:
136
221
  votes: Suports
137
222
  new:
138
223
  limit_reached: No pots crear noves propostes ja que has superat el límit.
224
+ proposal_endorsements:
225
+ create:
226
+ error: Hi ha hagut errors en aprovar la proposta.
227
+ identities:
228
+ done: Fet
229
+ select_identity: Selecciona identitat
230
+ proposal_endorsements_helper:
231
+ endorsement_button:
232
+ already_endorsed: Ja adherit
233
+ endorse: Adherir-se
139
234
  proposal_votes:
140
235
  create:
141
236
  error: Hi ha hagut errors en donar suport a la proposta.
142
237
  proposals:
238
+ compare:
239
+ mine_is_different: La meva proposta és diferent
240
+ no_similars_found: Ben fet! No s'han trobat propostes semblants
241
+ title: Propostes similars
143
242
  count:
144
243
  proposals_count:
145
244
  one: 1 proposta
@@ -149,6 +248,20 @@ ca:
149
248
  select_a_category: Si us plau, selecciona una categoria
150
249
  send: Enviar
151
250
  title: Editar proposta
251
+ edit_draft:
252
+ send: Vista prèvia
253
+ title: Edició l'esborrany de proposta
254
+ endorsement_button:
255
+ already_endorsed: Ja adherit
256
+ already_endorsed_hover: Desadherir-se
257
+ endorsement_identities_cabin:
258
+ endorse: Adherir-se
259
+ endorsements_card_row:
260
+ endorse: Adherir-se
261
+ endorsements_listing:
262
+ see_all: Veure tot
263
+ see_less: Veure menys
264
+ title: Llista d'adhesions
152
265
  filters:
153
266
  accepted: Acceptades
154
267
  activity: Activitat
@@ -179,18 +292,21 @@ ca:
179
292
  other: suports
180
293
  new:
181
294
  attachment_legend: "(Opcional) Afegiu un fitxer adjunt"
182
- back: Enrere
183
- proposal_edit_before_minutes:
184
- one: Podràs editar aquesta proposta durant el primer minut després de la creació de la proposta. Un cop passada aquesta finestra de temps, no podràs editar la proposta.
185
- other: Podràs editar aquesta proposta durant els primers %{count} minuts després de la creació de la proposta. Un cop passada aquesta finestra de temps, no podràs editar la proposta.
186
295
  select_a_category: Si us plau, seleccioni una categoria
187
- send: Enviar
188
- title: Nova proposta
296
+ send: Continua
297
+ title: Crea la teva proposta
189
298
  orders:
190
299
  label: 'Ordenar propostes per:'
191
300
  most_voted: Ha rebut més suports
192
301
  random: Aleatori
193
302
  recent: Recent
303
+ preview:
304
+ modify: Modifica la proposta
305
+ proposal_edit_before_minutes:
306
+ one: Podràs editar aquesta proposta durant el primer minut després de publicar la proposta. Un cop passada aquesta finestra de temps, no podràs editar la proposta.
307
+ other: Podràs editar aquesta proposta durant els primers %{count} minuts després de la publicació de la proposta. Un cop passada aquesta finestra de temps, no podràs editar la proposta.
308
+ publish: Publica
309
+ title: Publica la teva proposta
194
310
  proposal:
195
311
  creation_date: 'Creació: %{date}'
196
312
  view_proposal: Veure proposta
@@ -200,6 +316,10 @@ ca:
200
316
  proposal_in_evaluation_reason: S'està avaluant aquesta proposta
201
317
  proposal_rejected_reason: 'Aquesta proposta ha estat rebutjada perquè:'
202
318
  report: Informe
319
+ sign_in: Inicia sessió
320
+ sign_in_or_up: "%{in} o %{up} per participar"
321
+ sign_up: Registra't
322
+ withdraw_btn_hint: Pots retirar la teva proposta si canvies d'opinió, sempre que no hagis rebut cap suport. La proposta no s'esborra, apareixerà a la llista de propostes retirades.
203
323
  withdraw_confirmation: Estàs segur que vols retirar aquesta proposta?
204
324
  withdraw_proposal: Retirar proposta
205
325
  vote_button:
@@ -213,20 +333,41 @@ ca:
213
333
  count:
214
334
  one: SUPORT
215
335
  other: SUPORTS
336
+ most_popular_proposal: Proposta més popular
337
+ need_more_votes: Necessita més vots
216
338
  voting_rules:
217
- maximum_votes_per_proposal:
218
- description: Cada proposta pot rebre un màxim de %{limit} suports.
339
+ can_accumulate_supports_beyond_threshold:
340
+ description: Cada proposta pot acumular més del màxim de vots
219
341
  proposal_limit:
220
342
  description: Pots crear fins a %{limit} propostes.
343
+ threshold_per_proposal:
344
+ description: Cada proposta pot rebre un màxim de %{limit} suports.
221
345
  title: 'La selecció de propostes es regeix per les següents normes:'
222
346
  vote_limit:
223
347
  description: Pots donar suport a %{limit} propostes.
224
348
  left: Restant
225
349
  votes: Suports
350
+ wizard_aside:
351
+ back: Enrere
352
+ info: Estàs creant una <strong>proposta</strong>.
353
+ wizard_steps:
354
+ see_steps: veure les fases
355
+ step_1: Crea la teva proposta
356
+ step_2: Compara
357
+ step_3: Publica la teva proposta
358
+ step_of: Fase %{current_step_num} de %{total_steps}
359
+ publish:
360
+ error: Hi ha hagut errors en publicar la proposta.
361
+ success: La proposta s'ha publicat correctament.
226
362
  update:
227
363
  error: Hi ha hagut errors en desar la proposta.
228
364
  success: La proposta s'ha actualitzat correctament.
365
+ update_draft:
366
+ error: Hi ha hagut errors en desar l'esborrany de la proposta.
367
+ success: El projecte de proposta s'ha actualitzat correctament.
229
368
  resource_links:
369
+ copied_from_component:
370
+ proposal_proposals: Propostes relacionades
230
371
  included_projects:
231
372
  project_results: 'Resultats que apareixen en aquest projecte:'
232
373
  included_proposals:
@@ -3,67 +3,127 @@ en:
3
3
  activemodel:
4
4
  attributes:
5
5
  proposal:
6
+ answer: Answer
7
+ answered_at: Answered at
6
8
  body: Body
7
9
  category_id: Category
8
10
  has_address: Has address
9
11
  scope_id: Scope
12
+ state: State
10
13
  title: Title
11
14
  user_group_id: Create proposal as
12
15
  proposal_answer:
13
16
  answer: Answer
17
+ proposals_copy:
18
+ copy_proposals: I understand that this will import all proposals from the selected component to the current one and that this action can't be reversed.
19
+ origin_feature_id: Component to copy the proposals from
14
20
  decidim:
15
21
  events:
16
22
  proposals:
23
+ creation_enabled:
24
+ email_intro: 'You can now create new proposals in %{participatory_space_title}! Start participating in this page:'
25
+ email_outro: You have received this notification because you are following %{participatory_space_title}. You can stop receiving notifications following the previous link.
26
+ email_subject: Proposals now available in %{participatory_space_title}
27
+ notification_title: You can now start <a href="%{resource_path}">new proposals</a> in <a href="%{participatory_space_url}">%{participatory_space_title}</a>
28
+ endorsing_enabled:
29
+ email_intro: 'You can endorse proposals in %{participatory_space_title}! Start participating in this page:'
30
+ email_outro: You have received this notification because you are following %{participatory_space_title}. You can stop receiving notifications following the previous link.
31
+ email_subject: Proposals endorsing has started for %{participatory_space_title}
32
+ notification_title: You can now start <a href="%{resource_path}">endorsing proposals</a> in <a href="%{participatory_space_url}">%{participatory_space_title}</a>
17
33
  proposal_accepted:
18
34
  email_intro: 'The proposal "%{resource_title}" has been accepted. You can read the answer in this page:'
19
35
  email_outro: You have received this notification because you are following "%{resource_title}". You can unfollow it from the previous link.
20
36
  email_subject: A proposal you're following has been accepted
21
37
  notification_title: The <a href="%{resource_path}">%{resource_title}</a> proposal has been accepted.
22
- proposal_created:
23
- email_intro: "%{author_name} %{author_nickname}, who you are following, has created a new proposal, check it out and contribute:"
24
- email_outro: You have received this notification because you are following %{author_nickname}. You can stop receiving notifications following the previous link.
25
- email_subject: New proposal by %{author_nickname}
26
- notification_title: The <a href="%{resource_path}">%{resource_title}</a> proposal was created by <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
38
+ proposal_endorsed:
39
+ email_intro: "%{endorser_name} %{endorser_nickname}, who you are following, has just endorsed a proposal that may be interesting to you, check it out and contribute:"
40
+ email_outro: You have received this notification because you are following %{endorser_nickname}. You can stop receiving notifications following the previous link.
41
+ email_subject: "%{endorser_nickname} has endorsed a new proposal"
42
+ notification_title: The <a href="%{resource_path}">%{resource_title}</a> proposal has been endorsed by <a href="%{endorser_path}">%{endorser_name} %{endorser_nickname}</a>.
27
43
  proposal_evaluating:
28
44
  email_intro: 'The proposal "%{resource_title}" is currently being evaluated. You can check for an answer in this page:'
29
45
  email_outro: You have received this notification because you are following "%{resource_title}". You can unfollow it from the previous link.
30
46
  email_subject: A proposal you're following is being evaluated
31
47
  notification_title: The <a href="%{resource_path}">%{resource_title}</a> proposal is being evaluated.
48
+ proposal_published:
49
+ email_intro: "%{author_name} %{author_nickname}, who you are following, has published a new proposal, check it out and contribute:"
50
+ email_outro: You have received this notification because you are following %{author_nickname}. You can stop receiving notifications following the previous link.
51
+ email_subject: New proposal by %{author_nickname}
52
+ notification_title: The <a href="%{resource_path}">%{resource_title}</a> proposal was published by <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
53
+ proposal_published_for_space:
54
+ email_intro: The proposal "%{resource_title}" has been added to "%{participatory_space_title}" that you are following.
55
+ email_outro: You have received this notification because you are following "%{participatory_space_title}". You can unfollow it from the previous link.
56
+ email_subject: New proposal added to %{participatory_space_title}
57
+ notification_title: The proposal <a href="%{resource_path}">%{resource_title}</a> has been added to %{participatory_space_title}
32
58
  proposal_rejected:
33
59
  email_intro: 'The proposal "%{resource_title}" has been rejected. You can read the answer in this page:'
34
60
  email_outro: You have received this notification because you are following "%{resource_title}". You can unfollow it from the previous link.
35
61
  email_subject: A proposal you're following has been rejected
36
62
  notification_title: The <a href="%{resource_path}">%{resource_title}</a> proposal has been rejected.
63
+ proposal_update_category:
64
+ email_intro: 'An admin has updated the category of your proposal "%{resource_title}", check it out:'
65
+ email_outro: You have received this notification because you are the author of the proposal.
66
+ email_subject: The %{resource_title} proposal category has been updated
67
+ notification_title: The <a href="%{resource_path}">%{resource_title}</a> proposal category has been updated by an admin.
68
+ voting_enabled:
69
+ email_intro: 'You can vote proposals in %{participatory_space_title}! Start participating in this page:'
70
+ email_outro: You have received this notification because you are following %{participatory_space_title}. You can stop receiving notifications following the previous link.
71
+ email_subject: Proposals voting has started for %{participatory_space_title}
72
+ notification_title: You can now start <a href="%{resource_path}">voting proposals</a> in <a href="%{participatory_space_url}">%{participatory_space_title}</a>
37
73
  features:
38
74
  proposals:
39
75
  actions:
40
76
  create: Create
77
+ endorse: Endorse
41
78
  vote: Vote
79
+ withdraw: Withdraw
42
80
  name: Proposals
43
81
  settings:
44
82
  global:
45
83
  announcement: Announcement
46
84
  attachments_allowed: Allow attachments
85
+ can_accumulate_supports_beyond_threshold: Can accumulate supports beyond threshold
47
86
  comments_enabled: Comments enabled
48
87
  geocoding_enabled: Geocoding enabled
49
- maximum_votes_per_proposal: Maximum votes per proposal
50
88
  new_proposal_help_text: New proposal help text
51
89
  official_proposals_enabled: Official proposals enabled
52
90
  proposal_answering_enabled: Proposal answering enabled
53
91
  proposal_edit_before_minutes: Proposals can be edited by authors before this many minutes passes
92
+ proposal_length: Maximum proposal body length
54
93
  proposal_limit: Proposal limit per user
94
+ proposal_wizard_step_1_help_text: Proposal wizard "Create" step help text
95
+ proposal_wizard_step_2_help_text: Proposal wizard "Compare" step help text
96
+ proposal_wizard_step_3_help_text: Proposal wizard "Publish" step help text
97
+ threshold_per_proposal: Threshold per proposal
55
98
  vote_limit: Vote limit per user
56
99
  step:
57
100
  announcement: Announcement
58
101
  comments_blocked: Comments blocked
59
102
  creation_enabled: Proposal creation enabled
103
+ endorsements_blocked: Endorsements blocked
104
+ endorsements_enabled: Endorsements enabled
60
105
  proposal_answering_enabled: Proposal answering enabled
61
106
  votes_blocked: Votes blocked
62
107
  votes_enabled: Votes enabled
63
108
  votes_hidden: Votes hidden (if votes are enabled, checking this will hide the number of votes)
109
+ participatory_processes:
110
+ participatory_process_groups:
111
+ highlighted_proposals:
112
+ proposals: Proposals
113
+ proposal:
114
+ creation_date: 'Creation: %{date}'
115
+ view_proposal: View proposal
116
+ participatory_spaces:
117
+ highlighted_proposals:
118
+ proposals: Proposals
119
+ see_all_proposals: See all proposals
120
+ proposal:
121
+ creation_date: 'Creation: %{date}'
122
+ view_proposal: View proposal
64
123
  proposals:
65
124
  actions:
66
125
  answer: Answer
126
+ import: Import from another component
67
127
  new: New
68
128
  private_notes: Private notes
69
129
  title: Actions
@@ -103,16 +163,41 @@ en:
103
163
  attachment_legend: "(Optional) Add an attachment"
104
164
  select_a_category: Select a category
105
165
  index:
166
+ actions: Actions
167
+ cancel: Cancel
168
+ change_category: Change category
169
+ selected: selected
106
170
  title: Proposals
171
+ update: Update
107
172
  new:
108
173
  create: Create
109
174
  title: Create proposal
175
+ update_category:
176
+ invalid: 'These proposals already had the %{category} category: %{proposals}.'
177
+ select_a_category: Please select a category
178
+ select_a_proposal: Please select a proposal
179
+ success: 'Proposals successfully updated to the %{category} category: %{proposals}.'
180
+ proposals_imports:
181
+ create:
182
+ invalid: There's been a problem importing the proposals
183
+ success: "%{number} proposals successfully imported"
184
+ new:
185
+ create: Import proposals
186
+ no_features: There are no other proposal features in this participatory space to import the proposals from.
187
+ select_feature: Please select a component
188
+ select_states: Check the states of the proposals to import
110
189
  shared:
111
190
  info_proposal:
112
191
  body: Body
113
192
  created_at: Creation date
114
193
  proposal_votes_count: Votes count
115
194
  proposals: Proposals
195
+ admin_log:
196
+ proposal:
197
+ answer: "%{user_name} answered the %{resource_name} proposal on the %{space_name} space"
198
+ create: "%{user_name} created the %{resource_name} proposal on the %{space_name} space as an official proposal"
199
+ proposal_note:
200
+ create: "%{user_name} left a private note on the %{resource_name} proposal on the %{space_name} space"
116
201
  answers:
117
202
  accepted: Accepted
118
203
  evaluating: Evaluating
@@ -121,7 +206,7 @@ en:
121
206
  withdrawn: Withdrawn
122
207
  create:
123
208
  error: There's been errors when saving the proposal.
124
- success: Proposal created successfully.
209
+ success: Proposal created successfully. Saved as a Draft.
125
210
  models:
126
211
  proposal:
127
212
  fields:
@@ -137,10 +222,24 @@ en:
137
222
  votes: Votes
138
223
  new:
139
224
  limit_reached: You can't create new proposals since you've exceeded the limit.
225
+ proposal_endorsements:
226
+ create:
227
+ error: There's been errors when endorsing the proposal.
228
+ identities:
229
+ done: Done
230
+ select_identity: Select identity
231
+ proposal_endorsements_helper:
232
+ endorsement_button:
233
+ already_endorsed: Already endorsed
234
+ endorse: Endorse
140
235
  proposal_votes:
141
236
  create:
142
237
  error: There's been errors when voting the proposal.
143
238
  proposals:
239
+ compare:
240
+ mine_is_different: My proposal is different
241
+ no_similars_found: Well done! No similar proposals found
242
+ title: Similar Proposals
144
243
  count:
145
244
  proposals_count:
146
245
  one: 1 proposal
@@ -150,6 +249,20 @@ en:
150
249
  select_a_category: Please select a category
151
250
  send: Send
152
251
  title: Edit proposal
252
+ edit_draft:
253
+ send: Preview
254
+ title: Edit Proposal Draft
255
+ endorsement_button:
256
+ already_endorsed: Already endorsed
257
+ already_endorsed_hover: Unendorse
258
+ endorsement_identities_cabin:
259
+ endorse: Endorse
260
+ endorsements_card_row:
261
+ endorse: Endorse
262
+ endorsements_listing:
263
+ see_all: See all
264
+ see_less: See less
265
+ title: List of Endorsements
153
266
  filters:
154
267
  accepted: Accepted
155
268
  activity: Activity
@@ -180,18 +293,21 @@ en:
180
293
  other: votes
181
294
  new:
182
295
  attachment_legend: "(Optional) Add an attachment"
183
- back: Back
184
- proposal_edit_before_minutes:
185
- one: You will be able to edit this proposal during the first minute after the proposal was created. Once this time window passes, you will not be able to edit the proposal.
186
- other: You will be able to edit this proposal during the first %{count} minutes after the proposal was created. Once this time window passes, you will not be able to edit the proposal.
187
296
  select_a_category: Please select a category
188
- send: Send
189
- title: New proposal
297
+ send: Continue
298
+ title: Create Your Proposal
190
299
  orders:
191
300
  label: 'Order proposals by:'
192
301
  most_voted: Most voted
193
302
  random: Random
194
303
  recent: Recent
304
+ preview:
305
+ modify: Modify the proposal
306
+ proposal_edit_before_minutes:
307
+ one: You will be able to edit this proposal during the first minute after the proposal is published. Once this time window passes, you will not be able to edit the proposal.
308
+ other: You will be able to edit this proposal during the first %{count} minutes after the proposal is published. Once this time window passes, you will not be able to edit the proposal.
309
+ publish: Publish
310
+ title: Publish your proposal
195
311
  proposal:
196
312
  creation_date: 'Creation: %{date}'
197
313
  view_proposal: View proposal
@@ -201,6 +317,10 @@ en:
201
317
  proposal_in_evaluation_reason: This proposal is being evaluated
202
318
  proposal_rejected_reason: 'This proposal has been rejected because:'
203
319
  report: Report
320
+ sign_in: Sign in
321
+ sign_in_or_up: "%{in} or %{up} to participate"
322
+ sign_up: sign up
323
+ withdraw_btn_hint: You can withdraw your proposal if you change your mind, as long as you have not received any support. The proposal is not deleted, it will appear in the list of withdrawn proposals.
204
324
  withdraw_confirmation: Are you sure to withdraw this proposal?
205
325
  withdraw_proposal: Withdraw proposal
206
326
  vote_button:
@@ -214,20 +334,41 @@ en:
214
334
  count:
215
335
  one: VOTE
216
336
  other: VOTES
337
+ most_popular_proposal: Most popular proposal
338
+ need_more_votes: Need more votes
217
339
  voting_rules:
218
- maximum_votes_per_proposal:
219
- description: Each proposal can receive a maximum of %{limit} votes.
340
+ can_accumulate_supports_beyond_threshold:
341
+ description: Each proposal can accumulate more than %{limit} supports
220
342
  proposal_limit:
221
343
  description: You can create up to %{limit} proposals.
344
+ threshold_per_proposal:
345
+ description: In order to be accepted proposals need to reach %{limit} supports
222
346
  title: 'Voting is subject to the following rules:'
223
347
  vote_limit:
224
348
  description: You can vote up to %{limit} proposals.
225
349
  left: Remaining
226
350
  votes: Votes
351
+ wizard_aside:
352
+ back: Back
353
+ info: You are creating a <strong>proposal</strong>.
354
+ wizard_steps:
355
+ see_steps: see steps
356
+ step_1: Create your proposal
357
+ step_2: Compare
358
+ step_3: Publish your proposal
359
+ step_of: Step %{current_step_num} of %{total_steps}
360
+ publish:
361
+ error: There's been errors when publishing the proposal.
362
+ success: Proposal published successfully.
227
363
  update:
228
364
  error: There's been errors when saving the proposal.
229
365
  success: Proposal updated successfully.
366
+ update_draft:
367
+ error: There's been errors when saving the proposal draft.
368
+ success: Proposal draft updated successfully.
230
369
  resource_links:
370
+ copied_from_component:
371
+ proposal_proposals: Related proposals
231
372
  included_projects:
232
373
  project_results: 'Results appearing in this project:'
233
374
  included_proposals: