mirror of
https://github.com/quay/quay.git
synced 2025-04-18 10:44:06 +03:00
Currently the prometheus and GC workers are not running correctly. Reverting the following commits: -4e1a985e70
-dac183a1ef
-68a0d9eaf0
-af1aacea08
-f334b80098
129 lines
3.3 KiB
Python
129 lines
3.3 KiB
Python
from app import get_app_url, avatar
|
|
from data import model
|
|
from util.names import parse_robot_username
|
|
from jinja2 import Environment, FileSystemLoader
|
|
|
|
|
|
def icon_path(icon_name):
|
|
return "%s/static/img/icons/%s.png" % (get_app_url(), icon_name)
|
|
|
|
|
|
def icon_image(icon_name):
|
|
return '<img src="%s" alt="%s">' % (icon_path(icon_name), icon_name)
|
|
|
|
|
|
def team_reference(teamname):
|
|
avatar_html = avatar.get_mail_html(teamname, teamname, 24, "team")
|
|
return "<span>%s <b>%s</b></span>" % (avatar_html, teamname)
|
|
|
|
|
|
def user_reference(username):
|
|
user = model.user.get_namespace_user(username)
|
|
if not user:
|
|
return username
|
|
|
|
if user.robot:
|
|
parts = parse_robot_username(username)
|
|
user = model.user.get_namespace_user(parts[0])
|
|
|
|
return """<span><img src="%s" alt="Robot"> <b>%s</b></span>""" % (
|
|
icon_path("wrench"),
|
|
username,
|
|
)
|
|
|
|
avatar_html = avatar.get_mail_html(
|
|
user.username, user.email, 24, "org" if user.organization else "user"
|
|
)
|
|
|
|
return """
|
|
<span>
|
|
%s
|
|
<b>%s</b>
|
|
</span>""" % (
|
|
avatar_html,
|
|
username,
|
|
)
|
|
|
|
|
|
def repository_tag_reference(repository_path_and_tag):
|
|
(repository_path, tag) = repository_path_and_tag
|
|
(namespace, repository) = repository_path.split("/")
|
|
owner = model.user.get_namespace_user(namespace)
|
|
if not owner:
|
|
return tag
|
|
|
|
return """<a href="%s/repository/%s/%s?tag=%s&tab=tags">%s</a>""" % (
|
|
get_app_url(),
|
|
namespace,
|
|
repository,
|
|
tag,
|
|
tag,
|
|
)
|
|
|
|
|
|
def repository_reference(pair):
|
|
if isinstance(pair, tuple):
|
|
(namespace, repository) = pair
|
|
else:
|
|
pair = pair.split("/")
|
|
namespace = pair[0]
|
|
repository = pair[1]
|
|
|
|
owner = model.user.get_namespace_user(namespace)
|
|
if not owner:
|
|
return "%s/%s" % (namespace, repository)
|
|
|
|
avatar_html = avatar.get_mail_html(
|
|
owner.username, owner.email, 16, "org" if owner.organization else "user"
|
|
)
|
|
|
|
return """
|
|
<span style="white-space: nowrap;">
|
|
%s
|
|
<a href="%s/repository/%s/%s">%s/%s</a>
|
|
</span>
|
|
""" % (
|
|
avatar_html,
|
|
get_app_url(),
|
|
namespace,
|
|
repository,
|
|
namespace,
|
|
repository,
|
|
)
|
|
|
|
|
|
def admin_reference(username):
|
|
user = model.user.get_user_or_org(username)
|
|
if not user:
|
|
return "account settings"
|
|
|
|
if user.organization:
|
|
return """
|
|
<a href="%s/organization/%s?tab=settings">organization's admin setting</a>
|
|
""" % (
|
|
get_app_url(),
|
|
username,
|
|
)
|
|
else:
|
|
return """
|
|
<a href="%s/user/">account settings</a>
|
|
""" % (
|
|
get_app_url()
|
|
)
|
|
|
|
|
|
def get_template_env(searchpath):
|
|
template_loader = FileSystemLoader(searchpath=searchpath)
|
|
template_env = Environment(loader=template_loader)
|
|
add_filters(template_env)
|
|
return template_env
|
|
|
|
|
|
def add_filters(template_env):
|
|
template_env.filters["icon_image"] = icon_image
|
|
template_env.filters["team_reference"] = team_reference
|
|
template_env.filters["user_reference"] = user_reference
|
|
template_env.filters["admin_reference"] = admin_reference
|
|
template_env.filters["repository_reference"] = repository_reference
|
|
template_env.filters["repository_tag_reference"] = repository_tag_reference
|