bugfix: update aliases

This commit is contained in:
Justus Kuhlmann 2025-04-17 16:32:17 +00:00
parent 4a179bfa12
commit df66f82bd3

View file

@ -52,24 +52,29 @@ def update_project_data(db, uuid, prop, value = None):
return return
def update_aliases(path, uuid, aliases): def update_aliases(path: str, uuid: str, aliases: list[str]):
known_data = _project_lookup_by_id(path + "/backlogger.db", uuid)[0] db = os.path.join(path, "backlogger.db")
known_data = _project_lookup_by_id(db, uuid)[0]
known_aliases = known_data[1] known_aliases = known_data[1]
if aliases is None: if aliases is None:
aliases = [] aliases = []
if known_aliases is None: if known_aliases is None:
print(f"Project {uuid} is already imported, no known aliases.") print(f"Project {uuid} has no known aliases.")
known_alias_list = [] known_alias_list = []
else: else:
print(f"Project {uuid} is already imported, known by names: {known_aliases}") print(f"Project {uuid} is known by names: {known_aliases}")
known_alias_list = str2list(known_aliases) known_alias_list = str2list(known_aliases)
new_alias_list = known_alias_list new_alias_list = known_alias_list.copy()
for aka in aliases: for aka in aliases:
if aka not in known_alias_list: if aka not in known_alias_list:
new_alias_list.append(aka) new_alias_list.append(aka)
if not len(new_alias_list) == len(known_alias_list): if not len(new_alias_list) == len(known_alias_list):
alias_str = list2str(new_alias_list) alias_str = list2str(new_alias_list)
update_project_data(path, uuid, "aliases", alias_str) dl.unlock(db, dataset=path)
update_project_data(db, uuid, "aliases", alias_str)
dl.save(db, dataset=path)
return return
@ -121,7 +126,11 @@ def import_project(path: str, url: str, owner: Union[str, None]=None, tags: Unio
dl.drop(tmp_path, reckless='kill') dl.drop(tmp_path, reckless='kill')
shutil.rmtree(tmp_path) shutil.rmtree(tmp_path)
if aliases is not None: if aliases is not None:
update_aliases(path, uuid, aliases) if isinstance(aliases, str):
alias_list = [aliases]
else:
alias_list = aliases
update_aliases(path, uuid, alias_list)
# make this more concrete # make this more concrete
return uuid return uuid