decidim-debates 0.31.6 → 0.32.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -3
  3. data/app/cells/decidim/debates/debate_l_cell.rb +1 -0
  4. data/app/commands/decidim/debates/admin/update_debate.rb +1 -1
  5. data/app/commands/decidim/debates/close_debate.rb +2 -0
  6. data/app/commands/decidim/debates/update_debate.rb +1 -1
  7. data/app/controllers/decidim/debates/admin/debate_closes_controller.rb +1 -1
  8. data/app/controllers/decidim/debates/admin/debates_controller.rb +4 -3
  9. data/app/controllers/decidim/debates/debates_controller.rb +14 -4
  10. data/app/controllers/decidim/debates/orderable.rb +16 -2
  11. data/app/controllers/decidim/debates/versions_controller.rb +11 -1
  12. data/app/forms/decidim/debates/admin/debate_form.rb +3 -7
  13. data/app/forms/decidim/debates/debate_form.rb +2 -2
  14. data/app/helpers/decidim/debates/application_helper.rb +15 -3
  15. data/app/models/decidim/debates/debate.rb +10 -1
  16. data/app/permissions/decidim/debates/permissions.rb +2 -0
  17. data/app/views/decidim/debates/admin/debates/_actions.html.erb +1 -1
  18. data/app/views/decidim/debates/admin/debates/_debate-tr.html.erb +2 -2
  19. data/app/views/decidim/debates/admin/debates/_form.html.erb +3 -7
  20. data/app/views/decidim/debates/debates/_debate_actions.html.erb +8 -8
  21. data/app/views/decidim/debates/debates/_form.html.erb +1 -1
  22. data/app/views/decidim/debates/debates/index.html.erb +1 -1
  23. data/config/locales/ar.yml +1 -2
  24. data/config/locales/bg.yml +2 -2
  25. data/config/locales/ca-IT.yml +5 -6
  26. data/config/locales/ca.yml +5 -6
  27. data/config/locales/cs.yml +5 -4
  28. data/config/locales/de.yml +4 -2
  29. data/config/locales/el.yml +2 -2
  30. data/config/locales/en.yml +4 -4
  31. data/config/locales/es-MX.yml +5 -6
  32. data/config/locales/es-PY.yml +5 -6
  33. data/config/locales/es.yml +5 -6
  34. data/config/locales/eu.yml +13 -14
  35. data/config/locales/fi-plain.yml +4 -5
  36. data/config/locales/fi.yml +4 -5
  37. data/config/locales/fr-CA.yml +5 -6
  38. data/config/locales/fr.yml +5 -6
  39. data/config/locales/ga-IE.yml +0 -1
  40. data/config/locales/gl.yml +1 -2
  41. data/config/locales/hu.yml +2 -2
  42. data/config/locales/id-ID.yml +1 -2
  43. data/config/locales/is-IS.yml +1 -2
  44. data/config/locales/it.yml +2 -2
  45. data/config/locales/ja.yml +5 -6
  46. data/config/locales/lb.yml +1 -1
  47. data/config/locales/lt.yml +2 -2
  48. data/config/locales/lv.yml +1 -2
  49. data/config/locales/nl.yml +2 -2
  50. data/config/locales/no.yml +2 -2
  51. data/config/locales/pl.yml +2 -2
  52. data/config/locales/pt-BR.yml +6 -3
  53. data/config/locales/pt.yml +4 -2
  54. data/config/locales/ro-RO.yml +2 -2
  55. data/config/locales/ru.yml +0 -1
  56. data/config/locales/sk.yml +2 -172
  57. data/config/locales/sl.yml +0 -1
  58. data/config/locales/sv.yml +6 -3
  59. data/config/locales/tr-TR.yml +4 -4
  60. data/config/locales/uk.yml +0 -1
  61. data/config/locales/zh-CN.yml +2 -2
  62. data/config/locales/zh-TW.yml +2 -2
  63. data/db/migrate/20200902133452_add_cached_comment_metadata_to_debates.rb +1 -1
  64. data/db/migrate/20251114092453_remove_legacy_images_from_debates_module.rb +7 -0
  65. data/db/migrate/20260208201402_remove_user_group_debates.rb +13 -0
  66. data/decidim-debates.gemspec +8 -10
  67. data/lib/decidim/api/debate_type.rb +0 -1
  68. data/lib/decidim/api/debates_type.rb +2 -2
  69. data/lib/decidim/api/mutations/close_debate_attributes.rb +12 -0
  70. data/lib/decidim/api/mutations/close_debate_type.rb +47 -0
  71. data/lib/decidim/api/mutations/create_debate_type.rb +44 -0
  72. data/lib/decidim/api/mutations/debate_attributes.rb +14 -0
  73. data/lib/decidim/api/mutations/debate_mutation_type.rb +15 -0
  74. data/lib/decidim/api/mutations/debates_mutation_type.rb +24 -0
  75. data/lib/decidim/api/mutations/update_debate_type.rb +57 -0
  76. data/lib/decidim/debates/api.rb +8 -0
  77. data/lib/decidim/debates/component.rb +3 -7
  78. data/lib/decidim/debates/engine.rb +6 -0
  79. data/lib/decidim/debates/version.rb +1 -1
  80. metadata +23 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8a4ab295f8108e7cd6d52b1d12632d1dc89e7eda1fdea948b0b36607e2b25ab
4
- data.tar.gz: 071fbd2a99a71195a114027fd13de4312bb19787d99856c3aec5969cb005182c
3
+ metadata.gz: 504cf530bc1f11776d3cd5e93cd781f4888762c2b07597dd55f770f31c675707
4
+ data.tar.gz: a77fff7b61b400f0d2d3bce57683cd0c3c4f8e7872da65151f505f661b2c8ec4
5
5
  SHA512:
6
- metadata.gz: 062757461e0bc2388c75005f42b4613623fea049a725be1ce9d745ba0070182d8bf8d4eec1b6be32d59772dbfd3d515b38b2df534361b4a80d65264290ab60bb
7
- data.tar.gz: 549fd26d087f1e90df2ec173ca8a8b89d9f734e70ca8c780b955d05b65bb83c693bcea1898aa183bb962e5015fa8ccfeb6736b70b376e0a42e871ef739956f1e
6
+ metadata.gz: 7fe7b852e10a54d98c97ae036879737a8cdf9c719f7cfcaee3ba4118fcbe0bc158dc8328c73f0df23e7e69672e446209936e8ec58cc4e634e711bd196b4ba245
7
+ data.tar.gz: 073e5d311a9649489291335fb94cdd9d6f8734a25adb5c2907830dd2dcb04b4f2751764dedc692baa756e2c2c58980eabc5ae0a78972248389ffd8ee33a0af4f
data/README.md CHANGED
@@ -1,10 +1,14 @@
1
- # Decidim::Debates
1
+ # decidim-debates
2
2
 
3
- The Debates module adds debate to any participatory process. It adds a CRUD engine to the admin and public view scoped inside the participatory process.
3
+ The Debates module adds debate to any participatory space. It adds a CRUD engine to the admin and public view scoped inside the participatory space.
4
4
 
5
5
  ## Usage
6
6
 
7
- Debates will be available as a Component for any participatory space.
7
+ Debates will be available as a Component for any Participatory Space.
8
+
9
+ ## Installation
10
+
11
+ This is on the default Decidim installation so you should not change anything to use this component.
8
12
 
9
13
  ## Contributing
10
14
 
@@ -8,6 +8,7 @@ module Decidim
8
8
  # for a given instance of a Debate
9
9
  class DebateLCell < Decidim::CardLCell
10
10
  include Decidim::SanitizeHelper
11
+
11
12
  delegate :component_settings, to: :controller
12
13
 
13
14
  alias debate model
@@ -45,7 +45,7 @@ module Decidim
45
45
 
46
46
  def run_after_hooks
47
47
  @attached_to = resource
48
- attachment_cleanup!(include_all_attachments: true)
48
+ document_cleanup!(include_all_attachments: true)
49
49
  create_attachments(first_weight: 1) if process_attachments?
50
50
  end
51
51
  end
@@ -28,6 +28,8 @@ module Decidim
28
28
 
29
29
  attr_reader :form
30
30
 
31
+ delegate :debate, to: :form
32
+
31
33
  def close_debate
32
34
  @debate = Decidim.traceability.perform_action!(
33
35
  :close,
@@ -56,7 +56,7 @@ module Decidim
56
56
 
57
57
  def run_after_hooks
58
58
  @attached_to = resource
59
- attachment_cleanup!(include_all_attachments: true)
59
+ document_cleanup!(include_all_attachments: true)
60
60
  create_attachments(first_weight: 1) if process_attachments?
61
61
  end
62
62
  end
@@ -26,7 +26,7 @@ module Decidim
26
26
 
27
27
  on(:invalid) do
28
28
  flash.now[:alert] = I18n.t("debates.close.invalid", scope: "decidim.debates")
29
- render action: "edit", status: :unprocessable_entity
29
+ render action: "edit", status: :unprocessable_content
30
30
  end
31
31
  end
32
32
  end
@@ -6,6 +6,7 @@ module Decidim
6
6
  # This controller allows an admin to manage debates from a Participatory Space
7
7
  class DebatesController < Decidim::Debates::Admin::ApplicationController
8
8
  include Decidim::Admin::HasTrashableResources
9
+
9
10
  helper Decidim::ApplicationHelper
10
11
 
11
12
  helper_method :debates
@@ -34,14 +35,14 @@ module Decidim
34
35
 
35
36
  on(:invalid) do
36
37
  flash.now[:alert] = I18n.t("debates.create.invalid", scope: "decidim.debates.admin")
37
- render action: "new", status: :unprocessable_entity
38
+ render action: "new", status: :unprocessable_content
38
39
  end
39
40
  end
40
41
  end
41
42
 
42
43
  def edit
43
44
  enforce_permission_to(:update, :debate, debate:)
44
- @form = form(Decidim::Debates::Admin::DebateForm).from_model(debate, debate:)
45
+ @form = form(Decidim::Debates::Admin::DebateForm).from_model(debate)
45
46
  end
46
47
 
47
48
  def update
@@ -57,7 +58,7 @@ module Decidim
57
58
 
58
59
  on(:invalid) do
59
60
  flash.now[:alert] = I18n.t("debates.update.invalid", scope: "decidim.debates.admin")
60
- render action: "edit", status: :unprocessable_entity
61
+ render action: "edit", status: :unprocessable_content
61
62
  end
62
63
  end
63
64
  end
@@ -35,7 +35,7 @@ module Decidim
35
35
 
36
36
  on(:invalid) do
37
37
  flash.now[:alert] = I18n.t("debates.create.invalid", scope: "decidim.debates")
38
- render action: "new", status: :unprocessable_entity
38
+ render action: "new", status: :unprocessable_content
39
39
  end
40
40
  end
41
41
  end
@@ -63,7 +63,7 @@ module Decidim
63
63
 
64
64
  on(:invalid) do
65
65
  flash.now[:alert] = I18n.t("debates.update.invalid", scope: "decidim.debates")
66
- render :edit, status: :unprocessable_entity
66
+ render :edit, status: :unprocessable_content
67
67
  end
68
68
  end
69
69
  end
@@ -76,12 +76,12 @@ module Decidim
76
76
  CloseDebate.call(@form) do
77
77
  on(:ok) do |debate|
78
78
  flash[:notice] = I18n.t("debates.close.success", scope: "decidim.debates")
79
- redirect_back fallback_location: Decidim::ResourceLocatorPresenter.new(debate).path
79
+ redirect_back_or_to(Decidim::ResourceLocatorPresenter.new(debate).path)
80
80
  end
81
81
 
82
82
  on(:invalid) do
83
83
  flash[:alert] = I18n.t("debates.close.invalid", scope: "decidim.debates")
84
- redirect_back fallback_location: Decidim::ResourceLocatorPresenter.new(debate).path
84
+ redirect_back_or_to(Decidim::ResourceLocatorPresenter.new(debate).path)
85
85
  end
86
86
  end
87
87
  end
@@ -125,6 +125,16 @@ module Decidim
125
125
  def tab_panel_items
126
126
  @tab_panel_items ||= attachments_tab_panel_items(debate)
127
127
  end
128
+
129
+ def add_breadcrumb_item
130
+ return {} if debate.blank?
131
+
132
+ {
133
+ label: translated_attribute(debate.title),
134
+ url: Decidim::EngineRouter.main_proxy(current_component).debate_path(debate),
135
+ active: false
136
+ }
137
+ end
128
138
  end
129
139
  end
130
140
  end
@@ -14,18 +14,32 @@ module Decidim
14
14
  private
15
15
 
16
16
  def available_orders
17
- @available_orders ||= %w(random recent commented updated)
17
+ @available_orders ||= possible_orders
18
+ end
19
+
20
+ def possible_orders
21
+ @possible_orders ||= begin
22
+ possible_orders = %w(random recent updated)
23
+ possible_orders << "most_commented" if most_commented_order_available?
24
+ possible_orders
25
+ end
18
26
  end
19
27
 
20
28
  def default_order
21
29
  "updated"
22
30
  end
23
31
 
32
+ def most_commented_order_available?
33
+ return @most_commented_order_available if defined?(@most_commented_order_available)
34
+
35
+ @most_commented_order_available = Decidim::Debates::Debate.most_commented_available?(current_component)
36
+ end
37
+
24
38
  def reorder(debates)
25
39
  case order
26
40
  when "recent"
27
41
  debates.order(created_at: :desc)
28
- when "commented"
42
+ when "most_commented"
29
43
  debates.order(comments_count: :desc)
30
44
  when "updated"
31
45
  debates.order(updated_at: :desc)
@@ -9,7 +9,17 @@ module Decidim
9
9
  include Decidim::ResourceVersionsConcern
10
10
 
11
11
  def versioned_resource
12
- @versioned_resource ||= present(Debate.where(component: current_component).not_hidden.find(params[:debate_id]))
12
+ @versioned_resource ||= Debate.where(component: current_component).not_hidden.find(params[:debate_id])
13
+ end
14
+
15
+ def add_breadcrumb_item
16
+ return {} if versioned_resource.blank?
17
+
18
+ {
19
+ label: translated_attribute(versioned_resource.title),
20
+ url: Decidim::EngineRouter.main_proxy(current_component).debate_path(versioned_resource),
21
+ active: false
22
+ }
13
23
  end
14
24
  end
15
25
  end
@@ -23,7 +23,7 @@ module Decidim
23
23
  attribute :comments_enabled, Boolean, default: true
24
24
  attribute :attachment, AttachmentForm
25
25
 
26
- attachments_attribute :attachments
26
+ attachments_attribute :documents
27
27
 
28
28
  validates :title, :description, translatable_presence: true
29
29
  validates :title, :description, translated_etiquette: true
@@ -42,11 +42,7 @@ module Decidim
42
42
  self.title = presenter.title(all_locales: title.is_a?(Hash))
43
43
  self.description = presenter.description(all_locales: description.is_a?(Hash))
44
44
  self.comments_layout = model.comments_layout || "single_column"
45
- self.attachments = model.attachments
46
- end
47
-
48
- def comments_layout_locked?
49
- debate&.comments_count&.positive?
45
+ self.documents = model.attachments
50
46
  end
51
47
 
52
48
  def participatory_space_manifest
@@ -76,7 +72,7 @@ module Decidim
76
72
  # an error, the attachment is lost, so we need a way to inform the user of
77
73
  # this problem.
78
74
  def notify_missing_attachment_if_errored
79
- errors.add(:add_attachments, :needs_to_be_reattached) if errors.any? && add_attachments.present?
75
+ errors.add(:add_documents, :needs_to_be_reattached) if errors.any? && add_documents.present?
80
76
  end
81
77
  end
82
78
  end
@@ -13,7 +13,7 @@ module Decidim
13
13
  attribute :description, String
14
14
  attribute :attachment, AttachmentForm
15
15
 
16
- attachments_attribute :attachments
16
+ attachments_attribute :documents
17
17
 
18
18
  validates :title, :description, presence: true
19
19
  validates :title, :description, etiquette: true
@@ -26,7 +26,7 @@ module Decidim
26
26
  # user locale is taken as the text locale.
27
27
  self.title = debate.title.values.first
28
28
  self.description = debate.description.values.first
29
- self.attachments = debate.attachments
29
+ self.documents = debate.attachments
30
30
  end
31
31
 
32
32
  def participatory_space_manifest
@@ -72,19 +72,31 @@ module Decidim
72
72
  @filter_sections ||= begin
73
73
  items = [{
74
74
  method: :with_any_state,
75
+ name: "[with_any_state]",
75
76
  collection: filter_debates_state_values,
76
77
  label: t("decidim.debates.debates.filters.state"),
77
78
  id: "date",
78
79
  type: :radio_buttons
79
80
  }]
80
81
  current_component.available_taxonomy_filters.each do |taxonomy_filter|
81
- items.append(method: "with_any_taxonomies[#{taxonomy_filter.root_taxonomy_id}]",
82
+ items.append(method: :with_any_taxonomies,
83
+ name: "[with_any_taxonomies][#{taxonomy_filter.root_taxonomy_id}]",
82
84
  collection: filter_taxonomy_values_for(taxonomy_filter),
83
85
  label: decidim_sanitize_translated(taxonomy_filter.name),
84
86
  id: "taxonomy-#{taxonomy_filter.root_taxonomy_id}")
85
87
  end
86
- items.append(method: :with_any_origin, collection: filter_origin_values, label: t("decidim.debates.debates.filters.origin"), id: "origin")
87
- items.append(method: :activity, collection: activity_filter_values, label: t("decidim.debates.debates.filters.activity"), id: "activity") if current_user
88
+ items.append(method: :with_any_origin,
89
+ name: "[with_any_origin]",
90
+ collection: filter_origin_values,
91
+ label: t("decidim.debates.debates.filters.origin"),
92
+ id: "origin")
93
+ if current_user
94
+ items.append(method: :activity,
95
+ name: "[activity]",
96
+ collection: activity_filter_values,
97
+ label: t("decidim.debates.debates.filters.activity"),
98
+ id: "activity")
99
+ end
88
100
 
89
101
  items.reject { |item| item[:collection].blank? }
90
102
  end
@@ -220,7 +220,7 @@ module Decidim
220
220
  # rubocop:disable Rails/SkipsModelValidations
221
221
  def update_comments_count
222
222
  comments_count = comments.not_hidden.not_deleted.count
223
- last_comment = comments.not_hidden.not_deleted.order("created_at DESC").first
223
+ last_comment = comments.not_hidden.not_deleted.order(created_at: :desc).first
224
224
 
225
225
  update_columns(
226
226
  last_comment_at: last_comment&.created_at,
@@ -236,6 +236,15 @@ module Decidim
236
236
  # Create the :search_text ransacker alias for searching from both of these.
237
237
  ransacker_i18n_multi :search_text, [:title, :description]
238
238
 
239
+ def self.most_commented_available?(component)
240
+ return false unless component.settings.comments_enabled?
241
+
242
+ where(component:)
243
+ .not_hidden
244
+ .where("comments_count > 0")
245
+ .exists?
246
+ end
247
+
239
248
  def self.ransackable_scopes(_auth_object = nil)
240
249
  [:with_any_state, :with_any_origin, :with_any_taxonomies]
241
250
  end
@@ -31,6 +31,8 @@ module Decidim
31
31
  private
32
32
 
33
33
  def can_create_debate?
34
+ return false unless user
35
+
34
36
  authorized?(:create) &&
35
37
  current_settings&.creation_enabled? && component.participatory_space.can_participate?(user)
36
38
  end
@@ -57,7 +57,7 @@
57
57
  <% end %>
58
58
  <% else %>
59
59
  <div class="dropdown__button-disabled">
60
- <%= with_tooltip t("tooltips.deleted_debates_info", scope: "decidim.admin"), class: :left do %>
60
+ <%= with_tooltip t("tooltips.deleted_debates_info", scope: "decidim.admin") do %>
61
61
  <%= icon "delete-bin-line", class: "text-gray" %>
62
62
  <span>
63
63
  <%= t("actions.soft_delete", scope: "decidim.admin") %>
@@ -8,12 +8,12 @@
8
8
  </td>
9
9
  <td data-label="<%= t("models.debate.fields.start_time", scope: "decidim.debates") %>">
10
10
  <% if debate.start_time %>
11
- <%= l debate.start_time, format: :long %>
11
+ <%= l debate.start_time, format: :decidim_short %>
12
12
  <% end %>
13
13
  </td>
14
14
  <td data-label="<%= t("models.debate.fields.end_time", scope: "decidim.debates") %>">
15
15
  <% if debate.end_time %>
16
- <%= l debate.end_time, format: :long %>
16
+ <%= l debate.end_time, format: :decidim_short %>
17
17
  <% end %>
18
18
  </td>
19
19
  <td data-label="<%= t("models.debate.fields.taxonomies", scope: "decidim.debates") %>">
@@ -48,13 +48,9 @@
48
48
 
49
49
  <div class="row column">
50
50
  <%= label_tag :comments_layout, t(".comments_visualization") %>
51
- <% if @form.comments_layout_locked? %>
52
- <%= cell("decidim/announcement", t(".comments_layout_locked_warning"), callout_class: "warning") %>
53
- <% else %>
54
- <span class="help-text"><%= t(".comments_warning") %></span>
55
- <% end %>
51
+ <span class="help-text"><%= t(".comments_warning") %></span>
56
52
  <div>
57
- <%= form.collection_radio_buttons(:comments_layout, [[t(".single_column"), "single_column"], [t(".two_columns"), "two_columns"]], :last, :first, {}, { disabled: @form.comments_layout_locked? }) do |builder|
53
+ <%= form.collection_radio_buttons(:comments_layout, [[t(".single_column"), "single_column"], [t(".two_columns"), "two_columns"]], :last, :first) do |builder|
58
54
  builder.label(class: "form__wrapper-checkbox-label") { builder.radio_button + builder.text }
59
55
  end %>
60
56
  </div>
@@ -62,7 +58,7 @@
62
58
 
63
59
  <% if component_settings.attachments_allowed? %>
64
60
  <div class="row column">
65
- <%= form.attachment :attachments,
61
+ <%= form.attachment :documents,
66
62
  multiple: true,
67
63
  label: t("decidim.debates.admin.debates.form.add_attachments"),
68
64
  button_label: t("decidim.debates.admin.debates.form.add_attachments"),
@@ -1,14 +1,14 @@
1
1
 
2
2
  <% if allowed_to?(:edit, :debate, debate: debate) %>
3
- <li role="presentation" class="dropdown__item">
4
- <%= link_to edit_debate_path(debate), class: "dropdown__button", role: "menuitem" do %>
3
+ <li role="menuitem" class="dropdown__item">
4
+ <%= link_to edit_debate_path(debate), class: "dropdown__button" do %>
5
5
  <span><%= t("edit_debate", scope: "decidim.debates.debates.show") %></span>
6
6
  <%= icon "pencil-line" %>
7
7
  <% end %>
8
8
  </li>
9
9
  <% elsif admin_allowed_to?(:update, :debate, debate: debate) %>
10
- <li role="presentation" class="dropdown__item">
11
- <%= link_to resource_locator(debate).edit, class: "dropdown__button", role: "menuitem" do %>
10
+ <li role="menuitem" class="dropdown__item">
11
+ <%= link_to resource_locator(debate).edit, class: "dropdown__button" do %>
12
12
  <span><%= t("edit_debate", scope: "decidim.debates.debates.show") %></span>
13
13
  <%= icon "pencil-line" %>
14
14
  <% end %>
@@ -17,15 +17,15 @@
17
17
 
18
18
  <% close_debate_action_text = (debate.closed? ? "decidim.debates.debates.show.edit_conclusions" : "decidim.debates.debates.show.close_debate" ) %>
19
19
  <% if allowed_to?(:close, :debate, debate: debate) %>
20
- <li role="presentation" class="dropdown__item">
21
- <button type="button" data-dialog-open="close-debate" title="<%= t(close_debate_action_text) %>" aria-controls="closeDebateModal" aria-haspopup="dialog" tabindex="0" class="dropdown__button" role="menuitem">
20
+ <li role="menuitem" class="dropdown__item">
21
+ <button type="button" data-dialog-open="close-debate" title="<%= t(close_debate_action_text) %>" aria-controls="closeDebateModal" aria-haspopup="dialog" tabindex="0" class="dropdown__button">
22
22
  <span><%= t(close_debate_action_text) %></span>
23
23
  <%= icon "lock-line" %>
24
24
  </button>
25
25
  </li>
26
26
  <% elsif admin_allowed_to?(:close, :debate, debate: debate) %>
27
- <li role="presentation" class="dropdown__item">
28
- <%= link_to Decidim::EngineRouter.admin_proxy(debate.component).edit_debate_debate_close_path(debate_id: debate.id, id: debate.id), class: "dropdown__button", role: "menuitem" do %>
27
+ <li role="menuitem" class="dropdown__item">
28
+ <%= link_to Decidim::EngineRouter.admin_proxy(debate.component).edit_debate_debate_close_path(debate_id: debate.id, id: debate.id), class: "dropdown__button" do %>
29
29
  <span><%= t(close_debate_action_text) %></span>
30
30
  <%= icon "lock-line" %>
31
31
  <% end %>
@@ -12,7 +12,7 @@
12
12
 
13
13
  <% if component_settings.attachments_allowed? %>
14
14
  <div class="row column">
15
- <%= form.attachment :attachments,
15
+ <%= form.attachment :documents,
16
16
  multiple: true,
17
17
  label: t("decidim.debates.admin.debates.form.add_attachments"),
18
18
  button_label: t("decidim.debates.admin.debates.form.add_attachments"),
@@ -1,7 +1,7 @@
1
1
  <% add_decidim_meta_tags(
2
2
  description: translated_attribute(current_participatory_space.try(:short_description) || current_participatory_space.description),
3
3
  title: t("decidim.components.pagination.page_title",
4
- component_name: component_name,
4
+ component_name:,
5
5
  current_page: paginated_debates.current_page,
6
6
  total_pages: paginated_debates.total_pages ),
7
7
  url: debates_url,
@@ -1,4 +1,3 @@
1
- ---
2
1
  ar:
3
2
  activemodel:
4
3
  attributes:
@@ -124,7 +123,7 @@ ar:
124
123
  badges:
125
124
  commented_debates:
126
125
  conditions:
127
- - اختر نقاشًا مفتوحًا للمشاركة فيه
126
+ - اختر نقاشًا مفتوحًا للمشاركة فيه
128
127
  description: تُمنح هذه الشارة عندما تشارك بنشاط في المناقشات المختلفة من خلال ترك تعليقاتك.
129
128
  description_another: شارك هذا المشارك في %{score} مناقشات.
130
129
  description_own: لقد شاركت في %{score} مناقشات.
@@ -1,4 +1,3 @@
1
- ---
2
1
  bg:
3
2
  activemodel:
4
3
  attributes:
@@ -31,6 +30,7 @@ bg:
31
30
  global:
32
31
  announcement: Обявление
33
32
  comments_enabled: Коментарите са активирани
33
+ comments_max_length: Максимална дължина на коментарите (Оставете 0 за стойност по подразбиране)
34
34
  step:
35
35
  announcement: Обявление
36
36
  comments_blocked: Коментарите са блокирани
@@ -179,7 +179,7 @@ bg:
179
179
  badges:
180
180
  commented_debates:
181
181
  conditions:
182
- - Изберете отворен дебат и участвайте в него
182
+ - Изберете отворен дебат и участвайте в него
183
183
  description: Тази значка се предоставя, когато участвате активно в различни дебати, като оставяте коментари.
184
184
  description_another: Този участник се е включил в %{score} дебата.
185
185
  description_own: Участвали сте в %{score} дебата.
@@ -1,4 +1,3 @@
1
- ---
2
1
  ca-IT:
3
2
  activemodel:
4
3
  attributes:
@@ -34,6 +33,7 @@ ca-IT:
34
33
  comment: Comentar
35
34
  create: Crear un debat
36
35
  like: M'agrada
36
+ vote_comment: Votar el comentari
37
37
  name: Debats
38
38
  settings:
39
39
  global:
@@ -41,7 +41,7 @@ ca-IT:
41
41
  attachments_allowed: Permetre fitxers adjunts
42
42
  clear_all: Netejar-ho tot
43
43
  comments_enabled: Comentaris habilitats
44
- comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
44
+ comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
45
45
  define_taxonomy_filters: Si us plau, defineix algunes filtres per aquest espai de participació abans de fer servir aquesta configuració.
46
46
  no_taxonomy_filters_found: No s'han trobat filtres de taxonomia.
47
47
  taxonomy_filters: Seleccionar filtres pel component
@@ -76,13 +76,12 @@ ca-IT:
76
76
  form:
77
77
  add_attachments: Afegir fitxer(s) adjunt(s)
78
78
  attachment_legend: Afegir un document o una imatge
79
- comments_layout_locked_warning: No es pot canviar el disseny dels comentaris perquè ja s'han publicat comentaris.
80
79
  comments_visualization: Visualització dels comentaris
81
80
  comments_warning: Una vegada que es publica el primer comentari, l'opció de visualització seleccionada no es pot canviar.
82
81
  debate_type: Tipus de debat
83
82
  edit_attachments: Edita els fitxers adjunts
84
83
  errors:
85
- comments_layout_locked: No es pot canviar el disseny dels comentaris perquè ja s'han publicat comentaris.
84
+ comments_layout_locked: No pots canviar el disseny del comentari una vegada que s'hagi publicat algun comentario.
86
85
  finite: Finit (amb moments d'inici i de fi)
87
86
  open: Obert (sense moments d'inici ni de fi)
88
87
  single_column: 'Columna única: Els comentaris es mostren per ordre cronològic i poden rebre respostes.'
@@ -157,8 +156,8 @@ ca-IT:
157
156
  create: Crear
158
157
  title: Crear un debat
159
158
  orders:
160
- commented: Més comentats
161
159
  label: Ordenar debats per
160
+ most_commented: Més comentats
162
161
  random: Ordre aleatori
163
162
  recent: Més recents
164
163
  updated: Recentment actualitzats
@@ -234,7 +233,7 @@ ca-IT:
234
233
  badges:
235
234
  commented_debates:
236
235
  conditions:
237
- - Tria un debat obert per participar
236
+ - Tria un debat obert per participar
238
237
  description: Aquesta ensenya es desbloqueja quan participes activament en els diferents debats deixant els teus comentaris.
239
238
  description_another: Aquesta participant ha pres part en %{score} debats.
240
239
  description_own: Has participat en %{score} debats.
@@ -1,4 +1,3 @@
1
- ---
2
1
  ca:
3
2
  activemodel:
4
3
  attributes:
@@ -34,6 +33,7 @@ ca:
34
33
  comment: Comentar
35
34
  create: Crear un debat
36
35
  like: M'agrada
36
+ vote_comment: Votar el comentari
37
37
  name: Debats
38
38
  settings:
39
39
  global:
@@ -41,7 +41,7 @@ ca:
41
41
  attachments_allowed: Permetre fitxers adjunts
42
42
  clear_all: Netejar-ho tot
43
43
  comments_enabled: Comentaris habilitats
44
- comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
44
+ comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
45
45
  define_taxonomy_filters: Si us plau, defineix algunes filtres per aquest espai de participació abans de fer servir aquesta configuració.
46
46
  no_taxonomy_filters_found: No s'han trobat filtres de taxonomia.
47
47
  taxonomy_filters: Seleccionar filtres pel component
@@ -76,13 +76,12 @@ ca:
76
76
  form:
77
77
  add_attachments: Afegir fitxer(s) adjunt(s)
78
78
  attachment_legend: Afegir un document o una imatge
79
- comments_layout_locked_warning: No es pot canviar el disseny dels comentaris perquè ja s'han publicat comentaris.
80
79
  comments_visualization: Visualització dels comentaris
81
80
  comments_warning: Una vegada que es publica el primer comentari, l'opció de visualització seleccionada no es pot canviar.
82
81
  debate_type: Tipus de debat
83
82
  edit_attachments: Edita els fitxers adjunts
84
83
  errors:
85
- comments_layout_locked: No es pot canviar el disseny dels comentaris perquè ja s'han publicat comentaris.
84
+ comments_layout_locked: No pots canviar el disseny del comentari una vegada que s'hagi publicat algun comentario.
86
85
  finite: Finit (amb moments d'inici i de fi)
87
86
  open: Obert (sense moments d'inici ni de fi)
88
87
  single_column: 'Columna única: Els comentaris es mostren per ordre cronològic i poden rebre respostes.'
@@ -157,8 +156,8 @@ ca:
157
156
  create: Crear
158
157
  title: Crear un debat
159
158
  orders:
160
- commented: Més comentats
161
159
  label: Ordenar debats per
160
+ most_commented: Més comentats
162
161
  random: Ordre aleatori
163
162
  recent: Més recents
164
163
  updated: Recentment actualitzats
@@ -234,7 +233,7 @@ ca:
234
233
  badges:
235
234
  commented_debates:
236
235
  conditions:
237
- - Tria un debat obert per participar
236
+ - Tria un debat obert per participar
238
237
  description: Aquesta ensenya es desbloqueja quan participes activament en els diferents debats deixant els teus comentaris.
239
238
  description_another: Aquesta participant ha pres part en %{score} debats.
240
239
  description_own: Has participat en %{score} debats.
@@ -1,4 +1,3 @@
1
- ---
2
1
  cs:
3
2
  activemodel:
4
3
  attributes:
@@ -43,7 +42,7 @@ cs:
43
42
  attachments_allowed: Povolit přílohy
44
43
  clear_all: Vymazat vše
45
44
  comments_enabled: Komentáře povoleny
46
- comments_max_length: Maximální počet znaků na komentář (ponechte 0 pro výchozí hodnotu)
45
+ comments_max_length: Maximální délka komentáře (ponechte 0 pro výchozí hodnotu)
47
46
  define_taxonomy_filters: Před použitím tohoto nastavení prosím definujte některé filtry pro tento participační prostor.
48
47
  no_taxonomy_filters_found: Nebyly nalezeny žádné filtry taxonomie.
49
48
  taxonomy_filters: Vyberte filtry pro komponentu
@@ -82,6 +81,8 @@ cs:
82
81
  comments_warning: Jakmile je vložen první komentář, zvolenou možnost zobrazení nelze změnit.
83
82
  debate_type: Typ debaty
84
83
  edit_attachments: Upravit přílohy
84
+ errors:
85
+ comments_layout_locked: Po odeslání komentářů nelze změnit rozložení komentáře.
85
86
  finite: Konečný (s počátečním a koncovým obdobím)
86
87
  open: Otevřený (žádné počáteční nebo koncové období)
87
88
  single_column: 'Jeden sloupec: Komentáře jsou zobrazeny chronologicky a mohou mít odpovědi.'
@@ -158,8 +159,8 @@ cs:
158
159
  create: Vytvořit
159
160
  title: Vytvořit novou debatu
160
161
  orders:
161
- commented: Nejvíce komentované
162
162
  label: Řazení debat podle
163
+ most_commented: Nejvíce komentované
163
164
  random: Náhodné pořadí
164
165
  recent: Nejnovější
165
166
  updated: Naposledy aktualizované
@@ -235,7 +236,7 @@ cs:
235
236
  badges:
236
237
  commented_debates:
237
238
  conditions:
238
- - Vyberte si otevřenou debatu, do které se můžete zapojit
239
+ - Vyberte si otevřenou debatu, do které se můžete zapojit
239
240
  description: Tento odznak se uděluje, když se aktivně účastníte různých debat tím, že tam zanecháte své komentáře.
240
241
  description_another: Tento uživatel se zúčastnil %{score} debat.
241
242
  description_own: Zúčastnili jste se %{score} debat.