decidim-reporting_proposals 0.2.0

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 (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