mirror of https://git.sr.ht/~sircmpwn/hub.sr.ht
Implement project event feed
This commit is contained in:
parent
665d0ca21f
commit
03f858a9bf
|
@ -4,6 +4,7 @@ from hubsrht.services import git
|
|||
from hubsrht.types import Event, EventType
|
||||
from hubsrht.types import Project, RepoType, Visibility
|
||||
from srht.database import db
|
||||
from srht.flask import paginate_query
|
||||
from srht.oauth import current_user, loginrequired
|
||||
from srht.validation import Validation
|
||||
|
||||
|
@ -23,12 +24,24 @@ def summary_GET(owner, project_name):
|
|||
.filter(Event.project_id == project.id)
|
||||
.order_by(Event.created.desc())
|
||||
.limit(2)).all()
|
||||
print(events)
|
||||
|
||||
return render_template("project-summary.html", view="summary",
|
||||
owner=owner, project=project, summary=summary,
|
||||
events=events, EventType=EventType)
|
||||
|
||||
@projects.route("/<owner>/<project_name>/feed")
|
||||
def feed_GET(owner, project_name):
|
||||
owner, project = get_project(owner, project_name, ProjectAccess.read)
|
||||
|
||||
events = (Event.query
|
||||
.filter(Event.project_id == project.id)
|
||||
.order_by(Event.created.desc()))
|
||||
events, pagination = paginate_query(events)
|
||||
|
||||
return render_template("project-feed.html",
|
||||
view="summary", owner=owner, project=project,
|
||||
events=events, EventType=EventType, **pagination)
|
||||
|
||||
@projects.route("/projects/create")
|
||||
@loginrequired
|
||||
def create_GET():
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
{% macro event(event) %}
|
||||
{% if event.event_type == EventType.source_repo_added %}
|
||||
<div class="event">
|
||||
<a
|
||||
href="{{event.source_repo.url()}}"
|
||||
>{{event.source_repo.owner.canonical_name}}/{{event.source_repo.name}}</a>
|
||||
<p>New {{event.source_repo.repo_type.value}} repository added</p>
|
||||
<small class="text-muted">{{event.created | date}}</small>
|
||||
</div>
|
||||
{% elif event.event_type == EventType.mailing_list_added %}
|
||||
<div class="event">
|
||||
<a
|
||||
href="{{event.mailing_list.url()}}"
|
||||
>{{event.mailing_list.owner.canonical_name}}/{{event.mailing_list.name}}</a>
|
||||
<p>New mailing list added</p>
|
||||
<small class="text-muted">{{event.created | date}}</small>
|
||||
</div>
|
||||
{% else %}
|
||||
TODO: implement event type {{event.event_type}}
|
||||
{% endif %}
|
||||
{% endmacro %}
|
|
@ -0,0 +1,15 @@
|
|||
{% extends "project-base.html" %}
|
||||
{% import "event.html" as eventutil with context %}
|
||||
{# TODO: RSS feed #}
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 event-list">
|
||||
{% for event in events %}
|
||||
{{ eventutil.event(event) }}
|
||||
{% endfor %}
|
||||
{{pagination()}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -1,4 +1,5 @@
|
|||
{% extends "project-base.html" %}
|
||||
{% import "event.html" as eventutil with context %}
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
@ -72,25 +73,7 @@
|
|||
<div class="col-md-12">
|
||||
<div class="event-list project-events">
|
||||
{% for event in events %}
|
||||
{% if event.event_type == EventType.source_repo_added %}
|
||||
<div class="event">
|
||||
<a
|
||||
href="{{event.source_repo.url()}}"
|
||||
>{{event.source_repo.owner.canonical_name}}/{{event.source_repo.name}}</a>
|
||||
<p>New {{event.source_repo.repo_type.value}} repository added</p>
|
||||
<small class="text-muted">{{event.created | date}}</small>
|
||||
</div>
|
||||
{% elif event.event_type == EventType.mailing_list_added %}
|
||||
<div class="event">
|
||||
<a
|
||||
href="{{event.mailing_list.url()}}"
|
||||
>{{event.mailing_list.owner.canonical_name}}/{{event.mailing_list.name}}</a>
|
||||
<p>New mailing list added</p>
|
||||
<small class="text-muted">{{event.created | date}}</small>
|
||||
</div>
|
||||
{% else %}
|
||||
TODO: implement event type {{event.event_type}}
|
||||
{% endif %}
|
||||
{{ eventutil.event(event) }}
|
||||
{% endfor %}
|
||||
{#
|
||||
<div class="event">
|
||||
|
@ -106,7 +89,8 @@
|
|||
#}
|
||||
<div class="view-more">
|
||||
<a
|
||||
href="#"
|
||||
href="{{url_for("projects.feed_GET",
|
||||
owner=owner, project_name=project.name)}}"
|
||||
class="btn btn-link"
|
||||
>View project feed {{icon("caret-right")}}</a>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue