diff --git a/cd06/script.py b/cd06/script.py index 4d8727f..77aa31f 100644 --- a/cd06/script.py +++ b/cd06/script.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- +import glob import sys import os import shutil @@ -35,7 +36,8 @@ FORMDEFS = { ('Document supplémentaire 1', 'document_supplementaire_1', 'DOCUMENT_SUPPLEMENTAIRE_1.PDF',), ('Document supplémentaire 2', 'document_supplementaire_2', 'DOCUMENT_SUPPLEMENTAIRE_2.PDF',), ('Document supplémentaire 3', 'document_supplementaire_3', 'DOCUMENT_SUPPLEMENTAIRE_3.PDF',), - ] + ], + 'ANONYMISATION_STATUS': 'Anonymisation', }, 'aggravation-revision-apa': { 'DIRECTORY': 'aggravation-apa-dev', @@ -52,7 +54,8 @@ FORMDEFS = { ('Taxe foncière 2ème bien', 'taxe_fonciere_2', 'TAXE_FONCIERE_BIEN_2.PDF',), ('Taxe foncière 3ème bien', 'taxe_fonciere_3', 'TAXE_FONCIERE_BIEN_3.PDF',), ('Avis d\'imposition', 'avis_imposition', 'AVIS_IMPOSITION.PDF',), - ] + ], + 'ANONYMISATION_STATUS': 'Anonymisation', }, 'aggravation-revision-apa-genesys-preprod': { 'DIRECTORY': 'aggravation-apa', @@ -69,7 +72,8 @@ FORMDEFS = { ('Taxe foncière 2ème bien', 'taxe_fonciere_2', 'TAXE_FONCIERE_BIEN_2.PDF',), ('Taxe foncière 3ème bien', 'taxe_fonciere_3', 'TAXE_FONCIERE_BIEN_3.PDF',), ('Avis d\'imposition', 'avis_imposition', 'AVIS_IMPOSITION.PDF',), - ] + ], + 'ANONYMISATION_STATUS': 'Anonymisation', }, } @@ -83,21 +87,35 @@ for formdef in api.formdefs: if formdef.slug not in FORMDEFS: continue print(formdef.title) - MAPPINGS = FORMDEFS[formdef.slug]['MAPPINGS'] - DIRECTORY = FORMDEFS[formdef.slug]['DIRECTORY'] + FORMDEF = FORMDEFS[formdef.slug] + MAPPINGS = FORMDEF['MAPPINGS'] + DIRECTORY = FORMDEF['DIRECTORY'] + ANONYMISATION_STATUS = FORMDEF['ANONYMISATION_STATUS'] formdef_dir = os.path.join(target_dir, DIRECTORY) if not os.path.exists(formdef_dir): os.makedirs(formdef_dir) + + known_ids = set() + statuses = {s.id: s.name for s in formdef.schema.workflow.statuses} + for formdata in formdef.datas: - formdata_dir = os.path.join(formdef_dir, str(formdata.id)) - formdata_tmp_dir = os.path.join(tmp_dir, DIRECTORY, str(formdata.id)) + form_id = str(formdata.id).rsplit('/')[-1] + known_ids.add(form_id) + formdata_dir = os.path.join(formdef_dir, form_id) + formdata_tmp_dir = os.path.join(tmp_dir, DIRECTORY, form_id) if os.path.exists(formdata_dir): + status_name = statuses[formdata.evolution[-1].status] + + if status_name == ANONYMISATION_STATUS: + print('Anonymisation de ', form_id) + for name in os.listdir(formdata_dir): + os.unlink(os.path.join(formdata_dir, name)) continue try: shutil.rmtree(formdata_tmp_dir, True) os.makedirs(formdata_tmp_dir) - print(' Form', formdata.id) + print(' Form', form_id) for name, key, filename in MAPPINGS: value = formdata[key] if not value: @@ -112,4 +130,9 @@ for formdef in api.formdefs: os.rename(formdata_tmp_dir, formdata_dir) finally: shutil.rmtree(formdata_tmp_dir, True) + + existing_ids = set(os.listdir(formdef_dir)) + for old_id in (existing_ids - known_ids): + path_to_delete = os.path.join(formdef_dir, old_id) + print('Would delete', path_to_delete) print()