Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add abilityto add oneself to lists #12271

Merged
merged 3 commits into from Nov 4, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 3 additions & 1 deletion app/models/account.rb
Expand Up @@ -429,6 +429,8 @@ def advanced_search_for(terms, account, limit = 10, following = false, offset =
SELECT target_account_id
FROM follows
WHERE account_id = ?
UNION ALL
SELECT ?
)
SELECT
accounts.*,
Expand All @@ -444,7 +446,7 @@ def advanced_search_for(terms, account, limit = 10, following = false, offset =
LIMIT ? OFFSET ?
SQL

records = find_by_sql([sql, account.id, account.id, account.id, limit, offset])
records = find_by_sql([sql, account.id, account.id, account.id, account.id, limit, offset])
else
sql = <<-SQL.squish
SELECT
Expand Down
6 changes: 3 additions & 3 deletions app/models/list_account.rb
Expand Up @@ -6,13 +6,13 @@
# id :bigint(8) not null, primary key
# list_id :bigint(8) not null
# account_id :bigint(8) not null
# follow_id :bigint(8) not null
# follow_id :bigint(8)
#

class ListAccount < ApplicationRecord
belongs_to :list
belongs_to :account
belongs_to :follow
belongs_to :follow, optional: true

validates :account_id, uniqueness: { scope: :list_id }

Expand All @@ -21,6 +21,6 @@ class ListAccount < ApplicationRecord
private

def set_follow
self.follow = Follow.find_by(account_id: list.account_id, target_account_id: account.id)
self.follow = Follow.find_by!(account_id: list.account_id, target_account_id: account.id) unless list.account_id == account.id
end
end
2 changes: 1 addition & 1 deletion app/services/account_search_service.rb
Expand Up @@ -127,7 +127,7 @@ def time_distance_function
end

def following_ids
@following_ids ||= account.active_relationships.pluck(:target_account_id)
@following_ids ||= account.active_relationships.pluck(:target_account_id) + [account.id]
end

def limit_for_non_exact_results
Expand Down
@@ -0,0 +1,5 @@
class ChangeListAccountFollowNullable < ActiveRecord::Migration[5.1]
def change
change_column_null :list_accounts, :follow_id, true
end
end
4 changes: 2 additions & 2 deletions db/schema.rb
Expand Up @@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.

ActiveRecord::Schema.define(version: 2019_10_07_013357) do
ActiveRecord::Schema.define(version: 2019_10_31_163205) do

# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
Expand Down Expand Up @@ -373,7 +373,7 @@
create_table "list_accounts", force: :cascade do |t|
t.bigint "list_id", null: false
t.bigint "account_id", null: false
t.bigint "follow_id", null: false
t.bigint "follow_id"
t.index ["account_id", "list_id"], name: "index_list_accounts_on_account_id_and_list_id", unique: true
t.index ["follow_id"], name: "index_list_accounts_on_follow_id"
t.index ["list_id", "account_id"], name: "index_list_accounts_on_list_id_and_account_id"
Expand Down