Beispiel #1
0
 def write_instruction(self, raw_materials_dir, html_file, layout):
     instruction_pic = 'img_speakerbtn-sheet0.png'
     instruction_sound = layout['instruction.sound']
     continue_copy(os.path.join(raw_materials_dir, instruction_sound),
                   os.path.join(self.activity_dir, instruction_sound))
     html_file.write('<audio autoplay id=' + file2id(instruction_sound) + '> <source src="' + quote(instruction_sound) +\
                     '" type="audio/' + instruction_sound.split('.')[-1] + '"></audio>\n')
     html_file.write('<a onclick="document.getElementById(\'' +
                     file2id(instruction_sound) + '\').play();">\n')
     html_file.write(image_html_line(instruction_pic, 'instruction'))
     html_file.write('</a>\n')
Beispiel #2
0
 def audio_source_and_play_instruction(self, raw_materials_dir, imagename,
                                       image_ident):
     audio_source = None
     play_instruction = None
     if imagename in self.pics_sounds_map:
         audio = self.pics_sounds_map[imagename]
         audio_source = '<audio id=' + file2id(audio) + '> <source src="' + quote(audio) + \
                        '" type="audio/' + audio.split('.')[-1] + '"></audio>\n'
         play_instruction = "play_and_mark('" + file2id(
             audio) + "', '" + image_ident + "');"
         continue_copy(os.path.join(raw_materials_dir, audio),
                       os.path.join(self.activity_dir, audio))
     else:
         print(imagename + ': no sound')
     return audio_source, play_instruction
Beispiel #3
0
    def write_screen_table(self, raw_materials_dir, html_file, images_layout):
        html_file.write('<table class="content">\n')
        rows, cols = self.get_rows_cols(images_layout)
        for row_number in range(0, len(images_layout)):
            html_file.write('<tr>\n')
            for column_number in range(0, len(images_layout[row_number])):
                rowspan = self.compute_rowspan(images_layout, row_number,
                                               column_number)
                image_layout = images_layout[row_number][column_number]
                picture = html_line = initial_display_style = attr = None
                if image_layout is not None:
                    if 'image' in image_layout:
                        picture = image_layout['image']
                        attr = 'style="max-height:' + str(80 // rows * rowspan) + 'vh;max-width:' + \
                                    str(90 // cols) + 'vw;" '
                        html_line = image_html_line
                        continue_copy(os.path.join(raw_materials_dir, picture),
                                      os.path.join(self.activity_dir, picture))
                    if 'text' in image_layout:
                        picture = image_layout['text']
                        attr = 'style="font-size:500%"'
                        html_line = text_html_para
                    if 'merge_above' in image_layout: continue

                html_file.write('<td' + self.rowspan_html(rowspan) + '>\n')
                if picture is not None:
                    picture_id = file2id(picture, '.id')
                    audio_source, play_instruction = self.audio_source_and_play_instruction(
                        raw_materials_dir, picture, picture_id)
                    if audio_source is not None:
                        html_file.write(audio_source)
                    if play_instruction is not None:
                        html_file.write('<a onclick="' + play_instruction +
                                        'mark_tap(\'' + picture_id +
                                        '\');">\n')
                        html_file.write(
                            html_line(picture, "hidden_picture", attr))
                        html_file.write('</a>')
                    else:
                        html_file.write(html_line(picture, "picture", attr))
                html_file.write('</td>\n')
            html_file.write('</tr>\n')
        html_file.write('</table>\n')
Beispiel #4
0
def copy_subject_resources(raw_material_dir, grid_output_dir):
    resource_base = os.path.basename(grid_output_dir)
    continue_copy(os.path.join(raw_material_dir, resource_base + '_logo.png'),
                  os.path.join(grid_output_dir, 'subject_logo.png'))
def write_local_info(localinfo_dir, output_dir):
    continue_copy(os.path.join(localinfo_dir, "display names of grades.json"),
                  output_dir)
    continue_copy(
        os.path.join(localinfo_dir, "display names of subjects.json"),
        output_dir)
def write_grade_backgrounds(raw_material_dir, output_parent):
    grade_set = get_grade_set(output_parent)
    for grade in grade_set:
        grade_resource = "grade" + grade + '_logo.png'
        continue_copy(os.path.join(raw_material_dir, grade_resource),
                      os.path.join(output_parent, grade_resource))
Beispiel #7
0
def copy_common_resources(source_dir, destination_dir):
    for file in common_files:
        continue_copy(os.path.join(source_dir, file),
                      os.path.join(destination_dir, file))