74 lines
3.3 KiB
Plaintext
74 lines
3.3 KiB
Plaintext
- execution_environments = ExecutionEnvironment.where('file_type_id IS NOT NULL').select(:file_type_id, :id)
|
|
- file_types = FileType.where('file_extension IS NOT NULL').select(:file_extension, :id)
|
|
|
|
= form_for(@exercise, data: {execution_environments: execution_environments, file_types: file_types}, multipart: true, builder: PagedownFormBuilder) do |f|
|
|
= render('shared/form_errors', object: @exercise)
|
|
.form-group
|
|
= f.label(:title)
|
|
= f.text_field(:title, class: 'form-control', required: true)
|
|
.form-group
|
|
= f.label(:description)
|
|
= f.pagedown :description, input_html: { preview: true, rows: 10 }
|
|
.form-group
|
|
= f.label(:execution_environment_id)
|
|
= f.collection_select(:execution_environment_id, @execution_environments, :id, :name, {include_blank: 'None'}, class: 'form-control')
|
|
/.form-group
|
|
= f.label(:instructions)
|
|
= f.hidden_field(:instructions)
|
|
.form-control.markdown
|
|
.form-check
|
|
label.form-check-label
|
|
= f.check_box(:public, class: 'form-check-input')
|
|
= t('activerecord.attributes.exercise.public')
|
|
.form-check
|
|
label.form-check-label
|
|
= f.check_box(:unpublished, class: 'form-check-input')
|
|
= t('activerecord.attributes.exercise.unpublished')
|
|
.form-check
|
|
label.form-check-label
|
|
= f.check_box(:hide_file_tree, class: 'form-check-input')
|
|
= t('activerecord.attributes.exercise.hide_file_tree')
|
|
.form-check
|
|
label.form-check-label
|
|
= f.check_box(:allow_file_creation, class: 'form-check-input')
|
|
= t('activerecord.attributes.exercise.allow_file_creation')
|
|
.form-check.mb-3
|
|
label.form-check-label
|
|
= f.check_box(:allow_auto_completion, class: 'form-check-input')
|
|
= t('activerecord.attributes.exercise.allow_auto_completion')
|
|
.form-group
|
|
= f.label(t('activerecord.attributes.exercise.difficulty'))
|
|
= f.number_field :expected_difficulty, in: 1..10, step: 1, class: 'form-control'
|
|
|
|
h2 = t('exercises.form.tags')
|
|
ul.list-unstyled.card-group
|
|
li.card
|
|
.card-header role="tab" id="heading"
|
|
a.file-heading data-toggle="collapse" href="#tag-collapse"
|
|
div.clearfix role="button"
|
|
span = t('exercises.form.click_to_collapse')
|
|
.card-collapse.collapse id="tag-collapse" role="tabpanel"
|
|
.table-responsive
|
|
table.table#tags-table
|
|
thead
|
|
tr
|
|
th = t('activerecord.attributes.exercise.selection')
|
|
th = sort_link(@search, :title, t('activerecord.attributes.tag.name'))
|
|
th = t('activerecord.attributes.tag.difficulty')
|
|
= collection_check_boxes :exercise, :tag_ids, @exercise_tags, :tag_id, :id do |b|
|
|
tr
|
|
td = b.check_box
|
|
td = b.object.tag.name
|
|
td = number_field "tag_factors[#{b.object.tag.id}]", :factor, :value => b.object.factor, in: 1..10, step: 1, class: 'form-control-sm'
|
|
|
|
h2 = t('activerecord.attributes.exercise.files')
|
|
ul#files.list-unstyled
|
|
= f.fields_for :files do |files_form|
|
|
= render('file_form', f: files_form)
|
|
|
|
a#add-file.btn.btn-secondary.btn-sm.float-right href='#' = t('.add_file')
|
|
ul#dummies.d-none = f.fields_for(:files, CodeOcean::File.new, child_index: 'index') do |files_form|
|
|
= render('file_form', f: files_form)
|
|
|
|
.actions = render('shared/submit_button', f: f, object: @exercise)
|