diff --git a/app/views/exercises/_file_form.html.slim b/app/views/exercises/_file_form.html.slim
index 3f3c9e9e..642e0ee7 100644
--- a/app/views/exercises/_file_form.html.slim
+++ b/app/views/exercises/_file_form.html.slim
@@ -1,5 +1,6 @@
- id = f.object.id
-- file = object.file
+- file= f.object.files.first
+//- exercise_arg = @exercise
li.panel.panel-default
.panel-heading role="tab" id="heading"
@@ -38,5 +39,18 @@ li.panel.panel-default
.form-group
= f.label(:role, t('activerecord.attributes.file.weight'))
= f.number_field(:weight, class: 'form-control', min: 1, step: 'any')
- = render('code_field', attribute: :content, form: f, label: t('activerecord.attributes.file.content'))
- .editor data-file-id=file.ancestor_id data-indent-size=file.file_type.indent_size data-mode=file.file_type.editor_mode data-read-only=file.read_only data-id=file.id
+ .frame data-executable=file.file_type.executable? data-filename=file.name_with_extension data-renderable=file.file_type.renderable? data-role=file.role data-binary=file.file_type.binary? data-context-type=file.context_type
+ - if file.file_type.binary?
+ .binary-file data-file-id=file.ancestor_id
+ - if file.file_type.renderable?
+ - if file.file_type.audio?
+ = audio_tag(file.native_file.url, controls: true)
+ - elsif file.file_type.image?
+ = image_tag(file.native_file.url)
+ - elsif file.file_type.video?
+ = video_tag(file.native_file.url, controls: true)
+ - else
+ = link_to(file.native_file.file.name_with_extension, file.native_file.url)
+ - else
+ .editor-content.hidden data-file-id=file.ancestor_id = file.content
+ .editor data-file-id=file.ancestor_id data-indent-size=file.file_type.indent_size data-mode=file.file_type.editor_mode data-read-only=file.read_only data-id=file.id
diff --git a/app/views/exercises/_form.html.slim b/app/views/exercises/_form.html.slim
index b0ed068b..5f26b5fc 100644
--- a/app/views/exercises/_form.html.slim
+++ b/app/views/exercises/_form.html.slim
@@ -35,9 +35,8 @@
h2 = t('activerecord.attributes.exercise.files')
ul#files.list-unstyled.panel-group
= f.fields_for :files do |files_form|
- = render('file_form', f: files_form)
-
+ = render('file_form', f: files_form, object: @exercise)
a#add-file.btn.btn-default.btn-sm.pull-right href='#' = t('.add_file')
ul#dummies.hidden = f.fields_for(:files, CodeOcean::File.new, child_index: 'index') do |files_form|
- = render('file_form', f: files_form)
+ = render('file_form', f: files_form, e: @exercise)
.actions = render('shared/submit_button', f: f, object: @exercise)