decidim-proposals 0.26.2 → 0.27.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/proposals/highlighted_proposals_for_component_cell.rb +9 -1
  3. data/app/cells/decidim/proposals/proposal_m_cell.rb +5 -7
  4. data/app/commands/decidim/proposals/accept_access_to_collaborative_draft.rb +1 -1
  5. data/app/commands/decidim/proposals/admin/answer_proposal.rb +1 -1
  6. data/app/commands/decidim/proposals/admin/assign_proposals_to_valuator.rb +1 -1
  7. data/app/commands/decidim/proposals/admin/create_proposal.rb +8 -2
  8. data/app/commands/decidim/proposals/admin/create_proposal_note.rb +2 -2
  9. data/app/commands/decidim/proposals/admin/discard_participatory_text.rb +1 -1
  10. data/app/commands/decidim/proposals/admin/import_participatory_text.rb +1 -1
  11. data/app/commands/decidim/proposals/admin/import_proposals.rb +1 -1
  12. data/app/commands/decidim/proposals/admin/merge_proposals.rb +1 -1
  13. data/app/commands/decidim/proposals/admin/notify_proposal_answer.rb +1 -1
  14. data/app/commands/decidim/proposals/admin/publish_answers.rb +1 -1
  15. data/app/commands/decidim/proposals/admin/split_proposals.rb +1 -1
  16. data/app/commands/decidim/proposals/admin/unassign_proposals_from_valuator.rb +1 -1
  17. data/app/commands/decidim/proposals/admin/update_participatory_text.rb +1 -1
  18. data/app/commands/decidim/proposals/admin/update_proposal.rb +8 -2
  19. data/app/commands/decidim/proposals/admin/update_proposal_category.rb +5 -3
  20. data/app/commands/decidim/proposals/admin/update_proposal_scope.rb +3 -3
  21. data/app/commands/decidim/proposals/create_collaborative_draft.rb +5 -5
  22. data/app/commands/decidim/proposals/create_proposal.rb +1 -1
  23. data/app/commands/decidim/proposals/destroy_proposal.rb +1 -1
  24. data/app/commands/decidim/proposals/publish_collaborative_draft.rb +1 -1
  25. data/app/commands/decidim/proposals/publish_proposal.rb +1 -1
  26. data/app/commands/decidim/proposals/reject_access_to_collaborative_draft.rb +1 -1
  27. data/app/commands/decidim/proposals/request_access_to_collaborative_draft.rb +1 -1
  28. data/app/commands/decidim/proposals/unvote_proposal.rb +1 -1
  29. data/app/commands/decidim/proposals/update_collaborative_draft.rb +1 -1
  30. data/app/commands/decidim/proposals/update_proposal.rb +8 -2
  31. data/app/commands/decidim/proposals/vote_proposal.rb +1 -1
  32. data/app/commands/decidim/proposals/withdraw_collaborative_draft.rb +1 -1
  33. data/app/commands/decidim/proposals/withdraw_proposal.rb +1 -1
  34. data/app/controllers/concerns/decidim/proposals/orderable.rb +7 -5
  35. data/app/controllers/decidim/proposals/admin/proposals_controller.rb +7 -7
  36. data/app/controllers/decidim/proposals/collaborative_drafts_controller.rb +8 -8
  37. data/app/controllers/decidim/proposals/proposal_votes_controller.rb +1 -1
  38. data/app/controllers/decidim/proposals/proposals_controller.rb +24 -17
  39. data/app/events/decidim/proposals/publish_proposal_event.rb +8 -0
  40. data/app/forms/decidim/proposals/admin/import_participatory_text_form.rb +4 -4
  41. data/app/forms/decidim/proposals/admin/proposal_base_form.rb +4 -4
  42. data/app/forms/decidim/proposals/admin/proposal_form.rb +2 -0
  43. data/app/forms/decidim/proposals/admin/proposals_fork_form.rb +2 -2
  44. data/app/forms/decidim/proposals/admin/proposals_import_form.rb +1 -1
  45. data/app/forms/decidim/proposals/proposal_form.rb +11 -4
  46. data/app/forms/decidim/proposals/proposal_wizard_create_step_form.rb +3 -0
  47. data/app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb +4 -0
  48. data/app/helpers/decidim/proposals/application_helper.rb +4 -6
  49. data/app/helpers/decidim/proposals/proposal_cells_helper.rb +1 -3
  50. data/app/helpers/decidim/proposals/proposal_wizard_helper.rb +7 -7
  51. data/app/jobs/decidim/proposals/notify_proposals_mentioned_job.rb +1 -1
  52. data/app/models/decidim/proposals/collaborative_draft.rb +10 -0
  53. data/app/models/decidim/proposals/collaborative_draft_collaborator_request.rb +0 -2
  54. data/app/models/decidim/proposals/proposal.rb +47 -8
  55. data/app/queries/decidim/proposals/filtered_proposals.rb +1 -1
  56. data/app/queries/decidim/proposals/similar_proposals.rb +1 -1
  57. data/app/services/decidim/proposals/proposal_search.rb +16 -71
  58. data/app/views/decidim/proposals/admin/proposals/_form.html.erb +1 -1
  59. data/app/views/decidim/proposals/admin/proposals/publish_answers.js.erb +1 -1
  60. data/app/views/decidim/proposals/admin/proposals/update_attribute.js.erb +26 -0
  61. data/app/views/decidim/proposals/collaborative_drafts/_edit_form_fields.html.erb +8 -16
  62. data/app/views/decidim/proposals/collaborative_drafts/_filters.html.erb +4 -4
  63. data/app/views/decidim/proposals/collaborative_drafts/edit.html.erb +3 -1
  64. data/app/views/decidim/proposals/collaborative_drafts/new.html.erb +3 -1
  65. data/app/views/decidim/proposals/proposals/_edit_form_fields.html.erb +13 -36
  66. data/app/views/decidim/proposals/proposals/_filters.html.erb +5 -5
  67. data/app/views/decidim/proposals/proposals/_proposals.html.erb +5 -5
  68. data/app/views/decidim/proposals/proposals/complete.html.erb +3 -1
  69. data/app/views/decidim/proposals/proposals/edit.html.erb +3 -1
  70. data/app/views/decidim/proposals/proposals/edit_draft.html.erb +3 -1
  71. data/app/views/decidim/proposals/proposals/new.html.erb +3 -1
  72. data/config/locales/ar.yml +1 -9
  73. data/config/locales/bg.yml +1 -4
  74. data/config/locales/ca.yml +13 -8
  75. data/config/locales/cs.yml +12 -7
  76. data/config/locales/de.yml +54 -6
  77. data/config/locales/el.yml +1 -6
  78. data/config/locales/en.yml +10 -6
  79. data/config/locales/es-MX.yml +12 -7
  80. data/config/locales/es-PY.yml +12 -7
  81. data/config/locales/es.yml +12 -7
  82. data/config/locales/eu.yml +1 -9
  83. data/config/locales/fi-plain.yml +11 -6
  84. data/config/locales/fi.yml +11 -6
  85. data/config/locales/fr-CA.yml +12 -6
  86. data/config/locales/fr.yml +12 -6
  87. data/config/locales/ga-IE.yml +1 -2
  88. data/config/locales/gl.yml +8 -9
  89. data/config/locales/hu.yml +8 -6
  90. data/config/locales/id-ID.yml +1 -5
  91. data/config/locales/is-IS.yml +2 -2
  92. data/config/locales/it.yml +2 -9
  93. data/config/locales/ja.yml +11 -6
  94. data/config/locales/lb.yml +1 -0
  95. data/config/locales/lt.yml +996 -0
  96. data/config/locales/lv.yml +1 -6
  97. data/config/locales/nl.yml +2 -9
  98. data/config/locales/no.yml +1 -6
  99. data/config/locales/pl.yml +1 -9
  100. data/config/locales/pt-BR.yml +1 -9
  101. data/config/locales/pt.yml +1 -9
  102. data/config/locales/ro-RO.yml +2 -9
  103. data/config/locales/ru.yml +1 -1
  104. data/config/locales/sk.yml +1 -6
  105. data/config/locales/sl.yml +1 -0
  106. data/config/locales/sr-CS.yml +1 -2
  107. data/config/locales/sv.yml +8 -12
  108. data/config/locales/tr-TR.yml +1 -9
  109. data/config/locales/uk.yml +1 -1
  110. data/config/locales/zh-CN.yml +1 -9
  111. data/db/migrate/20180529110230_move_authorships_to_coauthorships.rb +1 -0
  112. data/lib/decidim/proposals/component.rb +19 -14
  113. data/lib/decidim/proposals/import/proposal_answer_creator.rb +21 -19
  114. data/lib/decidim/proposals/test/factories.rb +1 -1
  115. data/lib/decidim/proposals/version.rb +1 -1
  116. metadata +25 -28
  117. data/app/services/decidim/proposals/collaborative_draft_search.rb +0 -59
  118. data/app/views/decidim/proposals/admin/proposals/_js-callout.html.erb +0 -6
  119. data/app/views/decidim/proposals/admin/proposals/update_category.js.erb +0 -26
  120. data/app/views/decidim/proposals/admin/proposals/update_scope.js.erb +0 -27
@@ -2,83 +2,28 @@
2
2
 
3
3
  module Decidim
4
4
  module Proposals
5
- # A service to encapsualte all the logic when searching and filtering
6
- # proposals in a participatory process.
5
+ # This service scopes the proposal searches with parameters that cannot be
6
+ # passed from the user interface.
7
7
  class ProposalSearch < ResourceSearch
8
- text_search_fields :title, :body
8
+ attr_reader :type, :activity
9
9
 
10
- # Public: Initializes the service.
11
- # component - A Decidim::Component to get the proposals from.
12
- # page - The page number to paginate the results.
13
- # per_page - The number of proposals to return per page.
14
- def initialize(options = {})
15
- options[:scope] = options.fetch(:scope, Proposal)
16
- options[:scope] = options[:state_withdraw] == "withdrawn" ? options[:scope].withdrawn : options[:scope].except_withdrawn
17
- super(options[:scope], options)
18
- end
19
-
20
- # Handle the activity filter
21
- def search_activity
22
- case activity
23
- when "voted"
24
- query
25
- .includes(:votes)
26
- .where(decidim_proposals_proposal_votes: { decidim_author_id: user })
27
- when "my_proposals"
28
- query
29
- .where.not(coauthorships_count: 0)
30
- .joins(:coauthorships)
31
- .where(decidim_coauthorships: { decidim_author_type: "Decidim::UserBaseEntity" })
32
- .where(decidim_coauthorships: { decidim_author_id: user })
33
- else # Assume 'all'
34
- query
35
- end
36
- end
37
-
38
- def search_state_withdraw
39
- return query if state_withdraw == "withdrawn"
10
+ def build(params)
11
+ return super if search_context == :admin
40
12
 
41
- query.except_withdrawn
42
- end
13
+ @type = params[:type]
14
+ @activity = params[:activity]
43
15
 
44
- # Handle the state filter
45
- def search_state
46
- apply_scopes(%w(accepted rejected evaluating state_not_published), state)
47
- end
48
-
49
- # Handle the amendment type filter
50
- def search_type
51
- case type
52
- when "proposals"
53
- query.only_amendables
54
- when "amendments"
55
- query.only_visible_emendations_for(user, component)
56
- else # Assume 'all'
57
- query.amendables_and_visible_emendations_for(user, component)
16
+ if params[:activity] && user
17
+ case params[:activity]
18
+ when "voted"
19
+ add_scope(:voted_by, user)
20
+ when "my_proposals"
21
+ add_scope(:coauthored_by, user)
22
+ end
58
23
  end
59
- end
60
-
61
- # Filters Proposals by the name of the classes they are linked to. By default,
62
- # returns all Proposals. When a `related_to` param is given, then it camelcases item
63
- # to find the real class name and checks the links for the Proposals.
64
- #
65
- # The `related_to` param is expected to be in this form:
66
- #
67
- # "decidim/meetings/meeting"
68
- #
69
- # This can be achieved by performing `klass.name.underscore`.
70
- #
71
- # Returns only those proposals that are linked to the given class name.
72
- def search_related_to
73
- from = query
74
- .joins(:resource_links_from)
75
- .where(decidim_resource_links: { to_type: related_to.camelcase })
76
-
77
- to = query
78
- .joins(:resource_links_to)
79
- .where(decidim_resource_links: { from_type: related_to.camelcase })
24
+ add_scope(:with_type, [params[:type], user, component]) if params[:type]
80
25
 
81
- query.where(id: from).or(query.where(id: to))
26
+ super
82
27
  end
83
28
  end
84
29
  end
@@ -83,7 +83,7 @@
83
83
  </div>
84
84
 
85
85
  <div class="row column">
86
- <%= form.upload :file, optional: false %>
86
+ <%= form.upload :file %>
87
87
  <% if params[:id].present? %>
88
88
  <% if proposal.documents.present? %>
89
89
  <%= form.hidden_field :id, value: proposal.documents.first.id %>
@@ -1,4 +1,4 @@
1
- $("<%= escape_javascript(render partial: %q{js-callout}, locals: { css: %q{success}, text: flash.now[:notice] }) %>").appendTo(".callout-wrapper");
1
+ $("<%= escape_javascript(render partial: %q{decidim/admin/shared/js-callout}, locals: { css: %q{success}, text: flash.now[:notice] }) %>").appendTo(".callout-wrapper");
2
2
 
3
3
  <% proposal_ids.each do |id| %>
4
4
  $(".table-list [data-id='<%= id %>']")
@@ -0,0 +1,26 @@
1
+ <% if flash.now[:error].present? %>
2
+ $("<%= form_selector %> <%= attribute_selector %>").addClass("is-invalid-input")
3
+ $("<%= escape_javascript(render partial: %q{decidim/admin/shared/js-callout}, locals: { css: %q{alert}, text: flash.now[:error] }) %>").appendTo(".callout-wrapper");
4
+ <% end %>
5
+
6
+ <% if flash.now[:alert].present? %>
7
+ $("<%= form_selector %> <%= attribute_selector %>").removeClass("is-invalid-input")
8
+ $("<%= escape_javascript(render partial: %q{decidim/admin/shared/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{decidim/admin/shared/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
+ $("<%= form_selector %> <%= attribute_selector %>").removeClass("is-invalid-input")
20
+ $(".js-check-all").prop('checked', false);
21
+ $(".js-check-all-resources").prop('checked', false);
22
+ window.hideBulkActionsButton();
23
+ window.hideBulkActionForms();
24
+ window.showOtherActionsButtons();
25
+ window.selectedResourcesCountUpdate();
26
+ <% end %>
@@ -63,21 +63,13 @@
63
63
  <% if component_settings.attachments_allowed? %>
64
64
  <fieldset class="attachments_container">
65
65
  <legend><%= t("attachment_legend", scope: "decidim.proposals.collaborative_drafts.edit") %></legend>
66
- <%= form.fields_for :attachment, @form.attachment do |nested_form| %>
67
- <div class="field">
68
- <%= nested_form.text_field :title %>
69
- </div>
70
-
71
- <div class="field">
72
- <%= nested_form.upload :file, optional: false %>
73
- <% if @form.errors[:attachment].present? %>
74
- <% @form.errors[:attachment].each do |message| %>
75
- <small class="form-error is-visible">
76
- <%= message %>
77
- </small>
78
- <% end %>
79
- <% end %>
80
- </div>
81
- <% end %>
66
+ <div class="row column">
67
+ <%= form.attachment :documents,
68
+ multiple: false,
69
+ label: t("decidim.proposals.collaborative_drafts.new.add_file"),
70
+ button_label: t("decidim.proposals.collaborative_drafts.new.add_file"),
71
+ button_edit_label: t("decidim.proposals.collaborative_drafts.new.edit_file"),
72
+ help_i18n_scope: "decidim.forms.file_help.file" %>
73
+ </div>
82
74
  </fieldset>
83
75
  <% end %>
@@ -4,7 +4,7 @@
4
4
  <div class="filters__section">
5
5
  <div class="filters__search">
6
6
  <div class="input-group">
7
- <%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t(".search"), title: t(".search"), "aria-label": t(".search"), data: { disable_dynamic_change: true } %>
7
+ <%= form.search_field :search_text_cont, label: false, class: "input-group-field", placeholder: t(".search"), title: t(".search"), "aria-label": t(".search"), data: { disable_dynamic_change: true } %>
8
8
  <div class="input-group-button">
9
9
  <button type="submit" class="button" aria-controls="collaborative_drafts">
10
10
  <%= icon "magnifying-glass", aria_label: t(".search"), role: "img" %>
@@ -14,18 +14,18 @@
14
14
  </div>
15
15
  </div>
16
16
 
17
- <%= form.check_boxes_tree :state, filter_collaborative_drafts_state_values, legend_title: t(".state"), "aria-controls": "collaborative_drafts" %>
17
+ <%= form.check_boxes_tree :with_any_state, filter_collaborative_drafts_state_values, legend_title: t(".state"), "aria-controls": "collaborative_drafts" %>
18
18
 
19
19
  <% if linked_classes_for(Decidim::Proposals::CollaborativeDraft).any? %>
20
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" %>
21
21
  <% end %>
22
22
 
23
23
  <% if current_component.has_subscopes? %>
24
- <%= form.check_boxes_tree :scope_id, filter_scopes_values, legend_title: t(".scope"), "aria-controls": "collaborative_drafts" %>
24
+ <%= form.check_boxes_tree :with_any_scope, filter_scopes_values, legend_title: t(".scope"), "aria-controls": "collaborative_drafts" %>
25
25
  <% end %>
26
26
 
27
27
  <% if current_component.categories.any? %>
28
- <%= form.check_boxes_tree :category_id, filter_categories_values, legend_title: t(".category"), "aria-controls": "collaborative_drafts" %>
28
+ <%= form.check_boxes_tree :with_any_category, filter_categories_values, legend_title: t(".category"), "aria-controls": "collaborative_drafts" %>
29
29
  <% end %>
30
30
 
31
31
  <%= hidden_field_tag :order, order, id: nil, class: "order_filter" %>
@@ -28,4 +28,6 @@
28
28
  </div>
29
29
  </div>
30
30
 
31
- <%= javascript_pack_tag "decidim_proposals" %>
31
+ <% content_for :js_content do %>
32
+ <%= javascript_pack_tag "decidim_proposals" %>
33
+ <% end %>
@@ -21,4 +21,6 @@
21
21
  <div class="columns large-3"></div>
22
22
  </div>
23
23
 
24
- <%= javascript_pack_tag "decidim_proposals" %>
24
+ <% content_for :js_content do %>
25
+ <%= javascript_pack_tag "decidim_proposals" %>
26
+ <% end %>
@@ -67,49 +67,26 @@
67
67
  <% if component_settings.attachments_allowed? && @proposal %>
68
68
  <fieldset class="gallery__container photos_container">
69
69
  <legend><%= t("gallery_legend", scope: "decidim.proposals.proposals.edit") %></legend>
70
-
71
- <% if @form.photos.any? %>
72
- <% @form.photos.each do |photo| %>
73
- <div class="callout gallery__item" id="attachment_<%= photo.id %>" data-closable>
74
- <%= image_tag photo.thumbnail_url, class: "thumbnail", alt: photo.file.filename %>
75
- <%= form.hidden_field :photos, multiple: true, value: photo.id, id: "photo-#{photo.id}" %>
76
- <button class="close-button"
77
- aria-label="<%= t("delete_image", scope: "decidim.proposals.proposals.edit") %>"
78
- title="<%= t("delete_image", scope: "decidim.proposals.proposals.edit") %>"
79
- type="button"
80
- data-close>
81
- <span aria-hidden="true">&times;</span>
82
- </button>
83
- </div>
84
- <% end %>
85
- <% end %>
86
-
87
70
  <div class="row column">
88
- <%= form.file_field :add_photos, multiple: false, label: t("add_images", scope: "decidim.proposals.proposals.edit") %>
71
+ <%= form.attachment :photos,
72
+ multiple: false,
73
+ label: t("decidim.proposals.proposals.edit.add_image"),
74
+ button_label: t("decidim.proposals.proposals.edit.add_image"),
75
+ button_edit_label: t("decidim.proposals.proposals.edit.edit_image"),
76
+ help_i18n_scope: "decidim.forms.file_help.image",
77
+ extension_allowlist: Decidim::OrganizationSettings.for(current_organization).upload_allowed_file_extensions_image %>
89
78
  </div>
90
79
  </fieldset>
91
80
 
92
81
  <fieldset class="attachments_container gallery__container documents_container">
93
82
  <legend><%= t("attachment_legend", scope: "decidim.proposals.proposals.edit") %></legend>
94
-
95
- <% if @form.documents.any? %>
96
- <% @form.documents.each do |document| %>
97
- <div class="callout" id="attachment_<%= document.id %>" data-closable>
98
- <%= link_to translated_attribute(document.title), document.url %>
99
- <small><%= document.file_type %> <%= number_to_human_size(document.file_size) %></small>
100
- <%= form.hidden_field :documents, multiple: true, value: document.id, id: "document-#{document.id}" %>
101
- <button class="close-button"
102
- aria-label="<%= t("delete_document", scope: "decidim.proposals.proposals.edit") %>"
103
- title="<%= t("delete_document", scope: "decidim.proposals.proposals.edit") %>"
104
- type="button" data-close>
105
- <span aria-hidden="true">&times;</span>
106
- </button>
107
- </div>
108
- <% end %>
109
- <% end %>
110
-
111
83
  <div class="row column">
112
- <%= form.file_field :add_documents, multiple: true, label: t("add_documents", scope: "decidim.proposals.proposals.edit") %>
84
+ <%= form.attachment :documents,
85
+ multiple: true,
86
+ label: t("decidim.proposals.proposals.edit.add_documents"),
87
+ button_label: t("decidim.proposals.proposals.edit.add_documents"),
88
+ button_edit_label: t("decidim.proposals.proposals.edit.edit_documents"),
89
+ help_i18n_scope: "decidim.forms.file_help.file" %>
113
90
  </div>
114
91
  </fieldset>
115
92
  <% end %>
@@ -4,7 +4,7 @@
4
4
  <div class="filters__section">
5
5
  <div class="filters__search">
6
6
  <div class="input-group">
7
- <%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t(".search"), title: t(".search"), "aria-label": t(".search"), data: { disable_dynamic_change: true } %>
7
+ <%= form.search_field :search_text_cont, label: false, class: "input-group-field", placeholder: t(".search"), title: t(".search"), "aria-label": t(".search"), data: { disable_dynamic_change: true } %>
8
8
  <div class="input-group-button">
9
9
  <button type="submit" class="button" aria-controls="proposals">
10
10
  <%= icon "magnifying-glass", aria_label: t(".search"), role: "img" %>
@@ -17,19 +17,19 @@
17
17
  <%= form.hidden_field "state_withdraw", value: params.dig("filter", "state_withdraw") %>
18
18
 
19
19
  <% if component_settings.proposal_answering_enabled && current_settings.proposal_answering_enabled %>
20
- <%= form.check_boxes_tree :state, filter_proposals_state_values, legend_title: t(".state"), "aria-controls": "proposals" %>
20
+ <%= form.check_boxes_tree :with_any_state, filter_proposals_state_values, legend_title: t(".state"), "aria-controls": "proposals" %>
21
21
  <% end %>
22
22
 
23
23
  <% if current_component.has_subscopes? %>
24
- <%= form.check_boxes_tree :scope_id, filter_scopes_values, legend_title: t(".scope"), "aria-controls": "proposals" %>
24
+ <%= form.check_boxes_tree :with_any_scope, filter_scopes_values, legend_title: t(".scope"), "aria-controls": "proposals" %>
25
25
  <% end %>
26
26
 
27
27
  <% if current_component.categories.any? %>
28
- <%= form.check_boxes_tree :category_id, filter_categories_values, legend_title: t(".category"), "aria-controls": "proposals" %>
28
+ <%= form.check_boxes_tree :with_any_category, filter_categories_values, legend_title: t(".category"), "aria-controls": "proposals" %>
29
29
  <% end %>
30
30
 
31
31
  <% if component_settings.official_proposals_enabled %>
32
- <%= form.check_boxes_tree :origin, filter_origin_values, legend_title: t(".origin"), "aria-controls": "proposals" %>
32
+ <%= form.check_boxes_tree :with_any_origin, filter_origin_values, legend_title: t(".origin"), "aria-controls": "proposals" %>
33
33
  <% end %>
34
34
 
35
35
  <% if current_user %>
@@ -1,7 +1,7 @@
1
- <% if params.dig("filter", "state_withdraw").present? && params["filter"]["state_withdraw"] == "withdrawn" %>
1
+ <% if params.dig("filter", "with_availability").present? && params["filter"]["with_availability"] == "withdrawn" %>
2
2
  <div class="callout warning">
3
3
  <%= t("decidim.proposals.proposals.index.text_banner",
4
- go_back_link: link_to(t("decidim.proposals.proposals.index.click_here"), proposals_path("filter[state_withdraw]" => nil)),
4
+ go_back_link: link_to(t("decidim.proposals.proposals.index.click_here"), proposals_path("filter[with_availability]" => nil)),
5
5
  ).html_safe %>
6
6
  </div>
7
7
  <% end %>
@@ -37,10 +37,10 @@
37
37
 
38
38
  <div class="row">
39
39
  <div class="text-right">
40
- <% if params.dig("filter", "state_withdraw").present? && params["filter"]["state_withdraw"] == "withdrawn" %>
41
- <%= link_to t("decidim.proposals.proposals.index.see_all"), proposals_path("filter[state_withdraw]" => nil) %>
40
+ <% if params.dig("filter", "with_availability").present? && params["filter"]["with_availability"] == "withdrawn" %>
41
+ <%= link_to t("decidim.proposals.proposals.index.see_all"), proposals_path("filter[with_availability]" => nil) %>
42
42
  <% else %>
43
- <%= link_to t("decidim.proposals.proposals.index.see_all_withdrawn"), proposals_path(filter: { state_withdraw: "withdrawn", state: [""] }) %>
43
+ <%= link_to t("decidim.proposals.proposals.index.see_all_withdrawn"), proposals_path(filter: { with_availability: "withdrawn", state: [""] }) %>
44
44
  <% end %>
45
45
  </div>
46
46
  </div>
@@ -21,4 +21,6 @@
21
21
  <div class="columns large-3"></div>
22
22
  </div>
23
23
 
24
- <%= javascript_pack_tag "decidim_proposals" %>
24
+ <% content_for :js_content do %>
25
+ <%= javascript_pack_tag "decidim_proposals" %>
26
+ <% end %>
@@ -28,4 +28,6 @@
28
28
  </div>
29
29
  </div>
30
30
 
31
- <%= javascript_pack_tag "decidim_proposals" %>
31
+ <% content_for :js_content do %>
32
+ <%= javascript_pack_tag "decidim_proposals" %>
33
+ <% end %>
@@ -23,4 +23,6 @@
23
23
  <div class="columns large-3"></div>
24
24
  </div>
25
25
 
26
- <%= javascript_pack_tag "decidim_proposals" %>
26
+ <% content_for :js_content do %>
27
+ <%= javascript_pack_tag "decidim_proposals" %>
28
+ <% end %>
@@ -35,4 +35,6 @@
35
35
  <div class="columns large-3"></div>
36
36
  </div>
37
37
 
38
- <%= javascript_pack_tag "decidim_proposals" %>
38
+ <% content_for :js_content do %>
39
+ <%= javascript_pack_tag "decidim_proposals" %>
40
+ <% end %>
@@ -1,3 +1,4 @@
1
+ ---
1
2
  ar:
2
3
  activemodel:
3
4
  attributes:
@@ -36,10 +37,6 @@ ar:
36
37
  valuator_role_id: اسم المُقيِّم
37
38
  errors:
38
39
  models:
39
- participatory_text:
40
- attributes:
41
- document:
42
- invalid_document_type: 'نوع المستند غير صالح. التنسيقات المقبولة هي: %{valid_mime_types}'
43
40
  proposal:
44
41
  attributes:
45
42
  add_documents:
@@ -432,7 +429,6 @@ ar:
432
429
  all: الكل
433
430
  filter_origin_values:
434
431
  all: الكل
435
- citizens: المواطنون
436
432
  meetings: اجتماعات
437
433
  official: الرسمية
438
434
  user_groups: المجموعات
@@ -610,12 +606,8 @@ ar:
610
606
  many: "%{count} مقترحات"
611
607
  other: "%{count} مقترحات"
612
608
  edit:
613
- add_documents: المستندات
614
- add_images: ملف
615
609
  attachment_legend: "(اختياري) إضافة مرفق"
616
610
  back: الى الخلف
617
- delete_document: حذف المستند
618
- delete_image: حذف الصورة
619
611
  select_a_category: الرجاء تحديد الفئة
620
612
  send: إرسال
621
613
  title: تعديل الاقتراح
@@ -1,3 +1,4 @@
1
+ ---
1
2
  bg:
2
3
  activemodel:
3
4
  attributes:
@@ -36,10 +37,6 @@ bg:
36
37
  valuator_role_id: Име на проверяващ
37
38
  errors:
38
39
  models:
39
- participatory_text:
40
- attributes:
41
- document:
42
- invalid_document_type: 'Невалиден тип документ. Допустимите формати са: %{valid_mime_types}'
43
40
  proposal:
44
41
  attributes:
45
42
  add_documents:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  ca:
2
3
  activemodel:
3
4
  attributes:
@@ -45,7 +46,7 @@ ca:
45
46
  participatory_text:
46
47
  attributes:
47
48
  document:
48
- invalid_document_type: 'Tipus de document no vàlid. Els formats acceptats són: %{valid_mime_types}'
49
+ allowed_file_content_types: 'Tipus de document invàlid. Els formats que s''accepten són: %{types}'
49
50
  proposal:
50
51
  attributes:
51
52
  add_documents:
@@ -213,6 +214,7 @@ ca:
213
214
  endorsements_enabled: Adhesions habilitades
214
215
  proposal_answering_enabled: Resposta a propostes activada
215
216
  publish_answers_immediately: Publica les respostes a les propostes immediatament
217
+ publish_answers_immediately_help_html: 'Tingues present que si respons alguna proposta sense que això estigui habilitat, l''hauràs de publicar-les manualment seleccionant-les i fent servir l''acció de publicar. Per a més informació sobre el funcionament, consulta la <a href="https://docs.decidim.org/en/admin/components/proposals/answers#_publication" target="_blank">pàgina de documentació de les respostes a les propostes</a>.'
216
218
  suggested_hashtags: Hashtags suggerits a les participants per a noves propostes
217
219
  votes_blocked: Suports bloquejats
218
220
  votes_enabled: Suports habilitats
@@ -302,6 +304,7 @@ ca:
302
304
  email_outro: Has rebut aquesta notificació perquè estàs seguint "%{participatory_space_title}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
303
305
  email_subject: Nova proposta "%{resource_title}" afegida a %{participatory_space_title}
304
306
  notification_title: '%{author} ha afegit la proposta <a href="%{resource_path}">%{resource_title}</a> a %{participatory_space_title}'
307
+ notification_title_official: S'ha afegit la proposta oficial <a href="%{resource_path}">%{resource_title}</a> a %{participatory_space_title}
305
308
  proposal_rejected:
306
309
  affected_user:
307
310
  email_intro: 'La teva proposta "%{resource_title}" ha estat rebutjada. Pots llegir la resposta en aquesta pàgina:'
@@ -433,14 +436,14 @@ ca:
433
436
  info_1: Les seccions següents s'han convertit a propostes. Ara pots revisar-les i ajustar-les abans de publicar.
434
437
  publish_document: Publicar el document
435
438
  save_draft: Desa l'esborrany
436
- title: PREVISUALITZAR EL TEXT PARTICIPATIU
439
+ title: Previsualitzar el text participatiu
437
440
  new_import:
438
441
  accepted_mime_types:
439
442
  md: Markdown
440
443
  odt: ODT
441
444
  bottom_hint: "(Podràs previsualitzar i ordenar les seccions del document)"
442
445
  document_legend: 'Afegeix un document de menys de 2 Mb, cadascuna de les seccions (fins a 3 nivells de profunditat) es convertiran a propostes. Els formats suportats són: %{valid_mime_types}'
443
- title: AFEGIR DOCUMENT
446
+ title: Afegir document
444
447
  upload_document: Puja el document
445
448
  publish:
446
449
  invalid: No s'han pogut publicar propostes
@@ -594,9 +597,9 @@ ca:
594
597
  all: Totes
595
598
  filter_origin_values:
596
599
  all: Totes
597
- citizens: Ciutadania
598
600
  meetings: Trobades
599
601
  official: Oficial
602
+ participants: Participants
600
603
  user_groups: Grups
601
604
  filter_scope_values:
602
605
  all: Totes
@@ -659,6 +662,8 @@ ca:
659
662
  filter_by: Filtra per
660
663
  unfold: Desplega
661
664
  new:
665
+ add_file: Afegir fitxer
666
+ edit_file: Editar el fitxer
662
667
  send: Continua
663
668
  new_collaborative_draft_button:
664
669
  new_collaborative_draft: Nou esborrany col·laboratiu
@@ -769,12 +774,12 @@ ca:
769
774
  description: Les coordenades s'actualitzaran quan facis clic en el botó 'previsualitzar'. No obstant això, la direcció no canvia.
770
775
  instructions: Pots moure la ubicació en el mapa.
771
776
  edit:
772
- add_documents: Documents
773
- add_images: Arxiu
777
+ add_documents: Afegir documents
778
+ add_image: Afegir imatge
774
779
  attachment_legend: "(Opcional) Afegiu un fitxer adjunt"
775
780
  back: Torna
776
- delete_document: Eliminar document
777
- delete_image: Eliminar imatge
781
+ edit_documents: Editar documents
782
+ edit_image: Editar imatge
778
783
  gallery_legend: "(Opcional) Afegir una imatge a la targeta de proposta"
779
784
  select_a_category: Si us plau, selecciona una categoria
780
785
  send: Envia
@@ -1,3 +1,4 @@
1
+ ---
1
2
  cs:
2
3
  activemodel:
3
4
  attributes:
@@ -45,7 +46,7 @@ cs:
45
46
  participatory_text:
46
47
  attributes:
47
48
  document:
48
- invalid_document_type: 'Neplatný typ dokumentu. Přijaté formáty jsou: %{valid_mime_types}'
49
+ allowed_file_content_types: 'Neplatný typ dokumentu. Přijatelné formáty jsou: %{types}'
49
50
  proposal:
50
51
  attributes:
51
52
  add_documents:
@@ -148,7 +149,7 @@ cs:
148
149
  amendments_wizard_help_text: Nápověda průvodce k Pozměňovacím návrhům
149
150
  announcement: Oznámení
150
151
  attachments_allowed: Povolit přílohy
151
- can_accumulate_supports_beyond_threshold: Mohou hromadit podpěry za prahem
152
+ can_accumulate_supports_beyond_threshold: Mohou hromadit podpory za prahem
152
153
  collaborative_drafts_enabled: Společné koncepty povoleny
153
154
  comments_enabled: Komentáře povoleny
154
155
  comments_max_length: Maximální délka komentáře (ponechte 0 pro výchozí hodnotu)
@@ -221,6 +222,7 @@ cs:
221
222
  endorsements_enabled: Schvalování povoleno
222
223
  proposal_answering_enabled: Odpovídání návrhu je povoleno
223
224
  publish_answers_immediately: Okamžitě publikovat odpovědi návrhu
225
+ publish_answers_immediately_help_html: 'Mějte na paměti, že pokud odpovíte na jakýkoli návrh bez tohoto povolení, budete je muset publikovat ručně jejich výběrem a použitím publikační akce. Více informací o tom, jak to funguje, naleznete na <a href="https://docs.decidim.org/en/admin/components/proposals/answers#_publication" target="_blank">stránce odpovědi návrhů</a>.'
224
226
  suggested_hashtags: Hashtagy navržené uživatelům pro nové návrhy
225
227
  votes_blocked: Hlasování bylo blokováno
226
228
  votes_enabled: Hlasování povoleno
@@ -310,6 +312,7 @@ cs:
310
312
  email_outro: Toto oznámení jste obdrželi, protože jste sledovali "%{participatory_space_title}". Můžete jej odhlásit od předchozího odkazu.
311
313
  email_subject: Nový návrh "%{resource_title}" byl přidán k %{participatory_space_title}
312
314
  notification_title: Návrh <a href="%{resource_path}">%{resource_title}</a> byl přidán do %{participatory_space_title} uživatelem %{author}
315
+ notification_title_official: Oficiální návrh <a href="%{resource_path}">%{resource_title}</a> byl přidán do %{participatory_space_title}
313
316
  proposal_rejected:
314
317
  affected_user:
315
318
  email_intro: 'Váš návrh "%{resource_title}" byl zamítnut. Odpověď můžete číst na této stránce:'
@@ -608,9 +611,9 @@ cs:
608
611
  all: Vše
609
612
  filter_origin_values:
610
613
  all: Vše
611
- citizens: Občané
612
614
  meetings: Setkání
613
615
  official: Oficiální
616
+ participants: Účastníci
614
617
  user_groups: Skupiny uživatelů
615
618
  filter_scope_values:
616
619
  all: Vše
@@ -675,6 +678,8 @@ cs:
675
678
  filter_by: Filtrovat podle
676
679
  unfold: Rozvinout
677
680
  new:
681
+ add_file: Přidat soubor
682
+ edit_file: Upravit soubor
678
683
  send: Pokračovat
679
684
  new_collaborative_draft_button:
680
685
  new_collaborative_draft: Nový návrh spolupráce
@@ -789,12 +794,12 @@ cs:
789
794
  description: Souřadnice budou aktualizovány po kliknutí na tlačítko 'náhled'. Adresa se však nemění.
790
795
  instructions: Můžete přesunout bod na mapě.
791
796
  edit:
792
- add_documents: Dokumenty
793
- add_images: Soubor
797
+ add_documents: Přidat dokumenty
798
+ add_image: Přidat obrázek
794
799
  attachment_legend: "(Volitelné) Přidání přílohy"
795
800
  back: Zadní
796
- delete_document: Smazat dokument
797
- delete_image: Smazat obrázek
801
+ edit_documents: Upravit dokumenty
802
+ edit_image: Upravit obrázek
798
803
  gallery_legend: "(Volitelné) Přidejte obrázek na kartu návrhu"
799
804
  select_a_category: Vyberte kategorii
800
805
  send: Poslat