vol1ura/Sat_9am_5km

View on GitHub
app/views/admin/results/_form.html.arb

Summary

Maintainability
Test Coverage
# frozen_string_literal: true

active_admin_form_for [:admin, activity, resource] do |f|
  f.semantic_errors(*f.object.errors.attribute_names)
  columns do
    column do
      panel 'Редактирование результата' do
        li f.object.athlete&.name || 'Участник не привязан'
        li "Parkrun ID: #{f.object.athlete&.parkrun_code || 'не указан'}"
        li "5 вёрст ID: #{f.object.athlete&.fiveverst_code || 'не указан'}"
        li "Runpark ID: #{f.object.athlete&.runpark_code || 'не указан'}"
        li "Забег: #{f.object.activity.event_name}"
        li "Дата забега: #{f.object.date}"
      end
    end
    column do
      para 'Заполните одно и ТОЛЬКО одно из полей, другое поле очистите.'
      f.inputs 'Parkrun, RunPark или 5вёрст ID участника (только цифры, без буквы "A")' do
        code = f.object.athlete&.parkrun_code || f.object.athlete&.fiveverst_code || f.object.athlete&.runpark_code
        number_field_tag :code,
                         params[:code].presence || code,
                         placeholder: 'Штрихкод ID', style: 'width: 10rem; margin-left: 1rem;', inputmode: 'numeric'
      end
      panel 'Имя участника' do
        render partial: '/admin/athlete_fields', locals: { resource: f.object.athlete, form: f }
      end
    end
  end
  columns do
    column do
      para 'Внимание! При изменении здесь времени, место изменено НЕ будет!'
      f.inputs 'Результат (Часы:Минуты:Секунды)' do
        input :total_time, as: :time_select, include_seconds: true, ignore_date: true, include_blank: false
      end
    end
    column do
      para 'Внимание! При изменении здесь номера, время изменено НЕ будет!'
      f.inputs do
        input :position, required: true, input_html: { inputmode: 'numeric' }
      end
    end
  end
  f.actions
end