decidim-debates 0.9.0

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 (66) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +15 -0
  3. data/Rakefile +3 -0
  4. data/app/assets/images/decidim/debates/icon.svg +1 -0
  5. data/app/commands/decidim/debates/admin/create_debate.rb +57 -0
  6. data/app/commands/decidim/debates/admin/update_debate.rb +46 -0
  7. data/app/commands/decidim/debates/create_debate.rb +68 -0
  8. data/app/controllers/decidim/debates/admin/application_controller.rb +15 -0
  9. data/app/controllers/decidim/debates/admin/debates_controller.rb +73 -0
  10. data/app/controllers/decidim/debates/application_controller.rb +13 -0
  11. data/app/controllers/decidim/debates/debates_controller.rb +78 -0
  12. data/app/events/decidim/debates/create_debate_event.rb +42 -0
  13. data/app/forms/decidim/debates/admin/debate_form.rb +33 -0
  14. data/app/forms/decidim/debates/debate_form.rb +25 -0
  15. data/app/helpers/decidim/debates/application_helper.rb +12 -0
  16. data/app/models/decidim/debates/abilities/admin/admin_ability.rb +21 -0
  17. data/app/models/decidim/debates/abilities/admin/participatory_process_admin_ability.rb +23 -0
  18. data/app/models/decidim/debates/abilities/admin/participatory_process_moderator_ability.rb +21 -0
  19. data/app/models/decidim/debates/abilities/current_user_ability.rb +49 -0
  20. data/app/models/decidim/debates/application_record.rb +10 -0
  21. data/app/models/decidim/debates/debate.rb +103 -0
  22. data/app/presenters/decidim/debates/debate_presenter.rb +20 -0
  23. data/app/presenters/decidim/debates/official_author_presenter.rb +34 -0
  24. data/app/services/decidim/debates/debate_search.rb +38 -0
  25. data/app/views/decidim/debates/admin/debates/_form.html.erb +36 -0
  26. data/app/views/decidim/debates/admin/debates/edit.html.erb +7 -0
  27. data/app/views/decidim/debates/admin/debates/index.html.erb +52 -0
  28. data/app/views/decidim/debates/admin/debates/new.html.erb +7 -0
  29. data/app/views/decidim/debates/debates/_count.html.erb +1 -0
  30. data/app/views/decidim/debates/debates/_debate.html.erb +42 -0
  31. data/app/views/decidim/debates/debates/_debates.html.erb +4 -0
  32. data/app/views/decidim/debates/debates/_filters.html.erb +20 -0
  33. data/app/views/decidim/debates/debates/_filters_small_view.html.erb +18 -0
  34. data/app/views/decidim/debates/debates/_share.html.erb +33 -0
  35. data/app/views/decidim/debates/debates/index.html.erb +27 -0
  36. data/app/views/decidim/debates/debates/index.js.erb +9 -0
  37. data/app/views/decidim/debates/debates/new.html.erb +43 -0
  38. data/app/views/decidim/debates/debates/show.html.erb +80 -0
  39. data/config/locales/ca.yml +114 -0
  40. data/config/locales/en.yml +117 -0
  41. data/config/locales/es.yml +114 -0
  42. data/config/locales/eu.yml +114 -0
  43. data/config/locales/fi.yml +114 -0
  44. data/config/locales/fr.yml +114 -0
  45. data/config/locales/gl.yml +114 -0
  46. data/config/locales/it.yml +114 -0
  47. data/config/locales/nl.yml +114 -0
  48. data/config/locales/pl.yml +116 -0
  49. data/config/locales/pt-BR.yml +114 -0
  50. data/config/locales/pt.yml +114 -0
  51. data/config/locales/ru.yml +5 -0
  52. data/config/locales/sv.yml +114 -0
  53. data/config/locales/uk.yml +5 -0
  54. data/db/migrate/20170118141619_create_debates.rb +18 -0
  55. data/db/migrate/20180117100413_add_debate_information_updates.rb +7 -0
  56. data/db/migrate/20180118132243_add_author_to_debates.rb +7 -0
  57. data/db/migrate/20180119150434_add_reference_to_debates.rb +12 -0
  58. data/db/migrate/20180122090505_add_user_group_author_to_debates.rb +7 -0
  59. data/lib/decidim/debates/admin.rb +10 -0
  60. data/lib/decidim/debates/admin_engine.rb +33 -0
  61. data/lib/decidim/debates/engine.rb +26 -0
  62. data/lib/decidim/debates/feature.rb +55 -0
  63. data/lib/decidim/debates/test/factories.rb +52 -0
  64. data/lib/decidim/debates/version.rb +10 -0
  65. data/lib/decidim/debates.rb +12 -0
  66. metadata +197 -0
@@ -0,0 +1,7 @@
1
+ <%= decidim_form_for(@form, html: { class: "form new_debate" }) do |f| %>
2
+ <%= render partial: 'form', object: f, locals: { title: t('.title') } %>
3
+
4
+ <div class="button--double form-general-submit">
5
+ <%= f.submit t(".create") %>
6
+ </div>
7
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= t(".debates_count", count: paginated_debates.total_count) %>
@@ -0,0 +1,42 @@
1
+ <div class="column">
2
+ <article class="card card--debate">
3
+ <div class="card__content">
4
+ <div class="card__header">
5
+ <%= link_to debate_path(debate), class: "card__link" do %>
6
+ <h5 class="card__title"><%= translated_attribute debate.title %></h5>
7
+ <% end %>
8
+ </div>
9
+ <% if debate.start_time.present? && debate.end_time.present? %>
10
+ <div class="card__datetime">
11
+ <div class="card__datetime__date">
12
+ <%= l debate.start_time, format: "%d" %> <span class="card__datetime__month"><%= l debate.start_time, format: "%B" %></span>
13
+ </div>
14
+ <div class="card__datetime__time">
15
+ <%= l debate.start_time, format: "%H:%M" %> - <%= l debate.end_time, format: "%H:%M" %>
16
+ </div>
17
+ </div>
18
+ <% end %>
19
+ <p class="card__desc">
20
+ <%== html_truncate(translated_attribute(debate.description), length: 630, separator: "...") %>
21
+ </p>
22
+ <% if debate.category.present? %>
23
+ <ul class="tags tags--debate" >
24
+ <li><%= link_to translated_attribute(debate.category.name), debates_path(filter: { category_id: debate.category.id }) %></li>
25
+ </ul>
26
+ <% end %>
27
+ </div>
28
+ <div class="card__footer">
29
+ <div class="card__support">
30
+ <div id="debate-<%= debate.id %>-votes-count" class="card__support__data">
31
+ <span class="card__support__number">
32
+ <%= debate.comments.count %>
33
+ </span>
34
+ <span>
35
+ <%= t('.comments', count: debate.comments.count) %>
36
+ </span>
37
+ </div>
38
+ <%= link_to t('.participate'), debate_path(debate), class: "button small secondary card__button" %>
39
+ </div>
40
+ </div>
41
+ </article>
42
+ </div>
@@ -0,0 +1,4 @@
1
+ <div class="row small-up-1 medium-up-2 card-grid">
2
+ <%= render paginated_debates %>
3
+ </div>
4
+ <%= decidim_paginate paginated_debates %>
@@ -0,0 +1,20 @@
1
+ <%= filter_form_for filter do |form| %>
2
+ <div class="filters__section">
3
+ <div class="filters__search">
4
+ <div class="input-group">
5
+ <%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t('.search') %>
6
+ <div class="input-group-button">
7
+ <button type="submit" class="button button--muted">
8
+ <%= icon "magnifying-glass", aria_label: t('.search') %>
9
+ </button>
10
+ </div>
11
+ </div>
12
+ </div>
13
+ </div>
14
+
15
+ <%= form.collection_radio_buttons :origin, [["all", t('.all')], ["official", t('.official')], ["citizens", t('.citizens')]], :first, :last, legend_title: t('.origin') %>
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') %>
19
+ <% end %>
20
+ <% end %>
@@ -0,0 +1,18 @@
1
+ <div class="filters-controls hide-for-mediumlarge">
2
+ <button data-open="filter-box" class="filters-controls__trigger">
3
+ <%= t ".filter" %>
4
+ <%= icon "caret-bottom", class: "icon--small float-right", aria_label: t('.unfold'), role: "img" %>
5
+ </button>
6
+ </div>
7
+
8
+ <div class="reveal" id="filter-box" data-reveal>
9
+ <div class="reveal__header">
10
+ <h3 class="reveal__title"><%= t ".filter_by" %>:</h3>
11
+ <button class="close-button" data-close aria-label="<%= t(".close_modal") %>" type="button">
12
+ <span aria-hidden="true">&times;</span>
13
+ </button>
14
+ </div>
15
+ <div class="filters">
16
+ <%= render partial: "filters" %>
17
+ </div>
18
+ </div>
@@ -0,0 +1,33 @@
1
+ <div class="text-center">
2
+ <button class="link text-center" data-open="processShare">
3
+ <%= t(".share") %>
4
+ <%= icon "share", class: "icon--after"%>
5
+ </button>
6
+ </div>
7
+ <div class="reveal" id="processShare" data-reveal>
8
+ <div class="reveal__header">
9
+ <h3 class="reveal__title"><%= t(".share") %>:</h3>
10
+ <button class="close-button" data-close aria-label="<%= t(".close_window") %>" type="button">
11
+ <span aria-hidden="true">&times;</span>
12
+ </button>
13
+ </div>
14
+ <div class="button-group text-center">
15
+ <%= social_share_button_tag(content_for(:meta_title),
16
+ url: content_for(:meta_url),
17
+ image: content_for(:meta_image_url),
18
+ desc: content_for(:meta_description),
19
+ via: content_for(:twitter_handler)) %>
20
+ <a class="button secondary" data-open="urlShare">
21
+ <%= icon "link-intact" %>
22
+ </a>
23
+ </div>
24
+ </div>
25
+ <div class="reveal" id="urlShare" data-reveal>
26
+ <div class="reveal__header">
27
+ <h3 class="reveal__title"><%= t(".share_link") %>:</h3>
28
+ <button class="close-button" data-close aria-label="<%= t(".close_window") %>" type="button">
29
+ <span aria-hidden="true">&times;</span>
30
+ </button>
31
+ </div>
32
+ <h4 class="heading4"><%= "#{content_for(:meta_url)}" %></h4>
33
+ </div>
@@ -0,0 +1,27 @@
1
+ <div class="row columns">
2
+ <div class="title-action">
3
+ <h2 id="debates-count" class="title-action__title section-heading">
4
+ <%= render partial: "count" %>
5
+ </h2>
6
+ <% if current_settings.creation_enabled? %>
7
+ <%= action_authorized_link_to :create, new_debate_path, class: "title-action__action button small hollow", data: { "redirect_url" => new_debate_path } do %>
8
+ <%= t(".new_debate") %>
9
+ <%= icon "plus" %>
10
+ <% end %>
11
+ <% end %>
12
+ </a>
13
+ </div>
14
+ </div>
15
+ <div class="row">
16
+ <div class="columns mediumlarge-4 large-3">
17
+ <%= render partial: "filters_small_view" %>
18
+ <div class="card card--secondary show-for-mediumlarge" >
19
+ <%= render partial: "filters" %>
20
+ </div>
21
+ </div>
22
+ <div id="debates" class="columns mediumlarge-8 large-9">
23
+ <%= render partial: "debates" %>
24
+ </div>
25
+ </div>
26
+
27
+ <%= javascript_include_tag("decidim/filters") %>
@@ -0,0 +1,9 @@
1
+ var $debates = $('#debates');
2
+ var $debatesCount = $('#debates-count');
3
+ var $orderFilterInput = $('.order_filter');
4
+
5
+ $debates.html('<%= j(render partial: "debates").strip.html_safe %>');
6
+ $debatesCount.html('<%= j(render partial: "count").strip.html_safe %>');
7
+
8
+ var $dropdownMenu = $('.dropdown.menu', $debates);
9
+ $dropdownMenu.foundation();
@@ -0,0 +1,43 @@
1
+ <div class="row columns">
2
+ <%= link_to :back, class: "muted-link" do %>
3
+ <%= icon "chevron-left", class: "icon--small" %>
4
+ <%= t(".back") %>
5
+ <% end %>
6
+ <h2 class="section-heading"><%= t(".title") %></h2>
7
+ </div>
8
+
9
+ <div class="row">
10
+ <div class="columns large-6 medium-centered">
11
+ <div class="card">
12
+ <div class="card__content">
13
+ <%= decidim_form_for(@form) do |form| %>
14
+ <div class="field">
15
+ <%= form.text_field :title %>
16
+ </div>
17
+
18
+ <div class="field">
19
+ <%= form.text_area :description, rows: 10 %>
20
+ </div>
21
+
22
+ <% if current_participatory_space.categories&.any? %>
23
+ <div class="field">
24
+ <%= form.categories_select :category_id, current_participatory_space.categories, prompt: t(".select_a_category"), disable_parents: false %>
25
+ </div>
26
+ <% end %>
27
+
28
+ <% if current_user.user_groups.verified.any? %>
29
+ <div class="field">
30
+ <%= form.select :user_group_id, current_user.user_groups.verified.map{|g| [g.name, g.id]}, prompt: current_user.name %>
31
+ </div>
32
+ <% end %>
33
+
34
+ <div class="actions">
35
+ <%= form.submit t(".create"), class: "button expanded", data: { disable: true } %>
36
+ </div>
37
+ <% end %>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+
43
+ <%= javascript_include_tag "decidim/proposals/add_proposal" %>
@@ -0,0 +1,80 @@
1
+ <% add_decidim_meta_tags({
2
+ description: translated_attribute(debate.description),
3
+ title: translated_attribute(debate.title),
4
+ url: debate_url(debate.id)
5
+ }) %>
6
+
7
+ <div class="row column view-header">
8
+ <h2 class="heading2">
9
+ <%== translated_attribute debate.title %>
10
+ </h2>
11
+ <div class="author-data">
12
+ <%= render partial: "decidim/shared/author_reference", locals: { author: Decidim::Debates::DebatePresenter.new(debate).author } %>
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' %>
16
+ </button>
17
+ <% unless debate.official? %>
18
+ <%= link_to_current_or_new_conversation_with(debate.author) %>
19
+ <% end %>
20
+ </div>
21
+ <% if debate.commentable? %>
22
+ <a href="#comments" title="<%= t('.comments') %>">
23
+ <%= icon "comment-square", aria_label: t('.comments'), role: "img" %> <%= debate.comments.count %>
24
+ </a>
25
+ <% end %>
26
+ </div>
27
+ </div>
28
+ <div class="row">
29
+ <div class="columns section view-side mediumlarge-4 mediumlarge-push-8
30
+ large-3 large-push-9">
31
+ <div class="card extra">
32
+ <div class="card__content">
33
+ <% if debate.start_time.present? && debate.end_time.present? %>
34
+ <div class="extra__date">
35
+ <%= l debate.start_time, format: "%d" %> <span class="extra__month"><%= l debate.start_time, format: "%B" %></span>
36
+ </div>
37
+ <div class="extra__time">
38
+ <%= l debate.start_time, format: "%H:%M" %> - <%= l debate.end_time, format: "%H:%M" %>
39
+ </div>
40
+ <% end %>
41
+ <%= render partial: "decidim/shared/follow_button", locals: { followable: debate } %>
42
+ </div>
43
+ </div>
44
+ <%= feature_reference(debate) %>
45
+ <%= render partial: "share", locals: { debate: debate } %>
46
+ </div>
47
+ <div class="columns mediumlarge-8 mediumlarge-pull-4">
48
+ <div class="section">
49
+ <p><%== translated_attribute debate.description %></p>
50
+ <% if translated_attribute(debate.instructions).present? %>
51
+ <div class="callout secondary">
52
+ <%== translated_attribute debate.instructions %>
53
+ </div>
54
+ <% end %>
55
+ <% if translated_attribute(debate.information_updates).present? %>
56
+ <div class="callout success">
57
+ <%== translated_attribute debate.information_updates %>
58
+ </div>
59
+ <% end %>
60
+ <% if debate.category %>
61
+ <ul class="tags tags--debate">
62
+ <li><%= link_to translated_attribute(debate.category.name), debates_path(filter: { category_id: debate.category.id }) %></li>
63
+ </ul>
64
+ <% end %>
65
+ </div>
66
+ </div>
67
+ </div>
68
+
69
+ <%= comments_for debate %>
70
+
71
+ <%= javascript_include_tag "decidim/proposals/social_share" %>
72
+ <%= stylesheet_link_tag "decidim/proposals/social_share" %>
73
+
74
+ <%=
75
+ render partial: "decidim/shared/flag_modal", locals: {
76
+ reportable: debate,
77
+ form: report_form,
78
+ url: decidim.report_path(sgid: debate.to_sgid.to_s)
79
+ }
80
+ %>
@@ -0,0 +1,114 @@
1
+ ca:
2
+ activemodel:
3
+ attributes:
4
+ debate:
5
+ category_id: Categoria
6
+ description: Descripció
7
+ end_time: Data de finalització
8
+ information_updates: Actualitzacions d'informació
9
+ instructions: Instruccions per participar
10
+ start_time: Data d'inici
11
+ title: Títol
12
+ user_group_id: Crea un debat com
13
+ decidim:
14
+ debates:
15
+ actions:
16
+ confirm_destroy: N'estàs segur?
17
+ destroy: Suprimeix
18
+ edit: Edita
19
+ new: Nou %{name}
20
+ title: Accions
21
+ admin:
22
+ debates:
23
+ create:
24
+ invalid: Hi ha hagut un problema en crear el debat.
25
+ success: Debat creat correctament.
26
+ destroy:
27
+ success: Debat suprimit correctament.
28
+ edit:
29
+ title: Editar debat
30
+ update: Actualitzar debat
31
+ index:
32
+ title: Debats
33
+ new:
34
+ create: Crea un debat
35
+ title: Nou debat
36
+ update:
37
+ invalid: Hi ha hagut un problema mentre s'actualitza aquest debat.
38
+ success: El debat s'ha actualitzat correctament.
39
+ models:
40
+ debate:
41
+ name: Debat
42
+ debates:
43
+ count:
44
+ debates_count:
45
+ one: "%{count} debat"
46
+ other: "%{count} debats"
47
+ create:
48
+ invalid: Hi ha hagut un problema en crear el debat.
49
+ success: Debat creat correctament.
50
+ debate:
51
+ comments:
52
+ one: Comentari
53
+ other: Comentaris
54
+ participate: Participa
55
+ filters:
56
+ all: Tots
57
+ category: Categoria
58
+ category_prompt: Selecciona una categoria
59
+ citizens: Ciutadania
60
+ official: Oficial
61
+ origin: Origen
62
+ search: Cerca
63
+ filters_small_view:
64
+ close_modal: Tancar finestra
65
+ filter: Filtra
66
+ filter_by: Filtra per
67
+ unfold: Desplega
68
+ index:
69
+ new_debate: Nou debat
70
+ new:
71
+ back: Enrere
72
+ create: Crear
73
+ select_a_category: Si us plau, selecciona una categoria
74
+ title: Nou debat
75
+ share:
76
+ close_window: Tanca la finestra
77
+ share: Compartir
78
+ share_link: Comparteix l'enllaç
79
+ show:
80
+ comments: Comentaris
81
+ report: Denuncia
82
+ models:
83
+ debate:
84
+ fields:
85
+ end_time: Data de finalització
86
+ official_debate: Debat oficial
87
+ start_time: Data d'inici
88
+ title: Títol
89
+ events:
90
+ debates:
91
+ create_debate_event:
92
+ space_followers:
93
+ email_intro: |-
94
+ S'ha creat un nou debat a l'espai participatiu %{space_title}, fes-hi un cop d'ull i contribueix:
95
+ email_outro: Has rebut aquesta notificació perquè estàs seguint %{space_title}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
96
+ email_subject: Nou debat a %{space_title}
97
+ notification_title: El <a href="%{resource_path}">%{resource_title}</a> debat s'ha creat a <a href="%{space_path}">%{space_title}</a>.
98
+ user_followers:
99
+ email_intro: |-
100
+ %{author_name} %{author_nickname}, a qui segueixes, ha creat un nou debat. Revisa'l i contribueix:
101
+ email_outro: Has rebut aquesta notificació perquè estàs seguint %{author_nickname}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
102
+ email_subject: Nou debat d'en/na %{author_nickname}
103
+ notification_title: El <a href="%{resource_path}">%{resource_title}</a> debat ha estat creat per en/na <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
104
+ features:
105
+ debates:
106
+ actions:
107
+ create: Crear
108
+ name: Debats
109
+ settings:
110
+ global:
111
+ comments_enabled: Comentaris habilitats
112
+ step:
113
+ comments_blocked: Comentaris bloquejats
114
+ creation_enabled: Habilitar la creació de debats pels usuaris
@@ -0,0 +1,117 @@
1
+ ---
2
+ en:
3
+ activemodel:
4
+ attributes:
5
+ debate:
6
+ category_id: Category
7
+ description: Description
8
+ end_time: Ends at
9
+ information_updates: Information updates
10
+ instructions: Instructions to participate
11
+ start_time: Starts at
12
+ title: Title
13
+ user_group_id: Create debate as
14
+ decidim:
15
+ debates:
16
+ actions:
17
+ confirm_destroy: Are you sure?
18
+ destroy: Delete
19
+ edit: Edit
20
+ new: New %{name}
21
+ title: Actions
22
+ admin:
23
+ debates:
24
+ create:
25
+ invalid: There has been a problem while creating the debate.
26
+ success: Debate created successfully.
27
+ destroy:
28
+ success: Debate deleted successfully.
29
+ edit:
30
+ title: Edit debate
31
+ update: Update debate
32
+ index:
33
+ title: Debates
34
+ new:
35
+ create: Create debate
36
+ title: New debate
37
+ update:
38
+ invalid: There has been a problem while updating this debate.
39
+ success: Debate updated successfully.
40
+ models:
41
+ debate:
42
+ name: Debate
43
+ debates:
44
+ count:
45
+ debates_count:
46
+ one: "%{count} debate"
47
+ other: "%{count} debates"
48
+ create:
49
+ invalid: There has been a problem while creating the debate.
50
+ success: Debate created successfully.
51
+ debate:
52
+ comments:
53
+ one: Comment
54
+ other: Comments
55
+ participate: Participate
56
+ filters:
57
+ all: All
58
+ category: Category
59
+ category_prompt: Select a category
60
+ citizens: Citizens
61
+ official: Official
62
+ origin: Origin
63
+ search: Search
64
+ filters_small_view:
65
+ close_modal: Close modal
66
+ filter: Filter
67
+ filter_by: Filter by
68
+ unfold: Unfold
69
+ index:
70
+ new_debate: New debate
71
+ new:
72
+ back: Back
73
+ create: Create
74
+ select_a_category: Please select a category
75
+ title: New debate
76
+ share:
77
+ close_window: Close window
78
+ share: Share
79
+ share_link: Share link
80
+ show:
81
+ comments: Comments
82
+ report: Report
83
+ models:
84
+ debate:
85
+ fields:
86
+ end_time: End date
87
+ official_debate: Official debate
88
+ start_time: Start date
89
+ title: Title
90
+ events:
91
+ debates:
92
+ create_debate_event:
93
+ space_followers:
94
+ email_intro: |-
95
+ Hi,
96
+ A new debate has been created on the %{space_title} participatory space, check it out and contribute:
97
+ email_outro: You have received this notification because you are following the %{space_title} participatory space. You can stop receiving notifications following the previous link.
98
+ email_subject: New debate on %{space_title}
99
+ notification_title: The <a href="%{resource_path}">%{resource_title}</a> debate was created on <a href="%{space_path}">%{space_title}</a>.
100
+ user_followers:
101
+ email_intro: |-
102
+ Hi,
103
+ %{author_name} %{author_nickname}, who you are following, has created a new debate, check it out and contribute:
104
+ email_outro: You have received this notification because you are following %{author_nickname}. You can stop receiving notifications following the previous link.
105
+ email_subject: New debate by %{author_nickname}
106
+ notification_title: The <a href="%{resource_path}">%{resource_title}</a> debate was created by <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
107
+ features:
108
+ debates:
109
+ actions:
110
+ create: Create
111
+ name: Debates
112
+ settings:
113
+ global:
114
+ comments_enabled: Comments enabled
115
+ step:
116
+ comments_blocked: Comments blocked
117
+ creation_enabled: Debate creation by users enabled