mirror of https://git.sr.ht/~sircmpwn/hub.sr.ht
Move {git,hg}_new_GET into common handler; use correct origin for /~u/p/{git,hg}/new
Ref: ~sircmpwn/hg.sr.ht/39
This commit is contained in:
parent
9fc47d0bb4
commit
ff01082c30
|
@ -3,6 +3,7 @@ from hubsrht.projects import ProjectAccess, get_project
|
|||
from hubsrht.services import git, hg
|
||||
from hubsrht.types import Event, EventType
|
||||
from hubsrht.types import RepoType, SourceRepo, Visibility
|
||||
from srht.config import get_origin
|
||||
from srht.database import db
|
||||
from srht.flask import paginate_query
|
||||
from srht.oauth import current_user, loginrequired
|
||||
|
@ -42,35 +43,28 @@ def new_GET(owner, project_name):
|
|||
return render_template("sources-new.html", view="new-resource",
|
||||
owner=owner, project=project)
|
||||
|
||||
@sources.route("/<owner>/<project_name>/git/new")
|
||||
@loginrequired
|
||||
def git_new_GET(owner, project_name):
|
||||
def src_new_GET(owner, project_name, vcs, service, repo_type):
|
||||
owner, project = get_project(owner, project_name, ProjectAccess.write)
|
||||
# TODO: Pagination
|
||||
repos = git.get_repos(owner)
|
||||
repos = service.get_repos(owner)
|
||||
repos = sorted(repos, key=lambda r: r["updated"], reverse=True)
|
||||
existing = [r.remote_id for r in (SourceRepo.query
|
||||
.filter(SourceRepo.project_id == project.id)
|
||||
.filter(SourceRepo.repo_type == RepoType.git)).all()]
|
||||
.filter(SourceRepo.repo_type == repo_type)).all()]
|
||||
return render_template("sources-select.html",
|
||||
view="new-resource", vcs="git",
|
||||
view="new-resource", vcs=vcs,
|
||||
owner=owner, project=project, repos=repos,
|
||||
existing=existing)
|
||||
existing=existing, origin=get_origin(f"{vcs}.sr.ht", external=True))
|
||||
|
||||
@sources.route("/<owner>/<project_name>/git/new")
|
||||
@loginrequired
|
||||
def git_new_GET(owner, project_name):
|
||||
return src_new_GET(owner, project_name, "git", git, RepoType.git)
|
||||
|
||||
@sources.route("/<owner>/<project_name>/hg/new")
|
||||
@loginrequired
|
||||
def hg_new_GET(owner, project_name):
|
||||
owner, project = get_project(owner, project_name, ProjectAccess.write)
|
||||
# TODO: Pagination
|
||||
repos = hg.get_repos(owner)
|
||||
repos = sorted(repos, key=lambda r: r["updated"], reverse=True)
|
||||
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=existing)
|
||||
return src_new_GET(owner, project_name, "hg", hg, RepoType.hg)
|
||||
|
||||
@sources.route("/<owner>/<project_name>/git/new", methods=["POST"])
|
||||
@loginrequired
|
||||
|
|
|
@ -74,8 +74,7 @@
|
|||
>Select repo {{ icon("caret-right") }}</button>
|
||||
{% endif %}
|
||||
<a
|
||||
href="{{get_origin("git.sr.ht",
|
||||
external=True)}}/{{ repo["owner"]["canonical_name"] }}/{{repo["name"]}}"
|
||||
href="{{origin}}/{{ repo["owner"]["canonical_name"] }}/{{repo["name"]}}"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
>{{ repo["name"] }}</a>
|
||||
|
|
Loading…
Reference in New Issue