decidim-debates 0.10.1 → 0.11.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
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>