diff --git a/accession.py b/accession.py index 9a6c414..e2d0ff1 100755 --- a/accession.py +++ b/accession.py @@ -70,7 +70,7 @@ def parse_args(args_): ) parser.add_argument( '-reference', - help='Enter the Filmographic reference number for the representation. This is only relevant when used with -pbcore' + help='Enter the Filmographic reference number for the representation. This is only relevant when used with -pbcore. For multiple works that are represented, seperate each reference number with a + sign eg AF1234+AC456' ) parser.add_argument( '-register', @@ -236,15 +236,20 @@ def main(args_): # want to make the pbcore csv, perhaps because the latter already exists. if args.csv: metadata_dir = os.path.join(new_uuid_path, 'metadata') - package_filmographic = os.path.join(metadata_dir, Reference_Number + '_filmographic.csv') - insert_filmographic(args.csv, Reference_Number, package_filmographic) - ififuncs.generate_log( - sipcreator_log, - 'EVENT = Metadata extraction - eventDetail=Filmographic descriptive metadata added to metadata folder, eventOutcome=%s, agentName=accession.py' % (package_filmographic) - ) - ififuncs.manifest_update(sip_manifest, package_filmographic) - ififuncs.sha512_update(sha512_manifest, package_filmographic) - print('Filmographic descriptive metadata added to metadata folder') + if '+' in Reference_Number: + reference_list = Reference_Number.split('+') + else: + reference_list = [Reference_Number] + for ref in reference_list: + package_filmographic = os.path.join(metadata_dir, ref + '_filmographic.csv') + insert_filmographic(args.csv, ref , package_filmographic) + ififuncs.generate_log( + sipcreator_log, + 'EVENT = Metadata extraction - eventDetail=Filmographic descriptive metadata added to metadata folder, eventOutcome=%s, agentName=accession.py' % (package_filmographic) + ) + ififuncs.manifest_update(sip_manifest, package_filmographic) + ififuncs.sha512_update(sha512_manifest, package_filmographic) + print('Filmographic descriptive metadata added to metadata folder') ififuncs.generate_log( sipcreator_log, 'EVENT = accession.py finished' @@ -254,18 +259,19 @@ def main(args_): ififuncs.manifest_update(sip_manifest, dfxml) ififuncs.sha512_update(sha512_manifest, dfxml) if args.pbcore: - makepbcore_cmd = [accession_path, '-p', '-user', user, '-reference', Reference_Number] - if args.parent: - makepbcore_cmd.extend(['-parent', args.parent]) - if args.acquisition_type: - makepbcore_cmd.extend(['-acquisition_type', args.acquisition_type]) - if args.donor: - makepbcore_cmd.extend(['-donor', args.donor]) - if args.donor: - makepbcore_cmd.extend(['-depositor_reference', args.depositor_reference]) - if args.donation_date: - makepbcore_cmd.extend(['-donation_date', args.donation_date]) - makepbcore.main(makepbcore_cmd) + for ref in reference_list: + makepbcore_cmd = [accession_path, '-p', '-user', user, '-reference', ref] + if args.parent: + makepbcore_cmd.extend(['-parent', args.parent]) + if args.acquisition_type: + makepbcore_cmd.extend(['-acquisition_type', args.acquisition_type]) + if args.donor: + makepbcore_cmd.extend(['-donor', args.donor]) + if args.donor: + makepbcore_cmd.extend(['-depositor_reference', args.depositor_reference]) + if args.donation_date: + makepbcore_cmd.extend(['-donation_date', args.donation_date]) + makepbcore.main(makepbcore_cmd) else: print('not a valid package. The input should include a package that has been through Object Entry') diff --git a/ififuncs.py b/ififuncs.py index c42e9bc..e3112ac 100644 --- a/ififuncs.py +++ b/ififuncs.py @@ -958,24 +958,13 @@ def get_accession_number(): def get_reference_number(): ''' - Asks user for a Filmographic reference number. A valid number (af1####) must be provided. + Asks user for a Filmographic reference number. Due to the variety of reference numbers, validation + will be removed for now. ''' - reference_number = False - while reference_number is False: - reference_number = input( - '\n\n**** Please enter the Filmographic reference number of the representation\n\n' - ) - if reference_number[:3] != 'af1': - print(' - First two characters must be \'af\' and the last five characters must be five digits') - reference_number = False - elif len(reference_number[2:]) != 5: - reference_number = False - print(' - First two characters must be \'af\' and last five characters must be five digits') - elif not reference_number[2:].isdigit(): - reference_number = False - print(' - First two characters must be \'af\' and last five characters must be five digits') - else: - return reference_number.upper() + reference_number = input( + '\n\n**** Please enter the Filmographic reference number of the representation- if there is more than one work that is represented, seperate them with an ampersand, eg af1234&aa675\n\n' + ) + return reference_number.upper() def get_contenttitletext(cpl): ''' diff --git a/makepbcore.py b/makepbcore.py index 3f70d6d..68d66d5 100755 --- a/makepbcore.py +++ b/makepbcore.py @@ -366,7 +366,7 @@ def main(args_): metadata_dir = root elif os.path.basename(root) == 'logs': logs_dir = root - csv_filename = os.path.join(metadata_dir, Accession_Number + '_pbcore.csv') + csv_filename = os.path.join(metadata_dir, Accession_Number + '_%s_pbcore.csv' % Reference_Number) sipcreator_log = os.path.join( logs_dir, instantiationIdentif + '_sip_log.log' )