+ <% if show_follow_action? followable %>
+
+ <%= t('shared.follow') %>
+
+
+ <%= link_to follow_entity_text(entity_name(followable)), follows_path("#{entity_name(followable)}_id": followable.id), method: :post, remote: true, id: "follow-#{entity_name(followable)}-#{ followable.id }" %>
+
+ <% end %>
+
+ <% if show_unfollow_action? followable %>
+ <% follow = followable.follows.where(user: current_user).first %>
+
+ <%= t('shared.unfollow') %>
+
+
+ <%= link_to unfollow_entity_text(entity_name(followable)), follow_path(follow), method: :delete, remote: true, id: "unfollow-#{entity_name(followable)}-#{ followable.id }" %>
+
+ <% end %>
+
diff --git a/app/views/follows/refresh_follow_button.js.erb b/app/views/follows/refresh_follow_button.js.erb
new file mode 100644
index 000000000..1e8dc89f9
--- /dev/null
+++ b/app/views/follows/refresh_follow_button.js.erb
@@ -0,0 +1 @@
+$("#<%= dom_id(@followable) %> .js-follow").html('<%= j render("followable_button", followable: @followable) %>');
diff --git a/app/views/proposals/show.html.erb b/app/views/proposals/show.html.erb
index d678214d2..c82503f27 100644
--- a/app/views/proposals/show.html.erb
+++ b/app/views/proposals/show.html.erb
@@ -53,6 +53,10 @@