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,366 @@
1
+ ---
2
+ es:
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 state is considered overdue
18
+ evaluating_proposals_overdue_help: This adds a visual alert to the list of proposals. Leave it to zero to disable this feature.
19
+ geocoding_comparison_enabled: Compare proposals by distance proximity
20
+ geocoding_comparison_enabled_help: This settings allows to compare proposals by distance proximity instead of text similarity. This feature requires a geocoding service to be configured and enabled in the component (otherwise defaults to text similarity comparison).
21
+ geocoding_comparison_newer_than: Compare only proposal made in the last X days
22
+ geocoding_comparison_newer_than_help: This setting only applies when comparing proposals by distance proximity. Proposals older than the specified number of days will be ignored. Leave at zero to compare all proposals.
23
+ geocoding_comparison_radius: Maximum radius (in meters) for considering proposals similar (will be ordered by proximity) by distance proximity
24
+ proposal_photo_editing_enabled: Allow admins and valuators to edit photos when answering proposals
25
+ unanswered_proposals_overdue: After how many days a not-answered proposal is considered overdue
26
+ unanswered_proposals_overdue_help: This adds a visual alert to the list of proposals. Leave it to zero to disable this feature.
27
+ reporting_proposals:
28
+ name: Reporting proposals
29
+ settings:
30
+ global:
31
+ additional_button_for_show_proposal_link: Additional action button after the "back to list" link when visiting a particular proposal (link)
32
+ additional_button_for_show_proposal_text: Additional action button after the "back to list" link when visiting a particular proposal (text)
33
+ additional_button_link: Additional action button next to new proposal (link)
34
+ additional_button_text: Additional action button next to new proposal (text)
35
+ additional_buttons_for_show_proposal_show: Display an additional button in the show public view
36
+ additional_buttons_show: Display an additional button in the index public view
37
+ additional_buttons_show_help: Add the text and link bellow
38
+ amendments_enabled: Amendments enabled
39
+ amendments_enabled_help: If active, configure Amendment features for each step.
40
+ amendments_wizard_help_text: Amendments Wizard help text
41
+ announcement: Announcement
42
+ attachments_allowed: Allow attachments
43
+ can_accumulate_supports_beyond_threshold: Can accumulate supports beyond threshold
44
+ collaborative_drafts_enabled: Collaborative drafts enabled
45
+ comments_enabled: Comments enabled
46
+ comments_max_length: Comments max length (Leave 0 for default value)
47
+ default_sort_order: Default proposal sorting
48
+ default_sort_order_help: Default means that if the supports are enabled, the proposals will be shown sorted by random, and if the supports are blocked, then they will be sorted by the most supported.
49
+ default_sort_order_options:
50
+ default: Default
51
+ most_commented: Most commented
52
+ most_endorsed: Most endorsed
53
+ most_followed: Most followed
54
+ most_voted: Most supported
55
+ random: Random
56
+ recent: Recent
57
+ with_more_authors: With more authors
58
+ evaluating_proposals_overdue: After how many days a proposal in its evaluating state is considered overdue
59
+ evaluating_proposals_overdue_help: This adds a visual alert to the list of proposals. Leave it to zero to disable this feature.
60
+ geocoding_comparison_enabled: Compare proposals by distance proximity
61
+ geocoding_comparison_enabled_help: This settings allows to compare proposals by distance proximity instead of text similarity. This feature requires a geocoding service to be configured and enabled in the component (otherwise defaults to text similarity comparison).
62
+ geocoding_comparison_newer_than: Compare only proposal made in the last X days
63
+ geocoding_comparison_newer_than_help: This setting only applies when comparing proposals by distance proximity. Proposals older than the specified number of days will be ignored. Leave at zero to compare all proposals.
64
+ geocoding_comparison_radius: Maximum radius (in meters) for considering proposals similar (will be ordered by proximity) by distance proximity
65
+ geocoding_enabled: Geocoding enabled
66
+ minimum_votes_per_user: Minimum supports per user
67
+ new_proposal_body_template: New proposal body template
68
+ new_proposal_body_template_help: You can define prefilled text that the new Proposals will have
69
+ new_proposal_help_text: New proposal help text
70
+ official_proposals_enabled: Official proposals enabled
71
+ only_photo_attachments: Use only photo attachments
72
+ participatory_texts_enabled: Participatory texts enabled
73
+ participatory_texts_enabled_readonly: Cannot interact with this setting if there are existing proposals. Please, create a new `Proposals component` if you want to enable this feature or discard all imported proposals in the `Participatory Texts` menu if you want to disable it.
74
+ proposal_answering_enabled: Proposal answering enabled
75
+ proposal_edit_before_minutes: Proposals can be edited by authors before this many minutes passes
76
+ proposal_edit_time: Proposal editing
77
+ proposal_edit_time_choices:
78
+ infinite: Allow editing proposals for an infinite amount of time
79
+ limited: Allow editing of proposals within a specific timeframe
80
+ proposal_length: Maximum proposal body length
81
+ proposal_limit: Proposal limit per participant
82
+ proposal_photo_editing_enabled: Allow admins and valuators to edit photos when answering proposals
83
+ proposal_wizard_step_1_help_text: Proposal wizard "Create" step help text
84
+ proposal_wizard_step_2_help_text: Proposal wizard "Compare" step help text
85
+ proposal_wizard_step_3_help_text: Proposal wizard "Complete" step help text
86
+ proposal_wizard_step_4_help_text: Proposal wizard "Publish" step help text
87
+ resources_permissions_enabled: Actions permissions can be set for each proposal
88
+ scope_id: Scope
89
+ scopes_enabled: Scopes enabled
90
+ threshold_per_proposal: Threshold per proposal
91
+ unanswered_proposals_overdue: After how many days a not-answered proposal is considered overdue
92
+ unanswered_proposals_overdue_help: This adds a visual alert to the list of proposals. Leave it to zero to disable this feature.
93
+ vote_limit: Support limit per participant
94
+ step:
95
+ amendment_creation_enabled: Amendment creation enabled
96
+ amendment_creation_enabled_help: Participant can amend proposals.
97
+ amendment_promotion_enabled: Amendment promotion enabled
98
+ amendment_promotion_enabled_help: Emandation authors will be able to promote to Proposal the rejected emendation.
99
+ amendment_reaction_enabled: Amendment reaction enabled
100
+ amendment_reaction_enabled_help: Proposal's authors will be able to accept or reject Participant's emendations.
101
+ amendments_visibility: Amendments visibility
102
+ amendments_visibility_choices:
103
+ all: Amendments are visible to all
104
+ participants: Amendments are visible only to their authors
105
+ amendments_visibility_help: If the option "Amendments are visible only to their authors" is selected, participant must be logged in to see the amendments made.
106
+ announcement: Announcement
107
+ answers_with_costs: Enable costs on proposal answers
108
+ automatic_hashtags: Hashtags added to all proposals
109
+ comments_blocked: Comments blocked
110
+ creation_enabled: Participants can create proposals
111
+ creation_enabled_readonly: This setting is disabled when you activate the Participatory Texts functionality. To upload proposals as participatory text click on the Participatory Texts button and follow the instructions.
112
+ default_sort_order: Default proposal sorting
113
+ default_sort_order_help: Default it means that if the supports are enabled, the proposals will be shown sorted by random, and if the supports are blocked, then they will be sorted by the most supported.
114
+ default_sort_order_options:
115
+ default: Default
116
+ most_commented: Most commented
117
+ most_endorsed: Most endorsed
118
+ most_followed: Most followed
119
+ most_voted: Most supported
120
+ random: Random
121
+ recent: Recent
122
+ with_more_authors: With more authors
123
+ endorsements_blocked: Endorsements blocked
124
+ endorsements_enabled: Endorsements enabled
125
+ proposal_answering_enabled: Proposal answering enabled
126
+ publish_answers_immediately: Publish proposal answers immediately
127
+ publish_answers_immediately_help_html: 'Mind that if you answer any proposal without this enabled, you''ll need to publish them manually by selecting them and using the action for publication. For more info on how this works, see <a href="https://docs.decidim.org/en/admin/components/proposals/answers#_publication" target="_blank">proposals'' answers documentation page</a>.'
128
+ suggested_hashtags: Hashtags suggested to participants for new proposals
129
+ votes_blocked: Supports blocked
130
+ votes_enabled: Supports enabled
131
+ votes_hidden: Supports hidden (if supports are enabled, checking this will hide the number of supports)
132
+ moderations:
133
+ actions:
134
+ hide: Hide
135
+ admin:
136
+ reportable:
137
+ hide:
138
+ invalid: There was a problem hiding the resource.
139
+ success: Resource successfully hidden.
140
+ proposals:
141
+ admin:
142
+ proposals:
143
+ send_email_button:
144
+ send_mail: Send an email to user
145
+ reporting_proposals:
146
+ actions:
147
+ answer_proposal: Answer proposal
148
+ edit_proposal: Edit proposal
149
+ import: Import proposals from another component
150
+ new: New proposal
151
+ participatory_texts: Participatory texts
152
+ show: Show proposal
153
+ title: Actions
154
+ admin:
155
+ actions:
156
+ edit_valuators: Edit valuators
157
+ preview: Preview
158
+ answer_overdue:
159
+ datetime:
160
+ distance_in_words:
161
+ about_x_hours:
162
+ one: about 1 hour overdue
163
+ other: about %{count} hours overdue
164
+ about_x_months:
165
+ one: about 1 month overdue
166
+ other: about %{count} months overdue
167
+ about_x_years:
168
+ one: about 1 year overdue
169
+ other: about %{count} years overdue
170
+ almost_x_years:
171
+ one: almost 1 year overdue
172
+ other: almost %{count} years overdue
173
+ half_a_minute: half a minute overdue
174
+ less_than_x_minutes:
175
+ one: less than a minute overdue
176
+ other: less than %{count} minutes overdue
177
+ less_than_x_seconds:
178
+ one: less than 1 second overdue
179
+ other: less than %{count} seconds overdue
180
+ over_x_years:
181
+ one: over 1 year overdue
182
+ other: over %{count} years overdue
183
+ x_days:
184
+ one: 1 day overdue
185
+ other: "%{count} days overdue"
186
+ x_minutes:
187
+ one: 1 minute overdue
188
+ other: "%{count} minutes overdue"
189
+ x_months:
190
+ one: 1 month overdue
191
+ other: "%{count} months overdue"
192
+ x_seconds:
193
+ one: 1 second overdue
194
+ other: "%{count} seconds overdue"
195
+ x_years:
196
+ one: 1 year overdue
197
+ other: "%{count} years overdue"
198
+ answer_pending:
199
+ datetime:
200
+ distance_in_words:
201
+ about_x_hours:
202
+ one: about 1 hour to answer
203
+ other: about %{count} hours to answer
204
+ about_x_months:
205
+ one: about 1 month to answer
206
+ other: about %{count} months to answer
207
+ about_x_years:
208
+ one: about 1 year to answer
209
+ other: about %{count} years to answer
210
+ almost_x_years:
211
+ one: almost 1 year to answer
212
+ other: almost %{count} years to answer
213
+ half_a_minute: half a minute to answer
214
+ less_than_x_minutes:
215
+ one: less than a minute to answer
216
+ other: less than %{count} minutes to answer
217
+ less_than_x_seconds:
218
+ one: less than 1 second to answer
219
+ other: less than %{count} seconds to answer
220
+ over_x_years:
221
+ one: over 1 year to answer
222
+ other: over %{count} years to answer
223
+ x_days:
224
+ one: 1 day to answer
225
+ other: "%{count} days to answer"
226
+ x_minutes:
227
+ one: 1 minute to answer
228
+ other: "%{count} minutes to answer"
229
+ x_months:
230
+ one: 1 month to answer
231
+ other: "%{count} months to answer"
232
+ x_seconds:
233
+ one: 1 second to answer
234
+ other: "%{count} seconds to answer"
235
+ x_years:
236
+ one: 1 year to answer
237
+ other: "%{count} years to answer"
238
+ categories:
239
+ form:
240
+ valuators_help: Select valuators that will be assigned automatically when a proposal is published in this category (they will receive a notification).
241
+ index:
242
+ valuators_column: Automatic valuators
243
+ evaluate_pending:
244
+ datetime:
245
+ distance_in_words:
246
+ about_x_hours:
247
+ one: about 1 hour to evaluate
248
+ other: about %{count} hours to evaluate
249
+ about_x_months:
250
+ one: about 1 month to evaluate
251
+ other: about %{count} months to evaluate
252
+ about_x_years:
253
+ one: about 1 year to evaluate
254
+ other: about %{count} years to evaluate
255
+ almost_x_years:
256
+ one: almost 1 year to evaluate
257
+ other: almost %{count} years to evaluate
258
+ half_a_minute: half a minute to evaluate
259
+ less_than_x_minutes:
260
+ one: less than a minute to evaluate
261
+ other: less than %{count} minutes to evaluate
262
+ less_than_x_seconds:
263
+ one: less than 1 second to evaluate
264
+ other: less than %{count} seconds to evaluate
265
+ over_x_years:
266
+ one: over 1 year to evaluate
267
+ other: over %{count} years to evaluate
268
+ x_days:
269
+ one: 1 day to evaluate
270
+ other: "%{count} days to evaluate"
271
+ x_minutes:
272
+ one: 1 minute to evaluate
273
+ other: "%{count} minutes to evaluate"
274
+ x_months:
275
+ one: 1 month to evaluate
276
+ other: "%{count} months to evaluate"
277
+ x_seconds:
278
+ one: 1 second to evaluate
279
+ other: "%{count} seconds to evaluate"
280
+ x_years:
281
+ one: 1 year to evaluate
282
+ other: "%{count} years to evaluate"
283
+ exports:
284
+ proposal_comments: Comments
285
+ proposals: Reporting proposals
286
+ proposal_notes:
287
+ modal:
288
+ body: Note
289
+ title: Edit note
290
+ update: Update
291
+ update:
292
+ edited: Edited
293
+ invalid: There was a problem updating the proposal note.
294
+ success: Proposal note successfully updated.
295
+ proposals:
296
+ photo_form:
297
+ action: Add image
298
+ add_images: Add images
299
+ gallery_legend: Add images
300
+ title: Photos
301
+ upload_msg: No files selected
302
+ photo_gallery:
303
+ delete_image: Delete image
304
+ photos: Photos
305
+ photos:
306
+ title: Photos
307
+ valuators_list:
308
+ assigned_valuators: Assigned valuators
309
+ remove_assignment: remove assignment
310
+ remove_assignment_confirmation: remove assignment confirmation
311
+ valuators: Valuators
312
+ resolution_time: Resolution time
313
+ time_elapsed:
314
+ datetime:
315
+ distance_in_words:
316
+ about_x_hours:
317
+ one: about 1 hour
318
+ other: about %{count} hours
319
+ about_x_months:
320
+ one: about 1 month
321
+ other: about %{count} months
322
+ about_x_years:
323
+ one: about 1 year
324
+ other: about %{count} years
325
+ almost_x_years:
326
+ one: almost 1 year
327
+ other: almost %{count} years
328
+ half_a_minute: half a minute
329
+ less_than_x_minutes:
330
+ one: less than a minute
331
+ other: less than %{count} minutes
332
+ less_than_x_seconds:
333
+ one: less than 1 second
334
+ other: less than %{count} seconds
335
+ over_x_years:
336
+ one: over 1 year
337
+ other: over %{count} years
338
+ x_days:
339
+ one: 1 day
340
+ other: "%{count} days"
341
+ x_minutes:
342
+ one: 1 minute
343
+ other: "%{count} minutes"
344
+ x_months:
345
+ one: 1 month
346
+ other: "%{count} months"
347
+ x_seconds:
348
+ one: 1 second
349
+ other: "%{count} seconds"
350
+ x_years:
351
+ one: 1 year
352
+ other: "%{count} years"
353
+ forms:
354
+ errors:
355
+ device_not_supported: Geolocation is not supported by your browser.
356
+ no_device_location: Sorry, we couldn't detect your location.
357
+ use_my_camera: Use my camera
358
+ use_my_location: Use my location
359
+ proposals:
360
+ compare:
361
+ geocoding:
362
+ away: "%{meters} away"
363
+ description: These are proposals that are in a radius of %{meters} to the one you are creating. In case you find another one reporting the same situation, you can choose to support it instead of creating a new one.
364
+ title: Nearby proposals
365
+ form:
366
+ image: Image/photo
data/crowdin.yml ADDED
@@ -0,0 +1,45 @@
1
+ files:
2
+ - source: /**/locales/en.yml
3
+ translation: /**/locales/%locale%.yml
4
+ languages_mapping:
5
+ locale:
6
+ ar: ar
7
+ bg: bg
8
+ ca: ca
9
+ cs: cs
10
+ da: da
11
+ de: de
12
+ el: el
13
+ eo: eo
14
+ es-ES: es
15
+ es-MX: es-MX
16
+ es-PY: es-PY
17
+ et: et
18
+ eu: eu
19
+ fi: fi
20
+ fi-plain: fi-plain
21
+ fr: fr
22
+ fr-CA: fr-CA
23
+ ga: ga
24
+ gl: gl
25
+ hr: hr
26
+ hu: hu
27
+ id-ID: id
28
+ is-IS: is
29
+ it: it
30
+ ja: ja
31
+ lt: lt
32
+ lv: lv
33
+ mt: mt
34
+ nl: nl
35
+ 'no': 'no'
36
+ pl: pl
37
+ pt-BR: pt-BR
38
+ ro-RO: ro
39
+ rumany: ru
40
+ sk: sk
41
+ sl: sl
42
+ sr: sr
43
+ sv-SE: sv
44
+ tr-TR: tr
45
+ ukmany: uk
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateDecidimCategoriesValuators < ActiveRecord::Migration[6.0]
4
+ def change
5
+ create_table :decidim_reporting_proposals_category_valuators do |t|
6
+ t.references :decidim_category, null: false, foreign_key: { to_table: "decidim_categories" }, index: { name: "decidim_reporting_proposals_category_category_id" }
7
+ t.references :valuator_role, polymorphic: true, null: false, index: { name: "decidim_reporting_proposals_category_valuator_role" }
8
+
9
+ t.timestamps
10
+ end
11
+
12
+ add_index :decidim_reporting_proposals_category_valuators,
13
+ [:decidim_category_id, :valuator_role_id, :valuator_role_type],
14
+ unique: true,
15
+ name: "decidim_reporting_proposals_category_valuator_unique"
16
+ end
17
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path("lib", __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require "decidim/reporting_proposals/version"
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = "decidim-reporting_proposals"
9
+ spec.version = Decidim::ReportingProposals::VERSION
10
+ spec.authors = ["Ivan Vergés"]
11
+ spec.email = ["ivan@pokecode.net"]
12
+
13
+ spec.summary = "A module for Decidim that facilitates the creation of proposals related to geolocated issues in a city."
14
+ spec.description = "A module for Decidim that facilitates the creation of proposals related to geolocated issues in a city"
15
+ spec.license = "AGPL-3.0"
16
+ spec.homepage = "https://github.com/openpoke/decidim-module-reporting_proposals"
17
+ spec.required_ruby_version = ">= 2.7"
18
+
19
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
20
+ f.match(%r{^(test|spec|features)/})
21
+ end
22
+ spec.bindir = "exe"
23
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
+ spec.require_paths = ["lib"]
25
+
26
+ spec.add_dependency "decidim-admin", Decidim::ReportingProposals::COMPAT_DECIDIM_VERSION
27
+ spec.add_dependency "decidim-core", Decidim::ReportingProposals::COMPAT_DECIDIM_VERSION
28
+ spec.add_dependency "decidim-participatory_processes", Decidim::ReportingProposals::COMPAT_DECIDIM_VERSION
29
+ spec.add_dependency "decidim-proposals", Decidim::ReportingProposals::COMPAT_DECIDIM_VERSION
30
+ spec.add_dependency "deface", ">= 1.9"
31
+
32
+ spec.add_development_dependency "decidim-dev", Decidim::ReportingProposals::COMPAT_DECIDIM_VERSION
33
+ spec.add_development_dependency "decidim-templates", Decidim::ReportingProposals::COMPAT_DECIDIM_VERSION
34
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ReportingProposals
5
+ class ReportingProposalsType < Decidim::Proposals::ProposalsType
6
+ graphql_name "ReportingProposals"
7
+ description "A reporting proposals component of a participatory space."
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ReportingProposals
5
+ module Admin
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ReportingProposals
5
+ # This is the engine that runs on the public interface of `ReportingProposals`.
6
+ class AdminEngine < ::Rails::Engine
7
+ isolate_namespace Decidim::ReportingProposals::Admin
8
+
9
+ paths["db/migrate"] = nil
10
+ paths["lib/tasks"] = nil
11
+
12
+ routes do
13
+ # Add admin engine routes here
14
+ put :hide_proposal, to: "proposals#hide_proposal"
15
+ post :add_photos, to: "proposals#add_photos"
16
+ delete :remove_photo, to: "proposals#remove_photo"
17
+ resources :proposal_notes, only: [:edit, :update]
18
+ end
19
+
20
+ initializer "decidim_reporting_proposals.admin_mount_routes" do
21
+ Decidim::Admin::Engine.routes do
22
+ mount Decidim::ReportingProposals::AdminEngine, at: "/reporting_proposals", as: "decidim_admin_reporting_proposals"
23
+ end
24
+ end
25
+
26
+ def load_seed
27
+ nil
28
+ end
29
+ end
30
+ end
31
+ end