From ae7ead40ec38708d79b7a0b1cc677f3b3187a40e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 9 Jan 2013 12:22:40 +0100 Subject: [PATCH] add reporting of success/failures --- src/collective/dms/batchimport/batchimport.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/collective/dms/batchimport/batchimport.py b/src/collective/dms/batchimport/batchimport.py index e83f174..991e936 100644 --- a/src/collective/dms/batchimport/batchimport.py +++ b/src/collective/dms/batchimport/batchimport.py @@ -53,11 +53,11 @@ class BatchImporter(BrowserView): if not settings.fs_root_directory: log.warning('settings.fs_root_directory is not defined') - return + return 'ERROR' if not os.path.exists(settings.fs_root_directory): log.warning('settings.fs_root_directory do not exist') - return + return 'ERROR' self.fs_root_directory = settings.fs_root_directory if not self.fs_root_directory.endswith('/'): @@ -71,6 +71,9 @@ class BatchImporter(BrowserView): for mapping in settings.code_to_type_mapping: self.code_to_type_mapping[mapping['code']] = mapping['portal_type'] + nb_imports = 0 + nb_errors = 0 + for basename, dirnames, filenames in os.walk(self.fs_root_directory): metadata_filenames = [x for x in filenames if x.endswith('.metadata')] other_filenames = [x for x in filenames if not x.endswith('.metadata')] @@ -89,9 +92,11 @@ class BatchImporter(BrowserView): self.import_one(filepath, foldername, metadata) except BatchImportError as e: log.warning(str(e)) + nb_errors += 1 else: self.mark_as_processed(metadata_filepath) self.mark_as_processed(filepath) + nb_imports += 1 other_filenames.remove(imported_filename) @@ -103,11 +108,12 @@ class BatchImporter(BrowserView): self.import_one(filepath, foldername) except BatchImportError as e: log.warning(str(e)) + nb_errors += 1 else: self.mark_as_processed(filepath) + nb_imports += 1 - # TODO: return the number of files that have been successfully imported. - return 'OK' + return 'OK (%s imported files, %s unprocessed files)' % (nb_imports, nb_errors) def mark_as_processed(self, filepath): processed_filepath = os.path.join(self.processed_fs_root_directory,