decidim-debates 0.9.0

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