From: Dan Scott Date: Thu, 25 Oct 2012 14:56:54 +0000 (-0400) Subject: Insert fields in order in ebook processing X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=ce8a37526ecafa21da97564afd143778dd5ec727;p=contrib%2FConifer.git Insert fields in order in ebook processing pymarc 2.8.5 offers the add_ordered_field() method for inserting fields in the correct numerical order in the record - so use that. Note that you may have to run "easy_install --upgrade pymarc" to get the latest version of pymarc installed. Signed-off-by: Dan Scott --- diff --git a/tools/ebooks/prep_ebook_records.py b/tools/ebooks/prep_ebook_records.py old mode 100644 new mode 100755 index 65fd373307..7e483be8c7 --- a/tools/ebooks/prep_ebook_records.py +++ b/tools/ebooks/prep_ebook_records.py @@ -485,7 +485,7 @@ def process_fields(record, options): 'a', note_value ] ) - record.add_field(note) + record.add_ordered_field(note) add_marc_source(record, options) # 598 publisher = add_publisher(record, options) # 710 @@ -504,7 +504,7 @@ def process_fields(record, options): new_fields = process_urls(field, options, publisher) if new_fields: for new_856 in new_fields: - new_record.add_field(new_856) + new_record.add_ordered_field(new_856) # Strip out 9xx fields: we don't want local fields in our records # except for 924 fields that we create elif field.tag[0] == '9' and field.tag != '924': @@ -517,9 +517,9 @@ def process_fields(record, options): tag='008', data=field.value()[:22] + 's' + field.value()[24:] ) - new_record.add_field(fixed_field) + new_record.add_ordered_field(fixed_field) else: - new_record.add_field(field) + new_record.add_ordered_field(field) if not marked_isbn: try: @@ -544,7 +544,7 @@ def add_dupe_field(record, bib_id): 'a', dup_value ] ) - record.add_field(dup) + record.add_ordered_field(dup) return record def clean_diacritics(field): @@ -728,7 +728,7 @@ def add_publisher(record, options): '4', 'pbl' ] ) - record.add_field(seven_ten) + record.add_ordered_field(seven_ten) return publisher @@ -758,7 +758,7 @@ def add_platform(record, options): 'a', platform ] ) - record.add_field(seven_ten) + record.add_ordered_field(seven_ten) def mark_isbn_for_sfx(record, options): """ @@ -796,7 +796,7 @@ def mark_isbn_for_sfx(record, options): ) if urn is not None: - record.add_field(urn) + record.add_ordered_field(urn) return True return False @@ -892,7 +892,7 @@ def add_restriction(new_record, options, publisher): '9', libopts['lac_symbol'] ] ) - new_record.add_field(note) + new_record.add_ordered_field(note) def append_space_semi_space(note): """ @@ -927,7 +927,7 @@ def add_cat_source(record, options): indicators = [' ', ' '], subfields = [ 'd', 'CaOWA' ] ) - record.add_field(forty) + record.add_ordered_field(forty) def add_marc_source(record, options): """ @@ -946,7 +946,7 @@ def add_marc_source(record, options): 'c', str(RECORD_COUNT) ] ) - record.add_field(marc_source) + record.add_ordered_field(marc_source) def process_urls(field, options, publisher): """Creates 856 fields required by Conifer"""