decidim-reporting_proposals 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.codeclimate.yml +32 -0
- data/.erb-lint.yml +30 -0
- data/.eslintignore +3 -0
- data/.eslintrc.json +239 -0
- data/.github/workflows/codeql-analysis.yml +74 -0
- data/.github/workflows/lint.yml +45 -0
- data/.github/workflows/test_integration.yml +125 -0
- data/.github/workflows/test_unit.yml +51 -0
- data/.gitignore +27 -0
- data/.rspec +3 -0
- data/.rubocop.yml +3 -0
- data/.rubocop_rails.yml +87 -0
- data/.rubocop_ruby.yml +1754 -0
- data/.ruby-version +1 -0
- data/.simplecov +13 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +40 -0
- data/Gemfile.lock +815 -0
- data/LICENSE-AGPLv3.txt +661 -0
- data/README.md +166 -0
- data/Rakefile +40 -0
- data/app/cells/decidim/reporting_proposals/edit_note_modal/show.erb +20 -0
- data/app/cells/decidim/reporting_proposals/edit_note_modal_cell.rb +37 -0
- data/app/commands/concerns/decidim/reporting_proposals/admin/create_category_override.rb +32 -0
- data/app/commands/concerns/decidim/reporting_proposals/admin/update_category_override.rb +32 -0
- data/app/commands/concerns/decidim/reporting_proposals/create_report_override.rb +19 -0
- data/app/commands/decidim/reporting_proposals/admin/update_proposal.rb +46 -0
- data/app/commands/decidim/reporting_proposals/admin/update_proposal_note.rb +36 -0
- data/app/commands/decidim/reporting_proposals/create_reporting_proposal.rb +68 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/categories_controller_override.rb +16 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/needs_header_snippets.rb +50 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/proposal_answer_templates_controller_override.rb +18 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/proposal_answers_controller_override.rb +35 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/proposals_controller_override.rb +28 -0
- data/app/controllers/concerns/decidim/reporting_proposals/needs_proposal_extra_validations_snippets.rb +51 -0
- data/app/controllers/concerns/decidim/reporting_proposals/proposals_controller_override.rb +113 -0
- data/app/controllers/decidim/reporting_proposals/admin/application_controller.rb +18 -0
- data/app/controllers/decidim/reporting_proposals/admin/proposal_notes_controller.rb +38 -0
- data/app/controllers/decidim/reporting_proposals/admin/proposals_controller.rb +61 -0
- data/app/controllers/decidim/reporting_proposals/application_controller.rb +11 -0
- data/app/controllers/decidim/reporting_proposals/geolocation_controller.rb +32 -0
- data/app/forms/concerns/decidim/reporting_proposals/admin/category_form_override.rb +19 -0
- data/app/forms/concerns/decidim/reporting_proposals/form_builder_override.rb +48 -0
- data/app/forms/concerns/decidim/reporting_proposals/map_builder_override.rb +60 -0
- data/app/forms/decidim/reporting_proposals/admin/proposal_photo_form.rb +23 -0
- data/app/forms/decidim/reporting_proposals/proposal_form.rb +33 -0
- data/app/helpers/concerns/decidim/reporting_proposals/admin/proposals_helper_override.rb +63 -0
- data/app/helpers/concerns/decidim/reporting_proposals/proposal_wizard_helper_override.rb +61 -0
- data/app/jobs/decidim/reporting_proposals/assign_proposal_valuators_job.rb +51 -0
- data/app/models/concerns/decidim/reporting_proposals/category_override.rb +28 -0
- data/app/models/concerns/decidim/reporting_proposals/participatory_space_role_config/valuator_override.rb +17 -0
- data/app/models/concerns/decidim/reporting_proposals/participatory_space_user_role_override.rb +25 -0
- data/app/models/decidim/reporting_proposals/category_valuator.rb +28 -0
- data/app/overrides/decidim/admin/categories/_form/add_valuators_field.html.erb.deface +3 -0
- data/app/overrides/decidim/admin/categories/index/add_table_column_name.html.erb.deface +3 -0
- data/app/overrides/decidim/admin/categories/index/add_valuators.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposal_notes/_proposal_notes/add_edit_link.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposal_notes/_proposal_notes/add_links_to_note.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_td_hide_action.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_valuators_name.html.erb.deface +9 -0
- data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/replace_td_title.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposals/show/add_photo_management.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposals/show/add_send_email_btn.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposals/show/remove_photos.html.erb.deface +4 -0
- data/app/overrides/decidim/proposals/admin/proposals/show/replace_valuators.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/_proposal_similar/add_distance_badge.html.erb.deface +5 -0
- data/app/overrides/decidim/proposals/proposals/_wizard_header/replace_title.html.erb.deface +14 -0
- data/app/overrides/decidim/proposals/proposals/edit/add_user_group.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/edit/replace_javascript.html.erb.deface +8 -0
- data/app/overrides/decidim/proposals/proposals/edit/replace_partial_edit_form_fields.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/edit_draft/add_user_group.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/edit_draft/replace_javascript.html.erb.deface +8 -0
- data/app/overrides/decidim/proposals/proposals/edit_draft/replace_partial_edit_form_fields.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/index/add_additional_button.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/new/remove_title.html.erb.deface +1 -0
- data/app/overrides/decidim/proposals/proposals/new/replace_body.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/new/replace_javascript.html.erb.deface +8 -0
- data/app/overrides/decidim/proposals/proposals/show/add_additional_button.html.erb.deface +3 -0
- data/app/overrides/layouts/decidim/_process_header_steps/always_show_new_proposals.html.erb.deface +3 -0
- data/app/packs/entrypoints/decidim_reporting_proposals.js +6 -0
- data/app/packs/entrypoints/decidim_reporting_proposals_camera.js +2 -0
- data/app/packs/entrypoints/decidim_reporting_proposals_geocoding.js +2 -0
- data/app/packs/entrypoints/decidim_reporting_proposals_js_validations.js +1 -0
- data/app/packs/entrypoints/decidim_reporting_proposals_list_component_admin.js +1 -0
- data/app/packs/entrypoints/decidim_reporting_proposals_manage_component_admin.js +1 -0
- data/app/packs/images/.keep +0 -0
- data/app/packs/src/decidim/reporting_proposals/proposal_extra_validations.js +89 -0
- data/app/packs/src/decidim/reporting_proposals/proposals/add_proposal.js +66 -0
- data/app/packs/src/decidim/reporting_proposals/reverse_geocoding.js +54 -0
- data/app/packs/src/decidim/reporting_proposals/user_camera_inputs.js +49 -0
- data/app/packs/stylesheets/decidim/reporting_proposals/geocoding_addons.scss +34 -0
- data/app/packs/stylesheets/decidim/reporting_proposals/list_component_admin.scss +27 -0
- data/app/packs/stylesheets/decidim/reporting_proposals/manage_component_admin.scss +31 -0
- data/app/packs/stylesheets/decidim/reporting_proposals/proposals/add_proposal.scss +12 -0
- data/app/packs/stylesheets/decidim/reporting_proposals/user_camera_inputs.scss +19 -0
- data/app/permissions/concerns/decidim/reporting_proposals/admin/permissions_override.rb +27 -0
- data/app/permissions/decidim/reporting_proposals/admin/permissions.rb +79 -0
- data/app/permissions/decidim/reporting_proposals/permissions.rb +17 -0
- data/app/queries/decidim/reporting_proposals/nearby_proposals.rb +57 -0
- data/app/serializers/decidim/reporting_proposals/proposal_serializer_override.rb +77 -0
- data/app/validators/concerns/decidim/reporting_proposals/component_validator_override.rb +25 -0
- data/app/views/decidim/proposals/admin/proposal_notes/_editing_note.html.erb +18 -0
- data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes_body.html.erb +6 -0
- data/app/views/decidim/proposals/admin/proposals/_send_email_button.html.erb +4 -0
- data/app/views/decidim/proposals/proposals/_additional_button.html.erb +6 -0
- data/app/views/decidim/reporting_proposals/admin/categories/_column_valuators.html.erb +1 -0
- data/app/views/decidim/reporting_proposals/admin/categories/_valuators.html.erb +1 -0
- data/app/views/decidim/reporting_proposals/admin/categories/_valuators_field.html.erb +7 -0
- data/app/views/decidim/reporting_proposals/admin/proposals/_photo_form.html.erb +24 -0
- data/app/views/decidim/reporting_proposals/admin/proposals/_photo_gallery.html.erb +21 -0
- data/app/views/decidim/reporting_proposals/admin/proposals/_photos.html.erb +14 -0
- data/app/views/decidim/reporting_proposals/admin/proposals/_proposal_td_hide.html.erb +20 -0
- data/app/views/decidim/reporting_proposals/admin/proposals/_proposal_td_title.html.erb +41 -0
- data/app/views/decidim/reporting_proposals/proposals/_additional_button_for_show.html.erb +6 -0
- data/app/views/decidim/reporting_proposals/proposals/_new_proposal_fields.html.erb +7 -0
- data/app/views/decidim/reporting_proposals/proposals/_reporting_proposal_fields.html.erb +113 -0
- data/app/views/decidim/reporting_proposals/proposals/_user_group.html.erb +5 -0
- data/bin/rails +6 -0
- data/bin/webpack-dev-server +6 -0
- data/codecov.yml +11 -0
- data/config/assets.rb +13 -0
- data/config/i18n-tasks.yml +13 -0
- data/config/locales/ca.yml +366 -0
- data/config/locales/de.yml +366 -0
- data/config/locales/en.yml +426 -0
- data/config/locales/es.yml +366 -0
- data/crowdin.yml +45 -0
- data/db/migrate/20221219151846_create_decidim_categories_valuators.rb +17 -0
- data/decidim-reporting_proposals.gemspec +34 -0
- data/lib/decidim/api/reporting_proposals_type.rb +10 -0
- data/lib/decidim/reporting_proposals/admin.rb +8 -0
- data/lib/decidim/reporting_proposals/admin_engine.rb +31 -0
- data/lib/decidim/reporting_proposals/component.rb +490 -0
- data/lib/decidim/reporting_proposals/config.rb +53 -0
- data/lib/decidim/reporting_proposals/engine.rb +96 -0
- data/lib/decidim/reporting_proposals/test/factories.rb +13 -0
- data/lib/decidim/reporting_proposals/version.rb +15 -0
- data/lib/decidim/reporting_proposals.rb +13 -0
- data/package-lock.json +7844 -0
- data/package.json +195 -0
- 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,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
|