decidim-debates 0.26.0 → 0.27.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/debates/admin/close_debate.rb +1 -1
  3. data/app/commands/decidim/debates/admin/create_debate.rb +1 -1
  4. data/app/commands/decidim/debates/admin/update_debate.rb +1 -1
  5. data/app/commands/decidim/debates/close_debate.rb +1 -1
  6. data/app/commands/decidim/debates/create_debate.rb +1 -1
  7. data/app/commands/decidim/debates/update_debate.rb +1 -1
  8. data/app/controllers/decidim/debates/admin/debate_closes_controller.rb +0 -1
  9. data/app/controllers/decidim/debates/debates_controller.rb +8 -18
  10. data/app/controllers/decidim/debates/orderable.rb +3 -3
  11. data/app/forms/decidim/debates/admin/close_debate_form.rb +4 -2
  12. data/app/forms/decidim/debates/admin/debate_form.rb +2 -2
  13. data/app/forms/decidim/debates/close_debate_form.rb +4 -2
  14. data/app/forms/decidim/debates/debate_form.rb +6 -5
  15. data/app/helpers/decidim/debates/application_helper.rb +1 -1
  16. data/app/models/decidim/debates/debate.rb +16 -2
  17. data/app/serializers/decidim/debates/{data_portability_debate_serializer.rb → download_your_data_debate_serializer.rb} +2 -2
  18. data/app/services/decidim/debates/debate_search.rb +13 -24
  19. data/app/views/decidim/debates/debates/_filters.html.erb +5 -5
  20. data/app/views/decidim/debates/debates/index.html.erb +2 -2
  21. data/app/views/decidim/debates/debates/show.html.erb +1 -1
  22. data/config/locales/am-ET.yml +1 -0
  23. data/config/locales/ar.yml +11 -1
  24. data/config/locales/bg.yml +1 -0
  25. data/config/locales/ca.yml +2 -1
  26. data/config/locales/cs.yml +2 -1
  27. data/config/locales/da.yml +1 -0
  28. data/config/locales/de.yml +1 -1
  29. data/config/locales/el.yml +1 -1
  30. data/config/locales/en.yml +1 -1
  31. data/config/locales/eo.yml +1 -0
  32. data/config/locales/es-MX.yml +2 -1
  33. data/config/locales/es-PY.yml +2 -5
  34. data/config/locales/es.yml +2 -1
  35. data/config/locales/et.yml +1 -0
  36. data/config/locales/eu.yml +1 -1
  37. data/config/locales/fi-plain.yml +2 -1
  38. data/config/locales/fi.yml +2 -1
  39. data/config/locales/fr-CA.yml +2 -1
  40. data/config/locales/fr.yml +8 -7
  41. data/config/locales/ga-IE.yml +1 -1
  42. data/config/locales/gl.yml +2 -1
  43. data/config/locales/hr.yml +1 -0
  44. data/config/locales/hu.yml +2 -1
  45. data/config/locales/id-ID.yml +1 -1
  46. data/config/locales/is-IS.yml +2 -2
  47. data/config/locales/it.yml +2 -1
  48. data/config/locales/ja.yml +2 -1
  49. data/config/locales/ko.yml +1 -0
  50. data/config/locales/lb.yml +1 -0
  51. data/config/locales/lt.yml +1 -0
  52. data/config/locales/lv.yml +1 -1
  53. data/config/locales/mt.yml +1 -0
  54. data/config/locales/nl.yml +2 -1
  55. data/config/locales/no.yml +2 -1
  56. data/config/locales/om-ET.yml +1 -0
  57. data/config/locales/pl.yml +1 -1
  58. data/config/locales/pt-BR.yml +2 -2
  59. data/config/locales/pt.yml +1 -1
  60. data/config/locales/ro-RO.yml +2 -1
  61. data/config/locales/ru.yml +1 -1
  62. data/config/locales/si-LK.yml +1 -0
  63. data/config/locales/sk.yml +1 -1
  64. data/config/locales/sl.yml +1 -0
  65. data/config/locales/so-SO.yml +1 -0
  66. data/config/locales/sr-CS.yml +1 -0
  67. data/config/locales/sv.yml +2 -1
  68. data/config/locales/sw-KE.yml +1 -0
  69. data/config/locales/ti-ER.yml +1 -0
  70. data/config/locales/tr-TR.yml +1 -1
  71. data/config/locales/uk.yml +1 -1
  72. data/config/locales/val-ES.yml +1 -0
  73. data/config/locales/vi.yml +1 -0
  74. data/config/locales/zh-CN.yml +1 -1
  75. data/config/locales/zh-TW.yml +1 -0
  76. data/db/migrate/20181016132850_add_organization_as_author_to_debates.rb +2 -0
  77. data/lib/decidim/debates/test/factories.rb +1 -1
  78. data/lib/decidim/debates/version.rb +1 -1
  79. metadata +15 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 07e18718600c9f71cc833c9afed5c2c206bdbeaf56cfa64cff60edc3c368fdd2
4
- data.tar.gz: ecbb2b047d56476a3d19c72e8e6363e3528fbe2367601502cfc610fa8deaf712
3
+ metadata.gz: 967f139c27f1e4c684f439cdb3bfad76159b6bf08bb78f9d71ac775bda7e1cf4
4
+ data.tar.gz: 4acd40bffd8654d6acde8802f76da818ffbbffdca7eb6bb14985e1e5de104548
5
5
  SHA512:
6
- metadata.gz: 7f76c164ab611e4d60df6194af660ad5fe5d4e2ef19095f97ee47582870154a89bf3d31c7f8ac0489b02e5b4a7b796a615ce17e9a6eb5b3f48de102384aa88f5
7
- data.tar.gz: 31edd9198b236ab5492fc3ead42157a581784f239e8b73d432a87200ac16f08bf012e637cc3f2742622f57c4df4ae627aedb30b6c3b482a8df97872fd9e57f43
6
+ metadata.gz: d6dfd083edcad26a2766e9457e5150df312afcdc04476a6eec1b8daa3d4571850cc8992c81da28087788a6bfd644257701f09da1db582eca771d146d39ba50c1
7
+ data.tar.gz: 873bdd3aa7b18458e59491838daf46b6a74dc80c91ecfcd467b3effa747fc667b87702455a5594ab9b26c2e3241f2d02a82d9c0729cdef3cbefd4001511a78f0
@@ -4,7 +4,7 @@ module Decidim
4
4
  module Debates
5
5
  module Admin
6
6
  # A command with all the business logic when an admin closes a debate.
7
- class CloseDebate < Rectify::Command
7
+ class CloseDebate < Decidim::Command
8
8
  # Public: Initializes the command.
9
9
  #
10
10
  # form - A form object with the params.
@@ -5,7 +5,7 @@ module Decidim
5
5
  module Admin
6
6
  # This command is executed when the user creates a Debate from the admin
7
7
  # panel.
8
- class CreateDebate < Rectify::Command
8
+ class CreateDebate < Decidim::Command
9
9
  def initialize(form)
10
10
  @form = form
11
11
  end
@@ -5,7 +5,7 @@ module Decidim
5
5
  module Admin
6
6
  # This command is executed when the user changes a Debate from the admin
7
7
  # panel.
8
- class UpdateDebate < Rectify::Command
8
+ class UpdateDebate < Decidim::Command
9
9
  # Initializes a UpdateDebate Command.
10
10
  #
11
11
  # form - The form from which to get the data.
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module Debates
5
5
  # A command with all the business logic when a user updates a debate.
6
- class CloseDebate < Rectify::Command
6
+ class CloseDebate < Decidim::Command
7
7
  # Public: Initializes the command.
8
8
  #
9
9
  # form - A form object with the params.
@@ -4,7 +4,7 @@ module Decidim
4
4
  module Debates
5
5
  # This command is executed when the user creates a Debate from the public
6
6
  # views.
7
- class CreateDebate < Rectify::Command
7
+ class CreateDebate < Decidim::Command
8
8
  def initialize(form)
9
9
  @form = form
10
10
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module Debates
5
5
  # A command with all the business logic when a user updates a debate.
6
- class UpdateDebate < Rectify::Command
6
+ class UpdateDebate < Decidim::Command
7
7
  # Public: Initializes the command.
8
8
  #
9
9
  # form - A form object with the params.
@@ -17,7 +17,6 @@ module Decidim
17
17
  enforce_permission_to :close, :debate, debate: debate
18
18
 
19
19
  @form = form(Admin::CloseDebateForm).from_params(params)
20
- @form.debate = debate
21
20
 
22
21
  CloseDebate.call(@form) do
23
22
  on(:ok) do |_debate|
@@ -53,7 +53,6 @@ module Decidim
53
53
  enforce_permission_to :edit, :debate, debate: debate
54
54
 
55
55
  @form = form(DebateForm).from_params(params)
56
- @form.debate = debate
57
56
 
58
57
  UpdateDebate.call(@form) do
59
58
  on(:ok) do |debate|
@@ -72,7 +71,6 @@ module Decidim
72
71
  enforce_permission_to :close, :debate, debate: debate
73
72
 
74
73
  @form = form(CloseDebateForm).from_params(params)
75
- @form.debate = debate
76
74
 
77
75
  CloseDebate.call(@form) do
78
76
  on(:ok) do |debate|
@@ -98,7 +96,7 @@ module Decidim
98
96
  end
99
97
 
100
98
  def debates
101
- @debates ||= reorder(search.results)
99
+ @debates ||= reorder(search.result)
102
100
  end
103
101
 
104
102
  def debate
@@ -109,26 +107,18 @@ module Decidim
109
107
  @close_debate_form ||= form(CloseDebateForm).from_model(debate)
110
108
  end
111
109
 
112
- def search_klass
113
- DebateSearch
114
- end
115
-
116
- def default_search_params
117
- {
118
- page: params[:page],
119
- per_page: 12
120
- }
110
+ def search_collection
111
+ Debate.where(component: current_component).not_hidden
121
112
  end
122
113
 
123
114
  def default_filter_params
124
115
  {
125
- search_text: "",
126
- origin: %w(official citizens user_group),
116
+ search_text_cont: "",
117
+ with_any_origin: %w(official participants user_group),
127
118
  activity: "all",
128
- category_id: default_filter_category_params,
129
- scope_id: default_filter_scope_params,
130
- status: "all",
131
- state: %w(open closed)
119
+ with_any_category: default_filter_category_params,
120
+ with_any_scope: default_filter_scope_params,
121
+ with_any_state: %w(open closed)
132
122
  }
133
123
  end
134
124
  end
@@ -24,11 +24,11 @@ module Decidim
24
24
  def reorder(debates)
25
25
  case order
26
26
  when "recent"
27
- debates.order("created_at DESC")
27
+ debates.order(created_at: :desc)
28
28
  when "commented"
29
- debates.order("comments_count DESC")
29
+ debates.order(comments_count: :desc)
30
30
  when "updated"
31
- debates.order("updated_at DESC")
31
+ debates.order(updated_at: :desc)
32
32
  when "random"
33
33
  debates.order_randomly(random_seed)
34
34
  else
@@ -14,8 +14,6 @@ module Decidim
14
14
  validates translated_attribute, length: { minimum: 10, maximum: 10_000 }, if: ->(record) { record.default_locale?(locale) }
15
15
  end
16
16
 
17
- attribute :debate, Debate
18
-
19
17
  validates :debate, presence: true
20
18
  validate :user_can_close_debate
21
19
 
@@ -23,6 +21,10 @@ module Decidim
23
21
  debate&.closed_at || Time.current
24
22
  end
25
23
 
24
+ def debate
25
+ @debate ||= Debate.find_by(id: id)
26
+ end
27
+
26
28
  private
27
29
 
28
30
  def user_can_close_debate
@@ -46,14 +46,14 @@ module Decidim
46
46
  #
47
47
  # Returns a Decidim::Scope
48
48
  def scope
49
- @scope ||= @scope_id ? current_component.scopes.find_by(id: @scope_id) : current_component.scope
49
+ @scope ||= @attributes["scope_id"].value ? current_component.scopes.find_by(id: @attributes["scope_id"].value) : current_component.scope
50
50
  end
51
51
 
52
52
  # Scope identifier
53
53
  #
54
54
  # Returns the scope identifier related to the meeting
55
55
  def scope_id
56
- @scope_id || scope&.id
56
+ super || scope&.id
57
57
  end
58
58
 
59
59
  private
@@ -7,7 +7,6 @@ module Decidim
7
7
  mimic :debate
8
8
 
9
9
  attribute :conclusions, Decidim::Attributes::CleanString
10
- attribute :debate, Debate
11
10
 
12
11
  validates :debate, presence: true
13
12
  validates :conclusions, presence: true, length: { minimum: 10, maximum: 10_000 }
@@ -19,7 +18,6 @@ module Decidim
19
18
 
20
19
  def map_model(debate)
21
20
  super
22
- self.debate = debate
23
21
 
24
22
  # Debates can be translated in different languages from the admin but
25
23
  # the public form doesn't allow it. When a user closes a debate the
@@ -27,6 +25,10 @@ module Decidim
27
25
  self.conclusions = debate.conclusions&.values&.first
28
26
  end
29
27
 
28
+ def debate
29
+ @debate ||= Debate.find_by(id: id)
30
+ end
31
+
30
32
  private
31
33
 
32
34
  def user_can_close_debate
@@ -11,7 +11,6 @@ module Decidim
11
11
  attribute :category_id, Integer
12
12
  attribute :scope_id, Integer
13
13
  attribute :user_group_id, Integer
14
- attribute :debate, Debate
15
14
 
16
15
  validates :title, presence: true
17
16
  validates :description, presence: true
@@ -22,8 +21,6 @@ module Decidim
22
21
 
23
22
  def map_model(debate)
24
23
  super
25
- self.debate = debate
26
-
27
24
  # Debates can be translated in different languages from the admin but
28
25
  # the public form doesn't allow it. When a user creates a debate the
29
26
  # user locale is taken as the text locale.
@@ -45,14 +42,18 @@ module Decidim
45
42
  #
46
43
  # Returns a Decidim::Scope
47
44
  def scope
48
- @scope ||= @scope_id ? current_component.scopes.find_by(id: @scope_id) : current_component.scope
45
+ @scope ||= @attributes["scope_id"].value ? current_component.scopes.find_by(id: @attributes["scope_id"].value) : current_component.scope
49
46
  end
50
47
 
51
48
  # Scope identifier
52
49
  #
53
50
  # Returns the scope identifier related to the debate
54
51
  def scope_id
55
- @scope_id || scope&.id
52
+ super || scope&.id
53
+ end
54
+
55
+ def debate
56
+ @debate ||= Debate.find_by(id: id)
56
57
  end
57
58
 
58
59
  private
@@ -35,7 +35,7 @@ module Decidim
35
35
  def filter_origin_values
36
36
  origin_values = []
37
37
  origin_values << TreePoint.new("official", t("decidim.debates.debates.filters.official"))
38
- origin_values << TreePoint.new("citizens", t("decidim.debates.debates.filters.citizens"))
38
+ origin_values << TreePoint.new("participants", t("decidim.debates.debates.filters.participants"))
39
39
  origin_values << TreePoint.new("user_group", t("decidim.debates.debates.filters.user_groups")) if current_organization.user_groups_enabled?
40
40
 
41
41
  TreeNode.new(TreePoint.new("", t("decidim.debates.debates.filters.all")), origin_values)
@@ -18,13 +18,14 @@ module Decidim
18
18
  include Decidim::HasReference
19
19
  include Decidim::Traceable
20
20
  include Decidim::Loggable
21
- include Decidim::DataPortability
21
+ include Decidim::DownloadYourData
22
22
  include Decidim::NewsletterParticipant
23
23
  include Decidim::Searchable
24
24
  include Decidim::TranslatableResource
25
25
  include Decidim::TranslatableAttributes
26
26
  include Decidim::Endorsable
27
27
  include Decidim::Randomable
28
+ include Decidim::FilterableResource
28
29
 
29
30
  belongs_to :last_comment_by, polymorphic: true, foreign_type: "last_comment_by_type", optional: true
30
31
  component_manifest_name "debates"
@@ -53,6 +54,7 @@ module Decidim
53
54
  }
54
55
  )
55
56
  }
57
+ scope_search_multi :with_any_state, [:open, :closed]
56
58
 
57
59
  def self.log_presenter_class_for(_log)
58
60
  Decidim::Debates::AdminLog::DebatePresenter
@@ -141,7 +143,7 @@ module Decidim
141
143
  end
142
144
 
143
145
  def self.export_serializer
144
- Decidim::Debates::DataPortabilityDebateSerializer
146
+ Decidim::Debates::DownloadYourDataDebateSerializer
145
147
  end
146
148
 
147
149
  def self.newsletter_participant_ids(component)
@@ -193,6 +195,18 @@ module Decidim
193
195
  end
194
196
  # rubocop:enable Rails/SkipsModelValidations
195
197
 
198
+ # Create i18n ransackers for :title and :description.
199
+ # Create the :search_text ransacker alias for searching from both of these.
200
+ ransacker_i18n_multi :search_text, [:title, :description]
201
+
202
+ def self.ransackable_scopes(_auth_object = nil)
203
+ [:with_any_state, :with_any_origin, :with_any_category, :with_any_scope]
204
+ end
205
+
206
+ def self.ransack(params = {}, options = {})
207
+ DebateSearch.new(self, params, options)
208
+ end
209
+
196
210
  private
197
211
 
198
212
  def comments_blocked?
@@ -2,8 +2,8 @@
2
2
 
3
3
  module Decidim
4
4
  module Debates
5
- class DataPortabilityDebateSerializer < Decidim::Exporters::Serializer
6
- # Serializes a Debate for data portability
5
+ class DownloadYourDataDebateSerializer < Decidim::Exporters::Serializer
6
+ # Serializes a Debate for download your data
7
7
  def serialize
8
8
  {
9
9
  id: resource.id,
@@ -2,35 +2,24 @@
2
2
 
3
3
  module Decidim
4
4
  module Debates
5
- # This class handles search and filtering of debates. Needs a
6
- # `current_component` param with a `Decidim::Component` in order to
7
- # find the debates.
5
+ # This service scopes the debate searches with parameters that cannot be
6
+ # passed from the user interface.
8
7
  class DebateSearch < ResourceSearch
9
- text_search_fields :title, :description
8
+ attr_reader :activity
10
9
 
11
- # Public: Initializes the service.
12
- # component - A Decidim::Component to get the debates from.
13
- # page - The page number to paginate the results.
14
- # per_page - The number of debates to return per page.
15
- def initialize(options = {})
16
- super(Debate.not_hidden, options)
17
- end
10
+ def build(params)
11
+ @activity = params[:activity]
18
12
 
19
- # Handle the activity filter
20
- def search_activity
21
- case activity
22
- when "commented"
23
- query.commented_by(user)
24
- when "my_debates"
25
- query.authored_by(user)
26
- else # Assume 'all'
27
- query
13
+ if params[:activity] && user
14
+ case params[:activity]
15
+ when "commented"
16
+ add_scope(:commented_by, user)
17
+ when "my_debates"
18
+ add_scope(:authored_by, user)
19
+ end
28
20
  end
29
- end
30
21
 
31
- # Handle the state filter
32
- def search_state
33
- apply_scopes(%w(open closed), state)
22
+ super
34
23
  end
35
24
  end
36
25
  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="debates">
10
10
  <%= icon "magnifying-glass", aria_label: t(".search"), role: "img" %>
@@ -14,17 +14,17 @@
14
14
  </div>
15
15
  </div>
16
16
 
17
- <%= form.check_boxes_tree :state, filter_debates_state_values, legend_title: t(".state"), "aria-controls": "debates" %>
17
+ <%= form.check_boxes_tree :with_any_state, filter_debates_state_values, legend_title: t(".state"), "aria-controls": "debates" %>
18
18
 
19
19
  <% if current_component.has_subscopes? %>
20
- <%= form.check_boxes_tree :scope_id, filter_scopes_values, legend_title: t(".scope"), "aria-controls": "debates" %>
20
+ <%= form.check_boxes_tree :with_any_scope, filter_scopes_values, legend_title: t(".scope"), "aria-controls": "debates" %>
21
21
  <% end %>
22
22
 
23
23
  <% if current_participatory_space.categories.any? %>
24
- <%= form.check_boxes_tree :category_id, filter_categories_values, legend_title: t(".category"), "aria-controls": "debates" %>
24
+ <%= form.check_boxes_tree :with_any_category, filter_categories_values, legend_title: t(".category"), "aria-controls": "debates" %>
25
25
  <% end %>
26
26
 
27
- <%= form.check_boxes_tree :origin, filter_origin_values, legend_title: t(".origin"), "aria-controls": "debates" %>
27
+ <%= form.check_boxes_tree :with_any_origin, filter_origin_values, legend_title: t(".origin"), "aria-controls": "debates" %>
28
28
 
29
29
  <% if current_user %>
30
30
  <%= form.collection_radio_buttons :activity, activity_filter_values, :first, :last, { legend_title: t(".activity") }, "aria-controls": "debates" %>
@@ -2,9 +2,9 @@
2
2
 
3
3
  <div class="row columns">
4
4
  <div class="title-action">
5
- <h3 id="debates-count" class="title-action__title section-heading">
5
+ <h2 id="debates-count" class="title-action__title section-heading">
6
6
  <%= render partial: "count" %>
7
- </h3>
7
+ </h2>
8
8
  <% if current_settings.creation_enabled? && current_component.participatory_space.can_participate?(current_user) %>
9
9
  <%= action_authorized_link_to :create, new_debate_path, class: "title-action__action button small", data: { "redirect_url" => new_debate_path } do %>
10
10
  <%= t(".new_debate") %>
@@ -15,7 +15,7 @@ edit_link(
15
15
 
16
16
  <div class="row column view-header">
17
17
  <div class="m-bottom">
18
- <%= link_to debates_path(filter_link_params), class: "small hollow" do %>
18
+ <%= link_to debates_path, class: "small hollow js-back-to-list" do %>
19
19
  <%= icon "chevron-left", class: "icon--small", role: "img", "aria-hidden": true %>
20
20
  <%= t(".back") %>
21
21
  <% end %>
@@ -1 +1,2 @@
1
+ ---
1
2
  am:
@@ -1,8 +1,10 @@
1
+ ---
1
2
  ar:
2
3
  activemodel:
3
4
  attributes:
4
5
  debate:
5
6
  category_id: الفئة
7
+ closed_at: تم إغلاقه في
6
8
  decidim_category_id: الفئة
7
9
  description: وصف
8
10
  end_time: ينتهي عند
@@ -86,10 +88,12 @@ ar:
86
88
  all: الكل
87
89
  category: الفئة
88
90
  category_prompt: اختر تصنيف
89
- citizens: المواطنين
91
+ my_debates: مناقشاتي
90
92
  official: الرسمية
91
93
  origin: الأصل
94
+ participants: المشاركون
92
95
  search: بحث
96
+ user_groups: الفِرَق
93
97
  filters_small_view:
94
98
  close_modal: إغلاق مشروط
95
99
  filter: منقي
@@ -103,6 +107,10 @@ ar:
103
107
  back: الى الخلف
104
108
  create: إنشاء
105
109
  title: نقاش جديد
110
+ show:
111
+ date: التاريخ
112
+ groups_count: الفِرَق
113
+ participants_count: المشاركون
106
114
  last_activity:
107
115
  new_debate_at_html: "<span>مناقشة جديدة في %{link}</span>"
108
116
  models:
@@ -156,3 +164,5 @@ ar:
156
164
  description: عدد المناقشات التي تم إنشاؤها
157
165
  object: المناقشات
158
166
  title: المناقشات
167
+ statistics:
168
+ debates_count: المناقشات
@@ -1,3 +1,4 @@
1
+ ---
1
2
  bg:
2
3
  activemodel:
3
4
  attributes:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  ca:
2
3
  activemodel:
3
4
  attributes:
@@ -117,11 +118,11 @@ ca:
117
118
  all: Tots
118
119
  category: Categoria
119
120
  category_prompt: Selecciona una categoria
120
- citizens: Ciutadania
121
121
  commented: Comentat
122
122
  my_debates: Els meus debats
123
123
  official: Oficial
124
124
  origin: Origen
125
+ participants: Participants
125
126
  scope: Àmbit
126
127
  search: Cerca
127
128
  state: Estat
@@ -1,3 +1,4 @@
1
+ ---
1
2
  cs:
2
3
  activemodel:
3
4
  attributes:
@@ -121,11 +122,11 @@ cs:
121
122
  all: Vše
122
123
  category: Kategorie
123
124
  category_prompt: Vyberte kategorii
124
- citizens: Občané
125
125
  commented: Okomentováno
126
126
  my_debates: Moje rozpravy
127
127
  official: Oficiální
128
128
  origin: Původ
129
+ participants: Účastníci
129
130
  scope: Oblast působnosti
130
131
  search: Hledat
131
132
  state: Stav
@@ -1 +1,2 @@
1
+ ---
1
2
  da:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  de:
2
3
  activemodel:
3
4
  attributes:
@@ -114,7 +115,6 @@ de:
114
115
  all: Alle
115
116
  category: Kategorie
116
117
  category_prompt: Wählen Sie eine Kategorie
117
- citizens: Einzelpersonen
118
118
  commented: Kommentiert
119
119
  my_debates: Meine Debatten
120
120
  official: Offiziell
@@ -1,3 +1,4 @@
1
+ ---
1
2
  el:
2
3
  activemodel:
3
4
  attributes:
@@ -78,7 +79,6 @@ el:
78
79
  all: Όλα
79
80
  category: Κατηγορία
80
81
  category_prompt: Επιλέξτε μια κατηγορία
81
- citizens: Πολίτες
82
82
  official: Επίσημη
83
83
  origin: Προέλευση
84
84
  search: Αναζήτηση
@@ -118,11 +118,11 @@ en:
118
118
  all: All
119
119
  category: Category
120
120
  category_prompt: Select a category
121
- citizens: Citizens
122
121
  commented: Commented
123
122
  my_debates: My debates
124
123
  official: Official
125
124
  origin: Origin
125
+ participants: Participants
126
126
  scope: Scope
127
127
  search: Search
128
128
  state: Status
@@ -1 +1,2 @@
1
+ ---
1
2
  eo:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  es-MX:
2
3
  activemodel:
3
4
  attributes:
@@ -117,11 +118,11 @@ es-MX:
117
118
  all: Todos
118
119
  category: Categoría
119
120
  category_prompt: Selecciona una categoría
120
- citizens: Ciudadanía
121
121
  commented: Comentado
122
122
  my_debates: Mis debates
123
123
  official: Oficial
124
124
  origin: Origen
125
+ participants: Participantes
125
126
  scope: Ámbito
126
127
  search: Buscar
127
128
  state: Estado
@@ -1,3 +1,4 @@
1
+ ---
1
2
  es-PY:
2
3
  activemodel:
3
4
  attributes:
@@ -99,10 +100,6 @@ es-PY:
99
100
  description: '¿Cuál es el resumen o la conclusión de este debate?'
100
101
  send: Cerrar debate
101
102
  closed: Cerrado
102
- count:
103
- debates_count:
104
- one: "%{count} debate"
105
- other: "%{count} debates"
106
103
  create:
107
104
  invalid: Ha habido un problema al crear el debate.
108
105
  success: Debate creado con éxito.
@@ -117,11 +114,11 @@ es-PY:
117
114
  all: Todos
118
115
  category: Categoría
119
116
  category_prompt: Selecciona una categoría
120
- citizens: Ciudadanía
121
117
  commented: Comentado
122
118
  my_debates: Mis debates
123
119
  official: Oficial
124
120
  origin: Origen
121
+ participants: Participantes
125
122
  scope: Ámbito
126
123
  search: Buscar
127
124
  state: Estado
@@ -1,3 +1,4 @@
1
+ ---
1
2
  es:
2
3
  activemodel:
3
4
  attributes:
@@ -117,11 +118,11 @@ es:
117
118
  all: Todos
118
119
  category: Categoría
119
120
  category_prompt: Selecciona una categoría
120
- citizens: Ciudadanía
121
121
  commented: Comentado
122
122
  my_debates: Mis debates
123
123
  official: Oficial
124
124
  origin: Origen
125
+ participants: Participantes
125
126
  scope: Ámbito
126
127
  search: Buscar
127
128
  state: Estado
@@ -1 +1,2 @@
1
+ ---
1
2
  et: