decidim 0.0.3 → 0.0.4
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/.github/ISSUE_TEMPLATE.md +23 -4
- data/.travis.yml +4 -1
- data/Gemfile.lock +56 -48
- data/Rakefile +1 -1
- data/decidim-admin/app/commands/decidim/admin/create_participatory_process_admin.rb +3 -0
- data/decidim-admin/app/commands/decidim/admin/update_feature_permissions.rb +46 -0
- data/decidim-admin/app/commands/decidim/admin/update_organization.rb +17 -2
- data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +4 -2
- data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +3 -0
- data/decidim-admin/app/controllers/decidim/admin/feature_permissions_controller.rb +59 -0
- data/decidim-admin/app/controllers/decidim/admin/features_controller.rb +20 -0
- data/decidim-admin/app/controllers/decidim/admin/users_controller.rb +3 -1
- data/decidim-admin/app/forms/decidim/admin/organization_form.rb +10 -0
- data/decidim-admin/app/forms/decidim/admin/participatory_process_form.rb +8 -5
- data/decidim-admin/app/forms/decidim/admin/permission_form.rb +31 -0
- data/decidim-admin/app/forms/decidim/admin/permissions_form.rb +16 -0
- data/decidim-admin/app/helpers/decidim/admin/application_helper.rb +1 -0
- data/decidim-admin/app/models/decidim/admin/participatory_process_user_role.rb +1 -1
- data/decidim-admin/app/views/decidim/admin/attachments/edit.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/attachments/new.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/categories/edit.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/categories/new.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/dashboard/show.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/feature_permissions/edit.html.erb +27 -0
- data/decidim-admin/app/views/decidim/admin/features/_feature.html.erb +10 -0
- data/decidim-admin/app/views/decidim/admin/features/edit.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/features/new.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/organization/_form.html.erb +34 -0
- data/decidim-admin/app/views/decidim/admin/organization/edit.html.erb +2 -2
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/edit.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/new.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +17 -4
- data/decidim-admin/app/views/decidim/admin/participatory_processes/edit.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/participatory_processes/index.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/participatory_processes/new.html.erb +2 -2
- data/decidim-admin/app/views/decidim/admin/participatory_processes/show.html.erb +5 -2
- data/decidim-admin/app/views/decidim/admin/scopes/edit.html.erb +2 -2
- data/decidim-admin/app/views/decidim/admin/scopes/index.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/scopes/new.html.erb +2 -2
- data/decidim-admin/app/views/decidim/admin/static_pages/_form.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/static_pages/edit.html.erb +2 -2
- data/decidim-admin/app/views/decidim/admin/static_pages/index.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/static_pages/new.html.erb +2 -2
- data/decidim-admin/app/views/decidim/admin/static_pages/show.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/user_groups/index.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/users/index.html.erb +1 -1
- data/decidim-admin/app/views/decidim/admin/users/new.html.erb +2 -2
- data/decidim-admin/app/views/layouts/decidim/admin/participatory_process.html.erb +1 -1
- data/decidim-admin/config/i18n-tasks.yml +4 -3
- data/decidim-admin/config/locales/ca.yml +20 -1
- data/decidim-admin/config/locales/en.yml +19 -0
- data/decidim-admin/config/locales/es.yml +19 -0
- data/decidim-admin/config/locales/eu.yml +5 -0
- data/decidim-admin/config/routes.rb +8 -1
- data/decidim-admin/db/seeds.rb +3 -1
- data/decidim-admin/spec/commands/create_participatory_process_admin_spec.rb +19 -0
- data/decidim-admin/spec/commands/update_organization_spec.rb +20 -0
- data/decidim-admin/spec/features/admin_invite_spec.rb +5 -3
- data/decidim-admin/spec/features/admin_manages_feature_permissions_spec.rb +44 -0
- data/decidim-admin/spec/features/admin_manages_features_spec.rb +38 -0
- data/decidim-admin/spec/features/admin_manages_participatory_process_admins_spec.rb +0 -2
- data/decidim-admin/spec/features/admin_manages_participatory_process_attachments_spec.rb +0 -2
- data/decidim-admin/spec/features/admin_manages_participatory_process_categories_spec.rb +0 -2
- data/decidim-admin/spec/features/admin_manages_participatory_process_steps_spec.rb +0 -2
- data/decidim-admin/spec/features/admin_manages_participatory_processes_spec.rb +0 -2
- data/decidim-admin/spec/features/admin_manages_user_groups_spec.rb +1 -3
- data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_process_admins_spec.rb +0 -2
- data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_process_attachments_spec.rb +0 -2
- data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_process_steps_spec.rb +0 -2
- data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_processes_spec.rb +0 -2
- data/decidim-admin/spec/features/process_admin_manages_participatory_process_categories_spec.rb +0 -2
- data/decidim-admin/spec/forms/organization_form_spec.rb +11 -2
- data/decidim-admin/spec/models/participatory_process_user_role_spec.rb +17 -0
- data/decidim-admin/spec/shared/manage_process_steps_examples.rb +3 -2
- data/decidim-budgets/app/assets/images/decidim/budgets/icon.svg +16 -4
- data/decidim-budgets/app/assets/javascripts/decidim/budgets/progressFixed.js.es6 +23 -0
- data/decidim-budgets/app/assets/javascripts/decidim/budgets/projects.js.es6 +1 -0
- data/decidim-budgets/app/assets/stylesheets/decidim/budgets/budget/_budget-list.scss +1 -1
- data/decidim-budgets/app/commands/decidim/budgets/admin/create_project.rb +0 -1
- data/decidim-budgets/app/commands/decidim/budgets/admin/update_project.rb +0 -1
- data/decidim-budgets/app/controllers/decidim/budgets/admin/application_controller.rb +9 -0
- data/decidim-budgets/app/controllers/decidim/budgets/admin/attachments_controller.rb +29 -0
- data/decidim-budgets/app/controllers/decidim/budgets/line_items_controller.rb +2 -0
- data/decidim-budgets/app/controllers/decidim/budgets/orders_controller.rb +2 -0
- data/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb +1 -2
- data/decidim-budgets/app/models/decidim/budgets/project.rb +1 -0
- data/decidim-budgets/app/services/decidim/budgets/project_search.rb +0 -1
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/_form.html.erb +0 -4
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/edit.html.erb +1 -1
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/index.html.erb +1 -0
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/new.html.erb +1 -1
- data/decidim-budgets/app/views/decidim/budgets/line_items/update_budget.js.erb +2 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_project.html.erb +2 -2
- data/decidim-budgets/app/views/decidim/budgets/projects/_project_budget_button.html.erb +2 -2
- data/decidim-budgets/app/views/decidim/budgets/projects/index.html.erb +3 -2
- data/decidim-budgets/app/views/decidim/budgets/projects/show.html.erb +3 -7
- data/decidim-budgets/config/i18n-tasks.yml +1 -0
- data/decidim-budgets/config/locales/ca.yml +24 -5
- data/decidim-budgets/config/locales/en.yml +12 -3
- data/decidim-budgets/config/locales/es.yml +22 -3
- data/decidim-budgets/config/locales/eu.yml +5 -0
- data/decidim-budgets/db/migrate/20170207101750_remove_short_description_from_decidim_projects.rb +5 -0
- data/decidim-budgets/decidim-budgets.gemspec +1 -0
- data/decidim-budgets/lib/decidim/budgets/admin_engine.rb +4 -1
- data/decidim-budgets/lib/decidim/budgets/feature.rb +15 -4
- data/decidim-budgets/lib/decidim/budgets/test/factories.rb +2 -3
- data/decidim-budgets/spec/commands/create_project_spec.rb +0 -1
- data/decidim-budgets/spec/commands/update_project_spec.rb +0 -1
- data/decidim-budgets/spec/features/admin_manages_project_attachments_spec.rb +10 -0
- data/decidim-budgets/spec/features/admin_manages_projects_spec.rb +0 -2
- data/decidim-budgets/spec/features/orders_spec.rb +43 -5
- data/decidim-budgets/spec/features/process_admin_manages_project_attachments_spec.rb +12 -0
- data/decidim-budgets/spec/features/process_admin_manages_projects_spec.rb +0 -2
- data/decidim-budgets/spec/forms/project_form_spec.rb +0 -10
- data/decidim-budgets/spec/shared/manage_attachments_examples.rb +17 -0
- data/decidim-budgets/spec/shared/manage_projects_examples.rb +0 -7
- data/decidim-comments/app/assets/javascripts/decidim/comments/bundle.js +0 -0
- data/decidim-comments/app/commands/decidim/comments/create_comment.rb +10 -0
- data/decidim-comments/app/forms/decidim/comments/comment_form.rb +1 -1
- data/decidim-comments/app/frontend/comments/add_comment_form.component.jsx +33 -12
- data/decidim-comments/app/frontend/comments/add_comment_form.component.test.jsx +6 -0
- data/decidim-comments/app/frontend/comments/comment.component.jsx +7 -5
- data/decidim-comments/app/frontend/comments/comment_order_selector.component.jsx +2 -2
- data/decidim-comments/app/frontend/comments/comment_thread.component.jsx +5 -0
- data/decidim-comments/app/frontend/comments/comments.component.jsx +11 -0
- data/decidim-comments/app/frontend/comments/vote_button.component.jsx +5 -0
- data/decidim-comments/app/frontend/comments/vote_button_component.test.jsx +1 -1
- data/decidim-comments/app/frontend/entry.test.js +2 -0
- data/decidim-comments/app/mailers/decidim/comments/comment_notification_mailer.rb +31 -0
- data/decidim-comments/app/models/decidim/comments/comment.rb +6 -0
- data/decidim-comments/app/views/decidim/comments/comment_notification_mailer/comment_created.html.erb +18 -0
- data/decidim-comments/app/views/decidim/comments/comment_notification_mailer/reply_created.html.erb +18 -0
- data/decidim-comments/config/locales/ca.yml +17 -3
- data/decidim-comments/config/locales/en.yml +17 -3
- data/decidim-comments/config/locales/es.yml +17 -3
- data/decidim-comments/config/locales/eu.yml +5 -0
- data/decidim-comments/lib/decidim/comments.rb +1 -0
- data/decidim-comments/{app/helpers → lib}/decidim/comments/comments_helper.rb +0 -0
- data/decidim-comments/spec/commands/create_comment_spec.rb +68 -1
- data/decidim-comments/spec/features/comments_spec.rb +27 -20
- data/decidim-comments/spec/features/notifications_spec.rb +45 -0
- data/decidim-comments/spec/forms/comment_form_spec.rb +6 -0
- data/decidim-comments/spec/mailers/comment_notification_mailer_spec.rb +36 -0
- data/decidim-comments/spec/models/comment_spec.rb +8 -0
- data/decidim-comments/spec/spec_helper.rb +0 -1
- data/decidim-comments/spec/types/mutation_type_spec.rb +8 -7
- data/decidim-dev/config/locales/ca.yml +5 -0
- data/decidim-dev/config/locales/es.yml +5 -0
- data/decidim-dev/config/locales/eu.yml +5 -0
- data/decidim-dev/decidim-dev.gemspec +2 -1
- data/decidim-dev/lib/decidim/dev.rb +2 -0
- data/decidim-dev/lib/decidim/dev/dummy_authorization_handler.rb +1 -0
- data/decidim-dev/lib/decidim/dev/test/base_spec_helper.rb +4 -1
- data/decidim-dev/lib/decidim/dev/test/rspec_support/action_mailer.rb +19 -0
- data/decidim-dev/lib/decidim/dev/test/rspec_support/feature.rb +26 -3
- data/decidim-dev/lib/decidim/dev/test/rspec_support/translation_helpers.rb +1 -1
- data/decidim-meetings/app/forms/decidim/meetings/admin/meeting_form.rb +2 -2
- data/decidim-meetings/app/views/decidim/meetings/admin/meeting_closes/edit.html.erb +1 -1
- data/decidim-meetings/app/views/decidim/meetings/admin/meetings/edit.html.erb +1 -1
- data/decidim-meetings/app/views/decidim/meetings/admin/meetings/new.html.erb +1 -1
- data/decidim-meetings/app/views/decidim/meetings/meetings/index.html.erb +3 -1
- data/decidim-meetings/app/views/decidim/meetings/meetings/show.html.erb +11 -1
- data/decidim-meetings/config/locales/ca.yml +3 -3
- data/decidim-meetings/config/locales/en.yml +1 -1
- data/decidim-meetings/config/locales/es.yml +1 -1
- data/decidim-meetings/config/locales/eu.yml +5 -0
- data/decidim-meetings/decidim-meetings.gemspec +1 -1
- data/decidim-meetings/lib/decidim/meetings/feature.rb +1 -0
- data/decidim-meetings/spec/features/admin_manages_meetings_attachments_spec.rb +0 -2
- data/decidim-meetings/spec/features/admin_manages_meetings_spec.rb +0 -2
- data/decidim-meetings/spec/features/process_admin_manages_meetings_attachments_spec.rb +0 -2
- data/decidim-meetings/spec/features/process_admin_manages_meetings_spec.rb +0 -2
- data/decidim-pages/app/assets/images/decidim/pages/icon.svg +1 -3
- data/decidim-pages/app/views/decidim/pages/admin/pages/edit.html.erb +1 -1
- data/decidim-pages/app/views/decidim/pages/application/show.html.erb +4 -1
- data/decidim-pages/config/locales/eu.yml +7 -0
- data/decidim-pages/lib/decidim/pages/feature.rb +1 -0
- data/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb +42 -5
- data/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb +3 -1
- data/decidim-proposals/app/helpers/decidim/proposals/proposal_votes_helper.rb +1 -1
- data/decidim-proposals/app/models/decidim/proposals/abilities/current_user.rb +22 -4
- data/decidim-proposals/app/models/decidim/proposals/proposal.rb +2 -2
- data/decidim-proposals/app/services/decidim/proposals/proposal_search.rb +25 -13
- data/decidim-proposals/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +1 -1
- data/decidim-proposals/app/views/decidim/proposals/admin/proposals/new.html.erb +1 -1
- data/decidim-proposals/app/views/decidim/proposals/proposals/_filters.html.erb +9 -1
- data/decidim-proposals/app/views/decidim/proposals/proposals/_proposal.html.erb +2 -6
- data/decidim-proposals/app/views/decidim/proposals/proposals/_proposals.html.erb +2 -1
- data/decidim-proposals/app/views/decidim/proposals/proposals/_tags.html.erb +10 -0
- data/decidim-proposals/app/views/decidim/proposals/proposals/_vote_button.html.erb +9 -9
- data/decidim-proposals/app/views/decidim/proposals/proposals/_votes_count.html.erb +2 -2
- data/decidim-proposals/app/views/decidim/proposals/proposals/index.html.erb +7 -3
- data/decidim-proposals/app/views/decidim/proposals/proposals/index.js.erb +6 -1
- data/decidim-proposals/app/views/decidim/proposals/proposals/new.html.erb +1 -1
- data/decidim-proposals/app/views/decidim/proposals/proposals/show.html.erb +22 -23
- data/decidim-proposals/config/i18n-tasks.yml +2 -0
- data/decidim-proposals/config/locales/ca.yml +23 -15
- data/decidim-proposals/config/locales/en.yml +12 -4
- data/decidim-proposals/config/locales/es.yml +12 -4
- data/decidim-proposals/config/locales/eu.yml +5 -0
- data/decidim-proposals/db/migrate/20170205082832_add_index_to_decidim_proposals_proposals_proposal_votes_count.rb +7 -0
- data/decidim-proposals/lib/decidim/proposals/feature.rb +10 -1
- data/decidim-proposals/lib/decidim/proposals/test/factories.rb +1 -1
- data/decidim-proposals/spec/commands/decidim/proposals/admin_create_proposal_spec.rb +0 -1
- data/decidim-proposals/spec/commands/decidim/proposals/create_proposal_spec.rb +0 -1
- data/decidim-proposals/spec/features/admin_manages_proposals_spec.rb +0 -2
- data/decidim-proposals/spec/features/process_admin_manages_proposals_spec.rb +0 -2
- data/decidim-proposals/spec/features/proposals_spec.rb +77 -0
- data/decidim-proposals/spec/features/vote_proposal_spec.rb +16 -1
- data/decidim-proposals/spec/forms/decidim/proposals/admin_proposal_form_spec.rb +0 -1
- data/decidim-proposals/spec/forms/decidim/proposals/proposal_form_spec.rb +0 -1
- data/decidim-proposals/spec/helpers/proposal_votes_helper_spec.rb +10 -0
- data/decidim-proposals/spec/services/decidim/proposals/proposal_search_spec.rb +56 -31
- data/decidim-proposals/spec/shared/create_proposal_examples.rb +2 -2
- data/decidim-results/app/views/decidim/results/admin/results/edit.html.erb +1 -1
- data/decidim-results/app/views/decidim/results/admin/results/new.html.erb +1 -1
- data/decidim-results/app/views/decidim/results/results/index.html.erb +3 -1
- data/decidim-results/app/views/decidim/results/results/show.html.erb +11 -1
- data/decidim-results/config/locales/ca.yml +2 -2
- data/decidim-results/config/locales/en.yml +1 -1
- data/decidim-results/config/locales/es.yml +1 -1
- data/decidim-results/config/locales/eu.yml +5 -0
- data/decidim-results/lib/decidim/results/feature.rb +1 -0
- data/decidim-results/spec/features/admin_manages_results_spec.rb +0 -2
- data/decidim-results/spec/features/process_admin_manages_results_spec.rb +0 -2
- data/decidim-system/app/assets/stylesheets/decidim/system/_foundation_and_overrides.scss +1 -1
- data/decidim-system/app/controllers/decidim/system/application_controller.rb +1 -0
- data/decidim-system/app/controllers/decidim/system/devise/sessions_controller.rb +1 -0
- data/decidim-system/app/views/decidim/system/admins/edit.html.erb +2 -2
- data/decidim-system/app/views/decidim/system/admins/index.html.erb +1 -1
- data/decidim-system/app/views/decidim/system/admins/new.html.erb +2 -2
- data/decidim-system/app/views/decidim/system/admins/show.html.erb +1 -1
- data/decidim-system/app/views/decidim/system/dashboard/show.html.erb +1 -1
- data/decidim-system/app/views/decidim/system/devise/passwords/edit.html.erb +1 -1
- data/decidim-system/app/views/decidim/system/devise/passwords/new.html.erb +1 -1
- data/decidim-system/app/views/decidim/system/devise/sessions/new.html.erb +1 -1
- data/decidim-system/app/views/decidim/system/organizations/edit.html.erb +1 -1
- data/decidim-system/app/views/decidim/system/organizations/index.html.erb +1 -1
- data/decidim-system/app/views/decidim/system/organizations/new.html.erb +2 -2
- data/decidim-system/app/views/decidim/system/organizations/show.html.erb +1 -1
- data/decidim-system/config/locales/eu.yml +7 -0
- data/decidim-system/spec/features/organizations_spec.rb +1 -2
- data/lib/generators/decidim/install_generator.rb +9 -0
- data/lib/generators/decidim/templates/initializer.rb +1 -0
- data/package.json +6 -6
- data/yarn.lock +743 -738
- metadata +53 -25
- data/decidim-comments/spec/support/dummy.rb +0 -20
- data/decidim-proposals/app/views/decidim/proposals/proposals/_share.html.erb +0 -33
@@ -1,6 +1,6 @@
|
|
1
1
|
<span class="<%= votes_count_classes(from_proposals_list)[:number] %>">
|
2
|
-
<%= proposal.
|
2
|
+
<%= proposal.proposal_votes_count %>
|
3
3
|
</span>
|
4
4
|
<span class="<%= votes_count_classes(from_proposals_list)[:label] %>">
|
5
|
-
<%= t('.count', count: proposal.
|
5
|
+
<%= t('.count', count: proposal.proposal_votes_count) %>
|
6
6
|
</span>
|
@@ -1,11 +1,15 @@
|
|
1
|
+
<% add_meta_tags({
|
2
|
+
title: t(".meta_title", feature_name: translated_attribute(current_feature.name))
|
3
|
+
}) %>
|
4
|
+
|
1
5
|
<%= render partial: "votes_limit" %>
|
2
6
|
<div class="row columns">
|
3
7
|
<div class="title-action">
|
4
8
|
<h2 id="proposals-count" class="title-action__title section-heading">
|
5
9
|
<%= render partial: "count" %>
|
6
10
|
</h2>
|
7
|
-
<% if
|
8
|
-
<%=
|
11
|
+
<% if current_settings.creation_enabled %>
|
12
|
+
<%= action_authorized_link_to :create, new_proposal_path, class: "title-action__action button small hollow" do %>
|
9
13
|
<%= t(".new_proposal") %>
|
10
14
|
<%= icon "plus" %>
|
11
15
|
<% end %>
|
@@ -30,4 +34,4 @@
|
|
30
34
|
</div>
|
31
35
|
|
32
36
|
<%= javascript_include_tag("decidim/filters") %>
|
33
|
-
<%=
|
37
|
+
<%= javascript_include_tag "decidim/orders" %>
|
@@ -1,5 +1,10 @@
|
|
1
1
|
var $proposals = $('#proposals');
|
2
2
|
var $proposalsCount = $('#proposals-count');
|
3
|
+
var $orderFilterInput = $('.order_filter');
|
3
4
|
|
4
5
|
$proposals.html('<%= j(render partial: "proposals") %>');
|
5
|
-
$proposalsCount.html('<%= j(render partial: "count") %>');
|
6
|
+
$proposalsCount.html('<%= j(render partial: "count") %>');
|
7
|
+
$orderFilterInput.val('<%= order %>');
|
8
|
+
|
9
|
+
var $dropdownMenu = $('.dropdown.menu:last');
|
10
|
+
$dropdownMenu.foundation();
|
@@ -1,7 +1,8 @@
|
|
1
|
-
<%
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
<% add_meta_tags({
|
2
|
+
description: @proposal.body,
|
3
|
+
title: @proposal.title,
|
4
|
+
url: proposal_url(@proposal.id)
|
5
|
+
}) %>
|
5
6
|
|
6
7
|
<%= render partial: "votes_limit" %>
|
7
8
|
<div class="row column view-header">
|
@@ -34,30 +35,30 @@
|
|
34
35
|
</div>
|
35
36
|
</div>
|
36
37
|
<% end %>
|
37
|
-
<%= render partial: "
|
38
|
+
<%= render partial: "decidim/shared/share_modal" %>
|
38
39
|
</div>
|
39
40
|
<div class="columns mediumlarge-8 mediumlarge-pull-4">
|
40
41
|
<div class="section">
|
41
42
|
<%= render partial: "proposal_badge", locals: { proposal: @proposal } %>
|
42
43
|
<p><%= @proposal.body %></p>
|
43
|
-
|
44
|
-
<ul class="tags tags--proposal">
|
45
|
-
<% if @proposal.category %>
|
46
|
-
<li><a href=""><%= translated_attribute(@proposal.category.name) %></a></li>
|
47
|
-
<% end %>
|
48
|
-
<% if @proposal.scope %>
|
49
|
-
<li><a href=""><%= @proposal.scope.name %></a></li>
|
50
|
-
<% end %>
|
51
|
-
</ul>
|
52
|
-
<% end %>
|
44
|
+
<%= render partial: "tags", locals: { proposal: @proposal } %>
|
53
45
|
</div>
|
54
|
-
<% if @proposal.
|
55
|
-
|
56
|
-
<div class="
|
57
|
-
<
|
58
|
-
|
46
|
+
<% if @proposal.answered? && translated_attribute(@proposal.answer).present? %>
|
47
|
+
<% if @proposal.accepted? %>
|
48
|
+
<div class="section">
|
49
|
+
<div class="callout success">
|
50
|
+
<h5><%= t(".proposal_accepted_reason") %></h5>
|
51
|
+
<p><%= translated_attribute @proposal.answer %></p>
|
52
|
+
</div>
|
59
53
|
</div>
|
60
|
-
|
54
|
+
<% else %>
|
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 %>
|
61
62
|
<% end %>
|
62
63
|
<%= linked_resources_for @proposal, :results, "included_proposals" %>
|
63
64
|
<%= linked_resources_for @proposal, :projects, "included_proposals" %>
|
@@ -71,7 +72,5 @@
|
|
71
72
|
<% end %>
|
72
73
|
<% end %>
|
73
74
|
|
74
|
-
<%= render partial: "decidim/shared/login_modal" %>
|
75
|
-
|
76
75
|
<%= javascript_include_tag "decidim/proposals/social_share" %>
|
77
76
|
<%= stylesheet_link_tag "decidim/proposals/social_share" %>
|
@@ -10,12 +10,15 @@ ca:
|
|
10
10
|
decidim:
|
11
11
|
features:
|
12
12
|
proposals:
|
13
|
+
actions:
|
14
|
+
create: Crear propostes
|
15
|
+
vote: Votar
|
13
16
|
name: Propostes
|
14
17
|
settings:
|
15
18
|
step:
|
16
19
|
creation_enabled: Habilitar de creació de propostes
|
17
|
-
votes_blocked:
|
18
|
-
votes_enabled:
|
20
|
+
votes_blocked: Suports bloquejats
|
21
|
+
votes_enabled: Suports habilitats
|
19
22
|
proposals:
|
20
23
|
actions:
|
21
24
|
answer: Respondre
|
@@ -75,6 +78,8 @@ ca:
|
|
75
78
|
official: Oficial
|
76
79
|
origin: Origen
|
77
80
|
rejected: Rebutjades
|
81
|
+
related_to: Relacionat amb
|
82
|
+
scopes: Àmbits
|
78
83
|
search: Cerca
|
79
84
|
state: Estat
|
80
85
|
voted: Votat
|
@@ -84,40 +89,43 @@ ca:
|
|
84
89
|
filter_for: Filtrar per
|
85
90
|
unfold: Desplegar
|
86
91
|
index:
|
92
|
+
meta_title: "%{feature_name}"
|
87
93
|
new_proposal: Nova proposta
|
88
94
|
linked_proposals:
|
89
95
|
proposal_votes:
|
90
|
-
one: <span class="card--list__data__number">1</span>
|
91
|
-
other: <span class="card--list__data__number">%{count}</span>
|
96
|
+
one: <span class="card--list__data__number">1</span>suport
|
97
|
+
other: <span class="card--list__data__number">%{count}</span>suports
|
92
98
|
new:
|
93
99
|
back: Enrere
|
94
100
|
select_a_category: Si us plau, seleccioni una categoria
|
95
101
|
select_a_scope: Si us plau, seleccioni un àmbit
|
96
102
|
send: Enviar
|
97
103
|
title: Nova proposta
|
104
|
+
orders:
|
105
|
+
label: 'Ordenar propostes per:'
|
106
|
+
most_voted: Més votat
|
107
|
+
random: Aleatori
|
108
|
+
recent: Recent
|
98
109
|
proposal:
|
99
110
|
view_proposal: Veure proposta
|
100
|
-
share:
|
101
|
-
close_window: Tanca la finestra
|
102
|
-
share: Compartir
|
103
|
-
share_link: Comparteix l'enllaç
|
104
111
|
show:
|
112
|
+
proposal_accepted_reason: 'Aquesta proposta ha estat acceptada perquè:'
|
105
113
|
proposal_rejected_reason: 'Aquesta proposta ha estat rebutjada perquè:'
|
106
114
|
vote_button:
|
107
115
|
already_voted: Ja has votat
|
108
|
-
no_votes_remaining: No hi ha
|
116
|
+
no_votes_remaining: No hi ha suports restants
|
109
117
|
vote: Votar
|
110
|
-
votes_blocked:
|
118
|
+
votes_blocked: Recollida de suports desactivada
|
111
119
|
votes_count:
|
112
120
|
count:
|
113
|
-
one:
|
114
|
-
other:
|
121
|
+
one: SUPORT
|
122
|
+
other: SUPORTS
|
115
123
|
votes_limit:
|
116
124
|
vote_limit:
|
117
|
-
description: En lloc de
|
125
|
+
description: En lloc de donar suport a tantes propostes com es vulgui, només es pot donar suport fins a un màxim de %{limit} propostes.
|
118
126
|
left: Restant
|
119
|
-
title: Té %{limit}
|
120
|
-
votes:
|
127
|
+
title: Té %{limit} suports a distribuir
|
128
|
+
votes: Suports
|
121
129
|
resource_links:
|
122
130
|
included_proposals:
|
123
131
|
results: 'La proposta apareix en aquests resultats:'
|
@@ -11,6 +11,9 @@ en:
|
|
11
11
|
decidim:
|
12
12
|
features:
|
13
13
|
proposals:
|
14
|
+
actions:
|
15
|
+
create: Create proposals
|
16
|
+
vote: Vote
|
14
17
|
name: Proposals
|
15
18
|
settings:
|
16
19
|
step:
|
@@ -76,6 +79,8 @@ en:
|
|
76
79
|
official: Official
|
77
80
|
origin: Origin
|
78
81
|
rejected: Rejected
|
82
|
+
related_to: Related to
|
83
|
+
scopes: Scopes
|
79
84
|
search: Search
|
80
85
|
state: State
|
81
86
|
voted: Voted
|
@@ -85,6 +90,7 @@ en:
|
|
85
90
|
filter_for: Filter by
|
86
91
|
unfold: Unfold
|
87
92
|
index:
|
93
|
+
meta_title: "%{feature_name}"
|
88
94
|
new_proposal: New proposal
|
89
95
|
linked_proposals:
|
90
96
|
proposal_votes:
|
@@ -96,13 +102,15 @@ en:
|
|
96
102
|
select_a_scope: Please select a scope
|
97
103
|
send: Send
|
98
104
|
title: New proposal
|
105
|
+
orders:
|
106
|
+
label: 'Order proposals by:'
|
107
|
+
most_voted: Most voted
|
108
|
+
random: Random
|
109
|
+
recent: Recent
|
99
110
|
proposal:
|
100
111
|
view_proposal: View proposal
|
101
|
-
share:
|
102
|
-
close_window: Close window
|
103
|
-
share: Share
|
104
|
-
share_link: Share link
|
105
112
|
show:
|
113
|
+
proposal_accepted_reason: 'This proposal has been accepted because:'
|
106
114
|
proposal_rejected_reason: 'This proposal has been rejected because:'
|
107
115
|
vote_button:
|
108
116
|
already_voted: Already voted
|
@@ -10,6 +10,9 @@ es:
|
|
10
10
|
decidim:
|
11
11
|
features:
|
12
12
|
proposals:
|
13
|
+
actions:
|
14
|
+
create: Crear propuestas
|
15
|
+
vote: Votar
|
13
16
|
name: Propuestas
|
14
17
|
settings:
|
15
18
|
step:
|
@@ -75,6 +78,8 @@ es:
|
|
75
78
|
official: Oficial
|
76
79
|
origin: Origen
|
77
80
|
rejected: Rechazadas
|
81
|
+
related_to: Relacionado con
|
82
|
+
scopes: Ámbitos
|
78
83
|
search: Buscar
|
79
84
|
state: Estado
|
80
85
|
voted: Votado
|
@@ -84,6 +89,7 @@ es:
|
|
84
89
|
filter_for: Filtrar por
|
85
90
|
unfold: Desplegar
|
86
91
|
index:
|
92
|
+
meta_title: "%{feature_name}"
|
87
93
|
new_proposal: Nueva propuesta
|
88
94
|
linked_proposals:
|
89
95
|
proposal_votes:
|
@@ -95,13 +101,15 @@ es:
|
|
95
101
|
select_a_scope: Por favor, seleccione un ámbito
|
96
102
|
send: Enviar
|
97
103
|
title: Nueva propuesta
|
104
|
+
orders:
|
105
|
+
label: 'Ordenar propuestas por:'
|
106
|
+
most_voted: Más votado
|
107
|
+
random: Aleatorio
|
108
|
+
recent: Reciente
|
98
109
|
proposal:
|
99
110
|
view_proposal: Ver propuesta
|
100
|
-
share:
|
101
|
-
close_window: Cerrar ventana
|
102
|
-
share: Compartir
|
103
|
-
share_link: Compartir enlace
|
104
111
|
show:
|
112
|
+
proposal_accepted_reason: 'Esta propuesta ha sido aceptada porque:'
|
105
113
|
proposal_rejected_reason: 'Esta propuesta ha sido rechazada porque:'
|
106
114
|
vote_button:
|
107
115
|
already_voted: Ya votado
|
@@ -0,0 +1,7 @@
|
|
1
|
+
class AddIndexToDecidimProposalsProposalsProposalVotesCount < ActiveRecord::Migration[5.0]
|
2
|
+
def change
|
3
|
+
add_index :decidim_proposals_proposals, :proposal_votes_count
|
4
|
+
add_index :decidim_proposals_proposals, :created_at
|
5
|
+
add_index :decidim_proposals_proposals, :state
|
6
|
+
end
|
7
|
+
end
|
@@ -13,6 +13,8 @@ Decidim.register_feature(:proposals) do |feature|
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
+
feature.actions = %w(vote create)
|
17
|
+
|
16
18
|
feature.settings(:global) do |settings|
|
17
19
|
settings.attribute :vote_limit, type: :integer, default: 0
|
18
20
|
settings.attribute :comments_always_enabled, type: :boolean, default: true
|
@@ -37,6 +39,7 @@ Decidim.register_feature(:proposals) do |feature|
|
|
37
39
|
feature = Decidim::Feature.create!(
|
38
40
|
name: Decidim::Features::Namer.new(process.organization.available_locales, :proposals).i18n_name,
|
39
41
|
manifest_name: :proposals,
|
42
|
+
published_at: Time.current,
|
40
43
|
participatory_process: process,
|
41
44
|
settings: {
|
42
45
|
vote_limit: 0
|
@@ -45,10 +48,14 @@ Decidim.register_feature(:proposals) do |feature|
|
|
45
48
|
process.active_step.id => { votes_enabled: true, votes_blocked: false, creation_enabled: true }
|
46
49
|
}
|
47
50
|
)
|
51
|
+
categories = feature.participatory_process.categories
|
52
|
+
scopes = feature.organization.scopes
|
48
53
|
|
49
54
|
20.times do |n|
|
50
55
|
proposal = Decidim::Proposals::Proposal.create!(
|
51
56
|
feature: feature,
|
57
|
+
category: categories.sample,
|
58
|
+
scope: scopes.sample,
|
52
59
|
title: Faker::Lorem.sentence(2),
|
53
60
|
body: Faker::Lorem.paragraphs(2).join("\n"),
|
54
61
|
author: Decidim::User.where(organization: feature.organization).all.sample
|
@@ -75,7 +82,9 @@ Decidim.register_feature(:proposals) do |feature|
|
|
75
82
|
name: name,
|
76
83
|
organization: feature.organization,
|
77
84
|
tos_agreement: "1",
|
78
|
-
confirmed_at: Time.
|
85
|
+
confirmed_at: Time.current,
|
86
|
+
comments_notifications: true,
|
87
|
+
replies_notifications: true)
|
79
88
|
|
80
89
|
Decidim::Proposals::ProposalVote.create!(proposal: proposal,
|
81
90
|
author: author)
|
@@ -7,7 +7,7 @@ require "decidim/results/test/factories"
|
|
7
7
|
require "decidim/budgets/test/factories"
|
8
8
|
|
9
9
|
FactoryGirl.define do
|
10
|
-
factory :proposal_feature,
|
10
|
+
factory :proposal_feature, parent: :feature do
|
11
11
|
name { Decidim::Features::Namer.new(participatory_process.organization.available_locales, :proposals).i18n_name }
|
12
12
|
manifest_name :proposals
|
13
13
|
participatory_process { create(:participatory_process, :with_steps) }
|
@@ -77,6 +77,18 @@ describe "Proposals", type: :feature do
|
|
77
77
|
expect(page).to have_content(user_group.name)
|
78
78
|
end
|
79
79
|
end
|
80
|
+
|
81
|
+
context "when the user isn't authorized" do
|
82
|
+
before do
|
83
|
+
feature.update_attribute(:permissions, create: { authorization_handler_name: "decidim/dummy_authorization_handler" })
|
84
|
+
visit_feature
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should show a modal dialog" do
|
88
|
+
click_link "New proposal"
|
89
|
+
expect(page).to have_content("Authorization required")
|
90
|
+
end
|
91
|
+
end
|
80
92
|
end
|
81
93
|
|
82
94
|
context "when creation is not enabled" do
|
@@ -169,6 +181,7 @@ describe "Proposals", type: :feature do
|
|
169
181
|
click_link proposal.title
|
170
182
|
|
171
183
|
expect(page).to have_content("Accepted")
|
184
|
+
expect(page).to have_i18n_content(proposal.answer)
|
172
185
|
end
|
173
186
|
end
|
174
187
|
|
@@ -183,6 +196,18 @@ describe "Proposals", type: :feature do
|
|
183
196
|
expect(page).to have_i18n_content(proposal.answer)
|
184
197
|
end
|
185
198
|
end
|
199
|
+
|
200
|
+
context "when a proposal has been accepted" do
|
201
|
+
let!(:proposal) { create(:proposal, :accepted, feature: feature) }
|
202
|
+
|
203
|
+
it "shows the acceptance reason" do
|
204
|
+
visit_feature
|
205
|
+
click_link proposal.title
|
206
|
+
|
207
|
+
expect(page).to have_content("Accepted")
|
208
|
+
expect(page).to have_i18n_content(proposal.answer)
|
209
|
+
end
|
210
|
+
end
|
186
211
|
end
|
187
212
|
|
188
213
|
context "when a proposal has been linked in a project" do
|
@@ -286,5 +311,57 @@ describe "Proposals", type: :feature do
|
|
286
311
|
end
|
287
312
|
end
|
288
313
|
end
|
314
|
+
|
315
|
+
context "when ordering" do
|
316
|
+
context "by 'most_support'" do
|
317
|
+
let!(:feature) do
|
318
|
+
create(:proposal_feature,
|
319
|
+
:with_votes_enabled,
|
320
|
+
manifest: manifest,
|
321
|
+
participatory_process: participatory_process)
|
322
|
+
end
|
323
|
+
|
324
|
+
before do
|
325
|
+
proposals.each do |proposal|
|
326
|
+
create(:proposal_vote, proposal: proposal)
|
327
|
+
end
|
328
|
+
end
|
329
|
+
|
330
|
+
it "lists the proposals ordered by votes" do
|
331
|
+
most_voted_proposal = create(:proposal, feature: feature)
|
332
|
+
create_list(:proposal_vote, 3, proposal: most_voted_proposal)
|
333
|
+
less_voted_proposal = create(:proposal, feature: feature)
|
334
|
+
|
335
|
+
visit_feature
|
336
|
+
|
337
|
+
within ".order-by" do
|
338
|
+
page.find('.dropdown.menu .is-dropdown-submenu-parent').hover
|
339
|
+
end
|
340
|
+
|
341
|
+
click_link "Most voted"
|
342
|
+
|
343
|
+
expect(page.find('#proposals .card-grid .column:first-child', text: most_voted_proposal.title)).to be
|
344
|
+
expect(page.find('#proposals .card-grid .column:last-child', text: less_voted_proposal.title)).to be
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
348
|
+
context "by 'recent'" do
|
349
|
+
it "lists the proposals ordered by created at" do
|
350
|
+
older_proposal = create(:proposal, feature: feature, created_at: 1.month.ago)
|
351
|
+
recent_proposal = create(:proposal, feature: feature)
|
352
|
+
|
353
|
+
visit_feature
|
354
|
+
|
355
|
+
within ".order-by" do
|
356
|
+
page.find('.dropdown.menu .is-dropdown-submenu-parent').hover
|
357
|
+
end
|
358
|
+
|
359
|
+
click_link "Recent"
|
360
|
+
|
361
|
+
expect(page.find('#proposals .card-grid .column:first-child', text: recent_proposal.title)).to be
|
362
|
+
expect(page.find('#proposals .card-grid .column:last-child', text: older_proposal.title)).to be
|
363
|
+
end
|
364
|
+
end
|
365
|
+
end
|
289
366
|
end
|
290
367
|
end
|