@@ -68,7 +68,7 @@ def string_to_bool(str)
68
68
end
69
69
70
70
def files
71
- model_solution_files + test_files + task_files
71
+ ( model_solution_files + test_files + task_files ) . uniq { | f | [ f . name , f . file_type_id , f . role , f . path ] }
72
72
end
73
73
74
74
def test_files
@@ -106,16 +106,20 @@ def task_files
106
106
107
107
def codeocean_file_from_task_file ( file , parent_object = nil )
108
108
extension = File . extname ( file . filename )
109
+ path = File . dirname ( file . filename ) . in? ( [ '.' , '' ] ) ? nil : File . dirname ( file . filename )
110
+ name = File . basename ( file . filename , '.*' )
111
+ role = extract_meta_data ( @task . meta_data &.dig ( 'meta-data' ) , 'files' , "CO-#{ file . id } " , 'role' )
112
+
109
113
# checking the last element of xml_id_path array for file.id
110
114
codeocean_file = @exercise . files . detect { |f | f . xml_id_path . last == file . id } || @exercise . files . new
111
115
codeocean_file . assign_attributes (
112
116
context : @exercise ,
113
117
file_type : file_type ( extension ) ,
114
118
hidden : file . visible != 'yes' , # hides 'delayed' and 'no'
115
- name : File . basename ( file . filename , '.*' ) ,
119
+ name :,
116
120
read_only : file . usage_by_lms != 'edit' ,
117
- role : extract_meta_data ( @task . meta_data &. dig ( 'meta-data' ) , 'files' , "CO- #{ file . id } " , 'role' ) ,
118
- path : File . dirname ( file . filename ) . in? ( [ '.' , '' ] ) ? nil : File . dirname ( file . filename ) ,
121
+ role :,
122
+ path :,
119
123
xml_id_path : ( parent_object . nil? ? [ file . id ] : [ parent_object . id , file . id ] ) . map ( &:to_s )
120
124
)
121
125
if file . binary
0 commit comments