このコミットが含まれているのは:
@@ -20,7 +20,7 @@ class MaterialsController < ApplicationController
|
||||
q = Material.includes(:material_export_items,
|
||||
thumbnail_attachment: :blob,
|
||||
file_attachment: :blob,
|
||||
tag: :tag_name)
|
||||
tag: :tag_names)
|
||||
q = q.where(tag_id: nil) if filters[:tag_state] == 'untagged'
|
||||
q = q.where.not(tag_id: nil) if filters[:tag_state] == 'tagged'
|
||||
q = apply_material_tag_filter(q, filters, tag_graph)
|
||||
@@ -63,7 +63,7 @@ class MaterialsController < ApplicationController
|
||||
.find_by(id: params[:id])
|
||||
return head :not_found unless material
|
||||
|
||||
wiki_page_body = material.tag&.tag_name&.wiki_page&.current_revision&.body
|
||||
wiki_page_body = material.tag&.tag_name('ja')&.wiki_page&.current_revision&.body
|
||||
|
||||
render json: MaterialRepr.base(material, host: request.base_url).merge(wiki_page_body:)
|
||||
end
|
||||
@@ -96,7 +96,8 @@ class MaterialsController < ApplicationController
|
||||
updated_by_user: current_user)
|
||||
material.file.attach(uploaded_blob) if uploaded_blob
|
||||
material.save!
|
||||
TagVersioning.record_tag_snapshot!(tag, created_by_user: current_user)
|
||||
TagVersioning.record_tag_snapshot!(tag, created_by_user: current_user,
|
||||
language_code: locale.language_code)
|
||||
upsert_export_paths!(material)
|
||||
MaterialVersionRecorder.record!(material:, event_type: :create,
|
||||
created_by_user: current_user)
|
||||
@@ -148,7 +149,8 @@ class MaterialsController < ApplicationController
|
||||
material.file.detach
|
||||
end
|
||||
material.save!
|
||||
TagVersioning.record_tag_snapshot!(tag, created_by_user: current_user)
|
||||
TagVersioning.record_tag_snapshot!(tag, created_by_user: current_user,
|
||||
language_code: locale.language_code)
|
||||
upsert_export_paths!(material)
|
||||
MaterialVersionRecorder.record!(material:, event_type: :update,
|
||||
created_by_user: current_user)
|
||||
@@ -254,7 +256,12 @@ class MaterialsController < ApplicationController
|
||||
end
|
||||
|
||||
def material_index_join_tag_name q
|
||||
q.left_joins(tag: :tag_name)
|
||||
q.left_joins(:tag).joins(<<~SQL.squish)
|
||||
LEFT JOIN tag_names
|
||||
ON tag_names.tag_id = tags.id
|
||||
AND tag_names.language_code = 'ja'
|
||||
AND tag_names.primary_flg = TRUE
|
||||
SQL
|
||||
end
|
||||
|
||||
def material_index_join_file_blob q
|
||||
@@ -270,9 +277,11 @@ class MaterialsController < ApplicationController
|
||||
|
||||
def apply_material_query q, term
|
||||
like = "%#{ ActiveRecord::Base.sanitize_sql_like(term) }%"
|
||||
q.where('tag_names.name LIKE :q OR materials.url LIKE :q OR ' \
|
||||
'material_file_blobs.filename LIKE :q',
|
||||
q: like)
|
||||
q.where(<<~SQL.squish, q: like)
|
||||
tag_names.name LIKE :q
|
||||
OR materials.url LIKE :q
|
||||
OR material_file_blobs.filename LIKE :q
|
||||
SQL
|
||||
end
|
||||
|
||||
def apply_material_media_kind q, media_kind
|
||||
@@ -324,8 +333,9 @@ class MaterialsController < ApplicationController
|
||||
end
|
||||
tags_by_id =
|
||||
Tag
|
||||
.joins(:tag_name)
|
||||
.where(id: scope_tag_ids)
|
||||
.joins(:tag_names)
|
||||
.where(id: scope_tag_ids,
|
||||
tag_names: { language_code: 'ja', primary_flg: true })
|
||||
.pluck('tags.id', 'tag_names.name', 'tags.category', 'tags.deprecated_at')
|
||||
.each_with_object({ }) do |(id, name, category, deprecated_at), hash|
|
||||
hash[id] = { id:, name:, category:, deprecated: deprecated_at.present? }
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする