Add tracker listing

This commit is contained in:
Drew DeVault 2020-04-02 10:18:04 -04:00
parent fc586256cb
commit c866a9f4ed
4 changed files with 58 additions and 6 deletions

View File

@ -10,6 +10,28 @@ from srht.validation import Validation
trackers = Blueprint("trackers", __name__)
@trackers.route("/<owner>/<project_name>/trackers")
@loginrequired
def trackers_GET(owner, project_name):
owner, project = get_project(owner, project_name, ProjectAccess.write)
trackers = (Tracker.query
.filter(Tracker.project_id == project.id)
.order_by(Tracker.updated.desc()))
terms = request.args.get("search")
search_error = None
try:
trackers = search_by(trackers, terms,
[Tracker.name, Tracker.description])
except ValueError as ex:
search_error = str(ex)
trackers, pagination = paginate_query(trackers)
return render_template("trackers.html", view="tickets",
owner=owner, project=project, trackers=trackers,
search=terms, search_error=search_error,
**pagination)
@trackers.route("/<owner>/<project_name>/trackers/new")
@loginrequired
def new_GET(owner, project_name):

View File

@ -30,7 +30,9 @@
{% endif %}
{% if any(project.trackers) %}
<li class="nav-item">
{{link("#", "tickets")}}
{{link(url_for("trackers.trackers_GET",
owner=owner.canonical_name,
project_name=project.name), "tickets")}}
</li>
{% endif %}
{# TODO

View File

@ -3,7 +3,7 @@
{% for repo in sources %}
<div class="event">
<h4>
<a href="{{repo.url()}}">~{{owner.username}}/{{repo.name}}</a>
<a href="{{repo.url()}}">~{{repo.owner.username}}/{{repo.name}}</a>
<small class="pull-right">
{{ repo.repo_type.value }}
</small>
@ -17,13 +17,13 @@
{% block sidebar %}
<a
href="{{url_for("sources.new_GET",
owner=owner.canonical_name, project_name=project.name)}}"
href="{{url_for("sources.new_GET", owner=owner.canonical_name,
project_name=project.name)}}"
class="btn btn-primary btn-block"
>Add repository&nbsp;{{icon('caret-right')}}</a>
<a
href="{{url_for("sources.manage_GET",
owner=owner.canonical_name, project_name=project.name)}}"
href="{{url_for("sources.manage_GET", owner=owner.canonical_name,
project_name=project.name)}}"
class="btn btn-default btn-block"
>Manage sources&nbsp;{{icon('caret-right')}}</a>
{% endblock %}

View File

@ -0,0 +1,28 @@
{% extends "resource-list.html" %}
{% block resource_list %}
{% for tracker in trackers %}
<div class="event">
<h4>
<a href="{{tracker.url()}}">~{{tracker.owner.username}}/{{tracker.name}}</a>
</h4>
{% if tracker.description %}
{{ tracker.description | md }}
{% endif %}
</div>
{% endfor %}
{% endblock %}
{% block sidebar %}
<a
href="{{url_for("trackers.new_GET", owner=owner.canonical_name,
project_name=project.name)}}"
class="btn btn-primary btn-block"
>Add tracker&nbsp;{{icon('caret-right')}}</a>
{#
<a
href="{{url_for("tracker.manage_GET",
owner=owner.canonical_name, project_name=project.name)}}"
class="btn btn-default btn-block"
>Manage sources&nbsp;{{icon('caret-right')}}</a>
#}
{% endblock %}