decidim 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +12 -0
- data/Dockerfile +2 -0
- data/Gemfile.lock +80 -54
- data/README.md +15 -2
- data/decidim-admin/app/assets/javascripts/decidim/admin/application.js.es6 +3 -2
- data/decidim-admin/app/assets/javascripts/decidim/admin/tab_focus.js.es6 +1 -1
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_foundation_and_overrides.scss +1 -1
- data/decidim-admin/app/commands/decidim/admin/{create_participatory_process_attachment.rb → create_attachment.rb} +6 -7
- data/decidim-admin/app/commands/decidim/admin/create_participatory_process.rb +12 -3
- data/decidim-admin/app/commands/decidim/admin/{update_participatory_process_attachment.rb → update_attachment.rb} +7 -6
- data/decidim-admin/app/commands/decidim/admin/update_feature.rb +2 -1
- data/decidim-admin/app/commands/decidim/admin/update_organization.rb +1 -0
- data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +16 -4
- data/decidim-admin/app/constraints/decidim/admin/organization_dashboard_constraint.rb +1 -1
- data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +2 -2
- data/decidim-admin/app/controllers/decidim/admin/concerns/has_attachments.rb +116 -0
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_attachments_controller.rb +5 -67
- data/decidim-admin/app/controllers/decidim/admin/users_controller.rb +5 -5
- data/decidim-admin/app/forms/decidim/admin/{participatory_process_attachment_form.rb → attachment_form.rb} +2 -2
- data/decidim-admin/app/forms/decidim/admin/feature_form.rb +1 -0
- data/decidim-admin/app/forms/decidim/admin/organization_form.rb +1 -0
- data/decidim-admin/app/forms/decidim/admin/participatory_process_form.rb +8 -1
- data/decidim-admin/app/helpers/decidim/admin/application_helper.rb +1 -0
- data/decidim-admin/app/helpers/decidim/admin/feature_settings_helper.rb +29 -0
- data/decidim-admin/app/models/decidim/admin/abilities/admin_user.rb +4 -4
- data/decidim-admin/app/models/decidim/admin/abilities/base.rb +3 -3
- data/decidim-admin/app/models/decidim/admin/abilities/participatory_process_admin.rb +15 -7
- data/decidim-admin/app/views/decidim/admin/{participatory_process_attachments → attachments}/_form.html.erb +0 -0
- data/decidim-admin/app/views/decidim/admin/attachments/edit.html.erb +9 -0
- data/decidim-admin/app/views/decidim/admin/attachments/index.html.erb +37 -0
- data/decidim-admin/app/views/decidim/admin/attachments/new.html.erb +9 -0
- data/decidim-admin/app/views/decidim/admin/attachments/show.html.erb +25 -0
- data/decidim-admin/app/views/decidim/admin/features/_form.html.erb +1 -0
- data/decidim-admin/app/views/decidim/admin/features/_settings_fields.html.erb +6 -3
- data/decidim-admin/app/views/decidim/admin/organization/_form.html.erb +4 -0
- data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +16 -0
- data/decidim-admin/app/views/decidim/admin/participatory_processes/show.html.erb +11 -1
- data/decidim-admin/app/views/layouts/decidim/admin/_header.html.erb +2 -2
- data/decidim-admin/app/views/layouts/decidim/admin/_sidebar.html.erb +1 -1
- data/decidim-admin/app/views/layouts/decidim/admin/participatory_process.html.erb +2 -2
- data/decidim-admin/config/locales/ca.yml +29 -27
- data/decidim-admin/config/locales/en.yml +29 -27
- data/decidim-admin/config/locales/es.yml +29 -27
- data/decidim-admin/config/routes.rb +1 -1
- data/decidim-admin/db/migrate/20170128112958_change_user_groups_verified_to_timestamp.rb +9 -0
- data/decidim-admin/decidim-admin.gemspec +0 -1
- data/decidim-admin/lib/decidim/admin/engine.rb +2 -2
- data/decidim-admin/lib/decidim/admin/test/manage_attachments_examples.rb +103 -0
- data/decidim-admin/spec/commands/create_category_spec.rb +1 -1
- data/decidim-admin/spec/commands/create_feature_spec.rb +1 -1
- data/decidim-admin/spec/commands/create_participatory_process_spec.rb +32 -2
- data/decidim-admin/spec/commands/create_static_page_spec.rb +1 -1
- data/decidim-admin/spec/commands/destroy_category_spec.rb +1 -1
- data/decidim-admin/spec/commands/destroy_feature_spec.rb +2 -2
- data/decidim-admin/spec/commands/destroy_participatory_process_step_spec.rb +1 -1
- data/decidim-admin/spec/commands/update_category_spec.rb +1 -1
- data/decidim-admin/spec/commands/update_feature_spec.rb +3 -1
- data/decidim-admin/spec/commands/update_organization_spec.rb +12 -2
- data/decidim-admin/spec/commands/update_static_page_spec.rb +1 -1
- data/decidim-admin/spec/features/admin_manages_organization_admins_spec.rb +1 -1
- data/decidim-admin/spec/features/admin_manages_organization_scopes_spec.rb +1 -1
- data/decidim-admin/spec/features/admin_manages_participatory_processes_spec.rb +1 -1
- data/decidim-admin/spec/features/static_pages_spec.rb +1 -1
- data/decidim-admin/spec/forms/participatory_process_form_spec.rb +32 -2
- data/decidim-admin/spec/forms/participatory_process_step_form_spec.rb +3 -3
- data/decidim-admin/spec/forms/scope_form_spec.rb +2 -2
- data/decidim-admin/spec/forms/static_page_form_spec.rb +2 -2
- data/decidim-admin/spec/helpers/feature_settings_helper_spec.rb +56 -0
- data/decidim-admin/spec/models/abilities/admin_user_spec.rb +7 -6
- data/decidim-admin/spec/models/abilities/participatory_process_admin_spec.rb +5 -8
- data/decidim-admin/spec/shared/manage_process_admins_examples.rb +1 -1
- data/decidim-admin/spec/shared/manage_process_attachments_examples.rb +4 -94
- data/decidim-admin/spec/shared/manage_process_categories_examples.rb +2 -1
- data/decidim-admin/spec/shared/manage_process_steps_examples.rb +1 -1
- data/decidim-admin/spec/shared/manage_processes_examples.rb +4 -3
- data/decidim-admin/spec/views/decidim/static_pages/_form.html.erb_spec.rb +2 -2
- data/decidim-api/app/views/layouts/decidim/api/documentation.html.erb +1 -1
- data/decidim-api/decidim-api.gemspec +1 -1
- data/decidim-api/lib/decidim/api.rb +1 -0
- data/decidim-api/lib/decidim/api/schema.rb +5 -0
- data/decidim-api/lib/decidim/api/test/type_context.rb +1 -0
- data/decidim-api/lib/decidim/api/types/author_interface.rb +13 -0
- data/decidim-api/spec/types/query_type_spec.rb +1 -1
- data/decidim-api/spec/types/translated_field_type_spec.rb +1 -1
- data/decidim-budgets/.gitignore +7 -0
- data/decidim-budgets/README.md +23 -0
- data/decidim-budgets/Rakefile +2 -0
- data/decidim-budgets/app/assets/config/decidim_budgets_manifest.js +1 -0
- data/decidim-budgets/app/assets/images/decidim/budgets/icon.svg +4 -0
- data/decidim-budgets/app/assets/javascripts/decidim/budgets/projects.js.es6 +28 -0
- data/decidim-budgets/app/assets/stylesheets/decidim/budgets/_budgets.scss +1 -0
- data/decidim-budgets/app/assets/stylesheets/decidim/budgets/budget/_budget-list.scss +32 -0
- data/decidim-budgets/app/assets/stylesheets/decidim/budgets/budget/_budget-meter.scss +78 -0
- data/decidim-budgets/app/assets/stylesheets/decidim/budgets/budget/_progress.scss +17 -0
- data/decidim-budgets/app/commands/decidim/budgets/add_line_item.rb +43 -0
- data/decidim-budgets/app/commands/decidim/budgets/admin/create_project.rb +52 -0
- data/decidim-budgets/app/commands/decidim/budgets/admin/update_project.rb +56 -0
- data/decidim-budgets/app/commands/decidim/budgets/cancel_order.rb +36 -0
- data/decidim-budgets/app/commands/decidim/budgets/checkout.rb +34 -0
- data/decidim-budgets/app/commands/decidim/budgets/remove_line_item.rb +35 -0
- data/decidim-budgets/app/controllers/concerns/decidim/budgets/needs_current_order.rb +27 -0
- data/decidim-budgets/app/controllers/decidim/budgets/admin/application_controller.rb +14 -0
- data/decidim-budgets/app/controllers/decidim/budgets/admin/projects_controller.rb +69 -0
- data/decidim-budgets/app/controllers/decidim/budgets/application_controller.rb +13 -0
- data/decidim-budgets/app/controllers/decidim/budgets/line_items_controller.rb +43 -0
- data/decidim-budgets/app/controllers/decidim/budgets/orders_controller.rb +38 -0
- data/decidim-budgets/app/controllers/decidim/budgets/projects_controller.rb +44 -0
- data/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb +44 -0
- data/decidim-budgets/app/helpers/decidim/budgets/application_helper.rb +12 -0
- data/decidim-budgets/app/helpers/decidim/budgets/projects_helper.rb +29 -0
- data/decidim-budgets/app/models/decidim/budgets/application_record.rb +9 -0
- data/decidim-budgets/app/models/decidim/budgets/line_item.rb +20 -0
- data/decidim-budgets/app/models/decidim/budgets/order.rb +52 -0
- data/decidim-budgets/app/models/decidim/budgets/project.rb +15 -0
- data/decidim-budgets/app/services/decidim/budgets/project_search.rb +58 -0
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/_form.html.erb +31 -0
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/edit.html.erb +9 -0
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/index.html.erb +27 -0
- data/{decidim-admin/app/views/decidim/admin/participatory_process_attachments → decidim-budgets/app/views/decidim/budgets/admin/projects}/new.html.erb +0 -0
- data/decidim-budgets/app/views/decidim/budgets/line_items/update_budget.js.erb +21 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_budget_confirm.html.erb +30 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_budget_excess.html.erb +14 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_budget_summary.html.erb +46 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_count.html.erb +1 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_filters.html.erb +24 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_linked_projects.html.erb +12 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_order_progress.html.erb +34 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_order_selected_projects.html.erb +25 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_order_total_budget.html.erb +1 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_project.html.erb +40 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_project_budget_button.html.erb +9 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_projects.html.erb +8 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_tags.html.erb +10 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/index.html.erb +26 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/index.js.erb +2 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/show.html.erb +48 -0
- data/decidim-budgets/bin/rails +14 -0
- data/decidim-budgets/config/i18n-tasks.yml +4 -0
- data/decidim-budgets/config/locales/ca.yml +84 -0
- data/decidim-budgets/config/locales/en.yml +95 -0
- data/decidim-budgets/config/locales/es.yml +84 -0
- data/decidim-budgets/db/migrate/20170127114122_create_projects.rb +15 -0
- data/decidim-budgets/db/migrate/20170130095615_create_orders.rb +13 -0
- data/decidim-budgets/db/migrate/20170130101825_create_line_items.rb +10 -0
- data/decidim-budgets/decidim-budgets.gemspec +24 -0
- data/decidim-budgets/lib/decidim/budgets.rb +11 -0
- data/decidim-budgets/lib/decidim/budgets/admin.rb +9 -0
- data/decidim-budgets/lib/decidim/budgets/admin_engine.rb +22 -0
- data/decidim-budgets/lib/decidim/budgets/feature.rb +59 -0
- data/decidim-budgets/lib/decidim/budgets/list_engine.rb +30 -0
- data/decidim-budgets/lib/decidim/budgets/test/factories.rb +43 -0
- data/decidim-budgets/spec/commands/add_line_item_spec.rb +48 -0
- data/decidim-budgets/spec/commands/cancel_order_spec.rb +42 -0
- data/decidim-budgets/spec/commands/checkout_spec.rb +45 -0
- data/decidim-budgets/spec/commands/create_project_spec.rb +72 -0
- data/decidim-budgets/spec/commands/remove_line_item_spec.rb +31 -0
- data/decidim-budgets/spec/commands/update_project_spec.rb +65 -0
- data/decidim-budgets/spec/factories.rb +4 -0
- data/decidim-budgets/spec/features/admin_manages_projects_spec.rb +16 -0
- data/decidim-budgets/spec/features/orders_spec.rb +149 -0
- data/decidim-budgets/spec/features/process_admin_manages_projects_spec.rb +17 -0
- data/decidim-budgets/spec/forms/project_form_spec.rb +115 -0
- data/decidim-budgets/spec/models/line_item_spec.rb +35 -0
- data/decidim-budgets/spec/models/order_spec.rb +45 -0
- data/decidim-budgets/spec/models/project_spec.rb +30 -0
- data/decidim-budgets/spec/services/project_search_spec.rb +97 -0
- data/decidim-budgets/spec/shared/admin_shared_context.rb +11 -0
- data/decidim-budgets/spec/shared/manage_projects_examples.rb +104 -0
- data/decidim-budgets/spec/spec_helper.rb +2 -0
- data/decidim-comments/app/assets/javascripts/decidim/comments/bundle.js +0 -0
- data/decidim-comments/app/commands/decidim/comments/create_comment.rb +2 -1
- data/decidim-comments/app/forms/decidim/comments/comment_form.rb +1 -0
- data/decidim-comments/app/frontend/application/apollo_client.js +1 -1
- data/decidim-comments/app/frontend/application/application.component.jsx +1 -1
- data/decidim-comments/app/frontend/comments/add_comment_form.component.jsx +76 -20
- data/decidim-comments/app/frontend/comments/add_comment_form.component.test.jsx +77 -22
- data/decidim-comments/app/frontend/comments/add_comment_form.fragment.graphql +6 -0
- data/decidim-comments/app/frontend/comments/add_comment_form.mutation.graphql +2 -2
- data/decidim-comments/app/frontend/comments/comment.component.jsx +15 -15
- data/decidim-comments/app/frontend/comments/comment.component.test.jsx +42 -41
- data/decidim-comments/app/frontend/comments/comment_order_selector.component.jsx +1 -1
- data/decidim-comments/app/frontend/comments/comment_thread.component.jsx +7 -7
- data/decidim-comments/app/frontend/comments/comment_thread.component.test.jsx +21 -19
- data/decidim-comments/app/frontend/comments/comments.component.jsx +21 -17
- data/decidim-comments/app/frontend/comments/comments.component.test.jsx +47 -32
- data/decidim-comments/app/frontend/comments/comments.query.graphql +6 -3
- data/decidim-comments/app/frontend/comments/down_vote_button.component.jsx +21 -10
- data/decidim-comments/app/frontend/comments/up_vote_button.component.jsx +23 -12
- data/decidim-comments/app/frontend/comments/vote_button.component.jsx +15 -7
- data/decidim-comments/app/frontend/comments/vote_button_component.test.jsx +7 -2
- data/decidim-comments/app/frontend/entry.js +1 -8
- data/decidim-comments/app/frontend/support/generate_user_data.js +13 -0
- data/decidim-comments/app/frontend/support/generate_user_group_data.js +14 -0
- data/decidim-comments/app/helpers/decidim/comments/comments_helper.rb +10 -15
- data/decidim-comments/app/models/decidim/comments/comment.rb +5 -7
- data/decidim-comments/app/types/decidim/comments/comment_type.rb +5 -1
- data/decidim-comments/config/locales/ca.yml +5 -1
- data/decidim-comments/config/locales/en.yml +4 -1
- data/decidim-comments/config/locales/es.yml +5 -1
- data/decidim-comments/db/migrate/20170123102043_add_user_group_id_to_comments.rb +5 -0
- data/decidim-comments/decidim-comments.gemspec +0 -1
- data/decidim-comments/lib/decidim/comments/engine.rb +0 -1
- data/decidim-comments/lib/decidim/comments/mutation_extensions.rb +2 -1
- data/decidim-comments/spec/commands/create_comment_spec.rb +6 -3
- data/decidim-comments/spec/commands/vote_comment_spec.rb +4 -4
- data/decidim-comments/spec/features/comments_spec.rb +27 -3
- data/decidim-comments/spec/forms/comment_form_spec.rb +6 -3
- data/decidim-comments/spec/models/comment_spec.rb +25 -32
- data/decidim-comments/spec/queries/comments_with_replies_spec.rb +2 -2
- data/decidim-comments/spec/types/comment_type_spec.rb +2 -2
- data/decidim-comments/spec/types/query_type_spec.rb +5 -5
- data/decidim-dev/app/views/decidim/dummy_resource/_linked_dummys.html.erb +5 -0
- data/decidim-dev/config/locales/en.yml +5 -0
- data/decidim-dev/decidim-dev.gemspec +3 -3
- data/decidim-dev/lib/decidim/dev/assets/avatar.jpg +0 -0
- data/decidim-dev/lib/decidim/dev/assets/icon.png +0 -0
- data/decidim-dev/lib/decidim/dev/test/base_spec_helper.rb +1 -0
- data/decidim-dev/lib/decidim/dev/test/rspec_support/action_mailer.rb +1 -1
- data/decidim-dev/lib/decidim/dev/test/rspec_support/engine_routes.rb +9 -5
- data/decidim-dev/lib/decidim/dev/test/rspec_support/feature.rb +24 -0
- data/decidim-meetings/app/assets/config/decidim_meetings_manifest.js +2 -0
- data/decidim-meetings/app/assets/javascripts/decidim/meetings/map.js.es6.erb +92 -0
- data/decidim-meetings/app/assets/stylesheets/decidim/meetings/map.css +1 -0
- data/decidim-meetings/app/commands/decidim/meetings/admin/close_meeting.rb +53 -0
- data/decidim-meetings/app/commands/decidim/meetings/admin/create_meeting.rb +15 -3
- data/decidim-meetings/app/commands/decidim/meetings/admin/update_meeting.rb +15 -3
- data/decidim-meetings/app/controllers/decidim/meetings/admin/application_controller.rb +9 -0
- data/decidim-meetings/app/controllers/decidim/meetings/admin/attachments_controller.rb +29 -0
- data/decidim-meetings/app/controllers/decidim/meetings/admin/meeting_closes_controller.rb +38 -0
- data/decidim-meetings/app/controllers/decidim/meetings/admin/meetings_controller.rb +0 -12
- data/decidim-meetings/app/controllers/decidim/meetings/meetings_controller.rb +11 -9
- data/decidim-meetings/app/forms/decidim/meetings/admin/close_meeting_form.rb +31 -0
- data/decidim-meetings/app/forms/decidim/meetings/admin/meeting_form.rb +0 -2
- data/decidim-meetings/app/helpers/decidim/meetings/admin/application_helper.rb +12 -0
- data/decidim-meetings/app/helpers/decidim/meetings/application_helper.rb +1 -0
- data/decidim-meetings/app/helpers/decidim/meetings/map_helper.rb +46 -0
- data/decidim-meetings/app/models/decidim/meetings/meeting.rb +11 -15
- data/decidim-meetings/app/services/decidim/meetings/meeting_search.rb +0 -1
- data/decidim-meetings/app/services/decidim/meetings/static_map_generator.rb +50 -0
- data/decidim-meetings/app/views/decidim/meetings/admin/meeting_closes/_form.html.erb +23 -0
- data/decidim-meetings/app/views/decidim/meetings/admin/meeting_closes/edit.html.erb +9 -0
- data/decidim-meetings/app/views/decidim/meetings/admin/meetings/_form.html.erb +2 -6
- data/decidim-meetings/app/views/decidim/meetings/admin/meetings/index.html.erb +14 -0
- data/decidim-meetings/app/views/decidim/meetings/meetings/_datetime.html.erb +8 -0
- data/decidim-meetings/app/views/decidim/meetings/meetings/_filters.html.erb +2 -2
- data/decidim-meetings/app/views/decidim/meetings/meetings/_filters_small_view.html.erb +18 -0
- data/decidim-meetings/app/views/decidim/meetings/meetings/_linked_meetings.html.erb +22 -0
- data/decidim-meetings/app/views/decidim/meetings/meetings/_meetings.html.erb +3 -10
- data/decidim-meetings/app/views/decidim/meetings/meetings/index.html.erb +42 -0
- data/decidim-meetings/app/views/decidim/meetings/meetings/index.js.erb +6 -0
- data/decidim-meetings/app/views/decidim/meetings/meetings/show.html.erb +33 -7
- data/decidim-meetings/bin/rails +1 -1
- data/decidim-meetings/config/i18n-tasks.yml +2 -0
- data/decidim-meetings/config/locales/ca.yml +37 -4
- data/decidim-meetings/config/locales/en.yml +34 -1
- data/decidim-meetings/config/locales/es.yml +36 -3
- data/decidim-meetings/db/migrate/20170110142105_close_a_meeting.rb +9 -0
- data/decidim-meetings/db/migrate/20170123151650_add_latitude_and_longitude_to_meetings.rb +6 -0
- data/decidim-meetings/db/migrate/20170129153716_remove_short_description_from_meetings.rb +5 -0
- data/decidim-meetings/decidim-meetings.gemspec +7 -0
- data/decidim-meetings/lib/decidim/meetings/admin_engine.rb +31 -1
- data/decidim-meetings/lib/decidim/meetings/feature.rb +20 -6
- data/decidim-meetings/lib/decidim/meetings/list_engine.rb +10 -1
- data/decidim-meetings/lib/decidim/meetings/seeds/Exampledocument.pdf +0 -0
- data/decidim-meetings/lib/decidim/meetings/seeds/city.jpeg +0 -0
- data/decidim-meetings/lib/decidim/meetings/test/factories.rb +23 -0
- data/decidim-meetings/spec/commands/close_meeting_spec.rb +78 -0
- data/decidim-meetings/spec/commands/create_meeting_spec.rb +22 -3
- data/decidim-meetings/spec/commands/update_meeting_spec.rb +32 -3
- data/decidim-meetings/spec/controllers/meetings_controller_spec.rb +41 -0
- data/decidim-meetings/spec/factories.rb +3 -13
- data/decidim-meetings/spec/features/admin_manages_meetings_attachments_spec.rb +10 -0
- data/decidim-meetings/spec/features/explore_meetings_spec.rb +55 -1
- data/decidim-meetings/spec/features/process_admin_manages_meetings_attachments_spec.rb +12 -0
- data/decidim-meetings/spec/forms/close_meeting_form_spec.rb +90 -0
- data/decidim-meetings/spec/forms/meeting_form_spec.rb +1 -7
- data/decidim-meetings/spec/models/meeting_spec.rb +42 -24
- data/decidim-meetings/spec/services/meeting_search_spec.rb +1 -17
- data/decidim-meetings/spec/services/static_map_generator_spec.rb +33 -0
- data/decidim-meetings/spec/shared/manage_attachments_examples.rb +17 -0
- data/decidim-meetings/spec/shared/manage_meetings_examples.rb +58 -8
- data/decidim-meetings/spec/spec_helper.rb +5 -0
- data/decidim-meetings/spec/support/geocoder.rb +7 -0
- data/decidim-meetings/vendor/assets/javascripts/leaflet-svg-icon.js +179 -0
- data/decidim-meetings/vendor/assets/javascripts/leaflet-tilelayer-here.js +166 -0
- data/decidim-meetings/vendor/assets/javascripts/leaflet.js +9 -0
- data/decidim-meetings/vendor/assets/stylesheets/leaflet.css +624 -0
- data/decidim-pages/app/models/decidim/pages/page.rb +10 -1
- data/decidim-pages/app/views/decidim/pages/application/show.html.erb +2 -1
- data/decidim-pages/spec/commands/create_page_spec.rb +2 -2
- data/decidim-pages/spec/commands/destroy_page_spec.rb +1 -1
- data/decidim-pages/spec/commands/update_page_spec.rb +1 -1
- data/decidim-pages/spec/factories.rb +1 -1
- data/decidim-pages/spec/features/admin_spec.rb +1 -0
- data/decidim-pages/spec/models/page_spec.rb +15 -0
- data/decidim-proposals/app/assets/stylesheets/decidim/proposals/social_share.css.scss +5 -0
- data/decidim-proposals/app/commands/decidim/proposals/admin/answer_proposal.rb +43 -0
- data/decidim-proposals/app/commands/decidim/proposals/create_proposal.rb +1 -0
- data/decidim-proposals/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +37 -0
- data/decidim-proposals/app/controllers/decidim/proposals/admin/proposals_controller.rb +1 -0
- data/decidim-proposals/app/controllers/decidim/proposals/proposal_votes_controller.rb +18 -7
- data/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb +8 -7
- data/decidim-proposals/app/forms/decidim/proposals/admin/proposal_answer_form.rb +18 -0
- data/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb +1 -0
- data/decidim-proposals/app/helpers/decidim/proposals/application_helper.rb +17 -0
- data/decidim-proposals/app/helpers/decidim/proposals/proposal_votes_helper.rb +19 -0
- data/decidim-proposals/app/models/decidim/proposals/abilities/current_user.rb +59 -0
- data/decidim-proposals/app/models/decidim/proposals/proposal.rb +30 -33
- data/decidim-proposals/app/models/decidim/proposals/proposal_vote.rb +2 -0
- data/decidim-proposals/app/services/decidim/proposals/proposal_search.rb +11 -0
- data/decidim-proposals/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +15 -0
- data/decidim-proposals/app/views/decidim/proposals/admin/proposals/index.html.erb +8 -0
- data/decidim-proposals/app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb +20 -0
- data/decidim-proposals/app/views/decidim/proposals/proposals/_filters.html.erb +3 -1
- data/decidim-proposals/app/views/decidim/proposals/proposals/_filters_small_view.html.erb +18 -0
- data/decidim-proposals/app/views/decidim/proposals/proposals/_linked_proposals.html.erb +27 -0
- data/decidim-proposals/app/views/decidim/proposals/proposals/_proposal.html.erb +3 -2
- data/decidim-proposals/app/views/decidim/proposals/proposals/_proposal_badge.html.erb +3 -0
- data/decidim-proposals/app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb +1 -0
- data/decidim-proposals/app/views/decidim/proposals/proposals/_share.html.erb +1 -1
- data/decidim-proposals/app/views/decidim/proposals/proposals/_vote_button.html.erb +16 -4
- data/decidim-proposals/app/views/decidim/proposals/proposals/_votes_limit.html.erb +23 -0
- data/decidim-proposals/app/views/decidim/proposals/proposals/index.html.erb +13 -3
- data/decidim-proposals/app/views/decidim/proposals/proposals/new.html.erb +6 -0
- data/decidim-proposals/app/views/decidim/proposals/proposals/show.html.erb +15 -2
- data/decidim-proposals/config/i18n-tasks.yml +3 -0
- data/decidim-proposals/config/locales/ca.yml +54 -1
- data/decidim-proposals/config/locales/en.yml +54 -0
- data/decidim-proposals/config/locales/es.yml +54 -1
- data/decidim-proposals/db/migrate/20170120151202_add_user_group_id_to_proposals.rb +5 -0
- data/decidim-proposals/db/migrate/20170131092413_add_answers_to_proposals.rb +7 -0
- data/decidim-proposals/decidim-proposals.gemspec +3 -0
- data/decidim-proposals/lib/decidim/proposals/admin_engine.rb +3 -1
- data/decidim-proposals/lib/decidim/proposals/engine.rb +7 -1
- data/decidim-proposals/lib/decidim/proposals/feature.rb +28 -1
- data/decidim-proposals/lib/decidim/proposals/test/factories.rb +83 -0
- data/decidim-proposals/spec/commands/decidim/proposals/admin_create_proposal_spec.rb +14 -0
- data/decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb +53 -0
- data/decidim-proposals/spec/commands/decidim/proposals/create_proposal_spec.rb +3 -56
- data/decidim-proposals/spec/controllers/decidim/admin/proposal_answers_controller_spec.rb +45 -0
- data/decidim-proposals/spec/controllers/decidim/proposal_votes_controller_spec.rb +113 -0
- data/decidim-proposals/spec/controllers/decidim/proposals_controller_spec.rb +53 -0
- data/decidim-proposals/spec/factories.rb +1 -23
- data/decidim-proposals/spec/features/proposals_spec.rb +201 -38
- data/decidim-proposals/spec/features/vote_proposal_spec.rb +83 -11
- data/decidim-proposals/spec/forms/decidim/proposals/admin_proposal_form_spec.rb +13 -0
- data/decidim-proposals/spec/forms/decidim/proposals/proposal_answer_form_spec.rb +50 -0
- data/decidim-proposals/spec/forms/decidim/proposals/proposal_form_spec.rb +5 -93
- data/decidim-proposals/spec/helpers/application_helper_spec.rb +33 -0
- data/decidim-proposals/spec/helpers/proposal_votes_helper_spec.rb +53 -0
- data/decidim-proposals/spec/lib/decidim/proposals/feature_spec.rb +1 -1
- data/decidim-proposals/spec/models/decidim/proposals/proposal_spec.rb +21 -19
- data/decidim-proposals/spec/models/decidim/proposals/proposal_vote_spec.rb +19 -1
- data/decidim-proposals/spec/services/decidim/proposals/proposal_search_spec.rb +66 -25
- data/decidim-proposals/spec/shared/create_proposal_examples.rb +69 -0
- data/decidim-proposals/spec/shared/manage_proposals_examples.rb +49 -0
- data/decidim-proposals/spec/shared/proposal_form_examples.rb +100 -0
- data/decidim-results/.gitignore +7 -0
- data/decidim-results/README.md +23 -0
- data/decidim-results/Rakefile +2 -0
- data/decidim-results/app/assets/images/decidim/results/icon.svg +1 -0
- data/decidim-results/app/commands/decidim/results/admin/create_result.rb +65 -0
- data/decidim-results/app/commands/decidim/results/admin/update_result.rb +69 -0
- data/decidim-results/app/controllers/decidim/results/admin/application_controller.rb +14 -0
- data/decidim-results/app/controllers/decidim/results/admin/results_controller.rb +69 -0
- data/decidim-results/app/controllers/decidim/results/application_controller.rb +13 -0
- data/decidim-results/app/controllers/decidim/results/results_controller.rb +42 -0
- data/decidim-results/app/forms/decidim/results/admin/result_form.rb +40 -0
- data/decidim-results/app/helpers/decidim/results/application_helper.rb +11 -0
- data/decidim-results/app/models/decidim/results/application_record.rb +9 -0
- data/decidim-results/app/models/decidim/results/result.rb +15 -0
- data/decidim-results/app/services/decidim/results/result_search.rb +44 -0
- data/decidim-results/app/services/decidim/results/result_stats_calculator.rb +51 -0
- data/decidim-results/app/views/decidim/results/admin/results/_form.html.erb +23 -0
- data/decidim-results/app/views/decidim/results/admin/results/edit.html.erb +9 -0
- data/decidim-results/app/views/decidim/results/admin/results/index.html.erb +27 -0
- data/decidim-results/app/views/decidim/results/admin/results/new.html.erb +9 -0
- data/decidim-results/app/views/decidim/results/results/_count.html.erb +1 -0
- data/decidim-results/app/views/decidim/results/results/_filters.html.erb +22 -0
- data/decidim-results/app/views/decidim/results/results/_linked_results.html.erb +12 -0
- data/decidim-results/app/views/decidim/results/results/_results.html.erb +16 -0
- data/decidim-results/app/views/decidim/results/results/_tags.html.erb +10 -0
- data/decidim-results/app/views/decidim/results/results/index.html.erb +22 -0
- data/decidim-results/app/views/decidim/results/results/index.js.erb +2 -0
- data/decidim-results/app/views/decidim/results/results/show.html.erb +52 -0
- data/decidim-results/bin/rails +14 -0
- data/decidim-results/config/i18n-tasks.yml +5 -0
- data/decidim-results/config/locales/ca.yml +61 -0
- data/decidim-results/config/locales/en.yml +62 -0
- data/decidim-results/config/locales/es.yml +61 -0
- data/decidim-results/db/migrate/20170116104125_create_results.rb +14 -0
- data/decidim-results/db/migrate/20170129164553_remove_short_description_from_results.rb +5 -0
- data/decidim-results/decidim-results.gemspec +26 -0
- data/decidim-results/lib/decidim/results.rb +11 -0
- data/decidim-results/lib/decidim/results/admin.rb +9 -0
- data/decidim-results/lib/decidim/results/admin_engine.rb +22 -0
- data/decidim-results/lib/decidim/results/feature.rb +52 -0
- data/decidim-results/lib/decidim/results/list_engine.rb +19 -0
- data/decidim-results/lib/decidim/results/test/factories.rb +11 -0
- data/decidim-results/spec/commands/create_result_spec.rb +90 -0
- data/decidim-results/spec/commands/update_result_spec.rb +83 -0
- data/decidim-results/spec/factories.rb +6 -0
- data/decidim-results/spec/features/admin_manages_results_spec.rb +16 -0
- data/decidim-results/spec/features/explore_results_spec.rb +186 -0
- data/decidim-results/spec/features/process_admin_manages_results_spec.rb +17 -0
- data/decidim-results/spec/forms/result_form_spec.rb +91 -0
- data/decidim-results/spec/models/result_spec.rb +18 -0
- data/decidim-results/spec/services/result_search_spec.rb +97 -0
- data/decidim-results/spec/services/result_stats_calculator_spec.rb +93 -0
- data/decidim-results/spec/shared/admin_shared_context.rb +11 -0
- data/decidim-results/spec/shared/manage_results_examples.rb +96 -0
- data/decidim-results/spec/spec_helper.rb +2 -0
- data/decidim-system/app/assets/javascripts/decidim/system/application.js.es6 +1 -3
- data/decidim-system/app/views/layouts/decidim/system/_header.html.erb +2 -2
- data/decidim-system/decidim-system.gemspec +0 -1
- data/decidim-system/lib/decidim/system/engine.rb +0 -1
- data/decidim-system/spec/features/manage_admins_spec.rb +1 -1
- data/decidim-system/spec/features/organizations_spec.rb +1 -1
- data/decidim.gemspec +2 -0
- data/docs/how_to_create_a_plugin.md +0 -2
- data/lib/decidim.rb +2 -0
- data/lib/generators/decidim/install_generator.rb +1 -0
- data/lib/generators/decidim/templates/Gemfile.erb +10 -1
- data/lib/generators/decidim/templates/initializer.rb +9 -0
- data/lib/generators/decidim/templates/secrets.yml.erb +3 -0
- data/lib/generators/decidim/templates/social_share_button.rb +1 -1
- data/package.json +2 -3
- data/yarn.lock +10 -8
- metadata +265 -32
- data/decidim-admin/app/helpers/decidim/admin/aria_selected_link_to_helper.rb +0 -28
- data/decidim-admin/app/views/decidim/admin/participatory_process_attachments/edit.html.erb +0 -9
- data/decidim-admin/app/views/decidim/admin/participatory_process_attachments/index.html.erb +0 -37
- data/decidim-admin/app/views/decidim/admin/participatory_process_attachments/show.html.erb +0 -25
- data/decidim-comments/app/frontend/support/generate_current_user_data.js +0 -13
- data/decidim-comments/app/types/decidim/comments/author_type.rb +0 -15
- data/decidim-comments/spec/types/author_type_spec.rb +0 -21
- data/decidim-dev/lib/decidim/dev/assets/avatar.svg +0 -14
- data/decidim-proposals/app/views/decidim/proposals/proposal_votes/create.js.erb +0 -5
@@ -6,6 +6,7 @@ module Decidim
|
|
6
6
|
belongs_to :proposal, foreign_key: "decidim_proposal_id", class_name: Decidim::Proposals::Proposal, counter_cache: true
|
7
7
|
belongs_to :author, foreign_key: "decidim_author_id", class_name: Decidim::User
|
8
8
|
|
9
|
+
validates :proposal, :author, presence: true
|
9
10
|
validates :proposal, uniqueness: { scope: :author }
|
10
11
|
validate :author_and_proposal_same_organization
|
11
12
|
|
@@ -13,6 +14,7 @@ module Decidim
|
|
13
14
|
|
14
15
|
# Private: check if the proposal and the author have the same organization
|
15
16
|
def author_and_proposal_same_organization
|
17
|
+
return if !proposal || !author
|
16
18
|
errors.add(:proposal, :invalid) unless author.organization == proposal.organization
|
17
19
|
end
|
18
20
|
end
|
@@ -46,6 +46,17 @@ module Decidim
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
+
# Handle the state filter
|
50
|
+
def search_state
|
51
|
+
if state == "accepted"
|
52
|
+
query.accepted
|
53
|
+
elsif state == "rejected"
|
54
|
+
query.rejected
|
55
|
+
else # Assume 'all'
|
56
|
+
query
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
49
60
|
# Returns the random proposals for the current page.
|
50
61
|
def results
|
51
62
|
@proposals ||= Proposal.transaction do
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<h3><%= t ".title", title: proposal.title %></h3>
|
2
|
+
|
3
|
+
<%= form_for(@form, url: proposal_proposal_answer_path(proposal, @form)) do |f| %>
|
4
|
+
<div class="field">
|
5
|
+
<%= f.collection_radio_buttons :state, [["accepted", t('.accepted')], ["rejected", t('.rejected')]], :first, :last, prompt: true %>
|
6
|
+
</div>
|
7
|
+
|
8
|
+
<div class="field">
|
9
|
+
<%= f.translated :text_area, :answer, autofocus: true, rows: 15 %>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<div class="actions">
|
13
|
+
<%= f.submit t(".answer_proposal") %>
|
14
|
+
</div>
|
15
|
+
<% end %>
|
@@ -10,6 +10,8 @@
|
|
10
10
|
<th><%= t("models.proposal.fields.title", scope: "decidim.proposals") %></th>
|
11
11
|
<th><%= t("models.proposal.fields.category", scope: "decidim.proposals") %></th>
|
12
12
|
<th><%= t("models.proposal.fields.scope", scope: "decidim.proposals") %></th>
|
13
|
+
<th><%= t("models.proposal.fields.state", scope: "decidim.proposals") %></th>
|
14
|
+
<th class="actions"><%= t("actions.title", scope: "decidim.proposals") %></th>
|
13
15
|
</tr>
|
14
16
|
</thead>
|
15
17
|
<tbody>
|
@@ -28,6 +30,12 @@
|
|
28
30
|
<%= translated_attribute proposal.scope.name %>
|
29
31
|
<% end %>
|
30
32
|
</td>
|
33
|
+
<td>
|
34
|
+
<%= humanize_proposal_state proposal.state %>
|
35
|
+
</td>
|
36
|
+
<td class="actions">
|
37
|
+
<%= link_to t("actions.answer", scope: "decidim.proposals"), edit_proposal_proposal_answer_path(proposal_id: proposal.id, id: proposal.id) if can? :update, current_feature %>
|
38
|
+
</td>
|
31
39
|
</tr>
|
32
40
|
<% end %>
|
33
41
|
</tbody>
|
data/decidim-proposals/app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
var $proposalVotesCount = $('#proposal-<%= proposal.id %>-votes-count');
|
2
|
+
var $proposalVoteButton = $('#proposal-<%= proposal.id %>-vote-button');
|
3
|
+
|
4
|
+
$proposalVotesCount.html('<%= j(render partial: 'decidim/proposals/proposals/votes_count', locals: { proposal: proposal, from_proposals_list: @from_proposals_list }) %>');
|
5
|
+
$proposalVoteButton.html('<%= j(render partial: 'decidim/proposals/proposals/vote_button', locals: { proposal: proposal, from_proposals_list: @from_proposals_list }) %>');
|
6
|
+
|
7
|
+
<% if vote_limit_enabled? %>
|
8
|
+
var $remainingVotesCount = $('#remaining-votes-count');
|
9
|
+
var $notVotedButtons = $('.card__button.button').not('.success');
|
10
|
+
|
11
|
+
$remainingVotesCount.html('<%= j(render partial: 'decidim/proposals/proposals/remaining_votes_count') %>');
|
12
|
+
|
13
|
+
<% if remaining_votes_count_for(current_user) == 0 %>
|
14
|
+
$notVotedButtons.attr('disabled', true);
|
15
|
+
$notVotedButtons.val('<%= t('decidim.proposals.proposals.vote_button.no_votes_remaining') %>');
|
16
|
+
<% else %>
|
17
|
+
$notVotedButtons.attr('disabled', false);
|
18
|
+
$notVotedButtons.val('<%= t('decidim.proposals.proposals.vote_button.vote') %>');
|
19
|
+
<% end %>
|
20
|
+
<% end %>
|
@@ -14,12 +14,14 @@
|
|
14
14
|
|
15
15
|
<%= form.collection_radio_buttons :origin, [["all", t('.all')], ["official", t('.official')], ["citizenship", t('.citizenship')]], :first, :last, legend_title: t('.origin') %>
|
16
16
|
|
17
|
+
<%= form.collection_radio_buttons :state, [["all", t('.all')], ["accepted", t('.accepted')], ["rejected", t('.rejected')]], :first, :last, legend_title: t('.state') %>
|
18
|
+
|
17
19
|
<% if current_user && current_settings.votes_enabled? %>
|
18
20
|
<%= form.collection_check_boxes :activity, [["voted", t('.voted')]], :first, :last, legend_title: t('.activity') %>
|
19
21
|
<% end %>
|
20
22
|
|
21
23
|
<% if current_feature.categories.any? %>
|
22
|
-
<%= form.categories_select :category_id, current_feature.categories, legend_title: t('.category'), disable_parents: false, label: false, include_blank: true %>
|
24
|
+
<%= form.categories_select :category_id, current_feature.categories, legend_title: t('.category'), disable_parents: false, label: false, include_blank: true %>
|
23
25
|
<% end %>
|
24
26
|
|
25
27
|
<%= form.hidden_field :random_seed %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<div class="filters-controls hide-for-mediumlarge">
|
2
|
+
<button data-open="filter-box" class="filters-controls__trigger">
|
3
|
+
<%= t ".filter" %>
|
4
|
+
<%= icon "caret-bottom", class: "icon--small float-right", aria_label: t('.unfold'), role: "img" %>
|
5
|
+
</button>
|
6
|
+
</div>
|
7
|
+
|
8
|
+
<div class="reveal" id="filter-box" data-reveal>
|
9
|
+
<div class="reveal__header">
|
10
|
+
<h3 class="reveal__title"><%= t ".filter_for" %>:</h3>
|
11
|
+
<button class="close-button" data-close aria-label="<%= t(".close_modal") %>" type="button">
|
12
|
+
<span aria-hidden="true">×</span>
|
13
|
+
</button>
|
14
|
+
</div>
|
15
|
+
<div class="filters">
|
16
|
+
<%= render partial: "filters" %>
|
17
|
+
</div>
|
18
|
+
</div>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<div class="card card--action card--list">
|
2
|
+
<% resources.each do |proposal| %>
|
3
|
+
<div class="card--list__item">
|
4
|
+
<div class="card--list__text">
|
5
|
+
<%= link_to decidim_resource_path(proposal) do %>
|
6
|
+
<%= icon "proposals", class: "card--list__icon", remove_icon_class: true %>
|
7
|
+
<% end %>
|
8
|
+
<div>
|
9
|
+
<%= link_to decidim_resource_path(proposal), class: "card__link" do %>
|
10
|
+
<h5 class="card--list__heading"><%= proposal.title %></h5>
|
11
|
+
<% end %>
|
12
|
+
<div class="author">
|
13
|
+
<span class="author__avatar">
|
14
|
+
<%= image_tag proposal.author_avatar_url %>
|
15
|
+
</span>
|
16
|
+
<span class="author__name">
|
17
|
+
<%= proposal.author_name %>
|
18
|
+
</span>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
<div class="card--list__data">
|
23
|
+
<%==t(".proposal_votes", count: proposal.votes.size) %>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
<% end %>
|
27
|
+
</div>
|
@@ -17,6 +17,7 @@
|
|
17
17
|
</div>
|
18
18
|
</div>
|
19
19
|
</div>
|
20
|
+
<%= render partial: "proposal_badge", locals: { proposal: proposal } %>
|
20
21
|
<p><%= truncate(proposal.body, length: 100) %></p>
|
21
22
|
<% if proposal.category %>
|
22
23
|
<ul class="tags tags--proposal">
|
@@ -33,9 +34,9 @@
|
|
33
34
|
<div id="proposal-<%= proposal.id %>-vote-button">
|
34
35
|
<%= render partial: "vote_button", locals: { proposal: proposal, from_proposals_list: true } %>
|
35
36
|
</div>
|
36
|
-
<%
|
37
|
+
<% elsif !current_settings.votes_enabled? || current_settings.votes_enabled? && current_settings.votes_blocked? %>
|
37
38
|
<div class="card__support__data"></div>
|
38
|
-
<%= link_to t(".view_proposal"), proposal, class: "card__button button small secondary" %>
|
39
|
+
<%= link_to t(".view_proposal"), proposal, class: "card__button button small secondary" %>
|
39
40
|
<% end %>
|
40
41
|
</div>
|
41
42
|
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= remaining_votes_count_for(current_user) %>
|
@@ -1,10 +1,22 @@
|
|
1
1
|
<% if current_user %>
|
2
2
|
<% if proposal.voted_by? current_user %>
|
3
|
-
|
4
|
-
<%= t('.already_voted') %>
|
5
|
-
|
3
|
+
<% if vote_limit_enabled? %>
|
4
|
+
<%= button_to t('.already_voted'), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), method: :delete, remote: true, data: { disable: true }, class: "card__button button #{vote_button_classes(from_proposals_list)} success" %>
|
5
|
+
<% else %>
|
6
|
+
<button class="card__button button <%= vote_button_classes(from_proposals_list) %> success">
|
7
|
+
<%= t('.already_voted') %>
|
8
|
+
</button>
|
9
|
+
<% end %>
|
6
10
|
<% else %>
|
7
|
-
|
11
|
+
<% if vote_limit_enabled? && remaining_votes_count_for(current_user) == 0 %>
|
12
|
+
<%= button_to t('.no_votes_remaining'), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), remote: true, data: { disable: true }, class: "card__button button #{vote_button_classes(from_proposals_list)}", disabled: true %>
|
13
|
+
<% elsif current_settings.votes_blocked? %>
|
14
|
+
<button class="card__button button <%= vote_button_classes(from_proposals_list) %> disabled">
|
15
|
+
<%= t('.votes_blocked') %>
|
16
|
+
</button>
|
17
|
+
<% else %>
|
18
|
+
<%= button_to t('.vote'), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), remote: true, data: { disable: true }, class: "card__button button #{vote_button_classes(from_proposals_list)}" %>
|
19
|
+
<% end %>
|
8
20
|
<% end %>
|
9
21
|
<% else %>
|
10
22
|
<button class="card__button button <%= vote_button_classes(from_proposals_list) %>" data-toggle="loginModal">
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<% if vote_limit_enabled? %>
|
2
|
+
<div class="row column">
|
3
|
+
<div class="callout secondary">
|
4
|
+
<div class="row">
|
5
|
+
<div class="columns medium-8 large-9">
|
6
|
+
<h3 class="heading3"><%= t('.vote_limit.title', limit: feature_settings.vote_limit) %></h3>
|
7
|
+
<p><%= t('.vote_limit.description', limit: feature_settings.vote_limit) %></p>
|
8
|
+
</div>
|
9
|
+
<div class="columns medium-4 large-3">
|
10
|
+
<div class="card card--nomargin text-center">
|
11
|
+
<div class="card__content">
|
12
|
+
<span class="definition-data__title"><%= t('.vote_limit.left', limit: feature_settings.vote_limit) %></span>
|
13
|
+
<span id="remaining-votes-count" class="extra__suport-number">
|
14
|
+
<%= render partial: "remaining_votes_count" %>
|
15
|
+
</span>
|
16
|
+
<span class="extra__suport-text"><%= t('.vote_limit.votes') %></span>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
<% end %>
|
@@ -1,16 +1,25 @@
|
|
1
|
+
<%= render partial: "votes_limit" %>
|
1
2
|
<div class="row columns">
|
2
3
|
<div class="title-action">
|
3
4
|
<h2 id="proposals-count" class="title-action__title section-heading">
|
4
5
|
<%= render partial: "count" %>
|
5
6
|
</h2>
|
6
|
-
|
7
|
-
<%=
|
8
|
-
|
7
|
+
<% if can? :create, Decidim::Proposals::Proposal %>
|
8
|
+
<%= link_to new_proposal_path, class: "title-action__action button small hollow" do %>
|
9
|
+
<%= t(".new_proposal") %>
|
10
|
+
<%= icon "plus" %>
|
11
|
+
<% end %>
|
12
|
+
<% else %>
|
13
|
+
<span class="title-action__action button small hollow disabled">
|
14
|
+
<%= t(".new_proposal") %>
|
15
|
+
<%= icon "plus" %>
|
16
|
+
</span>
|
9
17
|
<% end %>
|
10
18
|
</div>
|
11
19
|
</div>
|
12
20
|
<div class="row">
|
13
21
|
<div class="columns mediumlarge-4 large-3">
|
22
|
+
<%= render partial: "filters_small_view" %>
|
14
23
|
<div class="card card--secondary show-for-mediumlarge" >
|
15
24
|
<%= render partial: "filters" %>
|
16
25
|
</div>
|
@@ -20,4 +29,5 @@
|
|
20
29
|
</div>
|
21
30
|
</div>
|
22
31
|
|
32
|
+
<%= javascript_include_tag("decidim/filters") %>
|
23
33
|
<%= render partial: "decidim/shared/login_modal" %>
|
@@ -30,6 +30,12 @@
|
|
30
30
|
</div>
|
31
31
|
<% end %>
|
32
32
|
|
33
|
+
<% if current_user.user_groups.verified.any? %>
|
34
|
+
<div class="field">
|
35
|
+
<%= form.select :user_group_id, current_user.user_groups.verified.map{|g| [g.name, g.id]}, prompt: current_user.name %>
|
36
|
+
</div>
|
37
|
+
<% end %>
|
38
|
+
|
33
39
|
<div class="actions">
|
34
40
|
<%= form.submit t(".send"), class: "button expanded" %>
|
35
41
|
</div>
|
@@ -3,6 +3,7 @@
|
|
3
3
|
<% content_for :meta_url, proposal_url(@proposal.id) %>
|
4
4
|
<% content_for :twitter_handler, current_organization.twitter_handler %>
|
5
5
|
|
6
|
+
<%= render partial: "votes_limit" %>
|
6
7
|
<div class="row column view-header">
|
7
8
|
<h2 class="heading2"><%= @proposal.title %></h2>
|
8
9
|
<div class="author-data">
|
@@ -27,7 +28,7 @@
|
|
27
28
|
<div id="proposal-<%= @proposal.id %>-votes-count">
|
28
29
|
<%= render partial: "votes_count", locals: { proposal: @proposal, from_proposals_list: false } %>
|
29
30
|
</div>
|
30
|
-
<div id="proposal-<%= @proposal.id %>-vote-button">
|
31
|
+
<div id="proposal-<%= @proposal.id %>-vote-button">
|
31
32
|
<%= render partial: "vote_button", locals: { proposal: @proposal, from_proposals_list: false } %>
|
32
33
|
</div>
|
33
34
|
</div>
|
@@ -37,6 +38,7 @@
|
|
37
38
|
</div>
|
38
39
|
<div class="columns mediumlarge-8 mediumlarge-pull-4">
|
39
40
|
<div class="section">
|
41
|
+
<%= render partial: "proposal_badge", locals: { proposal: @proposal } %>
|
40
42
|
<p><%= @proposal.body %></p>
|
41
43
|
<% if @proposal.category || @proposal.scope %>
|
42
44
|
<ul class="tags tags--proposal">
|
@@ -49,11 +51,22 @@
|
|
49
51
|
</ul>
|
50
52
|
<% end %>
|
51
53
|
</div>
|
54
|
+
<% if @proposal.rejected? %>
|
55
|
+
<div class="section">
|
56
|
+
<div class="callout warning">
|
57
|
+
<h5><%= t(".proposal_rejected_reason") %></h5>
|
58
|
+
<p><%= translated_attribute @proposal.answer %></p>
|
59
|
+
</div>
|
60
|
+
</div>
|
61
|
+
<% end %>
|
62
|
+
<%= linked_resources_for @proposal, :results, "included_proposals" %>
|
63
|
+
<%= linked_resources_for @proposal, :projects, "included_proposals" %>
|
64
|
+
<%= linked_resources_for @proposal, :meetings, "proposals_from_meeting" %>
|
52
65
|
</div>
|
53
66
|
</div>
|
54
67
|
|
55
68
|
<%= content_for :expanded do %>
|
56
|
-
<% if
|
69
|
+
<% if feature_settings.comments_always_enabled || current_settings.comments_enabled %>
|
57
70
|
<%= comments_for @proposal, arguable: true, votable: true %>
|
58
71
|
<% end %>
|
59
72
|
<% end %>
|
@@ -1,19 +1,40 @@
|
|
1
1
|
ca:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
proposal:
|
5
|
+
body: Cos
|
6
|
+
category_id: Categoria
|
7
|
+
scope_id: Àmbit
|
8
|
+
title: Títol
|
9
|
+
user_group_id: Crear proposta
|
2
10
|
decidim:
|
3
11
|
features:
|
4
12
|
proposals:
|
5
13
|
name: Propostes
|
6
14
|
settings:
|
7
15
|
step:
|
16
|
+
creation_enabled: Habilitar de creació de propostes
|
17
|
+
votes_blocked: Vots bloquejats
|
8
18
|
votes_enabled: Vots habilitats
|
9
19
|
proposals:
|
10
20
|
actions:
|
21
|
+
answer: Respondre
|
11
22
|
new: Nova proposta
|
23
|
+
title: Accions
|
12
24
|
admin:
|
13
25
|
models:
|
14
26
|
proposal:
|
15
27
|
name: Proposta
|
28
|
+
proposal_answers:
|
29
|
+
edit:
|
30
|
+
accepted: Acceptada
|
31
|
+
answer_proposal: Resposta de la proposta
|
32
|
+
rejected: Rebutjada
|
33
|
+
title: Respondre a la proposta %{title}
|
16
34
|
proposals:
|
35
|
+
answer:
|
36
|
+
invalid: Hi ha hagut un problema en respondre a aquesta proposta
|
37
|
+
success: Proposta resposta amb èxit
|
17
38
|
create:
|
18
39
|
invalid: Hi ha hagut un problema en crear aquesta proposta
|
19
40
|
success: Proposta creada correctament
|
@@ -25,6 +46,10 @@ ca:
|
|
25
46
|
new:
|
26
47
|
create: Crear proposta
|
27
48
|
title: Nova proposta
|
49
|
+
answers:
|
50
|
+
accepted: Acceptada
|
51
|
+
not_answered: No resposta
|
52
|
+
rejected: Rebutjada
|
28
53
|
create:
|
29
54
|
error: Hi ha hagut errors en desar la proposta.
|
30
55
|
success: Proposta creada correctament.
|
@@ -34,6 +59,7 @@ ca:
|
|
34
59
|
category: Categoria
|
35
60
|
official_proposal: Proposta oficial
|
36
61
|
scope: Àmbit
|
62
|
+
state: Estat
|
37
63
|
title: Títol
|
38
64
|
proposals:
|
39
65
|
count:
|
@@ -41,16 +67,28 @@ ca:
|
|
41
67
|
one: 1 proposta
|
42
68
|
other: "%{count} propostes"
|
43
69
|
filters:
|
70
|
+
accepted: Acceptades
|
44
71
|
activity: Activitat
|
45
72
|
all: Tots
|
46
73
|
category: Categoria
|
47
74
|
citizenship: Ciutadania
|
48
75
|
official: Oficial
|
49
76
|
origin: Origen
|
77
|
+
rejected: Rebutjades
|
50
78
|
search: Cerca
|
79
|
+
state: Estat
|
51
80
|
voted: Votat
|
81
|
+
filters_small_view:
|
82
|
+
close_modal: Tancar finestra
|
83
|
+
filter: Filtra
|
84
|
+
filter_for: Filtrar per
|
85
|
+
unfold: Desplegar
|
52
86
|
index:
|
53
87
|
new_proposal: Nova proposta
|
88
|
+
linked_proposals:
|
89
|
+
proposal_votes:
|
90
|
+
one: <span class="card--list__data__number">1</span>vot
|
91
|
+
other: <span class="card--list__data__number">%{count}</span>vots
|
54
92
|
new:
|
55
93
|
back: Enrere
|
56
94
|
select_a_category: Si us plau, seleccioni una categoria
|
@@ -63,10 +101,25 @@ ca:
|
|
63
101
|
close_window: Tanca la finestra
|
64
102
|
share: Compartir
|
65
103
|
share_link: Comparteix l'enllaç
|
104
|
+
show:
|
105
|
+
proposal_rejected_reason: 'Aquesta proposta ha estat rebutjada perquè:'
|
66
106
|
vote_button:
|
67
107
|
already_voted: Ja has votat
|
108
|
+
no_votes_remaining: No hi ha vots restants
|
68
109
|
vote: Votar
|
110
|
+
votes_blocked: Votació desactivada
|
69
111
|
votes_count:
|
70
112
|
count:
|
71
113
|
one: VOT
|
72
|
-
other: VOTS
|
114
|
+
other: VOTS
|
115
|
+
votes_limit:
|
116
|
+
vote_limit:
|
117
|
+
description: En lloc de votar tantes propostes com vulgui, només es pot votar fins %{limit} propostes.
|
118
|
+
left: Restant
|
119
|
+
title: Té %{limit} vots a distribuir
|
120
|
+
votes: Vots
|
121
|
+
resource_links:
|
122
|
+
included_proposals:
|
123
|
+
results: 'La proposta apareix en aquests resultats:'
|
124
|
+
proposals_from_meeting:
|
125
|
+
meetings: Trobades relacionades
|