diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index fad581dc6..671d0b3a4 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -28,7 +28,7 @@ class AccountController < ApplicationController else [:username, :public_activity, :public_interests, :email_on_comment, :email_on_comment_reply, :email_on_direct_message, :email_digest, :newsletter, - :official_position_badge] + :official_position_badge, :recommended_debates] end params.require(:account).permit(*attributes) end diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index 33817166b..1180b9b6c 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -59,6 +59,8 @@ class DebatesController < ApplicationController end def debates_recommendations + return unless current_user.recommended_debates @recommended_debates = Debate.recommendations(current_user).sort_by_random.limit(3) end + end diff --git a/app/models/debate.rb b/app/models/debate.rb index ec58b2e23..e44d45420 100644 --- a/app/models/debate.rb +++ b/app/models/debate.rb @@ -151,7 +151,7 @@ class Debate < ActiveRecord::Base def self.debates_orders(user) orders = %w{hot_score confidence_score created_at relevance} - orders << "recommendations" if user.present? - orders + orders << "recommendations" if user&.recommended_debates + return orders end end diff --git a/app/views/account/show.html.erb b/app/views/account/show.html.erb index 81b25e5e0..a982e3f2e 100644 --- a/app/views/account/show.html.erb +++ b/app/views/account/show.html.erb @@ -112,6 +112,19 @@ <% end %> + <% if feature?("user.recommendations") %> +

<%= t("account.show.recommendations") %>

+ + <% if feature?("user.recommendations_on_debates") %> +
+ <%= f.check_box :recommended_debates, title: t("account.show.show_debates_recommendations"), label: false %> + + <%= t("account.show.show_debates_recommendations") %> + +
+ <% end %> + <% end %> + <%= f.submit t("account.show.save_changes_submit"), class: "button margin-top" %> diff --git a/app/views/debates/index.html.erb b/app/views/debates/index.html.erb index 478103ed1..edf2a93d6 100644 --- a/app/views/debates/index.html.erb +++ b/app/views/debates/index.html.erb @@ -35,7 +35,7 @@ <%= render "shared/section_header", i18n_namespace: "debates.index.section_header", image: "debates" %> <% end %> - <% if feature?("user.recommendations_on_debates") && @recommended_debates.present? %> + <% if @recommended_debates.present? %> <%= render "shared/recommended_index", recommended: @recommended_debates %> <% end %> diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml index 3916e2ba7..d76a777cc 100644 --- a/config/locales/en/general.yml +++ b/config/locales/en/general.yml @@ -20,6 +20,8 @@ en: email_on_direct_message_label: Receive emails about direct messages email_digest_label: Receive a summary of proposal notifications official_position_badge_label: Show official position badge + recommendations: Recommendations + show_debates_recommendations: Show debates recommendations title: My account user_permission_debates: Participate on debates user_permission_info: With your account you can... diff --git a/config/locales/es/general.yml b/config/locales/es/general.yml index e9c83ac9e..87dc0f285 100644 --- a/config/locales/es/general.yml +++ b/config/locales/es/general.yml @@ -20,6 +20,8 @@ es: email_on_direct_message_label: Recibir emails con mensajes privados email_digest_label: Recibir resumen de notificaciones sobre propuestas official_position_badge_label: Mostrar etiqueta de tipo de usuario + recommendations: Recomendaciones + show_debates_recommendations: Mostrar recomendaciones en el listado de debates title: Mi cuenta user_permission_debates: Participar en debates user_permission_info: Con tu cuenta ya puedes... diff --git a/db/migrate/20180604124515_add_recommended_debates_setting_to_users.rb b/db/migrate/20180604124515_add_recommended_debates_setting_to_users.rb new file mode 100644 index 000000000..500f1f4fc --- /dev/null +++ b/db/migrate/20180604124515_add_recommended_debates_setting_to_users.rb @@ -0,0 +1,7 @@ +class AddRecommendedDebatesSettingToUsers < ActiveRecord::Migration + def change + change_table :users do |t| + t.boolean :recommended_debates, default: false + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 54794367d..285e95c45 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1156,6 +1156,7 @@ ActiveRecord::Schema.define(version: 20180519132610) do t.integer "failed_email_digests_count", default: 0 t.text "former_users_data_log", default: "" t.boolean "public_interests", default: false + t.boolean "recommended_debates", default: false end add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true, using: :btree