Explorar el Código

Fix account tags not being saved correctly (#11507)

* Fix account tags not being saved correctly

Regression from f371b32

Fix Tag#discoverable not returning tags where listable is nil instead of true

Add notice when saving hashtags in admin UI

Change public hashtag and directory pages to return 404 for forbidden tags

* Remove unused locale string
master^2
Eugen Rochko hace 4 años
committed by GitHub
padre
commit
ac33f1aedd
No se encontró ninguna clave conocida en la base de datos para esta firma ID de clave GPG: 4AEE18F83AFDEB23
Se han modificado 6 ficheros con 7 adiciones y 15 borrados
  1. +1
    -1
      app/controllers/admin/tags_controller.rb
  2. +1
    -1
      app/controllers/directories_controller.rb
  3. +1
    -1
      app/controllers/tags_controller.rb
  4. +1
    -11
      app/models/account.rb
  5. +2
    -1
      app/models/tag.rb
  6. +1
    -0
      config/locales/en.yml

+ 1
- 1
app/controllers/admin/tags_controller.rb Ver fichero

@@ -17,7 +17,7 @@ module Admin
authorize @tag, :update?

if @tag.update(tag_params.merge(reviewed_at: Time.now.utc))
redirect_to admin_tag_path(@tag.id)
redirect_to admin_tag_path(@tag.id), notice: I18n.t('admin.tags.updated_msg')
else
render :show
end


+ 1
- 1
app/controllers/directories_controller.rb Ver fichero

@@ -25,7 +25,7 @@ class DirectoriesController < ApplicationController
end

def set_tag
@tag = Tag.discoverable.find_by!(name: params[:id].downcase)
@tag = Tag.discoverable.find_normalized!(params[:id])
end

def set_tags


+ 1
- 1
app/controllers/tags_controller.rb Ver fichero

@@ -47,7 +47,7 @@ class TagsController < ApplicationController
private

def set_tag
@tag = Tag.find_normalized!(params[:id])
@tag = Tag.usable.find_normalized!(params[:id])
end

def set_body_classes


+ 1
- 11
app/models/account.rb Ver fichero

@@ -227,17 +227,7 @@ class Account < ApplicationRecord
end

def tags_as_strings=(tag_names)
tag_names.map! { |name| name.mb_chars.downcase.to_s }
tag_names.uniq!

# Existing hashtags
hashtags_map = Tag.where(name: tag_names).each_with_object({}) { |tag, h| h[tag.name] = tag }

# Initialize not yet existing hashtags
tag_names.each do |name|
next if hashtags_map.key?(name)
hashtags_map[name] = Tag.new(name: name)
end
hashtags_map = Tag.find_or_create_by_names(tag_names).each_with_object({}) { |tag, h| h[tag.name] = tag }

# Remove hashtags that are to be deleted
tags.each do |tag|


+ 2
- 1
app/models/tag.rb Ver fichero

@@ -31,7 +31,8 @@ class Tag < ApplicationRecord

scope :reviewed, -> { where.not(reviewed_at: nil) }
scope :pending_review, -> { where(reviewed_at: nil).where.not(requested_review_at: nil) }
scope :discoverable, -> { where.not(listable: false).joins(:account_tag_stat).where(AccountTagStat.arel_table[:accounts_count].gt(0)).order(Arel.sql('account_tag_stats.accounts_count desc')) }
scope :usable, -> { where(usable: [true, nil]) }
scope :discoverable, -> { where(listable: [true, nil]).joins(:account_tag_stat).where(AccountTagStat.arel_table[:accounts_count].gt(0)).order(Arel.sql('account_tag_stats.accounts_count desc')) }
scope :most_used, ->(account) { joins(:statuses).where(statuses: { account: account }).group(:id).order(Arel.sql('count(*) desc')) }

delegate :accounts_count,


+ 1
- 0
config/locales/en.yml Ver fichero

@@ -496,6 +496,7 @@ en:
title: Hashtags
trending_right_now: Trending right now
unique_uses_today: "%{count} posting today"
updated_msg: Hashtag settings updated successfully
title: Administration
warning_presets:
add_new: Add new


Cargando…
Cancelar
Guardar