decidim-reporting_proposals 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +32 -0
  3. data/.erb-lint.yml +30 -0
  4. data/.eslintignore +3 -0
  5. data/.eslintrc.json +239 -0
  6. data/.github/workflows/codeql-analysis.yml +74 -0
  7. data/.github/workflows/lint.yml +45 -0
  8. data/.github/workflows/test_integration.yml +125 -0
  9. data/.github/workflows/test_unit.yml +51 -0
  10. data/.gitignore +27 -0
  11. data/.rspec +3 -0
  12. data/.rubocop.yml +3 -0
  13. data/.rubocop_rails.yml +87 -0
  14. data/.rubocop_ruby.yml +1754 -0
  15. data/.ruby-version +1 -0
  16. data/.simplecov +13 -0
  17. data/CODE_OF_CONDUCT.md +74 -0
  18. data/Gemfile +40 -0
  19. data/Gemfile.lock +815 -0
  20. data/LICENSE-AGPLv3.txt +661 -0
  21. data/README.md +166 -0
  22. data/Rakefile +40 -0
  23. data/app/cells/decidim/reporting_proposals/edit_note_modal/show.erb +20 -0
  24. data/app/cells/decidim/reporting_proposals/edit_note_modal_cell.rb +37 -0
  25. data/app/commands/concerns/decidim/reporting_proposals/admin/create_category_override.rb +32 -0
  26. data/app/commands/concerns/decidim/reporting_proposals/admin/update_category_override.rb +32 -0
  27. data/app/commands/concerns/decidim/reporting_proposals/create_report_override.rb +19 -0
  28. data/app/commands/decidim/reporting_proposals/admin/update_proposal.rb +46 -0
  29. data/app/commands/decidim/reporting_proposals/admin/update_proposal_note.rb +36 -0
  30. data/app/commands/decidim/reporting_proposals/create_reporting_proposal.rb +68 -0
  31. data/app/controllers/concerns/decidim/reporting_proposals/admin/categories_controller_override.rb +16 -0
  32. data/app/controllers/concerns/decidim/reporting_proposals/admin/needs_header_snippets.rb +50 -0
  33. data/app/controllers/concerns/decidim/reporting_proposals/admin/proposal_answer_templates_controller_override.rb +18 -0
  34. data/app/controllers/concerns/decidim/reporting_proposals/admin/proposal_answers_controller_override.rb +35 -0
  35. data/app/controllers/concerns/decidim/reporting_proposals/admin/proposals_controller_override.rb +28 -0
  36. data/app/controllers/concerns/decidim/reporting_proposals/needs_proposal_extra_validations_snippets.rb +51 -0
  37. data/app/controllers/concerns/decidim/reporting_proposals/proposals_controller_override.rb +113 -0
  38. data/app/controllers/decidim/reporting_proposals/admin/application_controller.rb +18 -0
  39. data/app/controllers/decidim/reporting_proposals/admin/proposal_notes_controller.rb +38 -0
  40. data/app/controllers/decidim/reporting_proposals/admin/proposals_controller.rb +61 -0
  41. data/app/controllers/decidim/reporting_proposals/application_controller.rb +11 -0
  42. data/app/controllers/decidim/reporting_proposals/geolocation_controller.rb +32 -0
  43. data/app/forms/concerns/decidim/reporting_proposals/admin/category_form_override.rb +19 -0
  44. data/app/forms/concerns/decidim/reporting_proposals/form_builder_override.rb +48 -0
  45. data/app/forms/concerns/decidim/reporting_proposals/map_builder_override.rb +60 -0
  46. data/app/forms/decidim/reporting_proposals/admin/proposal_photo_form.rb +23 -0
  47. data/app/forms/decidim/reporting_proposals/proposal_form.rb +33 -0
  48. data/app/helpers/concerns/decidim/reporting_proposals/admin/proposals_helper_override.rb +63 -0
  49. data/app/helpers/concerns/decidim/reporting_proposals/proposal_wizard_helper_override.rb +61 -0
  50. data/app/jobs/decidim/reporting_proposals/assign_proposal_valuators_job.rb +51 -0
  51. data/app/models/concerns/decidim/reporting_proposals/category_override.rb +28 -0
  52. data/app/models/concerns/decidim/reporting_proposals/participatory_space_role_config/valuator_override.rb +17 -0
  53. data/app/models/concerns/decidim/reporting_proposals/participatory_space_user_role_override.rb +25 -0
  54. data/app/models/decidim/reporting_proposals/category_valuator.rb +28 -0
  55. data/app/overrides/decidim/admin/categories/_form/add_valuators_field.html.erb.deface +3 -0
  56. data/app/overrides/decidim/admin/categories/index/add_table_column_name.html.erb.deface +3 -0
  57. data/app/overrides/decidim/admin/categories/index/add_valuators.html.erb.deface +3 -0
  58. data/app/overrides/decidim/proposals/admin/proposal_notes/_proposal_notes/add_edit_link.html.erb.deface +3 -0
  59. data/app/overrides/decidim/proposals/admin/proposal_notes/_proposal_notes/add_links_to_note.html.erb.deface +3 -0
  60. data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_td_hide_action.html.erb.deface +3 -0
  61. data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_valuators_name.html.erb.deface +9 -0
  62. data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/replace_td_title.html.erb.deface +3 -0
  63. data/app/overrides/decidim/proposals/admin/proposals/show/add_photo_management.html.erb.deface +3 -0
  64. data/app/overrides/decidim/proposals/admin/proposals/show/add_send_email_btn.html.erb.deface +3 -0
  65. data/app/overrides/decidim/proposals/admin/proposals/show/remove_photos.html.erb.deface +4 -0
  66. data/app/overrides/decidim/proposals/admin/proposals/show/replace_valuators.html.erb.deface +3 -0
  67. data/app/overrides/decidim/proposals/proposals/_proposal_similar/add_distance_badge.html.erb.deface +5 -0
  68. data/app/overrides/decidim/proposals/proposals/_wizard_header/replace_title.html.erb.deface +14 -0
  69. data/app/overrides/decidim/proposals/proposals/edit/add_user_group.html.erb.deface +3 -0
  70. data/app/overrides/decidim/proposals/proposals/edit/replace_javascript.html.erb.deface +8 -0
  71. data/app/overrides/decidim/proposals/proposals/edit/replace_partial_edit_form_fields.html.erb.deface +3 -0
  72. data/app/overrides/decidim/proposals/proposals/edit_draft/add_user_group.html.erb.deface +3 -0
  73. data/app/overrides/decidim/proposals/proposals/edit_draft/replace_javascript.html.erb.deface +8 -0
  74. data/app/overrides/decidim/proposals/proposals/edit_draft/replace_partial_edit_form_fields.html.erb.deface +3 -0
  75. data/app/overrides/decidim/proposals/proposals/index/add_additional_button.html.erb.deface +3 -0
  76. data/app/overrides/decidim/proposals/proposals/new/remove_title.html.erb.deface +1 -0
  77. data/app/overrides/decidim/proposals/proposals/new/replace_body.html.erb.deface +3 -0
  78. data/app/overrides/decidim/proposals/proposals/new/replace_javascript.html.erb.deface +8 -0
  79. data/app/overrides/decidim/proposals/proposals/show/add_additional_button.html.erb.deface +3 -0
  80. data/app/overrides/layouts/decidim/_process_header_steps/always_show_new_proposals.html.erb.deface +3 -0
  81. data/app/packs/entrypoints/decidim_reporting_proposals.js +6 -0
  82. data/app/packs/entrypoints/decidim_reporting_proposals_camera.js +2 -0
  83. data/app/packs/entrypoints/decidim_reporting_proposals_geocoding.js +2 -0
  84. data/app/packs/entrypoints/decidim_reporting_proposals_js_validations.js +1 -0
  85. data/app/packs/entrypoints/decidim_reporting_proposals_list_component_admin.js +1 -0
  86. data/app/packs/entrypoints/decidim_reporting_proposals_manage_component_admin.js +1 -0
  87. data/app/packs/images/.keep +0 -0
  88. data/app/packs/src/decidim/reporting_proposals/proposal_extra_validations.js +89 -0
  89. data/app/packs/src/decidim/reporting_proposals/proposals/add_proposal.js +66 -0
  90. data/app/packs/src/decidim/reporting_proposals/reverse_geocoding.js +54 -0
  91. data/app/packs/src/decidim/reporting_proposals/user_camera_inputs.js +49 -0
  92. data/app/packs/stylesheets/decidim/reporting_proposals/geocoding_addons.scss +34 -0
  93. data/app/packs/stylesheets/decidim/reporting_proposals/list_component_admin.scss +27 -0
  94. data/app/packs/stylesheets/decidim/reporting_proposals/manage_component_admin.scss +31 -0
  95. data/app/packs/stylesheets/decidim/reporting_proposals/proposals/add_proposal.scss +12 -0
  96. data/app/packs/stylesheets/decidim/reporting_proposals/user_camera_inputs.scss +19 -0
  97. data/app/permissions/concerns/decidim/reporting_proposals/admin/permissions_override.rb +27 -0
  98. data/app/permissions/decidim/reporting_proposals/admin/permissions.rb +79 -0
  99. data/app/permissions/decidim/reporting_proposals/permissions.rb +17 -0
  100. data/app/queries/decidim/reporting_proposals/nearby_proposals.rb +57 -0
  101. data/app/serializers/decidim/reporting_proposals/proposal_serializer_override.rb +77 -0
  102. data/app/validators/concerns/decidim/reporting_proposals/component_validator_override.rb +25 -0
  103. data/app/views/decidim/proposals/admin/proposal_notes/_editing_note.html.erb +18 -0
  104. data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes_body.html.erb +6 -0
  105. data/app/views/decidim/proposals/admin/proposals/_send_email_button.html.erb +4 -0
  106. data/app/views/decidim/proposals/proposals/_additional_button.html.erb +6 -0
  107. data/app/views/decidim/reporting_proposals/admin/categories/_column_valuators.html.erb +1 -0
  108. data/app/views/decidim/reporting_proposals/admin/categories/_valuators.html.erb +1 -0
  109. data/app/views/decidim/reporting_proposals/admin/categories/_valuators_field.html.erb +7 -0
  110. data/app/views/decidim/reporting_proposals/admin/proposals/_photo_form.html.erb +24 -0
  111. data/app/views/decidim/reporting_proposals/admin/proposals/_photo_gallery.html.erb +21 -0
  112. data/app/views/decidim/reporting_proposals/admin/proposals/_photos.html.erb +14 -0
  113. data/app/views/decidim/reporting_proposals/admin/proposals/_proposal_td_hide.html.erb +20 -0
  114. data/app/views/decidim/reporting_proposals/admin/proposals/_proposal_td_title.html.erb +41 -0
  115. data/app/views/decidim/reporting_proposals/proposals/_additional_button_for_show.html.erb +6 -0
  116. data/app/views/decidim/reporting_proposals/proposals/_new_proposal_fields.html.erb +7 -0
  117. data/app/views/decidim/reporting_proposals/proposals/_reporting_proposal_fields.html.erb +113 -0
  118. data/app/views/decidim/reporting_proposals/proposals/_user_group.html.erb +5 -0
  119. data/bin/rails +6 -0
  120. data/bin/webpack-dev-server +6 -0
  121. data/codecov.yml +11 -0
  122. data/config/assets.rb +13 -0
  123. data/config/i18n-tasks.yml +13 -0
  124. data/config/locales/ca.yml +366 -0
  125. data/config/locales/de.yml +366 -0
  126. data/config/locales/en.yml +426 -0
  127. data/config/locales/es.yml +366 -0
  128. data/crowdin.yml +45 -0
  129. data/db/migrate/20221219151846_create_decidim_categories_valuators.rb +17 -0
  130. data/decidim-reporting_proposals.gemspec +34 -0
  131. data/lib/decidim/api/reporting_proposals_type.rb +10 -0
  132. data/lib/decidim/reporting_proposals/admin.rb +8 -0
  133. data/lib/decidim/reporting_proposals/admin_engine.rb +31 -0
  134. data/lib/decidim/reporting_proposals/component.rb +490 -0
  135. data/lib/decidim/reporting_proposals/config.rb +53 -0
  136. data/lib/decidim/reporting_proposals/engine.rb +96 -0
  137. data/lib/decidim/reporting_proposals/test/factories.rb +13 -0
  138. data/lib/decidim/reporting_proposals/version.rb +15 -0
  139. data/lib/decidim/reporting_proposals.rb +13 -0
  140. data/package-lock.json +7844 -0
  141. data/package.json +195 -0
  142. metadata +319 -0
@@ -0,0 +1,426 @@
1
+ ---
2
+ en:
3
+ activemodel:
4
+ attributes:
5
+ category:
6
+ valuator_ids: Automatic valuators
7
+ proposal:
8
+ has_no_address: Has no address
9
+ decidim:
10
+ application:
11
+ geocoding:
12
+ unconfigured: Geocoding is not configured!
13
+ components:
14
+ proposals:
15
+ settings:
16
+ global:
17
+ evaluating_proposals_overdue: After how many days a proposal in its evaluating
18
+ state is considered overdue
19
+ evaluating_proposals_overdue_help: This adds a visual alert to the list
20
+ of proposals. Leave it to zero to disable this feature.
21
+ geocoding_comparison_enabled: Compare proposals by distance proximity
22
+ geocoding_comparison_enabled_help: This settings allows to compare proposals
23
+ by distance proximity instead of text similarity. This feature requires
24
+ a geocoding service to be configured and enabled in the component (otherwise
25
+ defaults to text similarity comparison).
26
+ geocoding_comparison_newer_than: Compare only proposal made in the last
27
+ X days
28
+ geocoding_comparison_newer_than_help: This setting only applies when comparing
29
+ proposals by distance proximity. Proposals older than the specified
30
+ number of days will be ignored. Leave at zero to compare all proposals.
31
+ geocoding_comparison_radius: Maximum radius (in meters) for considering
32
+ proposals similar (will be ordered by proximity) by distance proximity
33
+ proposal_photo_editing_enabled: Allow admins and valuators to edit photos
34
+ when answering proposals
35
+ unanswered_proposals_overdue: After how many days a not-answered proposal
36
+ is considered overdue
37
+ unanswered_proposals_overdue_help: This adds a visual alert to the list
38
+ of proposals. Leave it to zero to disable this feature.
39
+ reporting_proposals:
40
+ name: Reporting proposals
41
+ settings:
42
+ global:
43
+ additional_button_for_show_proposal_link: Additional action button after
44
+ the "back to list" link when visiting a particular proposal (link)
45
+ additional_button_for_show_proposal_text: Additional action button after
46
+ the "back to list" link when visiting a particular proposal (text)
47
+ additional_button_link: Additional action button next to new proposal
48
+ (link)
49
+ additional_button_text: Additional action button next to new proposal
50
+ (text)
51
+ additional_buttons_for_show_proposal_show: Display an additional button
52
+ in the show public view
53
+ additional_buttons_show: Display an additional button in the index public
54
+ view
55
+ additional_buttons_show_help: Add the text and link bellow
56
+ amendments_enabled: Amendments enabled
57
+ amendments_enabled_help: If active, configure Amendment features for each
58
+ step.
59
+ amendments_wizard_help_text: Amendments Wizard help text
60
+ announcement: Announcement
61
+ attachments_allowed: Allow attachments
62
+ can_accumulate_supports_beyond_threshold: Can accumulate supports beyond
63
+ threshold
64
+ collaborative_drafts_enabled: Collaborative drafts enabled
65
+ comments_enabled: Comments enabled
66
+ comments_max_length: Comments max length (Leave 0 for default value)
67
+ default_sort_order: Default proposal sorting
68
+ default_sort_order_help: Default means that if the supports are enabled,
69
+ the proposals will be shown sorted by random, and if the supports are
70
+ blocked, then they will be sorted by the most supported.
71
+ default_sort_order_options:
72
+ default: Default
73
+ most_commented: Most commented
74
+ most_endorsed: Most endorsed
75
+ most_followed: Most followed
76
+ most_voted: Most supported
77
+ random: Random
78
+ recent: Recent
79
+ with_more_authors: With more authors
80
+ evaluating_proposals_overdue: After how many days a proposal in its evaluating
81
+ state is considered overdue
82
+ evaluating_proposals_overdue_help: This adds a visual alert to the list
83
+ of proposals. Leave it to zero to disable this feature.
84
+ geocoding_comparison_enabled: Compare proposals by distance proximity
85
+ geocoding_comparison_enabled_help: This settings allows to compare proposals
86
+ by distance proximity instead of text similarity. This feature requires
87
+ a geocoding service to be configured and enabled in the component (otherwise
88
+ defaults to text similarity comparison).
89
+ geocoding_comparison_newer_than: Compare only proposal made in the last
90
+ X days
91
+ geocoding_comparison_newer_than_help: This setting only applies when comparing
92
+ proposals by distance proximity. Proposals older than the specified
93
+ number of days will be ignored. Leave at zero to compare all proposals.
94
+ geocoding_comparison_radius: Maximum radius (in meters) for considering
95
+ proposals similar (will be ordered by proximity) by distance proximity
96
+ geocoding_enabled: Geocoding enabled
97
+ minimum_votes_per_user: Minimum supports per user
98
+ new_proposal_body_template: New proposal body template
99
+ new_proposal_body_template_help: You can define prefilled text that the
100
+ new Proposals will have
101
+ new_proposal_help_text: New proposal help text
102
+ official_proposals_enabled: Official proposals enabled
103
+ only_photo_attachments: Use only photo attachments
104
+ participatory_texts_enabled: Participatory texts enabled
105
+ participatory_texts_enabled_readonly: Cannot interact with this setting
106
+ if there are existing proposals. Please, create a new `Proposals component`
107
+ if you want to enable this feature or discard all imported proposals
108
+ in the `Participatory Texts` menu if you want to disable it.
109
+ proposal_answering_enabled: Proposal answering enabled
110
+ proposal_edit_before_minutes: Proposals can be edited by authors before
111
+ this many minutes passes
112
+ proposal_edit_time: Proposal editing
113
+ proposal_edit_time_choices:
114
+ infinite: Allow editing proposals for an infinite amount of time
115
+ limited: Allow editing of proposals within a specific timeframe
116
+ proposal_length: Maximum proposal body length
117
+ proposal_limit: Proposal limit per participant
118
+ proposal_photo_editing_enabled: Allow admins and valuators to edit photos
119
+ when answering proposals
120
+ proposal_wizard_step_1_help_text: Proposal wizard "Create" step help text
121
+ proposal_wizard_step_2_help_text: Proposal wizard "Compare" step help
122
+ text
123
+ proposal_wizard_step_3_help_text: Proposal wizard "Complete" step help
124
+ text
125
+ proposal_wizard_step_4_help_text: Proposal wizard "Publish" step help
126
+ text
127
+ resources_permissions_enabled: Actions permissions can be set for each
128
+ proposal
129
+ scope_id: Scope
130
+ scopes_enabled: Scopes enabled
131
+ threshold_per_proposal: Threshold per proposal
132
+ unanswered_proposals_overdue: After how many days a not-answered proposal
133
+ is considered overdue
134
+ unanswered_proposals_overdue_help: This adds a visual alert to the list
135
+ of proposals. Leave it to zero to disable this feature.
136
+ vote_limit: Support limit per participant
137
+ step:
138
+ amendment_creation_enabled: Amendment creation enabled
139
+ amendment_creation_enabled_help: Participant can amend proposals.
140
+ amendment_promotion_enabled: Amendment promotion enabled
141
+ amendment_promotion_enabled_help: Emandation authors will be able to promote
142
+ to Proposal the rejected emendation.
143
+ amendment_reaction_enabled: Amendment reaction enabled
144
+ amendment_reaction_enabled_help: Proposal's authors will be able to accept
145
+ or reject Participant's emendations.
146
+ amendments_visibility: Amendments visibility
147
+ amendments_visibility_choices:
148
+ all: Amendments are visible to all
149
+ participants: Amendments are visible only to their authors
150
+ amendments_visibility_help: If the option "Amendments are visible only
151
+ to their authors" is selected, participant must be logged in to see
152
+ the amendments made.
153
+ announcement: Announcement
154
+ answers_with_costs: Enable costs on proposal answers
155
+ automatic_hashtags: Hashtags added to all proposals
156
+ comments_blocked: Comments blocked
157
+ creation_enabled: Participants can create proposals
158
+ creation_enabled_readonly: This setting is disabled when you activate
159
+ the Participatory Texts functionality. To upload proposals as participatory
160
+ text click on the Participatory Texts button and follow the instructions.
161
+ default_sort_order: Default proposal sorting
162
+ default_sort_order_help: Default it means that if the supports are enabled,
163
+ the proposals will be shown sorted by random, and if the supports are
164
+ blocked, then they will be sorted by the most supported.
165
+ default_sort_order_options:
166
+ default: Default
167
+ most_commented: Most commented
168
+ most_endorsed: Most endorsed
169
+ most_followed: Most followed
170
+ most_voted: Most supported
171
+ random: Random
172
+ recent: Recent
173
+ with_more_authors: With more authors
174
+ endorsements_blocked: Endorsements blocked
175
+ endorsements_enabled: Endorsements enabled
176
+ proposal_answering_enabled: Proposal answering enabled
177
+ publish_answers_immediately: Publish proposal answers immediately
178
+ publish_answers_immediately_help_html: Mind that if you answer any proposal
179
+ without this enabled, you'll need to publish them manually by selecting
180
+ them and using the action for publication. For more info on how this
181
+ works, see <a href="https://docs.decidim.org/en/admin/components/proposals/answers#_publication"
182
+ target="_blank">proposals' answers documentation page</a>.
183
+ suggested_hashtags: Hashtags suggested to participants for new proposals
184
+ votes_blocked: Supports blocked
185
+ votes_enabled: Supports enabled
186
+ votes_hidden: Supports hidden (if supports are enabled, checking this
187
+ will hide the number of supports)
188
+ moderations:
189
+ actions:
190
+ hide: Hide
191
+ admin:
192
+ reportable:
193
+ hide:
194
+ invalid: There was a problem hiding the resource.
195
+ success: Resource successfully hidden.
196
+ proposals:
197
+ admin:
198
+ proposals:
199
+ send_email_button:
200
+ send_mail: Send an email to user
201
+ reporting_proposals:
202
+ actions:
203
+ answer_proposal: Answer proposal
204
+ edit_proposal: Edit proposal
205
+ import: Import proposals from another component
206
+ new: New proposal
207
+ participatory_texts: Participatory texts
208
+ show: Show proposal
209
+ title: Actions
210
+ admin:
211
+ actions:
212
+ edit_valuators: Edit valuators
213
+ preview: Preview
214
+ answer_overdue:
215
+ datetime:
216
+ distance_in_words:
217
+ about_x_hours:
218
+ one: about 1 hour overdue
219
+ other: about %{count} hours overdue
220
+ about_x_months:
221
+ one: about 1 month overdue
222
+ other: about %{count} months overdue
223
+ about_x_years:
224
+ one: about 1 year overdue
225
+ other: about %{count} years overdue
226
+ almost_x_years:
227
+ one: almost 1 year overdue
228
+ other: almost %{count} years overdue
229
+ half_a_minute: half a minute overdue
230
+ less_than_x_minutes:
231
+ one: less than a minute overdue
232
+ other: less than %{count} minutes overdue
233
+ less_than_x_seconds:
234
+ one: less than 1 second overdue
235
+ other: less than %{count} seconds overdue
236
+ over_x_years:
237
+ one: over 1 year overdue
238
+ other: over %{count} years overdue
239
+ x_days:
240
+ one: 1 day overdue
241
+ other: "%{count} days overdue"
242
+ x_minutes:
243
+ one: 1 minute overdue
244
+ other: "%{count} minutes overdue"
245
+ x_months:
246
+ one: 1 month overdue
247
+ other: "%{count} months overdue"
248
+ x_seconds:
249
+ one: 1 second overdue
250
+ other: "%{count} seconds overdue"
251
+ x_years:
252
+ one: 1 year overdue
253
+ other: "%{count} years overdue"
254
+ answer_pending:
255
+ datetime:
256
+ distance_in_words:
257
+ about_x_hours:
258
+ one: about 1 hour to answer
259
+ other: about %{count} hours to answer
260
+ about_x_months:
261
+ one: about 1 month to answer
262
+ other: about %{count} months to answer
263
+ about_x_years:
264
+ one: about 1 year to answer
265
+ other: about %{count} years to answer
266
+ almost_x_years:
267
+ one: almost 1 year to answer
268
+ other: almost %{count} years to answer
269
+ half_a_minute: half a minute to answer
270
+ less_than_x_minutes:
271
+ one: less than a minute to answer
272
+ other: less than %{count} minutes to answer
273
+ less_than_x_seconds:
274
+ one: less than 1 second to answer
275
+ other: less than %{count} seconds to answer
276
+ over_x_years:
277
+ one: over 1 year to answer
278
+ other: over %{count} years to answer
279
+ x_days:
280
+ one: 1 day to answer
281
+ other: "%{count} days to answer"
282
+ x_minutes:
283
+ one: 1 minute to answer
284
+ other: "%{count} minutes to answer"
285
+ x_months:
286
+ one: 1 month to answer
287
+ other: "%{count} months to answer"
288
+ x_seconds:
289
+ one: 1 second to answer
290
+ other: "%{count} seconds to answer"
291
+ x_years:
292
+ one: 1 year to answer
293
+ other: "%{count} years to answer"
294
+ categories:
295
+ form:
296
+ valuators_help: Select valuators that will be assigned automatically when
297
+ a proposal is published in this category (they will receive a notification).
298
+ index:
299
+ valuators_column: Automatic valuators
300
+ evaluate_pending:
301
+ datetime:
302
+ distance_in_words:
303
+ about_x_hours:
304
+ one: about 1 hour to evaluate
305
+ other: about %{count} hours to evaluate
306
+ about_x_months:
307
+ one: about 1 month to evaluate
308
+ other: about %{count} months to evaluate
309
+ about_x_years:
310
+ one: about 1 year to evaluate
311
+ other: about %{count} years to evaluate
312
+ almost_x_years:
313
+ one: almost 1 year to evaluate
314
+ other: almost %{count} years to evaluate
315
+ half_a_minute: half a minute to evaluate
316
+ less_than_x_minutes:
317
+ one: less than a minute to evaluate
318
+ other: less than %{count} minutes to evaluate
319
+ less_than_x_seconds:
320
+ one: less than 1 second to evaluate
321
+ other: less than %{count} seconds to evaluate
322
+ over_x_years:
323
+ one: over 1 year to evaluate
324
+ other: over %{count} years to evaluate
325
+ x_days:
326
+ one: 1 day to evaluate
327
+ other: "%{count} days to evaluate"
328
+ x_minutes:
329
+ one: 1 minute to evaluate
330
+ other: "%{count} minutes to evaluate"
331
+ x_months:
332
+ one: 1 month to evaluate
333
+ other: "%{count} months to evaluate"
334
+ x_seconds:
335
+ one: 1 second to evaluate
336
+ other: "%{count} seconds to evaluate"
337
+ x_years:
338
+ one: 1 year to evaluate
339
+ other: "%{count} years to evaluate"
340
+ exports:
341
+ proposal_comments: Comments
342
+ proposals: Reporting proposals
343
+ proposal_notes:
344
+ modal:
345
+ body: Note
346
+ title: Edit note
347
+ update: Update
348
+ update:
349
+ edited: Edited
350
+ invalid: There was a problem updating the proposal note.
351
+ success: Proposal note successfully updated.
352
+ proposals:
353
+ photo_form:
354
+ action: Add image
355
+ add_images: Add images
356
+ gallery_legend: Add images
357
+ title: Photos
358
+ upload_msg: No files selected
359
+ photo_gallery:
360
+ delete_image: Delete image
361
+ photos: Photos
362
+ photos:
363
+ title: Photos
364
+ valuators_list:
365
+ assigned_valuators: Assigned valuators
366
+ remove_assignment: remove assignment
367
+ remove_assignment_confirmation: remove assignment confirmation
368
+ valuators: Valuators
369
+ resolution_time: Resolution time
370
+ time_elapsed:
371
+ datetime:
372
+ distance_in_words:
373
+ about_x_hours:
374
+ one: about 1 hour
375
+ other: about %{count} hours
376
+ about_x_months:
377
+ one: about 1 month
378
+ other: about %{count} months
379
+ about_x_years:
380
+ one: about 1 year
381
+ other: about %{count} years
382
+ almost_x_years:
383
+ one: almost 1 year
384
+ other: almost %{count} years
385
+ half_a_minute: half a minute
386
+ less_than_x_minutes:
387
+ one: less than a minute
388
+ other: less than %{count} minutes
389
+ less_than_x_seconds:
390
+ one: less than 1 second
391
+ other: less than %{count} seconds
392
+ over_x_years:
393
+ one: over 1 year
394
+ other: over %{count} years
395
+ x_days:
396
+ one: 1 day
397
+ other: "%{count} days"
398
+ x_minutes:
399
+ one: 1 minute
400
+ other: "%{count} minutes"
401
+ x_months:
402
+ one: 1 month
403
+ other: "%{count} months"
404
+ x_seconds:
405
+ one: 1 second
406
+ other: "%{count} seconds"
407
+ x_years:
408
+ one: 1 year
409
+ other: "%{count} years"
410
+ forms:
411
+ errors:
412
+ device_not_supported: Geolocation is not supported by your browser.
413
+ no_device_location: Sorry, we couldn't detect your location.
414
+ use_my_camera: Use my camera
415
+ use_my_location: Use my location
416
+ proposals:
417
+ compare:
418
+ geocoding:
419
+ away: "%{meters} away"
420
+ description: These are proposals that are in a radius of %{meters} to
421
+ the one you are creating. In case you find another one reporting the
422
+ same situation, you can choose to support it instead of creating a new
423
+ one.
424
+ title: Nearby proposals
425
+ form:
426
+ image: Image/photo