parent
3aee775190
commit
16b81a879f
@ -1,21 +1,54 @@
|
||||
require_relative 'data_table'
|
||||
require_relative './data_table'
|
||||
|
||||
class DataListStudentShort < DataList
|
||||
def initialize(items)
|
||||
super(items.select { |item| item.is_a?(StudentShort) })
|
||||
end
|
||||
|
||||
def get_names
|
||||
['№', 'Фамилия и инициалы', 'Телефон', 'Telegram', 'Email']
|
||||
column_names
|
||||
end
|
||||
|
||||
def get_data
|
||||
data = @items.each_with_index.map do |student, index|
|
||||
[
|
||||
index + 1, # id
|
||||
student.surname_initials, # Фамилия и инициалы
|
||||
student.phone || '-', # Телефон (или прочерк)
|
||||
student.telegram || '-', # Telegram (или прочерк)
|
||||
student.email || '-' # Email (или прочерк)
|
||||
]
|
||||
data = prepare_table_data
|
||||
DataTable.new(data)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def column_names
|
||||
['№', 'Фамилия и инициалы', 'Телефон', 'Telegram', 'Email']
|
||||
end
|
||||
|
||||
def prepare_table_data
|
||||
@items.each_with_index.map do |item, index|
|
||||
prepare_row(item, index)
|
||||
end
|
||||
end
|
||||
|
||||
DataTable.new(data)
|
||||
def prepare_row(item, index)
|
||||
[
|
||||
index + 1, # id
|
||||
item.surname_initials, # Фамилия и инициалы
|
||||
item.phone || '-', # Телефон (или прочерк)
|
||||
item.telegram || '-', # Telegram (или прочерк)
|
||||
item.email || '-' # Email (или прочерк)
|
||||
]
|
||||
end
|
||||
|
||||
def extract_surname_initials(item)
|
||||
item.respond_to?(:surname_initials) ? item.surname_initials : 'N/A'
|
||||
end
|
||||
|
||||
def extract_phone(item)
|
||||
item.respond_to?(:phone) ? item.phone : nil
|
||||
end
|
||||
|
||||
def extract_telegram(item)
|
||||
item.respond_to?(:telegram) ? item.telegram : nil
|
||||
end
|
||||
|
||||
def extract_email(item)
|
||||
item.respond_to?(:email) ? item.email : nil
|
||||
end
|
||||
end
|
Loading…
Reference in new issue