decidim-proposals 0.19.1 → 0.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/config/admin/decidim_proposals_manifest.js +1 -0
- data/app/assets/images/decidim/gamification/badges/accepted_proposals.svg +1 -234
- data/app/assets/images/decidim/gamification/badges/proposal_votes.svg +1 -95
- data/app/assets/images/decidim/gamification/badges/proposals.svg +1 -229
- data/app/assets/images/decidim/proposals/icon.svg +1 -3
- data/app/assets/javascripts/decidim/proposals/add_proposal.js.es6 +6 -0
- data/app/assets/javascripts/decidim/proposals/admin/proposals.es6 +24 -11
- data/app/assets/javascripts/decidim/proposals/admin/proposals_form.js.es6 +3 -5
- data/app/assets/javascripts/decidim/proposals/admin/proposals_picker.js.es6 +35 -0
- data/app/cells/decidim/proposals/collaborative_draft_cell.rb +1 -1
- data/app/cells/decidim/proposals/collaborative_draft_link_to_proposal_cell.rb +1 -1
- data/app/cells/decidim/proposals/collaborative_draft_m/footer.erb +1 -1
- data/app/cells/decidim/proposals/collaborative_draft_m_cell.rb +1 -1
- data/app/cells/decidim/proposals/cost_report/show.erb +35 -0
- data/app/cells/decidim/proposals/cost_report_cell.rb +42 -0
- data/app/cells/decidim/proposals/highlighted_proposals_for_component/show.erb +3 -3
- data/app/cells/decidim/proposals/highlighted_proposals_for_component_cell.rb +1 -1
- data/app/cells/decidim/proposals/irreversible_action_modal/show.erb +2 -2
- data/app/cells/decidim/proposals/irreversible_action_modal_cell.rb +1 -1
- data/app/cells/decidim/proposals/participatory_text_proposal/buttons.erb +3 -3
- data/app/cells/decidim/proposals/participatory_text_proposal_cell.rb +2 -2
- data/app/cells/decidim/proposals/proposal_cell.rb +1 -1
- data/app/cells/decidim/proposals/proposal_m/footer.erb +4 -1
- data/app/cells/decidim/proposals/proposal_m_cell.rb +37 -9
- data/app/cells/decidim/proposals/proposal_tags/show.erb +18 -10
- data/app/cells/decidim/proposals/proposal_tags_cell.rb +5 -0
- data/app/cells/decidim/proposals/proposals_picker/proposals.erb +12 -0
- data/app/cells/decidim/proposals/proposals_picker/show.erb +14 -0
- data/app/cells/decidim/proposals/proposals_picker_cell.rb +72 -0
- data/app/commands/decidim/proposals/admin/answer_proposal.rb +24 -46
- data/app/commands/decidim/proposals/admin/assign_proposals_to_valuator.rb +61 -0
- data/app/commands/decidim/proposals/admin/create_proposal.rb +10 -3
- data/app/commands/decidim/proposals/admin/create_proposal_note.rb +15 -0
- data/app/commands/decidim/proposals/admin/notify_proposal_answer.rb +85 -0
- data/app/commands/decidim/proposals/admin/publish_answers.rb +67 -0
- data/app/commands/decidim/proposals/admin/publish_participatory_text.rb +6 -1
- data/app/commands/decidim/proposals/admin/unassign_proposals_from_valuator.rb +62 -0
- data/app/commands/decidim/proposals/admin/update_participatory_text.rb +10 -2
- data/app/commands/decidim/proposals/admin/update_proposal.rb +5 -3
- data/app/commands/decidim/proposals/admin/update_proposal_scope.rb +75 -0
- data/app/commands/decidim/proposals/create_collaborative_draft.rb +1 -1
- data/app/commands/decidim/proposals/create_proposal.rb +7 -3
- data/app/commands/decidim/proposals/gallery_methods.rb +2 -51
- data/app/commands/decidim/proposals/publish_collaborative_draft.rb +2 -2
- data/app/commands/decidim/proposals/update_proposal.rb +25 -9
- data/app/controllers/concerns/decidim/proposals/admin/filterable.rb +82 -0
- data/app/controllers/concerns/decidim/proposals/admin/picker.rb +21 -0
- data/app/controllers/concerns/decidim/proposals/orderable.rb +13 -2
- data/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +16 -6
- data/app/controllers/decidim/proposals/admin/proposal_notes_controller.rb +8 -9
- data/app/controllers/decidim/proposals/admin/proposals_controller.rb +107 -31
- data/app/controllers/decidim/proposals/admin/valuation_assignments_controller.rb +58 -0
- data/app/controllers/decidim/proposals/collaborative_drafts_controller.rb +10 -3
- data/app/controllers/decidim/proposals/proposals_controller.rb +31 -11
- data/app/controllers/decidim/proposals/versions_controller.rb +9 -16
- data/app/controllers/decidim/proposals/{proposal_widgets_controller.rb → widgets_controller.rb} +2 -2
- data/app/events/decidim/proposals/admin/proposal_note_created_event.rb +27 -0
- data/app/events/decidim/proposals/admin/update_proposal_scope_event.rb +11 -0
- data/app/forms/decidim/proposals/admin/import_participatory_text_form.rb +3 -1
- data/app/forms/decidim/proposals/admin/participatory_text_proposal_form.rb +20 -0
- data/app/forms/decidim/proposals/admin/preview_participatory_text_form.rb +2 -2
- data/app/forms/decidim/proposals/admin/proposal_answer_form.rb +27 -2
- data/app/forms/decidim/proposals/admin/proposal_base_form.rb +136 -0
- data/app/forms/decidim/proposals/admin/proposal_form.rb +6 -117
- data/app/forms/decidim/proposals/admin/valuation_assignment_form.rb +37 -0
- data/app/forms/decidim/proposals/proposal_form.rb +25 -12
- data/app/forms/decidim/proposals/proposal_wizard_create_step_form.rb +13 -1
- data/app/helpers/decidim/proposals/admin/filterable_helper.rb +17 -0
- data/app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb +35 -0
- data/app/helpers/decidim/proposals/admin/proposal_rankings_helper.rb +63 -0
- data/app/helpers/decidim/proposals/admin/proposals_helper.rb +124 -0
- data/app/helpers/decidim/proposals/admin/proposals_picker_helper.rb +30 -0
- data/app/helpers/decidim/proposals/application_helper.rb +64 -38
- data/app/helpers/decidim/proposals/collaborative_draft_helper.rb +9 -9
- data/app/helpers/decidim/proposals/control_version_helper.rb +1 -37
- data/app/helpers/decidim/proposals/proposal_cells_helper.rb +1 -1
- data/app/helpers/decidim/proposals/proposal_endorsements_helper.rb +0 -145
- data/app/helpers/decidim/proposals/proposal_votes_helper.rb +2 -2
- data/app/helpers/decidim/proposals/proposal_wizard_helper.rb +24 -7
- data/app/helpers/decidim/proposals/proposals_helper.rb +66 -0
- data/app/models/decidim/proposals/collaborative_draft.rb +2 -2
- data/app/models/decidim/proposals/participatory_text.rb +3 -0
- data/app/models/decidim/proposals/proposal.rb +153 -42
- data/app/models/decidim/proposals/valuation_assignment.rb +24 -0
- data/app/permissions/decidim/proposals/admin/permissions.rb +77 -11
- data/app/permissions/decidim/proposals/permissions.rb +1 -22
- data/app/presenters/decidim/proposals/admin_log/proposal_presenter.rb +1 -1
- data/app/presenters/decidim/proposals/admin_log/valuation_assignment_presenter.rb +51 -0
- data/app/presenters/decidim/proposals/admin_log/value_types/proposal_title_body_presenter.rb +6 -1
- data/app/presenters/decidim/proposals/admin_log/value_types/valuator_role_user_presenter.rb +19 -0
- data/app/presenters/decidim/proposals/collaborative_draft_presenter.rb +2 -28
- data/app/presenters/decidim/proposals/log/valuation_assignment_presenter.rb +22 -0
- data/app/presenters/decidim/proposals/official_author_presenter.rb +1 -29
- data/app/presenters/decidim/proposals/proposal_presenter.rb +80 -12
- data/app/queries/decidim/proposals/metrics/accepted_proposals_metric_manage.rb +1 -2
- data/app/queries/decidim/proposals/metrics/endorsements_metric_manage.rb +15 -12
- data/app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb +5 -4
- data/app/queries/decidim/proposals/metrics/proposals_metric_manage.rb +2 -8
- data/app/queries/decidim/proposals/metrics/votes_metric_manage.rb +3 -9
- data/app/queries/decidim/proposals/similar_proposals.rb +4 -4
- data/app/services/decidim/proposals/collaborative_draft_search.rb +8 -10
- data/app/services/decidim/proposals/diff_renderer.rb +17 -5
- data/app/services/decidim/proposals/proposal_builder.rb +9 -3
- data/app/services/decidim/proposals/proposal_search.rb +17 -70
- data/app/types/decidim/proposals/proposal_input_filter.rb +29 -0
- data/app/types/decidim/proposals/proposal_input_sort.rb +22 -0
- data/app/types/decidim/proposals/proposal_type.rb +34 -13
- data/app/types/decidim/proposals/proposals_type.rb +22 -15
- data/app/validators/proposal_length_validator.rb +38 -0
- data/app/views/decidim/proposals/admin/participatory_texts/index.html.erb +9 -1
- data/app/views/decidim/proposals/admin/proposal_answers/_form.html.erb +35 -0
- data/app/views/decidim/proposals/admin/proposal_notes/_form.html.erb +1 -1
- data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes.html.erb +3 -3
- data/app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb +8 -2
- data/app/views/decidim/proposals/admin/proposals/_form.html.erb +8 -28
- data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +26 -27
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_assign_to_valuator.html.erb +15 -0
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_dropdown.html.erb +21 -1
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_publish_answers.html.erb +14 -0
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_scope-change.html.erb +25 -0
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_unassign_from_valuator.html.erb +15 -0
- data/app/views/decidim/proposals/admin/proposals/index.html.erb +18 -9
- data/app/views/decidim/proposals/admin/proposals/publish_answers.js.erb +12 -0
- data/app/views/decidim/proposals/admin/proposals/show.html.erb +186 -0
- data/app/views/decidim/proposals/admin/proposals/update_category.js.erb +3 -2
- data/app/views/decidim/proposals/admin/proposals/update_scope.js.erb +27 -0
- data/app/views/decidim/proposals/collaborative_drafts/_edit_form_fields.html.erb +11 -9
- data/app/views/decidim/proposals/collaborative_drafts/_filters.html.erb +10 -8
- data/app/views/decidim/proposals/collaborative_drafts/_new_collaborative_draft_button.html.erb +4 -4
- data/app/views/decidim/proposals/collaborative_drafts/_reject_request_access_form.html.erb +1 -1
- data/app/views/decidim/proposals/collaborative_drafts/_wizard_aside.html.erb +4 -2
- data/app/views/decidim/proposals/collaborative_drafts/compare.html.erb +2 -0
- data/app/views/decidim/proposals/collaborative_drafts/complete.html.erb +2 -0
- data/app/views/decidim/proposals/collaborative_drafts/edit.html.erb +3 -1
- data/app/views/decidim/proposals/collaborative_drafts/index.html.erb +4 -2
- data/app/views/decidim/proposals/collaborative_drafts/new.html.erb +4 -0
- data/app/views/decidim/proposals/collaborative_drafts/show.html.erb +29 -30
- data/app/views/decidim/proposals/proposals/_edit_form_fields.html.erb +52 -22
- data/app/views/decidim/proposals/proposals/_endorsements_card_row.html.erb +0 -16
- data/app/views/decidim/proposals/proposals/_filters.html.erb +19 -17
- data/app/views/decidim/proposals/proposals/_proposal_badge.html.erb +1 -4
- data/app/views/decidim/proposals/proposals/_proposal_preview.html.erb +1 -11
- data/app/views/decidim/proposals/proposals/_proposal_similar.html.erb +2 -2
- data/app/views/decidim/proposals/proposals/_proposals.html.erb +14 -0
- data/app/views/decidim/proposals/proposals/_vote_button.html.erb +14 -7
- data/app/views/decidim/proposals/proposals/_wizard_aside.html.erb +4 -2
- data/app/views/decidim/proposals/proposals/_wizard_header.html.erb +4 -3
- data/app/views/decidim/proposals/proposals/compare.html.erb +2 -0
- data/app/views/decidim/proposals/proposals/complete.html.erb +2 -0
- data/app/views/decidim/proposals/proposals/edit.html.erb +3 -1
- data/app/views/decidim/proposals/proposals/edit_draft.html.erb +2 -0
- data/app/views/decidim/proposals/proposals/index.html.erb +7 -14
- data/app/views/decidim/proposals/proposals/new.html.erb +6 -2
- data/app/views/decidim/proposals/proposals/participatory_texts/_index.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb +10 -3
- data/app/views/decidim/proposals/proposals/participatory_texts/_view_index.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/preview.html.erb +7 -8
- data/app/views/decidim/proposals/proposals/show.html.erb +62 -71
- data/app/views/decidim/proposals/versions/index.html.erb +14 -32
- data/app/views/decidim/proposals/versions/show.html.erb +16 -34
- data/config/locales/am-ET.yml +1 -0
- data/config/locales/ar.yml +73 -67
- data/config/locales/bg-BG.yml +237 -0
- data/config/locales/bg.yml +237 -0
- data/config/locales/ca.yml +183 -67
- data/config/locales/cs.yml +196 -80
- data/config/locales/da-DK.yml +1 -0
- data/config/locales/da.yml +1 -0
- data/config/locales/de.yml +269 -162
- data/config/locales/el-GR.yml +1 -0
- data/config/locales/el.yml +876 -0
- data/config/locales/en.yml +187 -71
- data/config/locales/eo.yml +1 -0
- data/config/locales/es-MX.yml +181 -65
- data/config/locales/es-PY.yml +181 -65
- data/config/locales/es.yml +186 -70
- data/config/locales/et-EE.yml +1 -0
- data/config/locales/et.yml +1 -0
- data/config/locales/eu.yml +28 -63
- data/config/locales/fi-plain.yml +181 -65
- data/config/locales/fi.yml +219 -103
- data/config/locales/fr-CA.yml +906 -0
- data/config/locales/fr.yml +184 -68
- data/config/locales/ga-IE.yml +1 -0
- data/config/locales/gl.yml +28 -63
- data/config/locales/hr-HR.yml +1 -0
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +148 -70
- data/config/locales/id-ID.yml +28 -62
- data/config/locales/is-IS.yml +274 -0
- data/config/locales/is.yml +274 -0
- data/config/locales/it.yml +177 -85
- data/config/locales/ja-JP.yml +865 -0
- data/config/locales/ja.yml +889 -0
- data/config/locales/ko-KR.yml +1 -0
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt-LT.yml +1 -0
- data/config/locales/lt.yml +1 -0
- data/config/locales/lv.yml +858 -0
- data/config/locales/mt-MT.yml +1 -0
- data/config/locales/mt.yml +1 -0
- data/config/locales/nl.yml +282 -188
- data/config/locales/no.yml +586 -19
- data/config/locales/om-ET.yml +1 -0
- data/config/locales/pl.yml +524 -393
- data/config/locales/pt-BR.yml +29 -67
- data/config/locales/pt.yml +438 -331
- data/config/locales/ro-RO.yml +841 -0
- data/config/locales/ru.yml +14 -47
- data/config/locales/sk-SK.yml +896 -0
- data/config/locales/sk.yml +869 -0
- data/config/locales/sl.yml +26 -0
- data/config/locales/so-SO.yml +1 -0
- data/config/locales/sr-CS.yml +126 -0
- data/config/locales/sv.yml +285 -171
- data/config/locales/ti-ER.yml +1 -0
- data/config/locales/tr-TR.yml +28 -63
- data/config/locales/uk.yml +14 -47
- data/config/locales/vi-VN.yml +1 -0
- data/config/locales/vi.yml +1 -0
- data/config/locales/zh-CN.yml +885 -0
- data/config/locales/zh-TW.yml +1 -0
- data/db/migrate/20181003074440_fix_user_groups_ids_in_proposals_endorsements.rb +4 -0
- data/db/migrate/20191206154128_add_endorsements_counter_cache_to_proposals.rb +7 -0
- data/db/migrate/20200120215928_move_proposal_endorsements_to_core_endorsements.rb +54 -0
- data/db/migrate/20200120230130_drop_proposal_endorsements.rb +8 -0
- data/db/migrate/20200203111239_add_proposal_valuation_assignments.rb +12 -0
- data/db/migrate/20200210135152_add_costs_to_proposals.rb +9 -0
- data/db/migrate/20200212120110_sync_proposals_state_with_amendments_state.rb +28 -0
- data/db/migrate/20200227175922_add_state_published_at_to_proposals.rb +7 -0
- data/db/migrate/20200306123652_publish_existing_proposals_state.rb +15 -0
- data/db/migrate/20200708091228_move_proposals_fields_to_i18n.rb +80 -0
- data/db/migrate/20200730131631_move_proposal_endorsed_event_notifications_to_resource_endorsed_event.rb +20 -0
- data/db/migrate/20200827154156_add_commentable_counter_cache_to_proposals.rb +12 -0
- data/db/migrate/20200915151348_fix_proposals_data_to_ensure_title_and_body_are_hashes.rb +37 -0
- data/db/migrate/20201002085508_fix_proposals_data.rb +37 -0
- data/lib/decidim/content_renderers/proposal_renderer.rb +3 -1
- data/lib/decidim/proposals.rb +1 -0
- data/lib/decidim/proposals/admin_engine.rb +7 -3
- data/lib/decidim/proposals/component.rb +55 -28
- data/lib/decidim/proposals/engine.rb +3 -7
- data/lib/decidim/proposals/markdown_to_proposals.rb +2 -2
- data/lib/decidim/proposals/proposal_serializer.rb +3 -3
- data/lib/decidim/proposals/test/capybara_proposals_picker.rb +49 -0
- data/lib/decidim/proposals/test/factories.rb +100 -28
- data/lib/decidim/proposals/valuatable.rb +21 -0
- data/lib/decidim/proposals/version.rb +1 -1
- metadata +119 -54
- data/app/assets/javascripts/decidim/proposals/identity_selector_dialog.js.es6 +0 -56
- data/app/cells/decidim/proposals/endorsers_list/show.erb +0 -17
- data/app/cells/decidim/proposals/endorsers_list_cell.rb +0 -31
- data/app/commands/decidim/proposals/attachment_methods.rb +0 -43
- data/app/commands/decidim/proposals/endorse_proposal.rb +0 -59
- data/app/commands/decidim/proposals/unendorse_proposal.rb +0 -40
- data/app/controllers/decidim/proposals/proposal_endorsements_controller.rb +0 -60
- data/app/models/decidim/proposals/proposal_endorsement.rb +0 -37
- data/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +0 -22
- data/app/views/decidim/proposals/admin/proposal_notes/index.html.erb +0 -3
- data/app/views/decidim/proposals/admin/shared/_info_proposal.html.erb +0 -20
- data/app/views/decidim/proposals/proposal_endorsements/_identity.html.erb +0 -9
- data/app/views/decidim/proposals/proposal_endorsements/identities.html.erb +0 -12
- data/app/views/decidim/proposals/proposal_endorsements/update_buttons_and_counters.js.erb +0 -20
- data/app/views/decidim/proposals/proposal_widgets/show.html.erb +0 -4
- data/app/views/decidim/proposals/proposals/_endorsement_button.html.erb +0 -11
- data/app/views/decidim/proposals/proposals/_endorsement_identities_cabin.html.erb +0 -13
- data/app/views/decidim/proposals/versions/_version.html.erb +0 -20
data/app/views/decidim/proposals/admin/proposals/bulk_actions/_unassign_from_valuator.html.erb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
<div id="js-unassign-proposals-from-valuator-actions" class="hide js-bulk-action-form">
|
2
|
+
<%= form_tag(valuation_assignment_path, method: :delete, id: "js-form-unassign-proposals-from-valuator", class: "flex--cc flex-gap--1") do %>
|
3
|
+
<div class="checkboxes hide">
|
4
|
+
<% proposals.each do |proposal| %>
|
5
|
+
<%= check_box_tag "proposal_ids[]", proposal.id, false, class: "js-check-all-proposal js-proposal-id-#{proposal.id}" %>
|
6
|
+
<% end %>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<%= bulk_valuators_select(current_participatory_space, t("decidim.proposals.admin.proposals.index.unassign_from_valuator")) %>
|
10
|
+
|
11
|
+
<%= submit_tag(t("decidim.proposals.admin.proposals.index.unassign_from_valuator_button"), id: "js-submit-unassign-proposals-from-valuator", class: "button small button--simple float-left") %>
|
12
|
+
|
13
|
+
<button id="js-cancel-unassign-proposals-from-valuator" class="button tiny clear compact js-cancel-bulk-action" type="button"><%= t("decidim.proposals.admin.proposals.index.cancel") %></button>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<div class="card">
|
1
|
+
<div class="card with-overflow">
|
2
2
|
<div class="card-divider">
|
3
3
|
<h2 class="card-title flex--sbc">
|
4
4
|
<div>
|
@@ -8,6 +8,7 @@
|
|
8
8
|
<%= render partial: "bulk-actions" %>
|
9
9
|
</h2>
|
10
10
|
</div>
|
11
|
+
<%= admin_filter_selector(:proposals) %>
|
11
12
|
<div class="card-section">
|
12
13
|
<div class="table-scroll">
|
13
14
|
<table class="table-list">
|
@@ -26,34 +27,42 @@
|
|
26
27
|
<%= sort_link(query, :category_name, t("models.proposal.fields.category", scope: "decidim.proposals") ) %>
|
27
28
|
</th>
|
28
29
|
|
29
|
-
<% if
|
30
|
+
<% if resource_with_scopes_enabled? %>
|
30
31
|
<th>
|
31
32
|
<%= sort_link(query, :scope_name, t("models.proposal.fields.scope", scope: "decidim.proposals") ) %>
|
32
33
|
</th>
|
33
34
|
<% end %>
|
34
35
|
|
35
36
|
<th>
|
36
|
-
<%= sort_link(query, :state, t("models.proposal.fields.state", scope: "decidim.proposals") ) %>
|
37
|
+
<%= sort_link(query, :state, [:state, :is_emendation], t("models.proposal.fields.state", scope: "decidim.proposals") ) %>
|
37
38
|
</th>
|
38
39
|
|
39
|
-
<%
|
40
|
+
<% unless current_settings.publish_answers_immediately? %>
|
40
41
|
<th>
|
41
|
-
<%= sort_link(query, :
|
42
|
+
<%= sort_link(query, :state_published, t("models.proposal.fields.published_answer", scope: "decidim.proposals") ) %>
|
42
43
|
</th>
|
43
44
|
<% end %>
|
44
45
|
|
45
|
-
<% if
|
46
|
+
<% if current_settings.votes_enabled? %>
|
46
47
|
<th>
|
47
|
-
<%= sort_link(query, :
|
48
|
+
<%= sort_link(query, :proposal_votes_count, t("models.proposal.fields.votes", scope: "decidim.proposals") ) %>
|
48
49
|
</th>
|
49
50
|
<% end %>
|
50
51
|
|
51
|
-
<% if
|
52
|
+
<% if current_component.settings.comments_enabled? and !current_settings.comments_blocked? %>
|
52
53
|
<th>
|
53
|
-
<%= sort_link(query, :
|
54
|
+
<%= sort_link(query, :comments_count, t("models.proposal.fields.comments", scope: "decidim.proposals") ) %>
|
54
55
|
</th>
|
55
56
|
<% end %>
|
56
57
|
|
58
|
+
<th>
|
59
|
+
<%= sort_link(query, :proposal_notes_count, t("models.proposal.fields.notes", scope: "decidim.proposals") ) %>
|
60
|
+
</th>
|
61
|
+
|
62
|
+
<th>
|
63
|
+
<%= sort_link(query, :valuation_assignments_count, t("models.proposal.fields.valuators", scope: "decidim.proposals") ) %>
|
64
|
+
</th>
|
65
|
+
|
57
66
|
<th>
|
58
67
|
<%= sort_link(query, :published_at, t("models.proposal.fields.published_at", scope: "decidim.proposals") ) %>
|
59
68
|
</th>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
$("<%= escape_javascript(render partial: %q{js-callout}, locals: { css: %q{success}, text: flash.now[:notice] }) %>").appendTo(".callout-wrapper");
|
2
|
+
|
3
|
+
<% proposal_ids.each do |id| %>
|
4
|
+
$(".table-list [data-id='<%= id %>']")
|
5
|
+
.replaceWith("<%= escape_javascript(render partial: %q{proposal-tr}, locals: { proposal: proposal_find(id) }) %>");
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
$(".js-check-all").prop('checked', false);
|
9
|
+
$(".js-check-all-proposal").prop('checked', false);
|
10
|
+
window.hideBulkActionForms()
|
11
|
+
window.showOtherActionsButtons();
|
12
|
+
window.selectedProposalsCountUpdate();
|
@@ -0,0 +1,186 @@
|
|
1
|
+
<div class="card">
|
2
|
+
<div class="card-divider">
|
3
|
+
<h2 class="card-title">
|
4
|
+
<%= link_to "#{t ".proposals"} > ", proposals_path %>
|
5
|
+
<%= decidim_html_escape(present(proposal).title).html_safe %>
|
6
|
+
|
7
|
+
<% if allowed_to? :edit, :proposal, proposal: proposal %>
|
8
|
+
<%= icon_link_to "pencil", edit_proposal_path(proposal), t("actions.edit_proposal", scope: "decidim.proposals"), class: "action-icon--edit-proposal" %>
|
9
|
+
<% end %>
|
10
|
+
</h2>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="card-section">
|
14
|
+
<div class="row column">
|
15
|
+
<strong><%= t ".link" %>:</strong> <%= link_to resource_locator(proposal).url, resource_locator(proposal).path %>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<div class="row column">
|
19
|
+
<strong><%= t ".authors" %>:</strong>
|
20
|
+
<ul id="proposal-authors-list">
|
21
|
+
<% coauthor_presenters_for(proposal).each do |presented_author| %>
|
22
|
+
<li>
|
23
|
+
<%= link_to_if(
|
24
|
+
presented_author.profile_path.present?,
|
25
|
+
presented_author.name,
|
26
|
+
presented_author.profile_path,
|
27
|
+
target: :blank
|
28
|
+
) %>
|
29
|
+
<% if presented_author.can_be_contacted? && presented_author.nickname != present(current_user).nickname %>
|
30
|
+
<%= icon_link_to "envelope-closed", current_or_new_conversation_path_with(presented_author), t("decidim.contact"), class:"action-icon--new" %>
|
31
|
+
<% end %>
|
32
|
+
</li>
|
33
|
+
<% end %>
|
34
|
+
</ul>
|
35
|
+
</div>
|
36
|
+
|
37
|
+
<div class="row column">
|
38
|
+
<strong><%= t ".body" %>:</strong> <%= simple_format(present(proposal).body(strip_tags: true)) %>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div class="row column">
|
42
|
+
<strong><%= t ".created_at" %>:</strong> <%= l proposal.created_at, format: :decidim_short %>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
<div class="row column">
|
46
|
+
<strong><%= t ".votes_count" %>:</strong> <%= proposal.proposal_votes_count %>
|
47
|
+
</div>
|
48
|
+
|
49
|
+
<div class="row column">
|
50
|
+
<strong><%= t ".votes_ranking" %>:</strong> <%= i18n_votes_ranking_for(proposal) %>
|
51
|
+
</div>
|
52
|
+
|
53
|
+
<div class="row column">
|
54
|
+
<strong><%= t ".endorsements_count" %>:</strong> <%= proposal.endorsements_count %>
|
55
|
+
</div>
|
56
|
+
|
57
|
+
<div class="row column">
|
58
|
+
<strong><%= t ".endorsements_ranking" %>:</strong> <%= i18n_endorsements_ranking_for(proposal) %>
|
59
|
+
</div>
|
60
|
+
|
61
|
+
<div class="row column">
|
62
|
+
<strong><%= t ".amendments_count" %>:</strong> <%= proposal.amendments.count %>
|
63
|
+
</div>
|
64
|
+
|
65
|
+
<div class="row column">
|
66
|
+
<strong><%= t ".comments_count" %>:</strong> <%= proposal.comments_count %>
|
67
|
+
<ul id="proposal-comments-alignment-count">
|
68
|
+
<li><strong><%= t ".comments_positive_count" %>:</strong> <%= proposal.comments.positive.count %></li>
|
69
|
+
<li><strong><%= t ".comments_neutral_count" %>:</strong> <%= proposal.comments.neutral.count %></li>
|
70
|
+
<li><strong><%= t ".comments_negative_count" %>:</strong> <%= proposal.comments.negative.count %></li>
|
71
|
+
</ul>
|
72
|
+
</div>
|
73
|
+
|
74
|
+
<div class="row column">
|
75
|
+
<strong><%= t ".endorsers" %>:</strong>
|
76
|
+
<ul id="proposal-endorsers-list">
|
77
|
+
<% presented_endorsers = endorsers_presenters_for(proposal).to_a %>
|
78
|
+
<% presented_endorsers.first(5).each do |presented_endorser| %>
|
79
|
+
<li>
|
80
|
+
<%= link_to_if(
|
81
|
+
presented_endorser.profile_path.present?,
|
82
|
+
presented_endorser.name,
|
83
|
+
presented_endorser.profile_path,
|
84
|
+
target: :blank
|
85
|
+
) %>
|
86
|
+
</li>
|
87
|
+
<% end %>
|
88
|
+
<% if presented_endorsers.count > 5 %>
|
89
|
+
<li>
|
90
|
+
<%= link_to(
|
91
|
+
t(".n_more_endorsers", count: presented_endorsers.count - 5),
|
92
|
+
resource_locator(proposal).path
|
93
|
+
) %>
|
94
|
+
</li>
|
95
|
+
<% end %>
|
96
|
+
</ul>
|
97
|
+
</div>
|
98
|
+
|
99
|
+
<div class="row column">
|
100
|
+
<strong><%= t ".related_meetings" %>:</strong>
|
101
|
+
<ul id="related-meetings">
|
102
|
+
<% proposal.linked_resources(:meetings, "proposals_from_meeting").each do |meeting| %>
|
103
|
+
<% presented_meeting = present(meeting) %>
|
104
|
+
<li>
|
105
|
+
<%= link_to presented_meeting.title, presented_meeting.profile_path %>
|
106
|
+
</li>
|
107
|
+
<% end %>
|
108
|
+
</ul>
|
109
|
+
</div>
|
110
|
+
|
111
|
+
<% if proposal.documents.any? %>
|
112
|
+
<div class="row column">
|
113
|
+
<strong><%= t ".documents" %>:</strong>
|
114
|
+
<ul id="documents">
|
115
|
+
<% proposal.documents.each do |document| %>
|
116
|
+
<li>
|
117
|
+
<%= link_to translated_attribute(document.title), document.url %>
|
118
|
+
<small><%= document.file_type %> <%= number_to_human_size(document.file_size) %></small>
|
119
|
+
</li>
|
120
|
+
<% end %>
|
121
|
+
</ul>
|
122
|
+
</div>
|
123
|
+
<% end %>
|
124
|
+
|
125
|
+
<% if proposal.photos.any? %>
|
126
|
+
<div class="row column">
|
127
|
+
<strong><%= t(".photos") %>:</strong>
|
128
|
+
<div id="photos" class="gallery row">
|
129
|
+
<% proposal.photos.each do |photo| %>
|
130
|
+
<%= link_to photo.big_url, target: "_blank", rel: "noopener" do %>
|
131
|
+
<%= image_tag photo.thumbnail_url, class:"thumbnail", alt: strip_tags(translated_attribute(photo.title)) %>
|
132
|
+
<% end %>
|
133
|
+
<% end %>
|
134
|
+
</div>
|
135
|
+
</div>
|
136
|
+
<% end %>
|
137
|
+
|
138
|
+
</div>
|
139
|
+
</div>
|
140
|
+
|
141
|
+
<% if proposal.valuators.any? %>
|
142
|
+
<div class="card">
|
143
|
+
<div class="card-divider">
|
144
|
+
<h2 class="card-title">
|
145
|
+
<%= t ".valuators" %>
|
146
|
+
</h2>
|
147
|
+
</div>
|
148
|
+
|
149
|
+
<div class="card-section">
|
150
|
+
<div class="row column">
|
151
|
+
<strong><%= t ".assigned_valuators" %>:</strong>
|
152
|
+
<ul id="valuators">
|
153
|
+
<% proposal.valuation_assignments.each do |assignment| %>
|
154
|
+
<% presented_valuator = present(assignment.valuator) %>
|
155
|
+
<li>
|
156
|
+
<%= link_to(
|
157
|
+
presented_valuator.name,
|
158
|
+
presented_valuator.profile_path,
|
159
|
+
target: :blank
|
160
|
+
) %>
|
161
|
+
|
162
|
+
<% if allowed_to? :unassign_from_valuator, :proposals, valuator: assignment.valuator %>
|
163
|
+
<%= icon_link_to(
|
164
|
+
"circle-x",
|
165
|
+
proposal_valuation_assignment_path(proposal, assignment.valuator_role),
|
166
|
+
t(".remove_assignment"),
|
167
|
+
method: :delete,
|
168
|
+
data: { confirm: t(".remove_assignment_confirmation") },
|
169
|
+
class: "red-icon"
|
170
|
+
) %>
|
171
|
+
<% end %>
|
172
|
+
</li>
|
173
|
+
<% end %>
|
174
|
+
</ul>
|
175
|
+
</div>
|
176
|
+
</div>
|
177
|
+
</div>
|
178
|
+
<% end %>
|
179
|
+
|
180
|
+
<% if allowed_to?(:create, :proposal_note, proposal: proposal) %>
|
181
|
+
<%= render "decidim/proposals/admin/proposal_notes/proposal_notes" %>
|
182
|
+
<% end %>
|
183
|
+
|
184
|
+
<% if allowed_to?(:create, :proposal_answer, proposal: proposal) && !proposal.emendation? %>
|
185
|
+
<%= render "decidim/proposals/admin/proposal_answers/form" %>
|
186
|
+
<% end %>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<% if flash.now[:notice].present? %>
|
12
12
|
$("<%= escape_javascript(render partial: %q{js-callout}, locals: { css: %q{success}, text: flash.now[:notice] }) %>").appendTo(".callout-wrapper");
|
13
13
|
|
14
|
-
<%
|
14
|
+
<% proposal_ids.each do |id| %>
|
15
15
|
$(".table-list [data-id='<%= id %>']")
|
16
16
|
.replaceWith("<%= escape_javascript(render partial: %q{proposal-tr}, locals: { proposal: proposal_find(id) }) %>");
|
17
17
|
<% end %>
|
@@ -19,7 +19,8 @@
|
|
19
19
|
$("#js-form-recategorize-proposals #category_id").removeClass("is-invalid-input")
|
20
20
|
$(".js-check-all").prop('checked', false);
|
21
21
|
$(".js-check-all-proposal").prop('checked', false);
|
22
|
-
window.
|
22
|
+
window.hideBulkActionsButton();
|
23
|
+
window.hideBulkActionForms();
|
23
24
|
window.showOtherActionsButtons();
|
24
25
|
window.selectedProposalsCountUpdate();
|
25
26
|
<% end %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<% if flash.now[:error].present? %>
|
2
|
+
$("#js-form-scope-change-proposals #scope_id").addClass("is-invalid-input")
|
3
|
+
$("<%= escape_javascript(render partial: %q{js-callout}, locals: { css: %q{alert}, text: flash.now[:error] }) %>").appendTo(".callout-wrapper");
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<% if flash.now[:alert].present? %>
|
7
|
+
$("#js-form-scope-change-proposals #scope_id").removeClass("is-invalid-input")
|
8
|
+
$("<%= escape_javascript(render partial: %q{js-callout}, locals: { css: %q{warning}, text: flash.now[:alert] }) %>").appendTo(".callout-wrapper");
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
<% if flash.now[:notice].present? %>
|
12
|
+
$("<%= escape_javascript(render partial: %q{js-callout}, locals: { css: %q{success}, text: flash.now[:notice] }) %>").appendTo(".callout-wrapper");
|
13
|
+
|
14
|
+
<% @proposal_ids.each do |id| %>
|
15
|
+
$(".table-list [data-id='<%= id %>']")
|
16
|
+
.replaceWith("<%= escape_javascript(render partial: %q{proposal-tr}, locals: { proposal: proposal_find(id) }) %>");
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
$("#js-form-scope-change-proposals #scope_id").removeClass("is-invalid-input")
|
20
|
+
$(".js-check-all").prop('checked', false);
|
21
|
+
$(".js-check-all-proposal").prop('checked', false);
|
22
|
+
|
23
|
+
window.hideBulkActionForms();
|
24
|
+
window.hideBulkActionsButton();
|
25
|
+
window.showOtherActionsButtons();
|
26
|
+
window.selectedProposalsCountUpdate();
|
27
|
+
<% end %>
|
@@ -1,9 +1,11 @@
|
|
1
|
+
<%= form_required_explanation %>
|
2
|
+
|
1
3
|
<div class="field hashtags__container">
|
2
|
-
<%= form.text_field :title, class: "js-hashtags",
|
4
|
+
<%= form.text_field :title, class: "js-hashtags", value: form_presenter.title %>
|
3
5
|
</div>
|
4
6
|
|
5
7
|
<div class="field hashtags__container">
|
6
|
-
<%= form.text_area :body, rows: 10, class: "js-hashtags",
|
8
|
+
<%= form.text_area :body, rows: 10, class: "js-hashtags", value: form_presenter.body(extras: false).strip %>
|
7
9
|
</div>
|
8
10
|
|
9
11
|
<% if @form.component_automatic_hashtags.any? %>
|
@@ -21,7 +23,7 @@
|
|
21
23
|
|
22
24
|
<% if @form.component_suggested_hashtags.any? %>
|
23
25
|
<div class="field">
|
24
|
-
<%= form.label :suggested_hashtags %>
|
26
|
+
<%= form.label :suggested_hashtags, nil, for: nil %>
|
25
27
|
<div class="checkboxes hashtags">
|
26
28
|
<%= form.collection_check_boxes :suggested_hashtags, @form.component_suggested_hashtags.map {|hashtag| [hashtag.downcase, "##{hashtag}"]}, :first, :last do |option|
|
27
29
|
option.label { option.check_box(checked: @form.suggested_hashtag_checked?(option.value)) + option.text }
|
@@ -30,29 +32,29 @@
|
|
30
32
|
</div>
|
31
33
|
<% end %>
|
32
34
|
|
33
|
-
<% if
|
35
|
+
<% if @form.geocoding_enabled? %>
|
34
36
|
<div class="field">
|
35
37
|
<%= form.check_box :has_address, checked: form_has_address? %>
|
36
38
|
</div>
|
37
39
|
|
38
40
|
<div class="field" id="address_input">
|
39
|
-
<%= form.
|
41
|
+
<%= form.geocoding_field :address %>
|
40
42
|
</div>
|
41
43
|
<% end %>
|
42
44
|
|
43
45
|
<% if @form.categories&.any? %>
|
44
46
|
<div class="field">
|
45
|
-
<%= form.categories_select :category_id, @form.categories,
|
47
|
+
<%= form.categories_select :category_id, @form.categories, include_blank: t("decidim.proposals.collaborative_drafts.edit.select_a_category") %>
|
46
48
|
</div>
|
47
49
|
<% end %>
|
48
50
|
|
49
|
-
<% if
|
51
|
+
<% if current_component.has_subscopes? %>
|
50
52
|
<div class="field">
|
51
|
-
<%= scopes_picker_field form, :scope_id %>
|
53
|
+
<%= scopes_picker_field form, :scope_id, root: current_component.scope %>
|
52
54
|
</div>
|
53
55
|
<% end %>
|
54
56
|
|
55
|
-
<% if
|
57
|
+
<% if current_organization.user_groups_enabled? && Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.any? %>
|
56
58
|
<div class="field">
|
57
59
|
<%= user_group_select_field form, :user_group_id %>
|
58
60
|
</div>
|
@@ -1,29 +1,31 @@
|
|
1
|
+
<%= render partial: "decidim/shared/filter_form_help", locals: { skip_to_id: "collaborative_drafts" } %>
|
2
|
+
|
1
3
|
<%= filter_form_for filter do |form| %>
|
2
4
|
<div class="filters__section">
|
3
5
|
<div class="filters__search">
|
4
6
|
<div class="input-group">
|
5
|
-
<%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t(".search") %>
|
7
|
+
<%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t(".search"), title: t(".search"), data: { disable_dynamic_change: true } %>
|
6
8
|
<div class="input-group-button">
|
7
|
-
<button type="submit" class="button
|
8
|
-
<%= icon "magnifying-glass", aria_label: t(".search") %>
|
9
|
+
<button type="submit" class="button" aria-controls="collaborative_drafts">
|
10
|
+
<%= icon "magnifying-glass", aria_label: t(".search"), role: "img" %>
|
9
11
|
</button>
|
10
12
|
</div>
|
11
13
|
</div>
|
12
14
|
</div>
|
13
15
|
</div>
|
14
16
|
|
15
|
-
<%= form.
|
17
|
+
<%= form.check_boxes_tree :state, filter_collaborative_drafts_state_values, legend_title: t(".state"), "aria-controls": "collaborative_drafts" %>
|
16
18
|
|
17
19
|
<% if linked_classes_for(Decidim::Proposals::CollaborativeDraft).any? %>
|
18
|
-
<%= form.collection_radio_buttons :related_to, linked_classes_filter_values_for(Decidim::Proposals::CollaborativeDraft), :first, :last, legend_title: t(".related_to") %>
|
20
|
+
<%= form.collection_radio_buttons :related_to, linked_classes_filter_values_for(Decidim::Proposals::CollaborativeDraft), :first, :last, { legend_title: t(".related_to") }, "aria-controls": "collaborative_drafts" %>
|
19
21
|
<% end %>
|
20
22
|
|
21
|
-
<% if
|
22
|
-
<%=
|
23
|
+
<% if current_component.has_subscopes? %>
|
24
|
+
<%= form.check_boxes_tree :scope_id, filter_scopes_values, legend_title: t(".scope"), "aria-controls": "collaborative_drafts" %>
|
23
25
|
<% end %>
|
24
26
|
|
25
27
|
<% if current_component.categories.any? %>
|
26
|
-
<%= form.
|
28
|
+
<%= form.check_boxes_tree :category_id, filter_categories_values, legend_title: t(".category"), "aria-controls": "collaborative_drafts" %>
|
27
29
|
<% end %>
|
28
30
|
|
29
31
|
<%= hidden_field_tag :order, order, id: nil, class: "order_filter" %>
|
data/app/views/decidim/proposals/collaborative_drafts/_new_collaborative_draft_button.html.erb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
<% if current_settings.creation_enabled %>
|
2
|
-
<%= action_authorized_link_to :create, new_collaborative_draft_path, class: "title-action__action button small
|
2
|
+
<%= action_authorized_link_to :create, new_collaborative_draft_path, class: "title-action__action button small", data: { "redirect_url" => new_collaborative_draft_path } do %>
|
3
3
|
<%= t(".new_collaborative_draft") %>
|
4
|
-
<%= icon "plus" %>
|
4
|
+
<%= icon "plus", role: "img", "aria-hidden": true %>
|
5
5
|
<% end %>
|
6
6
|
<% else %>
|
7
|
-
<span class="title-action__action button small
|
7
|
+
<span class="title-action__action button small disabled">
|
8
8
|
<%= t(".new_collaborative_draft") %>
|
9
|
-
<%= icon "plus" %>
|
9
|
+
<%= icon "plus", role: "img", "aria-hidden": true %>
|
10
10
|
</span>
|
11
11
|
<% end %>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<%= form.hidden_field :state, value: @collaborative_draft.state %>
|
5
5
|
<%= form.hidden_field :requester_user_id, value: requester.id %>
|
6
6
|
<%= button_tag type: "submit", data: { disable: true }, title: reject_request_button_label do %>
|
7
|
-
<%= icon "x", class: "icon--small muted ml-xs" %>
|
7
|
+
<%= icon "x", class: "icon--small muted ml-xs", aria_label: reject_request_button_label, role: "img" %>
|
8
8
|
<% end %>
|
9
9
|
<% end %>
|
10
10
|
<% end %>
|