fix issue with merged works coming back from related editions

pull/91/head
eric 2018-04-26 14:57:55 -04:00
parent 8f600f1556
commit a0dc106f6d
1 changed files with 3 additions and 7 deletions

View File

@ -138,7 +138,6 @@ def attach_more_doab_metadata(edition, description, subjects,
def add_all_isbns(isbns, work, language=None, title=None): def add_all_isbns(isbns, work, language=None, title=None):
first_edition = None first_edition = None
for isbn in isbns: for isbn in isbns:
first_edition = None
edition = bookloader.add_by_isbn(isbn, work, language=language, title=title) edition = bookloader.add_by_isbn(isbn, work, language=language, title=title)
if edition: if edition:
first_edition = first_edition if first_edition else edition first_edition = first_edition if first_edition else edition
@ -149,7 +148,7 @@ def add_all_isbns(isbns, work, language=None, title=None):
work = merge_works(edition.work, work) work = merge_works(edition.work, work)
else: else:
work = edition.work work = edition.work
return first_edition return work, first_edition
def load_doab_edition(title, doab_id, url, format, rights, def load_doab_edition(title, doab_id, url, format, rights,
language, isbns, language, isbns,
@ -214,12 +213,8 @@ def load_doab_edition(title, doab_id, url, format, rights,
# look for the Edition with which to associate ebook. # look for the Edition with which to associate ebook.
# loop through the isbns to see whether we get one that is not None # loop through the isbns to see whether we get one that is not None
work = None
edition = add_all_isbns(isbns, None, language=language, title=title)
if edition:
edition.refresh_from_db()
work = edition.work
work, edition = add_all_isbns(isbns, None, language=language, title=title)
if doab_id and not work: if doab_id and not work:
# make sure there's not already a doab_id # make sure there's not already a doab_id
idents = models.Identifier.objects.filter(type='doab', value=doab_id) idents = models.Identifier.objects.filter(type='doab', value=doab_id)
@ -232,6 +227,7 @@ def load_doab_edition(title, doab_id, url, format, rights,
# if this is a new edition, then add related editions SYNCHRONOUSLY # if this is a new edition, then add related editions SYNCHRONOUSLY
if getattr(edition, 'new', False): if getattr(edition, 'new', False):
tasks.populate_edition(edition.isbn_13) tasks.populate_edition(edition.isbn_13)
edition.refresh_from_db()
doab_identifer = models.Identifier.get_or_add(type='doab', value=doab_id, doab_identifer = models.Identifier.get_or_add(type='doab', value=doab_id,
work=edition.work) work=edition.work)