cd06: ajout gestion de l'anonymisation
This commit is contained in:
parent
b99067b807
commit
b00c56e4c8
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue