moved hashtags location in xls

This commit is contained in:
rulingcom 2025-08-13 22:18:55 +08:00
parent 2691864954
commit 9dcafd268c
3 changed files with 32 additions and 30 deletions

View File

@ -10,6 +10,15 @@ wb.add_worksheet(name: "Structure") do |sheet|
row1 = ['uid'] row1 = ['uid']
row2 = ['Use to update existing entries. Leave blank to create new.'] row2 = ['Use to update existing entries. Leave blank to create new.']
# 加入 hashtags 與 related_entries 欄位
row << t("universal_table.hashtags")
row1 << "table_tags"
row2 << "Separate tags by ;"
row << t("universal_table.related_entries")
row1 << "related_entries"
row2 << "Separate UIDs with ;"
@table.table_columns.asc(:order).each do |column| @table.table_columns.asc(:order).each do |column|
case column.type case column.type
when "text", "editor" when "text", "editor"
@ -48,7 +57,7 @@ wb.add_worksheet(name: "Structure") do |sheet|
row << "#{column.title}" row << "#{column.title}"
row1 << column.key row1 << column.key
row2 << "Separate the files by ;" row2 << "Separate the files by ;"
@site_in_use_locales.sort.each do |locale| @site_in_use_locales.sort.each do |locale|
# URL 欄位 # URL 欄位
row << "#{column.title} (註解) - #{t(locale.to_s)}" row << "#{column.title} (註解) - #{t(locale.to_s)}"
@ -59,14 +68,6 @@ wb.add_worksheet(name: "Structure") do |sheet|
end # <-- 正確結束 case 區塊 end # <-- 正確結束 case 區塊
end end
# 加入 hashtags 與 related_entries 欄位
row << t("universal_table.hashtags")
row1 << "table_tags"
row2 << "Separate tags by ;"
row << t("universal_table.related_entries")
row1 << "related_entries"
row2 << "Separate UIDs with ;"
sheet.add_row row, style: heading sheet.add_row row, style: heading
sheet.add_row row1 sheet.add_row row1

View File

@ -15,6 +15,14 @@ wb.add_worksheet(name: "Structure") do |sheet|
row1 << "uid" row1 << "uid"
row2 << "uid" row2 << "uid"
row << t("universal_table.hashtags")
row1 << "table_tags"
row2 << "Separate tags by ;"
row << t("universal_table.related_entries")
row1 << "related_entries"
row2 << "Separate UIDs with ;"
table.table_columns.asc(:order).each do |column| table.table_columns.asc(:order).each do |column|
case column.type case column.type
when "text", "editor" when "text", "editor"
@ -53,13 +61,6 @@ wb.add_worksheet(name: "Structure") do |sheet|
end end
end end
row << t("universal_table.hashtags")
row1 << "table_tags"
row2 << "Separate tags by ;"
row << t("universal_table.related_entries")
row1 << "related_entries"
row2 << "Separate UIDs with ;"
sheet.add_row row, style: heading sheet.add_row row, style: heading
sheet.add_row row1 sheet.add_row row1
@ -68,6 +69,8 @@ wb.add_worksheet(name: "Structure") do |sheet|
table.table_entries.asc(:created_at).each do |entry| table.table_entries.asc(:created_at).each do |entry|
row = [] row = []
row << entry.uid row << entry.uid
row << entry.hashtags_for_export
row << entry.get_related_entries_uid
table.table_columns.asc(:order).each do |col| table.table_columns.asc(:order).each do |col|
column = entry.column_entries.where(table_column_id: col.id).first column = entry.column_entries.where(table_column_id: col.id).first
@ -137,9 +140,6 @@ wb.add_worksheet(name: "Structure") do |sheet|
end end
end end
row << entry.hashtags_for_export
row << entry.get_related_entries_uid
sheet.add_row row, style: wrap sheet.add_row row, style: wrap
end end
end end

View File

@ -77,6 +77,8 @@ namespace :universal_table_tasks do
[i, tc] [i, tc]
end.to_h end.to_h
sheet.each_with_index do |row, i| sheet.each_with_index do |row, i|
if i >= 3 && row.cells.all? { |c| c.nil? || c.value.to_s.strip.blank? } if i >= 3 && row.cells.all? { |c| c.nil? || c.value.to_s.strip.blank? }
table.inc(current_xlsx_value: 1) table.inc(current_xlsx_value: 1)
@ -85,11 +87,18 @@ namespace :universal_table_tasks do
next if i < 3 next if i < 3
uid_val = row[0].value.to_s.strip rescue nil uid_val = row[0].value.to_s.strip rescue nil
te = uid_val.present? ? TableEntry.where(uid: uid_val, u_table_id: table.id).first_or_initialize : TableEntry.new te = uid_val.present? ? TableEntry.where(uid: uid_val, u_table_id: table.id).first_or_initialize : TableEntry.new
te.u_table = table te.u_table = table
skip = 0 skip = 3
tc_idx = 0 tc_idx = 3
tags_text = row.cells[1].value.to_s rescue ""
module_app = ModuleApp.find_by_key("universal_table")
create_get_table_tags(te, tags_text.split(";"), module_app) if row.cells.count >= 2
related_uids = row.cells[2].value.to_s.split(";").map(&:strip) rescue []
related_ids = TableEntry.where(:uid.in => related_uids).pluck(:id)
te.related_entries = related_ids.join(",") if row.cells.count >= 1
row.cells.each_with_index do |cell, col_idx| row.cells.each_with_index do |cell, col_idx|
next if skip > 0 && (skip -= 1) >= 0 next if skip > 0 && (skip -= 1) >= 0
@ -156,14 +165,6 @@ namespace :universal_table_tasks do
te.column_entries << ce te.column_entries << ce
end end
tags_text = row.cells[-2].value.to_s rescue ""
module_app = ModuleApp.find_by_key("universal_table")
create_get_table_tags(te, tags_text.split(";"), module_app) if row.cells.count >= 2
related_uids = row.cells[-1].value.to_s.split(";").map(&:strip)
related_ids = TableEntry.where(:uid.in => related_uids).pluck(:id)
te.related_entries = related_ids.join(",") if row.cells.count >= 1
te.save! te.save!
te.fix_have_data te.fix_have_data
te.uid = uid_val if uid_val.present? te.uid = uid_val if uid_val.present?