57 lines
4.0 KiB
Plaintext
57 lines
4.0 KiB
Plaintext
h1 = Exercise.model_name.human(count: 2)
|
|
|
|
= render(layout: 'shared/form_filters') do |f|
|
|
.row.px-3
|
|
.form-group
|
|
= f.label(:execution_environment_id_eq, t('activerecord.attributes.exercise.execution_environment'), class: 'sr-only')
|
|
= f.collection_select(:execution_environment_id_eq, ExecutionEnvironment.with_exercises, :id, :name, class: 'form-control', prompt: t('activerecord.attributes.exercise.execution_environment'))
|
|
.form-group
|
|
= f.label(:title_cont, t('activerecord.attributes.exercise.title'), class: 'sr-only')
|
|
= f.search_field(:title_cont, class: 'form-control', placeholder: t('activerecord.attributes.exercise.title'))
|
|
|
|
.table-responsive
|
|
table.table.mt-4
|
|
thead
|
|
tr
|
|
th.p-1 = sort_link(@search, :title, t('activerecord.attributes.exercise.title'))
|
|
th.p-1 = sort_link(@search, :execution_environment_id, t('activerecord.attributes.exercise.execution_environment'))
|
|
th.p-1 = t('.test_files')
|
|
th.p-1 = t('activerecord.attributes.exercise.maximum_score')
|
|
th.p-1 = t('activerecord.attributes.exercise.tags')
|
|
th.p-1 = t('activerecord.attributes.exercise.difficulty')
|
|
th.p-1
|
|
= t('activerecord.attributes.exercise.public')
|
|
- if policy(Exercise).batch_update?
|
|
br
|
|
span.batch = link_to(t('shared.batch_update'), '#', 'data-text' => t('shared.update', model: t('activerecord.models.exercise.other')))
|
|
th.p-1 colspan=6 = t('shared.actions')
|
|
tbody
|
|
- @exercises.each do |exercise|
|
|
tr data-id=exercise.id
|
|
td.p-1.pt-2 = link_to_if(policy(exercise).show?, exercise.title, exercise, 'data-turbolinks' => "false")
|
|
td.p-1.pt-2 = link_to_if(exercise.execution_environment && policy(exercise.execution_environment).show?, exercise.execution_environment, exercise.execution_environment)
|
|
td.p-1.pt-2 = exercise.files.teacher_defined_assessments.count
|
|
td.p-1.pt-2 = exercise.maximum_score
|
|
td.p-1.pt-2 = exercise.exercise_tags.count
|
|
td.p-1.pt-2 = exercise.expected_difficulty
|
|
td.p-1.pt-2.public data-value=exercise.public? = symbol_for(exercise.public?)
|
|
td.p-1.pt-2 = link_to(t('shared.edit'), edit_exercise_path(exercise)) if policy(exercise).edit?
|
|
td.p-1.pt-2 = link_to(t('.implement'), implement_exercise_path(exercise)) if policy(exercise).implement?
|
|
td.p-1.pt-2 = link_to(t('shared.statistics'), statistics_exercise_path(exercise), 'data-turbolinks' => "false") if policy(exercise).statistics?
|
|
|
|
td.p-1
|
|
.btn-group
|
|
button.btn.btn-outline-primary.btn-sm.dropdown-toggle data-toggle="dropdown" type="button" = t('shared.actions_button')
|
|
ul.dropdown-menu.float-right role="menu"
|
|
li = link_to(t('shared.show'), exercise, 'data-turbolinks' => "false", class: 'dropdown-item') if policy(exercise).show?
|
|
li = link_to(t('activerecord.models.user_exercise_feedback.other'), feedback_exercise_path(exercise), class: 'dropdown-item') if policy(exercise).feedback?
|
|
li = link_to(t('activerecord.models.request_for_comment.other'), requests_for_comments_exercise_path(exercise), class: 'dropdown-item') if policy(exercise).requests_for_comments?
|
|
li = link_to(t('shared.destroy'), exercise, data: {confirm: t('shared.confirm_destroy')}, method: :delete, class: 'dropdown-item') if policy(exercise).destroy?
|
|
li = link_to(t('.clone'), clone_exercise_path(exercise), data: {confirm: t('shared.confirm_destroy')}, method: :post, class: 'dropdown-item') if policy(exercise).clone?
|
|
li = link_to(t('exercises.export_codeharbor.label'), '', class: 'dropdown-item export-start', data: {'exercise-id' => exercise.id}) if policy(exercise).export_external_confirm?
|
|
|
|
= render('shared/pagination', collection: @exercises)
|
|
p = render('shared/new_button', model: Exercise)
|
|
|
|
= render('shared/modal', id: 'export-modal', title: t('exercises.export_codeharbor.dialogtitle'), template: 'exercises/_export_dialogcontent')
|