app/views/admin/activities/_form.html.arb
# frozen_string_literal: true
active_admin_form_for [:admin, resource] do |f|
f.semantic_errors(*f.object.errors.attribute_names)
unless resource.published
f.inputs 'Выберите мероприятие' do
input :event_id, as: :select, label: 'Мероприятие', collection: Event.authorized_for(current_user).pluck(:name, :id)
end
end
f.inputs 'Сведения о забеге' do
unless resource.date && resource.results.exists?
input :date, as: :datepicker, datepicker_options: { min_date: '-1D', max_date: '+2M' }
end
input :description, as: :quill_editor,
input_html: {
data: {
options: {
modules: {
toolbar: [
%w[bold italic strike],
%w[blockquote code-block],
[{ list: 'ordered' }, { list: 'bullet' }],
['link'],
['clean']
],
},
placeholder: 'Какой же классный забег...',
theme: 'snow',
},
},
}
input :published, label: 'Опубликован на сайте' if resource.published && current_user.admin?
end
unless resource.published
if resource.results.exists?
panel 'Внимание!' do
para 'Файл с секундомера уже загружен. Если его нужно загрузить повторно, сначала очистите все результаты забега.'
para 'Загрузить дополнительные файлы со сканера можно сразу или позже.'
end
else
f.inputs 'Загрузите файл с секундомера (только CSV)' do
input :timer, as: :file, label: 'Файл с секундомера', input_html: { accept: 'text/csv,.csv' }
end
end
f.inputs 'Загрузите файлы со сканеров (только CSV)' do
Activity::MAX_SCANNERS.times do |i|
input "scanner#{i}", as: :file, label: "Файл со сканера #{i + 1}", input_html: { accept: 'text/csv,.csv' }
end
end
end
actions
end