Update add_linked: add relationship fields manually
This commit is contained in:
parent
5253d00c3e
commit
0c285ca072
1 changed files with 13 additions and 5 deletions
|
@ -24,7 +24,8 @@ def fix_url(link):
|
||||||
|
|
||||||
|
|
||||||
# Create linked objects
|
# Create linked objects
|
||||||
def add_linked(person, field, obj, data):
|
def add_linked(person, obj, data):
|
||||||
|
field = []
|
||||||
# TODO: fuzzy matching instead of lower()
|
# TODO: fuzzy matching instead of lower()
|
||||||
items = fix_bracketed_lists(data).lower()
|
items = fix_bracketed_lists(data).lower()
|
||||||
items = items.replace(';', ',').split(',')
|
items = items.replace(';', ',').split(',')
|
||||||
|
@ -38,6 +39,7 @@ def add_linked(person, field, obj, data):
|
||||||
tgt.name = n
|
tgt.name = n
|
||||||
tgt.save()
|
tgt.save()
|
||||||
field.append(tgt)
|
field.append(tgt)
|
||||||
|
return field
|
||||||
|
|
||||||
|
|
||||||
# Fetch an object by source_id (numeric identifier used in source DB)
|
# Fetch an object by source_id (numeric identifier used in source DB)
|
||||||
|
@ -116,10 +118,14 @@ def refresh_data(filename, fmt=None):
|
||||||
person.personal_url = fix_url(row['URL'])
|
person.personal_url = fix_url(row['URL'])
|
||||||
|
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
add_linked(person, person.research_methods, Method, row['Methods'])
|
research_methods = add_linked(person, Method, row['Methods'])
|
||||||
add_linked(person, person.research_scales, Scale, row['Scale'])
|
person.research_methods = research_methods
|
||||||
add_linked(person, person.research_taxa, Taxon, row['Taxa'])
|
research_scales = add_linked(person, Scale, row['Scale'])
|
||||||
add_linked(person, person.research_fields, Field, row['Field of expertise'])
|
person.research_scales = research_scales
|
||||||
|
research_taxa = add_linked(person, Taxon, row['Taxa'])
|
||||||
|
person.research_taxa = research_taxa
|
||||||
|
research_fields = add_linked(person, Field, row['Field of expertise'])
|
||||||
|
person.research_fields = research_fields
|
||||||
|
|
||||||
person.index()
|
person.index()
|
||||||
person.save()
|
person.save()
|
||||||
|
@ -150,6 +156,7 @@ def refresh_data(filename, fmt=None):
|
||||||
ppl, source_id = get_by_id(row['Person'], Person, first=False)
|
ppl, source_id = get_by_id(row['Person'], Person, first=False)
|
||||||
if not ppl or not ppl.first(): continue
|
if not ppl or not ppl.first(): continue
|
||||||
for person in ppl:
|
for person in ppl:
|
||||||
|
person.resources = []
|
||||||
for r in rzs:
|
for r in rzs:
|
||||||
person.resources.append(r)
|
person.resources.append(r)
|
||||||
person.save()
|
person.save()
|
||||||
|
@ -162,6 +169,7 @@ def refresh_data(filename, fmt=None):
|
||||||
ppl, source_id = get_by_id(row['Person'], Person, first=False)
|
ppl, source_id = get_by_id(row['Person'], Person, first=False)
|
||||||
if not ppl or not ppl.first(): continue
|
if not ppl or not ppl.first(): continue
|
||||||
for person in ppl:
|
for person in ppl:
|
||||||
|
person.ranges = []
|
||||||
for r in rzs:
|
for r in rzs:
|
||||||
person.ranges.append(r)
|
person.ranges.append(r)
|
||||||
person.save()
|
person.save()
|
||||||
|
|
Loading…
Reference in a new issue