decidim-proposals 0.13.1 → 0.14.1
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/decidim_proposals_manifest.js +1 -0
- data/app/assets/images/decidim/gamification/badges/accepted_proposals.svg +144 -0
- data/app/assets/images/decidim/gamification/badges/proposal_votes.svg +95 -0
- data/app/assets/images/decidim/gamification/badges/proposals.svg +145 -0
- data/app/assets/javascripts/decidim/proposals/add_proposal.js.es6 +1 -2
- data/app/cells/decidim/proposals/collaborative_draft_cell.rb +55 -0
- data/app/cells/decidim/proposals/collaborative_draft_link_to_proposal/show.erb +13 -0
- data/app/cells/decidim/proposals/collaborative_draft_link_to_proposal_cell.rb +57 -0
- data/app/cells/decidim/proposals/collaborative_draft_m/footer.erb +6 -0
- data/app/cells/decidim/proposals/collaborative_draft_m/tags.erb +1 -0
- data/app/cells/decidim/proposals/collaborative_draft_m_cell.rb +39 -0
- data/app/cells/decidim/proposals/endorsers_list/show.erb +1 -2
- data/app/cells/decidim/proposals/irreversible_action_modal/show.erb +27 -0
- data/app/cells/decidim/proposals/irreversible_action_modal_cell.rb +79 -0
- data/app/cells/decidim/proposals/proposal_cell.rb +1 -1
- data/app/cells/decidim/proposals/proposal_link_to_collaborative_draft/show.erb +9 -0
- data/app/cells/decidim/proposals/proposal_link_to_collaborative_draft_cell.rb +30 -0
- data/app/cells/decidim/proposals/proposal_m/footer.erb +1 -1
- data/app/cells/decidim/proposals/proposal_m_cell.rb +9 -1
- data/app/commands/decidim/proposals/accept_access_to_collaborative_draft.rb +70 -0
- data/app/commands/decidim/proposals/admin/answer_proposal.rb +9 -0
- data/app/commands/decidim/proposals/admin/create_proposal.rb +5 -2
- data/app/commands/decidim/proposals/attachment_methods.rb +43 -0
- data/app/commands/decidim/proposals/create_collaborative_draft.rb +73 -0
- data/app/commands/decidim/proposals/create_proposal.rb +13 -48
- data/app/commands/decidim/proposals/publish_collaborative_draft.rb +87 -0
- data/app/commands/decidim/proposals/publish_proposal.rb +7 -0
- data/app/commands/decidim/proposals/reject_access_to_collaborative_draft.rb +63 -0
- data/app/commands/decidim/proposals/request_access_to_collaborative_draft.rb +50 -0
- data/app/commands/decidim/proposals/unvote_proposal.rb +6 -7
- data/app/commands/decidim/proposals/update_collaborative_draft.rb +60 -0
- data/app/commands/decidim/proposals/update_proposal.rb +16 -3
- data/app/commands/decidim/proposals/vote_proposal.rb +3 -0
- data/app/commands/decidim/proposals/withdraw_collaborative_draft.rb +65 -0
- data/app/controllers/concerns/decidim/proposals/collaborative_orderable.rb +56 -0
- data/app/controllers/decidim/proposals/admin/application_controller.rb +1 -0
- data/app/controllers/decidim/proposals/collaborative_draft_collaborator_requests_controller.rb +53 -0
- data/app/controllers/decidim/proposals/collaborative_drafts_controller.rb +171 -0
- data/app/controllers/decidim/proposals/proposals_controller.rb +38 -33
- data/app/controllers/decidim/proposals/versions_controller.rb +23 -0
- data/app/events/decidim/proposals/collaborative_draft_access_accepted_event.rb +8 -0
- data/app/events/decidim/proposals/collaborative_draft_access_rejected_event.rb +8 -0
- data/app/events/decidim/proposals/collaborative_draft_access_request_event.rb +27 -0
- data/app/events/decidim/proposals/collaborative_draft_access_requested_event.rb +8 -0
- data/app/events/decidim/proposals/collaborative_draft_access_requester_accepted_event.rb +8 -0
- data/app/events/decidim/proposals/collaborative_draft_access_requester_rejected_event.rb +8 -0
- data/app/events/decidim/proposals/collaborative_draft_withdrawn_event.rb +29 -0
- data/app/events/decidim/proposals/proposal_mentioned_event.rb +3 -1
- data/app/forms/decidim/proposals/accept_access_to_collaborative_draft_form.rb +10 -0
- data/app/forms/decidim/proposals/access_to_collaborative_draft_form.rb +35 -0
- data/app/forms/decidim/proposals/collaborative_draft_form.rb +18 -0
- data/app/forms/decidim/proposals/proposal_form.rb +2 -21
- data/app/forms/decidim/proposals/proposal_wizard_create_step_form.rb +36 -0
- data/app/forms/decidim/proposals/reject_access_to_collaborative_draft_form.rb +9 -0
- data/app/forms/decidim/proposals/request_access_to_collaborative_draft_form.rb +20 -0
- data/app/helpers/decidim/proposals/application_helper.rb +23 -8
- data/app/helpers/decidim/proposals/collaborative_draft_cells_helper.rb +48 -0
- data/app/helpers/decidim/proposals/collaborative_draft_helper.rb +29 -0
- data/app/helpers/decidim/proposals/map_helper.rb +3 -2
- data/app/helpers/decidim/proposals/proposal_cells_helper.rb +1 -1
- data/app/helpers/decidim/proposals/proposal_endorsements_helper.rb +15 -0
- data/app/helpers/decidim/proposals/proposal_wizard_helper.rb +52 -4
- data/app/models/decidim/proposals/collaborative_draft.rb +54 -0
- data/app/models/decidim/proposals/collaborative_draft_collaborator_request.rb +13 -0
- data/app/models/decidim/proposals/proposal.rb +9 -3
- data/app/permissions/decidim/proposals/permissions.rb +53 -9
- data/app/presenters/decidim/proposals/admin_log/proposal_presenter.rb +2 -2
- data/app/presenters/decidim/proposals/admin_log/value_types/proposal_title_body_presenter.rb +17 -0
- data/app/presenters/decidim/proposals/collaborative_draft_presenter.rb +27 -0
- data/app/presenters/decidim/proposals/proposal_presenter.rb +24 -1
- data/app/queries/decidim/proposals/similar_collaborative_drafts.rb +52 -0
- data/app/queries/decidim/proposals/similar_proposals.rb +2 -4
- data/app/services/decidim/proposals/collaborative_draft_search.rb +61 -0
- data/app/services/decidim/proposals/diff_renderer.rb +58 -0
- data/app/services/decidim/proposals/proposal_search.rb +1 -1
- data/app/views/decidim/participatory_processes/participatory_process_groups/_highlighted_proposals.html.erb +8 -3
- data/app/views/decidim/participatory_spaces/_highlighted_proposals.html.erb +8 -3
- data/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +1 -1
- data/app/views/decidim/proposals/admin/proposals/_form.html.erb +4 -4
- data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +5 -2
- data/app/views/decidim/proposals/admin/proposals/index.html.erb +1 -1
- data/app/views/decidim/proposals/admin/proposals/update_category.js.erb +4 -4
- data/app/views/decidim/proposals/admin/shared/_info_proposal.html.erb +2 -2
- data/app/views/decidim/proposals/collaborative_drafts/_accept_request_access_form.html.erb +8 -0
- data/app/views/decidim/proposals/collaborative_drafts/_collaborative_drafts.html.erb +16 -0
- data/app/views/decidim/proposals/collaborative_drafts/_collaborator_requests.html.erb +20 -0
- data/app/views/decidim/proposals/collaborative_drafts/_count.html.erb +1 -0
- data/app/views/decidim/proposals/collaborative_drafts/_filters.html.erb +30 -0
- data/app/views/decidim/proposals/collaborative_drafts/_filters_small_view.html.erb +18 -0
- data/app/views/decidim/proposals/collaborative_drafts/_new_collaborative_draft_button.html.erb +11 -0
- data/app/views/decidim/proposals/collaborative_drafts/_reject_request_access_form.html.erb +10 -0
- data/app/views/decidim/proposals/collaborative_drafts/_request_access_form.html.erb +7 -0
- data/app/views/decidim/proposals/collaborative_drafts/compare.html.erb +19 -0
- data/app/views/decidim/proposals/collaborative_drafts/complete.html.erb +70 -0
- data/app/views/decidim/proposals/collaborative_drafts/edit.html.erb +57 -0
- data/app/views/decidim/proposals/collaborative_drafts/index.html.erb +23 -0
- data/app/views/decidim/proposals/collaborative_drafts/index.js.erb +10 -0
- data/app/views/decidim/proposals/collaborative_drafts/new.html.erb +28 -0
- data/app/views/decidim/proposals/collaborative_drafts/show.html.erb +136 -0
- data/app/views/decidim/proposals/proposal_endorsements/_identity.html.erb +1 -1
- data/app/views/decidim/proposals/proposal_endorsements/update_buttons_and_counters.js.erb +1 -1
- data/app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb +5 -5
- data/app/views/decidim/proposals/proposals/_edit_form_fields.html.erb +57 -0
- data/app/views/decidim/proposals/proposals/_endorsement_button.html.erb +3 -3
- data/app/views/decidim/proposals/proposals/_endorsements_card_row.html.erb +1 -7
- data/app/views/decidim/proposals/proposals/_linked_proposals.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/_proposal.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/_proposal_preview.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/_proposal_similar.html.erb +3 -3
- data/app/views/decidim/proposals/proposals/_vote_button.html.erb +4 -3
- data/app/views/decidim/proposals/proposals/_wizard_aside.html.erb +2 -2
- data/app/views/decidim/proposals/proposals/compare.html.erb +5 -3
- data/app/views/decidim/proposals/proposals/complete.html.erb +2 -57
- data/app/views/decidim/proposals/proposals/edit.html.erb +1 -34
- data/app/views/decidim/proposals/proposals/edit_draft.html.erb +1 -34
- data/app/views/decidim/proposals/proposals/index.html.erb +5 -1
- data/app/views/decidim/proposals/proposals/new.html.erb +13 -7
- data/app/views/decidim/proposals/proposals/preview.html.erb +2 -2
- data/app/views/decidim/proposals/proposals/show.html.erb +6 -5
- data/app/views/decidim/proposals/versions/_version.html.erb +20 -0
- data/app/views/decidim/proposals/versions/index.html.erb +34 -0
- data/app/views/decidim/proposals/versions/show.html.erb +39 -0
- data/config/locales/ca.yml +222 -17
- data/config/locales/en.yml +208 -3
- data/config/locales/es-PY.yml +208 -3
- data/config/locales/es.yml +281 -76
- data/config/locales/eu.yml +208 -3
- data/config/locales/fi.yml +335 -131
- data/config/locales/fr.yml +208 -3
- data/config/locales/gl.yml +208 -3
- data/config/locales/hu.yml +622 -0
- data/config/locales/it.yml +208 -3
- data/config/locales/nl.yml +208 -3
- data/config/locales/pl.yml +214 -3
- data/config/locales/pt-BR.yml +212 -7
- data/config/locales/pt.yml +208 -3
- data/config/locales/ru.yml +20 -19
- data/config/locales/sv.yml +313 -108
- data/config/locales/uk.yml +25 -24
- data/db/migrate/20180326091532_create_decidim_proposals_collaborative_drafts.rb +29 -0
- data/db/migrate/20180613151121_create_collaborative_draft_collaborator_requests.rb +12 -0
- data/db/migrate/20180711074134_add_counter_cache_coauthorships_to_collaborative_drafts.rb +7 -0
- data/db/migrate/20180711075004_remove_index_counter_cache_coauthorships_to_proposals.rb +7 -0
- data/lib/decidim/proposals/admin_engine.rb +1 -0
- data/lib/decidim/proposals/commentable_collaborative_draft.rb +38 -0
- data/lib/decidim/proposals/component.rb +69 -4
- data/lib/decidim/proposals/engine.rb +48 -2
- data/lib/decidim/proposals/proposal_serializer.rb +4 -3
- data/lib/decidim/proposals/test/factories.rb +74 -13
- data/lib/decidim/proposals/version.rb +1 -1
- data/lib/decidim/proposals.rb +1 -0
- metadata +94 -24
- data/app/cells/decidim/proposals/coauthorships_cell.rb +0 -40
- data/app/views/decidim/participatory_processes/participatory_process_groups/_proposal.html.erb +0 -1
- data/app/views/decidim/participatory_spaces/_proposal.html.erb +0 -1
@@ -0,0 +1,57 @@
|
|
1
|
+
<div class="field hashtags__container">
|
2
|
+
<%= form.text_field :title, class: "js-hashtags", hashtaggable: true, value: present(@proposal).title %>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<div class="field hashtags__container">
|
6
|
+
<%= form.text_area :body, rows: 10, class: "js-hashtags", hashtaggable: true, value: present(@proposal).body %>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<% if component_settings.geocoding_enabled? %>
|
10
|
+
<div class="field">
|
11
|
+
<%= form.check_box :has_address, checked: form_has_address? %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div class="field" id="address_input">
|
15
|
+
<%= form.text_field :address %>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% if @form.categories&.any? %>
|
20
|
+
<div class="field">
|
21
|
+
<%= form.categories_select :category_id, @form.categories, prompt: t("decidim.proposals.proposals.edit.select_a_category") %>
|
22
|
+
</div>
|
23
|
+
<% end %>
|
24
|
+
|
25
|
+
<% if current_participatory_space.has_subscopes? %>
|
26
|
+
<div class="field">
|
27
|
+
<%= scopes_picker_field form, :scope_id %>
|
28
|
+
</div>
|
29
|
+
<% end %>
|
30
|
+
|
31
|
+
<% if current_user.user_groups.verified.any? %>
|
32
|
+
<div class="field">
|
33
|
+
<%= user_group_select_field form, :user_group_id %>
|
34
|
+
</div>
|
35
|
+
<% end %>
|
36
|
+
|
37
|
+
<% if component_settings.attachments_allowed? && @proposal %>
|
38
|
+
<fieldset>
|
39
|
+
<legend><%= t("attachment_legend", scope: "decidim.proposals.proposals.edit") %></legend>
|
40
|
+
<%= form.fields_for :attachment, @form.attachment do |nested_form| %>
|
41
|
+
<div class="field">
|
42
|
+
<%= nested_form.text_field :title %>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
<div class="field">
|
46
|
+
<%= nested_form.upload :file, optional: false %>
|
47
|
+
<% if @form.errors[:attachment].present? %>
|
48
|
+
<% @form.errors[:attachment].each do |message| %>
|
49
|
+
<small class="form-error is-visible">
|
50
|
+
<%= message %>
|
51
|
+
</small>
|
52
|
+
<% end %>
|
53
|
+
<% end %>
|
54
|
+
</div>
|
55
|
+
<% end %>
|
56
|
+
</fieldset>
|
57
|
+
<% end %>
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<div id="proposal-<%= proposal.id %>-endorsement-button<%= user_group&.id ? "-#{user_group.id}" : "" %>">
|
2
2
|
<% if !current_user %>
|
3
|
-
<%= action_authorized_button_to :endorse, endorse_label, current_endorsement_url, class: "button #{endorsement_button_classes(from_proposals_list)} secondary" %>
|
3
|
+
<%= action_authorized_button_to :endorse, endorse_label, current_endorsement_url, resource: proposal, class: "button #{endorsement_button_classes(from_proposals_list)} secondary" %>
|
4
4
|
<% else %>
|
5
5
|
<% if proposal.endorsed_by?(current_user, user_group) %>
|
6
|
-
<%= action_authorized_button_to :endorse, unendorse_label, current_endorsement_url, method: :delete, remote: true, class: "button #{endorsement_button_classes(from_proposals_list)} success", id: "endorsement_button" %>
|
6
|
+
<%= action_authorized_button_to :endorse, unendorse_label, current_endorsement_url, resource: proposal, method: :delete, remote: true, class: "button #{endorsement_button_classes(from_proposals_list)} success", id: "endorsement_button" %>
|
7
7
|
<% else %>
|
8
|
-
<%= action_authorized_button_to :endorse, endorse_label, current_endorsement_url, remote: true, data: {
|
8
|
+
<%= action_authorized_button_to :endorse, endorse_label, current_endorsement_url, resource: proposal, remote: true, data: {}, class: "button #{endorsement_button_classes(from_proposals_list)} secondary" %>
|
9
9
|
<% end %>
|
10
10
|
<% end %>
|
11
11
|
</div>
|
@@ -4,13 +4,7 @@
|
|
4
4
|
<div class="column small-9 collapse">
|
5
5
|
<div class="button-group button-group--collapse button--nomargin small">
|
6
6
|
<%= render_endorsements_count_card_part(@proposal, fully_endorsed) %>
|
7
|
-
|
8
|
-
<%= content_tag :span, t(".endorse"), class: "card__button button #{endorsement_button_classes(false)} disabled", disabled: true, title: t(".endorse") %>
|
9
|
-
<% elsif current_user %>
|
10
|
-
<%= render partial: "endorsement_identities_cabin", locals: { proposal: @proposal, fully_endorsed: fully_endorsed } %>
|
11
|
-
<% else %>
|
12
|
-
<%= action_authorized_button_to :endorse, t(".endorse"), "", class: "card__button button #{endorsement_button_classes(false)} secondary" %>
|
13
|
-
<% end %>
|
7
|
+
<%= render_endorsements_button_card_part(@proposal, fully_endorsed) %>
|
14
8
|
</div>
|
15
9
|
</div>
|
16
10
|
<% end %>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<% end %>
|
8
8
|
<div>
|
9
9
|
<%= link_to resource_locator(proposal).path, class: "card__link" do %>
|
10
|
-
<h5 class="card--list__heading"><%= proposal.title %></h5>
|
10
|
+
<h5 class="card--list__heading"><%= present(proposal).title %></h5>
|
11
11
|
<% end %>
|
12
12
|
<% present(proposal) do |proposal| %>
|
13
13
|
<div class="author">
|
@@ -1 +1 @@
|
|
1
|
-
<%= card_for proposal, from: proposal
|
1
|
+
<%= card_for proposal, from: proposal %>
|
@@ -1 +1 @@
|
|
1
|
-
<%= card_for proposal, size: :m
|
1
|
+
<%= card_for proposal, size: :m %>
|
@@ -3,9 +3,9 @@
|
|
3
3
|
<div class="card__content">
|
4
4
|
<div class="card__header">
|
5
5
|
<%= link_to proposal, target: "_blank" do %>
|
6
|
-
<h5 class="card__title"><%= proposal.title %></h5>
|
6
|
+
<h5 class="card__title"><%= present(proposal).title %></h5>
|
7
7
|
<% end %>
|
8
|
-
<%= cell("decidim/
|
8
|
+
<%= cell("decidim/coauthorships", proposal, has_actions: false) %>
|
9
9
|
|
10
10
|
<div class="tech-info tech-info--text-left">
|
11
11
|
<%= t("decidim.proposals.proposals.proposal.creation_date", date: l(proposal.created_at, format: :decidim_short)) %>
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
<%== cell("decidim/proposals/proposal_m", proposal).badge %>
|
17
17
|
|
18
|
-
<p><%= truncate(proposal.
|
18
|
+
<p><%= truncate(present(proposal).html_body, length: 100) %></p>
|
19
19
|
<%= cell "decidim/tags", proposal, context: {extra_classes: ["tags--proposal"]} %>
|
20
20
|
</div>
|
21
21
|
</article>
|
@@ -4,15 +4,16 @@
|
|
4
4
|
<div id="proposal-<%= proposal.id %>-vote-button">
|
5
5
|
<% if !current_user %>
|
6
6
|
<% if current_settings.votes_blocked? %>
|
7
|
-
<%= action_authorized_button_to :vote, t("decidim.proposals.proposals.vote_button.votes_blocked"), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), class: "button #{vote_button_classes(from_proposals_list)} disabled", disabled: true %>
|
7
|
+
<%= action_authorized_button_to :vote, t("decidim.proposals.proposals.vote_button.votes_blocked"), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), resource: proposal, class: "button #{vote_button_classes(from_proposals_list)} disabled", disabled: true %>
|
8
8
|
<% else %>
|
9
|
-
<%= action_authorized_button_to :vote, t("decidim.proposals.proposals.vote_button.vote"), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), class: "button #{vote_button_classes(from_proposals_list)}", data: { disable: true, "redirect-url": proposal_path(proposal) } %>
|
9
|
+
<%= action_authorized_button_to :vote, t("decidim.proposals.proposals.vote_button.vote"), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), resource: proposal, class: "button #{vote_button_classes(from_proposals_list)}", data: { disable: true, "redirect-url": proposal_path(proposal) } %>
|
10
10
|
<% end %>
|
11
11
|
<% else %>
|
12
12
|
<% if @voted_proposals ? @voted_proposals.include?(proposal.id) : proposal.voted_by?(current_user) %>
|
13
13
|
<%= action_authorized_button_to(
|
14
14
|
:vote,
|
15
15
|
proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list),
|
16
|
+
resource: proposal,
|
16
17
|
method: :delete,
|
17
18
|
remote: true,
|
18
19
|
data: {
|
@@ -36,7 +37,7 @@
|
|
36
37
|
<% elsif current_settings.votes_blocked? || !current_component.participatory_space.can_participate?(current_user) %>
|
37
38
|
<%= content_tag :span, t("decidim.proposals.proposals.vote_button.votes_blocked"), class: "button #{vote_button_classes(from_proposals_list)} disabled", disabled: true %>
|
38
39
|
<% else %>
|
39
|
-
<%= action_authorized_button_to :vote, t("decidim.proposals.proposals.vote_button.vote"), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), remote: true, data: { disable: true, "redirect-url": proposal_path(proposal) }, class: "button #{vote_button_classes(from_proposals_list)}" %>
|
40
|
+
<%= action_authorized_button_to :vote, t("decidim.proposals.proposals.vote_button.vote"), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list: from_proposals_list), resource: proposal, remote: true, data: { disable: true, "redirect-url": proposal_path(proposal) }, class: "button #{vote_button_classes(from_proposals_list)}" %>
|
40
41
|
<% end %>
|
41
42
|
<% end %>
|
42
43
|
<% end %>
|
@@ -2,12 +2,12 @@
|
|
2
2
|
<div class="m-bottom">
|
3
3
|
<%= link_to :back do %>
|
4
4
|
<%= icon "chevron-left", class: "icon--small" %>
|
5
|
-
<%=
|
5
|
+
<%= wizard_aside_back_text %>
|
6
6
|
<% end %>
|
7
7
|
</div>
|
8
8
|
<div class="section">
|
9
9
|
<p>
|
10
|
-
<%=
|
10
|
+
<%= wizard_aside_info_text %>
|
11
11
|
</p>
|
12
12
|
</div>
|
13
13
|
<div class="show-for-large">
|
@@ -2,18 +2,20 @@
|
|
2
2
|
<%= render partial: "wizard_aside" %>
|
3
3
|
|
4
4
|
<div class="columns large-6">
|
5
|
-
<%= render partial: "wizard_header", locals: {callout_step_help_text_class: "warning"} %>
|
5
|
+
<%= render partial: "wizard_header", locals: { callout_step_help_text_class: "warning" } %>
|
6
6
|
|
7
7
|
<% if @similar_proposals.presence %>
|
8
8
|
<div class="row small-up-1 card-grid">
|
9
9
|
<% @similar_proposals.each do |proposal| %>
|
10
|
-
<%= render partial: "proposal_similar", locals: {proposal: proposal} %>
|
10
|
+
<%= render partial: "proposal_similar", locals: { proposal: proposal } %>
|
11
11
|
<% end %>
|
12
12
|
</div>
|
13
13
|
<% end %>
|
14
|
+
|
14
15
|
<div class="row column text-center">
|
15
|
-
<%= link_to t(".mine_is_different"),
|
16
|
+
<%= link_to t(".mine_is_different"), complete_proposal_path(@proposal), class: "button small" %>
|
16
17
|
</div>
|
17
18
|
</div>
|
19
|
+
|
18
20
|
<div class="columns large-3"></div>
|
19
21
|
</div>
|
@@ -6,63 +6,8 @@
|
|
6
6
|
|
7
7
|
<div class="card">
|
8
8
|
<div class="card__content">
|
9
|
-
<%= decidim_form_for(@form) do |form| %>
|
10
|
-
|
11
|
-
<%= form.text_field :title %>
|
12
|
-
</div>
|
13
|
-
|
14
|
-
<div class="field">
|
15
|
-
<%= form.text_area :body, rows: 10 %>
|
16
|
-
</div>
|
17
|
-
|
18
|
-
<% if component_settings.geocoding_enabled? %>
|
19
|
-
<div class="field">
|
20
|
-
<%= form.check_box :has_address %>
|
21
|
-
</div>
|
22
|
-
<div class="field" id="address_input">
|
23
|
-
<%= form.text_field :address %>
|
24
|
-
</div>
|
25
|
-
<% end %>
|
26
|
-
|
27
|
-
<% if @form.categories&.any? %>
|
28
|
-
<div class="field">
|
29
|
-
<%= form.categories_select :category_id, @form.categories, prompt: t(".select_a_category") %>
|
30
|
-
</div>
|
31
|
-
<% end %>
|
32
|
-
|
33
|
-
<% if current_participatory_space.has_subscopes? %>
|
34
|
-
<div class="field">
|
35
|
-
<%= scopes_picker_field form, :scope_id %>
|
36
|
-
</div>
|
37
|
-
<% end %>
|
38
|
-
|
39
|
-
<% if current_user.user_groups.verified.any? %>
|
40
|
-
<div class="field">
|
41
|
-
<%= user_group_select_field form, :user_group_id %>
|
42
|
-
</div>
|
43
|
-
<% end %>
|
44
|
-
|
45
|
-
<% if component_settings.attachments_allowed? %>
|
46
|
-
<fieldset>
|
47
|
-
<legend><%= t(".attachment_legend") %></legend>
|
48
|
-
<%= form.fields_for :attachment, @form.attachment do |nested_form| %>
|
49
|
-
<div class="field">
|
50
|
-
<%= nested_form.text_field :title %>
|
51
|
-
</div>
|
52
|
-
|
53
|
-
<div class="field">
|
54
|
-
<%= nested_form.upload :file, optional: false %>
|
55
|
-
<% if @form.errors[:attachment].present? %>
|
56
|
-
<% @form.errors[:attachment].each do |message| %>
|
57
|
-
<small class="form-error is-visible">
|
58
|
-
<%= message %>
|
59
|
-
</small>
|
60
|
-
<% end %>
|
61
|
-
<% end %>
|
62
|
-
</div>
|
63
|
-
<% end %>
|
64
|
-
</fieldset>
|
65
|
-
<% end %>
|
9
|
+
<%= decidim_form_for(@form, url: update_draft_proposal_path(@proposal), method: :patch) do |form| %>
|
10
|
+
<%= render partial: "edit_form_fields", locals: { form: form } %>
|
66
11
|
|
67
12
|
<div class="actions">
|
68
13
|
<%= form.submit t(".send"), class: "button expanded mt-s mb-none", data: { disable: true } %>
|
@@ -15,40 +15,7 @@
|
|
15
15
|
|
16
16
|
<div class="card__content">
|
17
17
|
<%= decidim_form_for(@form) do |form| %>
|
18
|
-
|
19
|
-
<%= form.text_field :title %>
|
20
|
-
</div>
|
21
|
-
|
22
|
-
<div class="field">
|
23
|
-
<%= form.text_area :body, rows: 10 %>
|
24
|
-
</div>
|
25
|
-
|
26
|
-
<% if component_settings.geocoding_enabled? %>
|
27
|
-
<div class="field">
|
28
|
-
<%= form.check_box :has_address %>
|
29
|
-
</div>
|
30
|
-
<div class="field" id="address_input">
|
31
|
-
<%= form.text_field :address %>
|
32
|
-
</div>
|
33
|
-
<% end %>
|
34
|
-
|
35
|
-
<% if @form.categories&.any? %>
|
36
|
-
<div class="field">
|
37
|
-
<%= form.categories_select :category_id, @form.categories, prompt: t(".select_a_category") %>
|
38
|
-
</div>
|
39
|
-
<% end %>
|
40
|
-
|
41
|
-
<% if current_participatory_space.has_subscopes? %>
|
42
|
-
<div class="field">
|
43
|
-
<%= scopes_picker_field form, :scope_id %>
|
44
|
-
</div>
|
45
|
-
<% end %>
|
46
|
-
|
47
|
-
<% if current_user.user_groups.verified.any? %>
|
48
|
-
<div class="field">
|
49
|
-
<%= form.select :user_group_id, current_user.user_groups.verified.map{|g| [g.name, g.id]}, prompt: current_user.name %>
|
50
|
-
</div>
|
51
|
-
<% end %>
|
18
|
+
<%= render partial: "edit_form_fields", locals: { form: form } %>
|
52
19
|
|
53
20
|
<div class="actions">
|
54
21
|
<%= form.submit t(".send"), class: "button expanded", data: { disable: true } %>
|
@@ -7,40 +7,7 @@
|
|
7
7
|
<div class="card">
|
8
8
|
<div class="card__content">
|
9
9
|
<%= decidim_form_for(@form, url: update_draft_proposal_path(@proposal), method: :patch) do |form| %>
|
10
|
-
|
11
|
-
<%= form.text_field :title %>
|
12
|
-
</div>
|
13
|
-
|
14
|
-
<div class="field">
|
15
|
-
<%= form.text_area :body, rows: 10 %>
|
16
|
-
</div>
|
17
|
-
|
18
|
-
<% if component_settings.geocoding_enabled? %>
|
19
|
-
<div class="field">
|
20
|
-
<%= form.check_box :has_address %>
|
21
|
-
</div>
|
22
|
-
<div class="field" id="address_input">
|
23
|
-
<%= form.text_field :address %>
|
24
|
-
</div>
|
25
|
-
<% end %>
|
26
|
-
|
27
|
-
<% if @form.categories&.any? %>
|
28
|
-
<div class="field">
|
29
|
-
<%= form.categories_select :category_id, @form.categories, prompt: t("decidim.proposals.proposals.edit.select_a_category") %>
|
30
|
-
</div>
|
31
|
-
<% end %>
|
32
|
-
|
33
|
-
<% if current_participatory_space.has_subscopes? %>
|
34
|
-
<div class="field">
|
35
|
-
<%= scopes_picker_field form, :scope_id %>
|
36
|
-
</div>
|
37
|
-
<% end %>
|
38
|
-
|
39
|
-
<% if current_user.user_groups.verified.any? %>
|
40
|
-
<div class="field">
|
41
|
-
<%= user_group_select_field form, :user_group_id %>
|
42
|
-
</div>
|
43
|
-
<% end %>
|
10
|
+
<%= render partial: "edit_form_fields", locals: { form: form } %>
|
44
11
|
|
45
12
|
<div class="row column flex-center">
|
46
13
|
<%= link_to t(".discard"), destroy_draft_proposal_path(@proposal), method: :delete, data: { confirm: t(".discard_confirmation") } %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%= render partial: "decidim/shared/component_announcement" %>
|
2
2
|
|
3
3
|
<% if component_settings.geocoding_enabled? %>
|
4
|
-
<%= dynamic_map_for proposals_data_for_map(
|
4
|
+
<%= dynamic_map_for proposals_data_for_map(@proposals.select(&:geocoded?)) do %>
|
5
5
|
<template id="marker-popup">
|
6
6
|
<div class="map-info__content">
|
7
7
|
<h3>${title}</h3>
|
@@ -44,6 +44,10 @@
|
|
44
44
|
<%= icon "plus" %>
|
45
45
|
</span>
|
46
46
|
<% end %>
|
47
|
+
|
48
|
+
<% if component_settings.collaborative_drafts_enabled? %>
|
49
|
+
<%= link_to t(".collaborative_drafts_list"), collaborative_drafts_path, class: "title-action__action button small hollow ml-s" %>
|
50
|
+
<% end %>
|
47
51
|
</div>
|
48
52
|
</div>
|
49
53
|
<div class="row">
|
@@ -1,20 +1,26 @@
|
|
1
1
|
<div class="row">
|
2
|
-
<%= render partial: "wizard_aside" %>
|
2
|
+
<%= render partial: "decidim/proposals/proposals/wizard_aside" %>
|
3
3
|
|
4
4
|
<div class="columns large-6">
|
5
|
-
<%= render partial: "wizard_header" %>
|
5
|
+
<%= render partial: "decidim/proposals/proposals/wizard_header" %>
|
6
6
|
|
7
7
|
<div class="card">
|
8
8
|
<div class="card__content">
|
9
|
-
<%= decidim_form_for(@form
|
10
|
-
<div class="field">
|
11
|
-
<%= form.text_field :title %>
|
9
|
+
<%= decidim_form_for(@form) do |form| %>
|
10
|
+
<div class="field hashtags__container">
|
11
|
+
<%= form.text_field :title, class: "js-hashtags", hashtaggable: true %>
|
12
12
|
</div>
|
13
13
|
|
14
|
-
<div class="field">
|
15
|
-
<%= form.text_area :body, rows: 10 %>
|
14
|
+
<div class="field hashtags__container">
|
15
|
+
<%= form.text_area :body, rows: 10, class: "js-hashtags", hashtaggable: true %>
|
16
16
|
</div>
|
17
17
|
|
18
|
+
<% if current_user.user_groups.verified.any? %>
|
19
|
+
<div class="field">
|
20
|
+
<%= user_group_select_field form, :user_group_id %>
|
21
|
+
</div>
|
22
|
+
<% end %>
|
23
|
+
|
18
24
|
<div class="actions">
|
19
25
|
<%= form.submit t(".send"), class: "button expanded mt-s mb-none", data: { disable: true } %>
|
20
26
|
</div>
|
@@ -2,10 +2,10 @@
|
|
2
2
|
<%= render partial: "wizard_aside" %>
|
3
3
|
|
4
4
|
<div class="columns large-6">
|
5
|
-
<%= render partial: "wizard_header", locals: {callout_help_text_class: "warning"} %>
|
5
|
+
<%= render partial: "wizard_header", locals: { callout_help_text_class: "warning" } %>
|
6
6
|
<div class="card">
|
7
7
|
<div class="p-l">
|
8
|
-
<%= render partial: "proposal_preview", locals: {proposal: @proposal} %>
|
8
|
+
<%= render partial: "proposal_preview", locals: { proposal: @proposal } %>
|
9
9
|
<div class="row column flex-center">
|
10
10
|
<%= link_to t(".modify"), edit_draft_proposal_path(@proposal) %>
|
11
11
|
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<% add_decidim_meta_tags({
|
2
|
-
description: @proposal.body,
|
3
|
-
title: @proposal.title,
|
2
|
+
description: present(@proposal).body,
|
3
|
+
title: present(@proposal).title,
|
4
4
|
url: proposal_url(@proposal.id)
|
5
5
|
}) %>
|
6
6
|
|
7
7
|
<%= render partial: "voting_rules" %>
|
8
8
|
<div class="row column view-header">
|
9
|
-
<h2 class="heading2"><%= @proposal.
|
10
|
-
<%= cell("decidim/
|
9
|
+
<h2 class="heading2"><%= present(@proposal).html_title %></h2>
|
10
|
+
<%= cell("decidim/coauthorships", @proposal, has_actions: true, size: 3) %>
|
11
11
|
</div>
|
12
12
|
<div class="row">
|
13
13
|
<div class="columns section view-side mediumlarge-4 mediumlarge-push-8 large-3 large-push-9">
|
@@ -31,11 +31,12 @@
|
|
31
31
|
<%= cell("decidim/fingerprint", @proposal) %>
|
32
32
|
<%= render partial: "decidim/shared/share_modal" %>
|
33
33
|
<%= embed_modal_for proposal_proposal_widget_url(@proposal, format: :js) %>
|
34
|
+
<%= cell "decidim/proposals/proposal_link_to_collaborative_draft", @proposal %>
|
34
35
|
</div>
|
35
36
|
<div class="columns mediumlarge-8 mediumlarge-pull-4">
|
36
37
|
<div class="section">
|
37
38
|
<%== cell("decidim/proposals/proposal_m", @proposal, full_badge: true).badge %>
|
38
|
-
<%= simple_format @proposal.
|
39
|
+
<%= simple_format present(@proposal).html_body %>
|
39
40
|
<% if component_settings.geocoding_enabled? %>
|
40
41
|
<%= render partial: "decidim/shared/static_map", locals: { icon_name: "proposals", geolocalizable: @proposal } %>
|
41
42
|
<% end %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<div class="card--list__item">
|
2
|
+
<div class="card--list__text">
|
3
|
+
<div>
|
4
|
+
<%= link_to collaborative_draft_version_path(item, index + 1) do %>
|
5
|
+
<h6 class="card--list__heading heading6">
|
6
|
+
<%= t(".version_index", index: index + 1) %>
|
7
|
+
</h6>
|
8
|
+
<% end %>
|
9
|
+
<div class="author-data">
|
10
|
+
<%= render_resource_editor(version) %>
|
11
|
+
<%= l version.created_at, format: :decidim_short %>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
<div class="card--list__data">
|
16
|
+
<%= link_to collaborative_draft_version_path(item, index + 1), class: "card--list__data__icon" do %>
|
17
|
+
<%= icon "chevron-right" %>
|
18
|
+
<% end %>
|
19
|
+
</div>
|
20
|
+
</div>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<div class="row">
|
2
|
+
<div class="small-12 columns">
|
3
|
+
<h2 class="heading2">
|
4
|
+
<%= t("changes_at_title", scope: "decidim.proposals.versions", title: item.title) %>
|
5
|
+
</h2>
|
6
|
+
|
7
|
+
<h3 class="section-heading">
|
8
|
+
<%= t(".title") %>
|
9
|
+
</h3>
|
10
|
+
|
11
|
+
<div class="row">
|
12
|
+
<div class="mediumlarge-8 columns">
|
13
|
+
<div class="section">
|
14
|
+
<div class="card card--list">
|
15
|
+
<% item.versions.each_with_index do |version, index| %>
|
16
|
+
<%= render partial: "version", locals: { version: version, index: index } %>
|
17
|
+
<% end %>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<div class="columns section mediumlarge-4 large-3">
|
23
|
+
<div class="card extra definition-data">
|
24
|
+
<div class="definition-data__item versions_count">
|
25
|
+
<span class="definition-data__title"><%= t("versions.stats.number_of_versions", scope: "decidim.proposals") %></span>
|
26
|
+
<%= item.versions.count %>
|
27
|
+
|
28
|
+
<%= link_to t("versions.stats.back_to_collaborative_draft", scope: "decidim.proposals"), collaborative_draft_path(item), class: "button button--sc hollow secondary small expanded" %>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
</div>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<div class="row">
|
2
|
+
<div class="small-12 columns">
|
3
|
+
<h2 class="heading2">
|
4
|
+
<%= t("changes_at_title", scope: "decidim.proposals.versions", title: item.title) %>
|
5
|
+
</h2>
|
6
|
+
|
7
|
+
<div class="row">
|
8
|
+
<div class="mediumlarge-8 columns">
|
9
|
+
<div class="section">
|
10
|
+
<% diff_renderer.diff.each_value do |data| %>
|
11
|
+
<h3 class="section-heading"><%= data[:label] %></h3>
|
12
|
+
<%= render_diff_data(data) %>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div class="columns section mediumlarge-4 large-3">
|
18
|
+
<div class="card extra definition-data">
|
19
|
+
<div class="definition-data__item versions_count">
|
20
|
+
<span class="definition-data__title"><%= t("versions.stats.version_number", scope: "decidim.proposals") %></span>
|
21
|
+
<%= t("versions.stats.version_number_out_of_total", scope: "decidim.proposals", current_version: params[:id], total_count: item.versions_count) %>
|
22
|
+
<%= link_to t("versions.stats.show_all_versions", scope: "decidim.proposals"), collaborative_draft_versions_path(item), class: "button button--sc hollow secondary small expanded" %>
|
23
|
+
<%= link_to t("versions.stats.back_to_collaborative_draft", scope: "decidim.proposals"), collaborative_draft_path(item), class: "button button--sc hollow secondary small expanded" %>
|
24
|
+
</div>
|
25
|
+
<% if current_version.whodunnit.present? %>
|
26
|
+
<div class="definition-data__item last_revision_by">
|
27
|
+
<span class="definition-data__title"><%= t("versions.stats.version_author", scope: "decidim.proposals") %></span>
|
28
|
+
<%= render_resource_editor(current_version) %>
|
29
|
+
</div>
|
30
|
+
<% end %>
|
31
|
+
<div class="definition-data__item versions_count">
|
32
|
+
<span class="definition-data__title"><%= t("versions.stats.version_created_at", scope: "decidim.proposals") %></span>
|
33
|
+
<%= l current_version.created_at, format: :decidim_short %>
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
</div>
|