# -*- mode: python -*- # -*- coding: utf-8 -*- import glob import os import shutil from app.models import Departement from app.models.formsemestre import FormSemestre from app.models.etudiants import Identite def migrate_scodoc7_dept_archive(dept_name=""): if dept_name: depts = Departement.query.filter_by(acronym=dept_name) else: depts = Departement.query for dept in depts: print(f"Migrating {dept.acronym} archives...") # SemsArchiver # /opt/scodoc-data/archives// -> formsemestre_id migrate_sem_archives(dept) # EtudsArchiver: migrate_docetuds(dept) # ApoCSVArchiver: # /opt/scodoc-data/archives/apo_csv// ne bouge pas def migrate_sem_archives(dept): "/opt/scodoc-data/archives// -> formsemestre_id" n = 0 n_moves = 0 for sem in FormSemestre.query.filter_by(dept_id=dept.id): n += 1 arch_dir7 = f"/opt/scodoc-data/archives/{dept.acronym}/{sem.scodoc7_id}" arch_dir9 = f"/opt/scodoc-data/archives/{dept.acronym}/{sem.id}" if os.path.exists(arch_dir7): n_moves += 1 if not os.path.exists(arch_dir9): # print(f"renaming {arch_dir7} to {arch_dir9}") shutil.move(arch_dir7, arch_dir9) else: # print(f"merging {arch_dir7} with {arch_dir9}") for arch in glob.glob(f"{arch_dir7}/*"): # print(f"\tmoving {arch}") shutil.move(arch, arch_dir9) # print(f"moved {n_moves}/{n} sems") def migrate_docetuds(dept): "/opt/scodoc-data/archives/docetuds/// -> etudid" n = 0 n_moves = 0 for etud in Identite.query.filter_by(dept_id=dept.id): n += 1 arch_dir7 = ( f"/opt/scodoc-data/archives/docetuds/{dept.acronym}/{etud.scodoc7_id}" ) arch_dir9 = f"/opt/scodoc-data/archives/docetuds/{dept.acronym}/{etud.id}" if os.path.exists(arch_dir7): n_moves += 1 if not os.path.exists(arch_dir9): # print(f"renaming {arch_dir7} to {arch_dir9}") shutil.move(arch_dir7, arch_dir9) else: # print(f"merging {arch_dir7} with {arch_dir9}") for arch in glob.glob(f"{arch_dir7}/*"): # print(f"\tmoving {arch}") shutil.move(arch, arch_dir9) # print(f"moved {n_moves}/{n} etuds")