Fetch existing resources for sources, trackers

This is a generalization of the previous bug fix.
This commit is contained in:
Drew DeVault 2021-08-12 08:21:29 +02:00
parent 1426569187
commit 84710264d5
2 changed files with 22 additions and 8 deletions

View File

@ -75,10 +75,13 @@ def git_new_POST(owner, project_name):
git_repo = git.create_repo(owner, valid, project.visibility)
if not valid.ok:
repos = git.get_repos(owner)
existing = [r.remote_id for r in (SourceRepo.query
.filter(SourceRepo.project_id == project.id)
.filter(SourceRepo.repo_type == RepoType.git)).all()]
return render_template("sources-select.html",
view="new-resource", vcs="git",
owner=owner, project=project, repos=repos,
existing=[], **valid.kwargs)
existing=existing, **valid.kwargs)
else:
repo_name = None
for field in valid.source:
@ -92,11 +95,13 @@ def git_new_POST(owner, project_name):
# TODO: Search properly
repos = filter(lambda r: search.lower() in r["name"].lower(), repos)
repos = sorted(repos, key=lambda r: r["updated"], reverse=True)
# TODO: Fetch existing repos for this project
existing = [r.remote_id for r in (SourceRepo.query
.filter(SourceRepo.project_id == project.id)
.filter(SourceRepo.repo_type == RepoType.git)).all()]
return render_template("sources-select.html",
view="new-resource", vcs="git",
owner=owner, project=project, repos=repos,
existing=[], search=search)
existing=existing, search=search)
git_repo = git.get_repo(owner, repo_name)
@ -135,10 +140,13 @@ def hg_new_POST(owner, project_name):
hg_repo = hg.create_repo(owner, valid, project.visibility)
if not valid.ok:
repos = hg.get_repos(owner)
existing = [r.remote_id for r in (SourceRepo.query
.filter(SourceRepo.project_id == project.id)
.filter(SourceRepo.repo_type == RepoType.hg)).all()]
return render_template("sources-select.html",
view="new-resource", vcs="hg",
owner=owner, project=project, repos=repos,
existing=[], **valid.kwargs)
existing=existing, **valid.kwargs)
else:
repo_name = None
for field in valid.source:
@ -152,11 +160,13 @@ def hg_new_POST(owner, project_name):
# TODO: Search properly
repos = filter(lambda r: search.lower() in r["name"].lower(), repos)
repos = sorted(repos, key=lambda r: r["updated"], reverse=True)
# TODO: Fetch existing repos for this project
existing = [r.remote_id for r in (SourceRepo.query
.filter(SourceRepo.project_id == project.id)
.filter(SourceRepo.repo_type == RepoType.hg)).all()]
return render_template("sources-select.html",
view="new-resource", vcs="hg",
owner=owner, project=project, repos=repos,
existing=[], search=search)
existing=existing, search=search)
hg_repo = hg.get_repo(owner, repo_name)

View File

@ -56,9 +56,11 @@ def new_POST(owner, project_name):
trackers = todo.get_trackers(owner)
trackers = sorted(trackers, key=lambda r: r["updated"], reverse=True)
if not valid.ok:
existing = [t.remote_id for t in (Tracker.query
.filter(Tracker.project_id == project.id)).all()]
return render_template("tracker-new.html",
view="new-resource", owner=owner, project=project,
trackers=trackers, **valid.kwargs)
trackers=trackers, existing=existing, **valid.kwargs)
else:
tracker_name = None
for field in valid.source:
@ -73,9 +75,11 @@ def new_POST(owner, project_name):
search.lower() in r["name"].lower()
or search.lower() in r["description"].lower(), trackers)
trackers = sorted(trackers, key=lambda r: r["updated"], reverse=True)
existing = [t.remote_id for t in (Tracker.query
.filter(Tracker.project_id == project.id)).all()]
return render_template("tracker-new.html", view="new-resource",
owner=owner, project=project, trackers=trackers,
search=search)
existing=existing, search=search)
remote_tracker = todo.get_tracker(owner, tracker_name)