diff --git a/app/views/admin/debates/show.html.erb b/app/views/admin/debates/show.html.erb
index c0f70cf73..b92110e6b 100644
--- a/app/views/admin/debates/show.html.erb
+++ b/app/views/admin/debates/show.html.erb
@@ -21,8 +21,8 @@
<%= link_to t("debates.show.comments", count: @debate.comments_count), "#comments" %>
•
- <%= render "debates/flag_actions", debate: @debate %>
-
+ <%= render "shared/flag_actions", flaggable: @debate %>
+
<%= auto_link_already_sanitized_html wysiwyg(@debate.description) %>
diff --git a/app/views/budgets/investments/_flag_actions.html.erb b/app/views/budgets/investments/_flag_actions.html.erb
deleted file mode 100644
index 44f384c3b..000000000
--- a/app/views/budgets/investments/_flag_actions.html.erb
+++ /dev/null
@@ -1,23 +0,0 @@
-
- <% if show_flag_action? investment %>
- ">
-
-
-
- <%= link_to t("shared.flag"), flag_budget_investment_path(investment.budget, investment.id),
- method: :put,
- remote: true %>
-
- <% end %>
-
- <% if show_unflag_action? investment %>
- ">
-
-
-
- <%= link_to t("shared.unflag"), unflag_budget_investment_path(investment.budget, investment.id),
- method: :put,
- remote: true %>
-
- <% end %>
-
diff --git a/app/views/budgets/investments/_investment_detail.erb b/app/views/budgets/investments/_investment_detail.erb
index 80e5dd5e5..28b8e8996 100644
--- a/app/views/budgets/investments/_investment_detail.erb
+++ b/app/views/budgets/investments/_investment_detail.erb
@@ -9,7 +9,7 @@
•
<% if local_assigns[:preview].nil? %>
- <%= render "budgets/investments/flag_actions", investment: investment %>
+ <%= render "shared/flag_actions", flaggable: investment %>
<% end %>
diff --git a/app/views/budgets/investments/_refresh_flag_actions.js.erb b/app/views/budgets/investments/_refresh_flag_actions.js.erb
index 07cf8d30a..96062f79c 100644
--- a/app/views/budgets/investments/_refresh_flag_actions.js.erb
+++ b/app/views/budgets/investments/_refresh_flag_actions.js.erb
@@ -1 +1 @@
-App.Flaggable.update("<%= dom_id(@investment) %>", "<%= j render("budgets/investments/flag_actions", investment: @investment) %>")
+App.Flaggable.update("<%= dom_id(@investment) %>", "<%= j render("shared/flag_actions", flaggable: @investment) %>")
diff --git a/app/views/comments/_actions.html.erb b/app/views/comments/_actions.html.erb
index 76aed5b5a..166d05c12 100644
--- a/app/views/comments/_actions.html.erb
+++ b/app/views/comments/_actions.html.erb
@@ -1,5 +1,5 @@
- <%= render "comments/flag_actions", comment: comment %>
+ <%= render "shared/flag_actions", flaggable: comment, divider: true %>
diff --git a/app/views/comments/_flag_actions.html.erb b/app/views/comments/_flag_actions.html.erb
deleted file mode 100644
index 16e50f93b..000000000
--- a/app/views/comments/_flag_actions.html.erb
+++ /dev/null
@@ -1,26 +0,0 @@
-
- <% if show_flag_action? comment %>
- |
- ">
-
-
-
- <% end %>
-
- <% if show_unflag_action? comment %>
- |
- ">
-
-
-
- <% end %>
-
diff --git a/app/views/comments/_refresh_flag_actions.js.erb b/app/views/comments/_refresh_flag_actions.js.erb
index f6ce0bc91..991bb221e 100644
--- a/app/views/comments/_refresh_flag_actions.js.erb
+++ b/app/views/comments/_refresh_flag_actions.js.erb
@@ -1 +1 @@
-App.Flaggable.update("<%= dom_id(@comment) %>", "<%= j render("comments/flag_actions", comment: @comment) %>");
+App.Flaggable.update("<%= dom_id(@comment) %>", "<%= j render("shared/flag_actions", flaggable: @comment, divider: true) %>");
diff --git a/app/views/debates/_flag_actions.html.erb b/app/views/debates/_flag_actions.html.erb
deleted file mode 100644
index e6b3308df..000000000
--- a/app/views/debates/_flag_actions.html.erb
+++ /dev/null
@@ -1,19 +0,0 @@
-
- <% if show_flag_action? debate %>
- ">
-
-
-
- <%= link_to t("shared.flag"), flag_debate_path(debate), method: :put, remote: true %>
-
- <% end %>
-
- <% if show_unflag_action? debate %>
- ">
-
-
-
- <%= link_to t("shared.unflag"), unflag_debate_path(debate), method: :put, remote: true %>
-
- <% end %>
-
diff --git a/app/views/debates/_refresh_flag_actions.js.erb b/app/views/debates/_refresh_flag_actions.js.erb
index 2c1e1701a..297a9059b 100644
--- a/app/views/debates/_refresh_flag_actions.js.erb
+++ b/app/views/debates/_refresh_flag_actions.js.erb
@@ -1 +1 @@
-App.Flaggable.update("<%= dom_id(@debate) %>", "<%= j render("debates/flag_actions", debate: @debate) %>");
+App.Flaggable.update("<%= dom_id(@debate) %>", "<%= j render("shared/flag_actions", flaggable: @debate) %>");
diff --git a/app/views/debates/show.html.erb b/app/views/debates/show.html.erb
index 4b7211fdb..6889122f8 100644
--- a/app/views/debates/show.html.erb
+++ b/app/views/debates/show.html.erb
@@ -26,7 +26,7 @@
<%= link_to t("debates.show.comments", count: @debate.comments_count), "#comments" %>
•
- <%= render "debates/flag_actions", debate: @debate %>
+ <%= render "shared/flag_actions", flaggable: @debate %>
diff --git a/app/views/legislation/proposals/_flag_actions.html.erb b/app/views/legislation/proposals/_flag_actions.html.erb
deleted file mode 100644
index 10a7892cc..000000000
--- a/app/views/legislation/proposals/_flag_actions.html.erb
+++ /dev/null
@@ -1,19 +0,0 @@
-
- <% if show_flag_action? proposal %>
- ">
-
-
-
- <%= link_to t("shared.flag"), flag_legislation_process_proposal_path(proposal.process, proposal), method: :put, remote: true %>
-
- <% end %>
-
- <% if show_unflag_action? proposal %>
- ">
-
-
-
- <%= link_to t("shared.unflag"), unflag_legislation_process_proposal_path(proposal.process, proposal), method: :put, remote: true %>
-
- <% end %>
-
diff --git a/app/views/legislation/proposals/_refresh_flag_actions.js.erb b/app/views/legislation/proposals/_refresh_flag_actions.js.erb
index a9bbab7e3..38cb6a3c4 100644
--- a/app/views/legislation/proposals/_refresh_flag_actions.js.erb
+++ b/app/views/legislation/proposals/_refresh_flag_actions.js.erb
@@ -1 +1 @@
-App.Flaggable.update("<%= dom_id(@proposal) %>", "<%= j render("legislation/proposals/flag_actions", proposal: @proposal) %>");
+App.Flaggable.update("<%= dom_id(@proposal) %>", "<%= j render("shared/flag_actions", flaggable: @proposal) %>");
diff --git a/app/views/legislation/proposals/show.html.erb b/app/views/legislation/proposals/show.html.erb
index fd6c2280c..fdf7347a7 100644
--- a/app/views/legislation/proposals/show.html.erb
+++ b/app/views/legislation/proposals/show.html.erb
@@ -46,7 +46,7 @@
<% if current_user %>
•
- <%= render "legislation/proposals/flag_actions", proposal: @proposal %>
+ <%= render "shared/flag_actions", flaggable: @proposal %>
<% end %>
diff --git a/app/views/proposals/_flag_actions.html.erb b/app/views/proposals/_flag_actions.html.erb
deleted file mode 100644
index ed8e7aab0..000000000
--- a/app/views/proposals/_flag_actions.html.erb
+++ /dev/null
@@ -1,19 +0,0 @@
-
- <% if show_flag_action? proposal %>
- ">
-
-
-
- <%= link_to t("shared.flag"), flag_proposal_path(proposal), method: :put, remote: true %>
-
- <% end %>
-
- <% if show_unflag_action? proposal %>
- ">
-
-
-
- <%= link_to t("shared.unflag"), unflag_proposal_path(proposal), method: :put, remote: true %>
-
- <% end %>
-
diff --git a/app/views/proposals/_info.html.erb b/app/views/proposals/_info.html.erb
index f6c5e07b3..15467348b 100644
--- a/app/views/proposals/_info.html.erb
+++ b/app/views/proposals/_info.html.erb
@@ -13,7 +13,7 @@
<% if current_user %>
•
- <%= render "proposals/flag_actions", proposal: @proposal %>
+ <%= render "shared/flag_actions", flaggable: @proposal %>
<% end %>
diff --git a/app/views/proposals/_refresh_flag_actions.js.erb b/app/views/proposals/_refresh_flag_actions.js.erb
index e89e316c2..e60ee63b7 100644
--- a/app/views/proposals/_refresh_flag_actions.js.erb
+++ b/app/views/proposals/_refresh_flag_actions.js.erb
@@ -1,2 +1 @@
-App.Flaggable.update("<%= dom_id(@proposal) %>",
- "<%= j render("proposals/flag_actions", proposal: @proposal) %>")
+App.Flaggable.update("<%= dom_id(@proposal) %>", "<%= j render("shared/flag_actions", flaggable: @proposal) %>")
diff --git a/app/views/shared/_flag_actions.html.erb b/app/views/shared/_flag_actions.html.erb
new file mode 100644
index 000000000..fbd2c4ab2
--- /dev/null
+++ b/app/views/shared/_flag_actions.html.erb
@@ -0,0 +1,27 @@
+
+ <% if show_flag_action?(flaggable) %>
+ <% if local_assigns[:divider] %>
+ |
+ <% end %>
+
+ ">
+
+
+
+ <%= link_to t("shared.flag"), polymorphic_path(flaggable, action: :flag), method: :put, remote: true %>
+
+ <% end %>
+
+ <% if show_unflag_action?(flaggable) %>
+ <% if local_assigns[:divider] %>
+ |
+ <% end %>
+
+ ">
+
+
+
+ <%= link_to t("shared.unflag"), polymorphic_path(flaggable, action: :unflag), method: :put, remote: true %>
+
+ <% end %>
+