@@ -68,7 +68,7 @@ def string_to_bool(str)
6868 end
6969
7070 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 ] }
7272 end
7373
7474 def test_files
@@ -106,16 +106,20 @@ def task_files
106106
107107 def codeocean_file_from_task_file ( file , parent_object = nil )
108108 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+
109113 # checking the last element of xml_id_path array for file.id
110114 codeocean_file = @exercise . files . detect { |f | f . xml_id_path . last == file . id } || @exercise . files . new
111115 codeocean_file . assign_attributes (
112116 context : @exercise ,
113117 file_type : file_type ( extension ) ,
114118 hidden : file . visible != 'yes' , # hides 'delayed' and 'no'
115- name : File . basename ( file . filename , '.*' ) ,
119+ name :,
116120 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 :,
119123 xml_id_path : ( parent_object . nil? ? [ file . id ] : [ parent_object . id , file . id ] ) . map ( &:to_s )
120124 )
121125 if file . binary
0 commit comments