fix issue with merged works coming back from related editions
parent
8f600f1556
commit
a0dc106f6d
|
@ -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)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue