diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index 671d0b3a4..a82017f16 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, :recommended_debates] + :official_position_badge, :recommended_debates, :recommended_proposals] end params.require(:account).permit(*attributes) end diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index ee4b9f1d6..c280f9962 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -146,6 +146,7 @@ class ProposalsController < ApplicationController end def proposals_recommendations + return unless current_user.recommended_proposals @recommended_proposals = Proposal.recommendations(current_user).sort_by_random.limit(3) end diff --git a/app/models/proposal.rb b/app/models/proposal.rb index 4393d0d51..fa80efeed 100644 --- a/app/models/proposal.rb +++ b/app/models/proposal.rb @@ -210,8 +210,8 @@ class Proposal < ActiveRecord::Base def self.proposals_orders(user) orders = %w{hot_score confidence_score created_at relevance archival_date} - orders << "recommendations" if user.present? - orders + orders << "recommendations" if user&.recommended_proposals + return orders end protected diff --git a/app/views/account/show.html.erb b/app/views/account/show.html.erb index a982e3f2e..64edd1ae5 100644 --- a/app/views/account/show.html.erb +++ b/app/views/account/show.html.erb @@ -123,6 +123,15 @@ <% end %> + + <% if feature?("user.recommendations_on_proposals") %> +
+ <%= f.check_box :recommended_proposals, title: t("account.show.show_proposals_recommendations"), label: false %> + + <%= t("account.show.show_proposals_recommendations") %> + +
+ <% end %> <% end %> <%= f.submit t("account.show.save_changes_submit"), class: "button margin-top" %> diff --git a/app/views/proposals/index.html.erb b/app/views/proposals/index.html.erb index 95748bf80..2d4121c30 100644 --- a/app/views/proposals/index.html.erb +++ b/app/views/proposals/index.html.erb @@ -37,7 +37,7 @@ <%= render "shared/section_header", i18n_namespace: "proposals.index.section_header", image: "proposals" %> <% end %> - <% if feature?("user.recommendations_on_proposals") && @recommended_proposals.present? %> + <% if @recommended_proposals.present? %> <%= render "shared/recommended_index", recommended: @recommended_proposals %> <% end %> diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml index d76a777cc..b0afb62c7 100644 --- a/config/locales/en/general.yml +++ b/config/locales/en/general.yml @@ -22,6 +22,7 @@ en: official_position_badge_label: Show official position badge recommendations: Recommendations show_debates_recommendations: Show debates recommendations + show_proposals_recommendations: Show proposals 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 87dc0f285..2708e1903 100644 --- a/config/locales/es/general.yml +++ b/config/locales/es/general.yml @@ -22,6 +22,7 @@ es: official_position_badge_label: Mostrar etiqueta de tipo de usuario recommendations: Recomendaciones show_debates_recommendations: Mostrar recomendaciones en el listado de debates + show_proposals_recommendations: Mostrar recomendaciones en el listado de propuestas title: Mi cuenta user_permission_debates: Participar en debates user_permission_info: Con tu cuenta ya puedes... diff --git a/db/migrate/20180604151014_add_recommended_proposals_setting_to_users.rb b/db/migrate/20180604151014_add_recommended_proposals_setting_to_users.rb new file mode 100644 index 000000000..53a59e210 --- /dev/null +++ b/db/migrate/20180604151014_add_recommended_proposals_setting_to_users.rb @@ -0,0 +1,7 @@ +class AddRecommendedProposalsSettingToUsers < ActiveRecord::Migration + def change + change_table :users do |t| + t.boolean :recommended_proposals, default: false + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 285e95c45..d1d714c89 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1157,6 +1157,7 @@ ActiveRecord::Schema.define(version: 20180519132610) do t.text "former_users_data_log", default: "" t.boolean "public_interests", default: false t.boolean "recommended_debates", default: false + t.boolean "recommended_proposals", default: false end add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true, using: :btree