Add support for changing Wikidata tag on OSM object
This commit is contained in:
parent
e8b1b411e5
commit
e7f8884b7b
|
@ -662,7 +662,7 @@ def oauth_callback():
|
||||||
def validate_edit_list(edits):
|
def validate_edit_list(edits):
|
||||||
for e in edits:
|
for e in edits:
|
||||||
assert model.Item.get_by_qid(e["qid"])
|
assert model.Item.get_by_qid(e["qid"])
|
||||||
assert e["op"] in {"add", "remove"}
|
assert e["op"] in {"add", "remove", "change"}
|
||||||
osm_type, _, osm_id = e['osm'].partition('/')
|
osm_type, _, osm_id = e['osm'].partition('/')
|
||||||
osm_id = int(osm_id)
|
osm_id = int(osm_id)
|
||||||
if osm_type == 'node':
|
if osm_type == 'node':
|
||||||
|
@ -744,6 +744,8 @@ def process_edit(changeset_id, e):
|
||||||
root[0].append(tag)
|
root[0].append(tag)
|
||||||
if e["op"] == "remove":
|
if e["op"] == "remove":
|
||||||
root[0].remove(existing)
|
root[0].remove(existing)
|
||||||
|
if e["op"] == "change":
|
||||||
|
existing.set("v", qid)
|
||||||
|
|
||||||
element_data = etree.tostring(root)
|
element_data = etree.tostring(root)
|
||||||
try:
|
try:
|
||||||
|
@ -761,7 +763,7 @@ def process_edit(changeset_id, e):
|
||||||
return "element-error"
|
return "element-error"
|
||||||
|
|
||||||
new_tags = dict(osm.tags)
|
new_tags = dict(osm.tags)
|
||||||
if e["op"] == "add":
|
if e["op"] in ("add", "change"):
|
||||||
new_tags["wikidata"] = qid
|
new_tags["wikidata"] = qid
|
||||||
if e["op"] == "remove":
|
if e["op"] == "remove":
|
||||||
del new_tags["wikidata"]
|
del new_tags["wikidata"]
|
||||||
|
|
Loading…
Reference in a new issue