decidim-debates 0.10.1 → 0.11.0.pre1

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/debates/admin/create_debate.rb +2 -2
  3. data/app/commands/decidim/debates/create_debate.rb +2 -2
  4. data/app/controllers/decidim/debates/admin/application_controller.rb +2 -2
  5. data/app/controllers/decidim/debates/admin/debates_controller.rb +3 -3
  6. data/app/controllers/decidim/debates/application_controller.rb +1 -1
  7. data/app/controllers/decidim/debates/debates_controller.rb +1 -1
  8. data/app/forms/decidim/debates/admin/debate_form.rb +2 -2
  9. data/app/forms/decidim/debates/debate_form.rb +1 -1
  10. data/app/jobs/decidim/debates/settings_change_job.rb +4 -4
  11. data/app/models/decidim/debates/abilities/admin/participatory_process_moderator_ability.rb +1 -1
  12. data/app/models/decidim/debates/abilities/current_user_ability.rb +6 -6
  13. data/app/models/decidim/debates/debate.rb +6 -6
  14. data/app/services/decidim/debates/debate_search.rb +2 -2
  15. data/app/views/decidim/debates/admin/debates/_form.html.erb +6 -6
  16. data/app/views/decidim/debates/admin/debates/edit.html.erb +1 -1
  17. data/app/views/decidim/debates/admin/debates/index.html.erb +3 -3
  18. data/app/views/decidim/debates/admin/debates/new.html.erb +1 -1
  19. data/app/views/decidim/debates/debates/_debate.html.erb +4 -4
  20. data/app/views/decidim/debates/debates/_filters.html.erb +5 -5
  21. data/app/views/decidim/debates/debates/_filters_small_view.html.erb +1 -1
  22. data/app/views/decidim/debates/debates/_share.html.erb +1 -1
  23. data/app/views/decidim/debates/debates/index.html.erb +2 -2
  24. data/app/views/decidim/debates/debates/show.html.erb +4 -4
  25. data/config/locales/ca.yml +13 -13
  26. data/config/locales/en.yml +13 -13
  27. data/config/locales/es.yml +13 -13
  28. data/config/locales/eu.yml +13 -13
  29. data/config/locales/fi.yml +13 -13
  30. data/config/locales/fr.yml +13 -13
  31. data/config/locales/gl.yml +13 -13
  32. data/config/locales/it.yml +13 -13
  33. data/config/locales/nl.yml +51 -50
  34. data/config/locales/pl.yml +13 -13
  35. data/config/locales/pt-BR.yml +13 -13
  36. data/config/locales/pt.yml +13 -13
  37. data/config/locales/ru.yml +2 -0
  38. data/config/locales/sv.yml +13 -13
  39. data/config/locales/uk.yml +8 -11
  40. data/db/migrate/20180305133556_rename_features_to_components_at_debates.rb +11 -0
  41. data/lib/decidim/debates.rb +1 -1
  42. data/lib/decidim/debates/{feature.rb → component.rb} +19 -15
  43. data/lib/decidim/debates/engine.rb +1 -1
  44. data/lib/decidim/debates/test/factories.rb +6 -6
  45. data/lib/decidim/debates/version.rb +1 -1
  46. metadata +14 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 37c9964db5c710ebcc15aecbcad4be999246a1c27642fc6226ee246acb487e99
4
- data.tar.gz: 2c1dc1fd5fb5ecfc063f4854c0757c6d8bf9241b6be990ca218b9e1792be4419
3
+ metadata.gz: 0da7649f21a90cd8b25affec2d754b336c6eefeaecf6784162c2930193a885d1
4
+ data.tar.gz: 0c3b6d55d55d5f888f221497240e206f75e388ca0c33f4bbca360f4ce615c8c8
5
5
  SHA512:
6
- metadata.gz: 7b09efb6a8b2e9022a055ef7420810ad30cfcccc551ae5384dcd05d080faf412d89e14f1c839bd81cea8a7dd3d0423fbd498f4802b6e91e5ee77b93ed733eb54
7
- data.tar.gz: 257e300b383f1f9d55466b6e57a91f634a8183eda216abefa0511b9545a3342572fa1b4efd7b20041ea10c76d58684467ffa0db0d91a0f4133f0c2759b519fb0
6
+ metadata.gz: 283a66424e943e8b05f4d99c74d9b76bbef4c21c268ceb802db46540d2cdf43feffed606c2ff5750a633ecaf4ab01b8a3964624c252108f64a4417f11b9700c6
7
+ data.tar.gz: cf39b4d1c8ecd09294daa0c17345a8c11189b55c70533233042273e8cef52e3a4e451a551c12fe0bbc461fa2b32fc9e77b3896d30c2116b1980e99146a0f4520
@@ -38,7 +38,7 @@ module Decidim
38
38
  instructions: form.instructions,
39
39
  end_time: form.end_time,
40
40
  start_time: form.start_time,
41
- feature: form.current_feature
41
+ component: form.current_component
42
42
  )
43
43
  end
44
44
 
@@ -47,7 +47,7 @@ module Decidim
47
47
  event: "decidim.events.debates.debate_created",
48
48
  event_class: Decidim::Debates::CreateDebateEvent,
49
49
  resource: debate,
50
- recipient_ids: form.current_feature.participatory_space.followers.pluck(:id),
50
+ recipient_ids: form.current_component.participatory_space.followers.pluck(:id),
51
51
  extra: {
52
52
  type: "participatory_space"
53
53
  }
@@ -27,7 +27,7 @@ module Decidim
27
27
  attr_reader :debate, :form
28
28
 
29
29
  def organization
30
- @organization = form.current_feature.organization
30
+ @organization = form.current_component.organization
31
31
  end
32
32
 
33
33
  def i18n_field(field)
@@ -43,7 +43,7 @@ module Decidim
43
43
  category: form.category,
44
44
  title: i18n_field(form.title),
45
45
  description: i18n_field(form.description),
46
- feature: form.current_feature
46
+ component: form.current_component
47
47
  )
48
48
  end
49
49
 
@@ -6,9 +6,9 @@ module Decidim
6
6
  # This controller is the abstract class from which all other controllers of
7
7
  # this engine inherit.
8
8
  #
9
- # Note that it inherits from `Decidim::Features::BaseController`, which
9
+ # Note that it inherits from `Decidim::Components::BaseController`, which
10
10
  # override its layout and provide all kinds of useful methods.
11
- class ApplicationController < Decidim::Admin::Features::BaseController
11
+ class ApplicationController < Decidim::Admin::Components::BaseController
12
12
  end
13
13
  end
14
14
  end
@@ -12,7 +12,7 @@ module Decidim
12
12
  end
13
13
 
14
14
  def create
15
- @form = form(Decidim::Debates::Admin::DebateForm).from_params(params, current_feature: current_feature)
15
+ @form = form(Decidim::Debates::Admin::DebateForm).from_params(params, current_component: current_component)
16
16
 
17
17
  CreateDebate.call(@form) do
18
18
  on(:ok) do
@@ -34,7 +34,7 @@ module Decidim
34
34
 
35
35
  def update
36
36
  authorize! :edit, debate
37
- @form = form(DebateForm).from_params(params, current_feature: current_feature)
37
+ @form = form(DebateForm).from_params(params, current_component: current_component)
38
38
 
39
39
  UpdateDebate.call(@form, debate) do
40
40
  on(:ok) do
@@ -61,7 +61,7 @@ module Decidim
61
61
  private
62
62
 
63
63
  def debates
64
- @debates ||= Debate.where(feature: current_feature)
64
+ @debates ||= Debate.where(component: current_component)
65
65
  end
66
66
 
67
67
  def debate
@@ -7,7 +7,7 @@ module Decidim
7
7
  #
8
8
  # Note that it inherits from `Decidim::Components::BaseController`, which
9
9
  # override its layout and provide all kinds of useful methods.
10
- class ApplicationController < Decidim::Features::BaseController
10
+ class ApplicationController < Decidim::Components::BaseController
11
11
  end
12
12
  end
13
13
  end
@@ -20,7 +20,7 @@ module Decidim
20
20
 
21
21
  def create
22
22
  authorize! :create, Debate
23
- @form = form(DebateForm).from_params(params, current_feature: current_feature)
23
+ @form = form(DebateForm).from_params(params, current_component: current_component)
24
24
 
25
25
  CreateDebate.call(@form) do
26
26
  on(:ok) do |debate|
@@ -24,8 +24,8 @@ module Decidim
24
24
  validates :category, presence: true, if: ->(form) { form.decidim_category_id.present? }
25
25
 
26
26
  def category
27
- return unless current_feature
28
- @category ||= current_feature.categories.where(id: decidim_category_id).first
27
+ return unless current_component
28
+ @category ||= current_component.categories.find_by(id: decidim_category_id)
29
29
  end
30
30
  end
31
31
  end
@@ -17,7 +17,7 @@ module Decidim
17
17
  validates :category, presence: true, if: ->(form) { form.category_id.present? }
18
18
 
19
19
  def category
20
- @category ||= current_feature.categories.where(id: category_id).first
20
+ @category ||= current_component.categories.find_by(id: category_id)
21
21
  end
22
22
  end
23
23
  end
@@ -3,10 +3,10 @@
3
3
  module Decidim
4
4
  module Debates
5
5
  class SettingsChangeJob < ApplicationJob
6
- def perform(feature_id, previous_settings, current_settings)
6
+ def perform(component_id, previous_settings, current_settings)
7
7
  return if unchanged?(previous_settings, current_settings)
8
8
 
9
- feature = Decidim::Feature.find(feature_id)
9
+ component = Decidim::Component.find(component_id)
10
10
 
11
11
  if debate_creation_enabled?(previous_settings, current_settings)
12
12
  event = "decidim.events.debates.creation_enabled"
@@ -19,8 +19,8 @@ module Decidim
19
19
  Decidim::EventsManager.publish(
20
20
  event: event,
21
21
  event_class: event_class,
22
- resource: feature,
23
- recipient_ids: feature.participatory_space.followers.pluck(:id)
22
+ resource: component,
23
+ recipient_ids: component.participatory_space.followers.pluck(:id)
24
24
  )
25
25
  end
26
26
 
@@ -11,7 +11,7 @@ module Decidim
11
11
  super
12
12
 
13
13
  can [:unreport, :hide], Debate do |debate|
14
- can_manage_process?(debate.feature.participatory_space)
14
+ can_manage_process?(debate.component.participatory_space)
15
15
  end
16
16
  end
17
17
  end
@@ -23,9 +23,9 @@ module Decidim
23
23
  private
24
24
 
25
25
  def authorized?(action)
26
- return unless feature
26
+ return unless component
27
27
 
28
- ActionAuthorizer.new(user, feature, action).authorize.ok?
28
+ ActionAuthorizer.new(user, component, action).authorize.ok?
29
29
  end
30
30
 
31
31
  def creation_enabled?
@@ -37,11 +37,11 @@ module Decidim
37
37
  context.fetch(:current_settings, nil)
38
38
  end
39
39
 
40
- def feature
41
- feature = context.fetch(:current_feature, nil)
42
- return nil unless feature && feature.manifest.name == :debates
40
+ def component
41
+ component = context.fetch(:current_component, nil)
42
+ return nil unless component && component.manifest.name == :debates
43
43
 
44
- feature
44
+ component
45
45
  end
46
46
  end
47
47
  end
@@ -6,19 +6,19 @@ module Decidim
6
6
  # title, description and any other useful information to render a custom
7
7
  # debate.
8
8
  class Debate < Debates::ApplicationRecord
9
- include Decidim::HasFeature
9
+ include Decidim::HasComponent
10
10
  include Decidim::HasCategory
11
11
  include Decidim::Resourceable
12
12
  include Decidim::Followable
13
13
  include Decidim::Comments::Commentable
14
- include Decidim::ScopableFeature
14
+ include Decidim::ScopableComponent
15
15
  include Decidim::Authorable
16
16
  include Decidim::Reportable
17
17
  include Decidim::HasReference
18
18
  include Decidim::Traceable
19
19
  include Decidim::Loggable
20
20
 
21
- feature_manifest_name "debates"
21
+ component_manifest_name "debates"
22
22
 
23
23
  validates :title, presence: true
24
24
 
@@ -64,7 +64,7 @@ module Decidim
64
64
 
65
65
  # Public: Overrides the `commentable?` Commentable concern method.
66
66
  def commentable?
67
- feature.settings.comments_enabled?
67
+ component.settings.comments_enabled?
68
68
  end
69
69
 
70
70
  # Public: Overrides the `accepts_new_comments?` Commentable concern method.
@@ -95,14 +95,14 @@ module Decidim
95
95
 
96
96
  # Public: Override Commentable concern method `users_to_notify_on_comment_created`
97
97
  def users_to_notify_on_comment_created
98
- return (followers | feature.participatory_space.admins).uniq if official?
98
+ return Decidim::User.where(id: followers).or(Decidim::User.where(id: component.participatory_space.admins)).distinct if official?
99
99
  followers
100
100
  end
101
101
 
102
102
  private
103
103
 
104
104
  def comments_blocked?
105
- feature.current_settings.comments_blocked
105
+ component.current_settings.comments_blocked
106
106
  end
107
107
  end
108
108
  end
@@ -3,11 +3,11 @@
3
3
  module Decidim
4
4
  module Debates
5
5
  # This class handles search and filtering of debates. Needs a
6
- # `current_feature` param with a `Decidim::Feature` in order to
6
+ # `current_component` param with a `Decidim::Component` in order to
7
7
  # find the debates.
8
8
  class DebateSearch < ResourceSearch
9
9
  # Public: Initializes the service.
10
- # feature - A Decidim::Feature to get the debates from.
10
+ # component - A Decidim::Component to get the debates from.
11
11
  # page - The page number to paginate the results.
12
12
  # per_page - The number of proposals to return per page.
13
13
  def initialize(options = {})
@@ -4,23 +4,23 @@
4
4
  </div>
5
5
 
6
6
  <div class="card-section">
7
- <div class="row column" >
7
+ <div class="row column">
8
8
  <%= form.translated :text_field, :title, autofocus: true %>
9
9
  </div>
10
10
 
11
- <div class="row column" >
11
+ <div class="row column">
12
12
  <%= form.translated :editor, :description %>
13
13
  </div>
14
14
 
15
- <div class="row column" >
15
+ <div class="row column">
16
16
  <%= form.translated :editor, :instructions %>
17
17
  </div>
18
18
 
19
- <div class="row column" >
19
+ <div class="row column">
20
20
  <%= form.translated :editor, :information_updates %>
21
21
  </div>
22
22
 
23
- <div class="row" >
23
+ <div class="row">
24
24
  <div class="column xlarge-6">
25
25
  <%= form.datetime_field :start_time %>
26
26
  </div>
@@ -29,7 +29,7 @@
29
29
  </div>
30
30
  </div>
31
31
 
32
- <div class="row column" >
32
+ <div class="row column">
33
33
  <%= form.categories_select :decidim_category_id, current_participatory_space.categories, prompt: "", disable_parents: false %>
34
34
  </div>
35
35
  </div>
@@ -1,5 +1,5 @@
1
1
  <%= decidim_form_for(@form, html: { class: "form edit_debate" }) do |f| %>
2
- <%= render partial: 'form', object: f, locals: { title: t('.title') } %>
2
+ <%= render partial: "form", object: f, locals: { title: t(".title") } %>
3
3
 
4
4
  <div class="button--double form-general-submit">
5
5
  <%= f.submit t(".update") %>
@@ -3,7 +3,7 @@
3
3
  <h2 class="card-title">
4
4
  <%= t(".title") %>
5
5
 
6
- <%= link_to t("actions.new", scope: "decidim.debates", name: t("models.debate.name", scope: "decidim.debates.admin")), new_debate_path, class: 'button tiny button--title' if can? :manage, current_feature %>
6
+ <%= link_to t("actions.new", scope: "decidim.debates", name: t("models.debate.name", scope: "decidim.debates.admin")), new_debate_path, class: "button tiny button--title" if can? :manage, current_component %>
7
7
  </h2>
8
8
  </div>
9
9
 
@@ -27,12 +27,12 @@
27
27
  <td>
28
28
  <% if debate.start_time %>
29
29
  <%= l debate.start_time, format: :long %>
30
- <% end%>
30
+ <% end %>
31
31
  </td>
32
32
  <td>
33
33
  <% if debate.end_time %>
34
34
  <%= l debate.end_time, format: :long %>
35
- <% end%>
35
+ <% end %>
36
36
  </td>
37
37
  <td class="table-list__actions">
38
38
  <% if can? :update, debate %>
@@ -1,5 +1,5 @@
1
1
  <%= decidim_form_for(@form, html: { class: "form new_debate" }) do |f| %>
2
- <%= render partial: 'form', object: f, locals: { title: t('.title') } %>
2
+ <%= render partial: "form", object: f, locals: { title: t(".title") } %>
3
3
 
4
4
  <div class="button--double form-general-submit">
5
5
  <%= f.submit t(".create") %>
@@ -20,7 +20,7 @@
20
20
  <%== html_truncate(translated_attribute(debate.description), length: 630, separator: "...") %>
21
21
  </p>
22
22
  <% if debate.category.present? %>
23
- <ul class="tags tags--debate" >
23
+ <ul class="tags tags--debate">
24
24
  <li><%= link_to translated_attribute(debate.category.name), debates_path(filter: { category_id: debate.category.id }) %></li>
25
25
  </ul>
26
26
  <% end %>
@@ -32,11 +32,11 @@
32
32
  <%= debate.comments.count %>
33
33
  </span>
34
34
  <span>
35
- <%= t('.comments', count: debate.comments.count) %>
35
+ <%= t(".comments", count: debate.comments.count) %>
36
36
  </span>
37
37
  </div>
38
- <%= link_to t('.participate'), debate_path(debate), class: "button small secondary card__button" %>
38
+ <%= link_to t(".participate"), debate_path(debate), class: "button small secondary card__button" %>
39
39
  </div>
40
40
  </div>
41
41
  </article>
42
- </div>
42
+ </div>
@@ -2,19 +2,19 @@
2
2
  <div class="filters__section">
3
3
  <div class="filters__search">
4
4
  <div class="input-group">
5
- <%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t('.search') %>
5
+ <%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t(".search") %>
6
6
  <div class="input-group-button">
7
7
  <button type="submit" class="button button--muted">
8
- <%= icon "magnifying-glass", aria_label: t('.search') %>
8
+ <%= icon "magnifying-glass", aria_label: t(".search") %>
9
9
  </button>
10
10
  </div>
11
11
  </div>
12
12
  </div>
13
13
  </div>
14
14
 
15
- <%= form.collection_radio_buttons :origin, [["all", t('.all')], ["official", t('.official')], ["citizens", t('.citizens')]], :first, :last, legend_title: t('.origin') %>
15
+ <%= form.collection_radio_buttons :origin, [["all", t(".all")], ["official", t(".official")], ["citizens", t(".citizens")]], :first, :last, legend_title: t(".origin") %>
16
16
 
17
- <% if current_feature.categories.any? %>
18
- <%= form.categories_select :category_id, current_feature.categories, legend_title: t('.category'), disable_parents: false, label: false, prompt: t('.category_prompt') %>
17
+ <% if current_component.categories.any? %>
18
+ <%= form.categories_select :category_id, current_component.categories, legend_title: t(".category"), disable_parents: false, label: false, prompt: t(".category_prompt") %>
19
19
  <% end %>
20
20
  <% end %>
@@ -1,7 +1,7 @@
1
1
  <div class="filters-controls hide-for-mediumlarge">
2
2
  <button data-open="filter-box" class="filters-controls__trigger">
3
3
  <%= t ".filter" %>
4
- <%= icon "caret-bottom", class: "icon--small float-right", aria_label: t('.unfold'), role: "img" %>
4
+ <%= icon "caret-bottom", class: "icon--small float-right", aria_label: t(".unfold"), role: "img" %>
5
5
  </button>
6
6
  </div>
7
7
 
@@ -1,7 +1,7 @@
1
1
  <div class="text-center">
2
2
  <button class="link text-center" data-open="processShare">
3
3
  <%= t(".share") %>
4
- <%= icon "share", class: "icon--after"%>
4
+ <%= icon "share", class: "icon--after" %>
5
5
  </button>
6
6
  </div>
7
7
  <div class="reveal" id="processShare" data-reveal>
@@ -1,4 +1,4 @@
1
- <%= render partial: "decidim/shared/feature_announcement" %>
1
+ <%= render partial: "decidim/shared/component_announcement" %>
2
2
 
3
3
  <div class="row columns">
4
4
  <div class="title-action">
@@ -17,7 +17,7 @@
17
17
  <div class="row">
18
18
  <div class="columns mediumlarge-4 large-3">
19
19
  <%= render partial: "filters_small_view" %>
20
- <div class="card card--secondary show-for-mediumlarge" >
20
+ <div class="card card--secondary show-for-mediumlarge">
21
21
  <%= render partial: "filters" %>
22
22
  </div>
23
23
  </div>
@@ -11,16 +11,16 @@
11
11
  <div class="author-data">
12
12
  <%= render partial: "decidim/shared/author_reference", locals: { author: Decidim::Debates::DebatePresenter.new(debate).author } %>
13
13
  <div class="author-data__extra">
14
- <button type="button" data-open="<%= current_user.present? ? 'flagModal' : 'loginModal' %>" title="<%= t('.report') %>" aria-controls="<%= current_user.present? ? 'flagModal' : 'loginModal' %>" aria-haspopup="true" tabindex="0">
15
- <%= icon "flag", aria_label: t('.report'), class: 'icon--small' %>
14
+ <button type="button" data-open="<%= current_user.present? ? "flagModal" : "loginModal" %>" title="<%= t(".report") %>" aria-controls="<%= current_user.present? ? "flagModal" : "loginModal" %>" aria-haspopup="true" tabindex="0">
15
+ <%= icon "flag", aria_label: t(".report"), class: "icon--small" %>
16
16
  </button>
17
17
  <% unless debate.official? %>
18
18
  <%= link_to_current_or_new_conversation_with(debate.author) %>
19
19
  <% end %>
20
20
  </div>
21
21
  <% if debate.commentable? %>
22
- <a href="#comments" title="<%= t('.comments') %>">
23
- <%= icon "comment-square", aria_label: t('.comments'), role: "img" %> <%= debate.comments.count %>
22
+ <a href="#comments" title="<%= t(".comments") %>">
23
+ <%= icon "comment-square", aria_label: t(".comments"), role: "img" %> <%= debate.comments.count %>
24
24
  </a>
25
25
  <% end %>
26
26
  </div>