aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fatcat/api.py8
-rw-r--r--fatcat/routes.py9
-rw-r--r--fatcat/templates/release_changelog.html17
-rw-r--r--tests/routes.py3
4 files changed, 37 insertions, 0 deletions
diff --git a/fatcat/api.py b/fatcat/api.py
index 77afef0a..95b82742 100644
--- a/fatcat/api.py
+++ b/fatcat/api.py
@@ -96,6 +96,14 @@ def api_release_create():
db.session.commit()
return release_schema.jsonify(ident)
+@app.route('/v0/release/<int:ident>/changelog', methods=['GET'])
+def api_release_changelog(ident):
+ entries = ChangelogEntry.query\
+ .join(ReleaseEdit.editgroup)\
+ .filter(ReleaseEdit.ident_id==ident)\
+ .all()
+ return changelogentry_schema.jsonify(entries, many=True)
+
@app.route('/v0/release/random', methods=['GET'])
def api_release_random():
entity = ReleaseIdent.query.order_by(db.func.random()).first()
diff --git a/fatcat/routes.py b/fatcat/routes.py
index ba12043d..24fd5b18 100644
--- a/fatcat/routes.py
+++ b/fatcat/routes.py
@@ -30,6 +30,15 @@ def release_view(ident):
entity = json.loads(rv.data.decode('utf-8'))
return render_template('release_view.html', release=entity)
+@app.route('/release/<int:ident>/changelog', methods=['GET'])
+def release_changelog(ident):
+ rv = api.api_release_get(ident)
+ release = json.loads(rv.data.decode('utf-8'))
+ rv = api.api_release_changelog(ident)
+ changelog_entries = json.loads(rv.data.decode('utf-8'))
+ return render_template('release_changelog.html', release=release,
+ changelog_entries=changelog_entries)
+
@app.route('/release/random', methods=['GET'])
def release_random():
rv = api.api_release_random()
diff --git a/fatcat/templates/release_changelog.html b/fatcat/templates/release_changelog.html
new file mode 100644
index 00000000..47526749
--- /dev/null
+++ b/fatcat/templates/release_changelog.html
@@ -0,0 +1,17 @@
+{% extends "base.html" %}
+{% block body %}
+
+<h1>Release Changelog: {{ release.id }}</h1>
+
+<p>release: <a href="/release/{{ release.id }}">{{ release.id }}</a>
+
+<p>Changelog:
+<ul>
+{% for entry in changelog_entries %}
+ <li><a href="/editgroup/{{ entry.edit_group }}">Edit Group #{{ entry.edit_group }}</a> (on {{ entry.timestamp }})
+{% else %}
+NONE
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/tests/routes.py b/tests/routes.py
index 5b9f0ca9..79d97fe4 100644
--- a/tests/routes.py
+++ b/tests/routes.py
@@ -42,6 +42,9 @@ def test_all_views(rich_app):
rv = app.get('/release/random')
assert rv.status_code == 302
+ rv = app.get('/release/1/changelog')
+ assert rv.status_code == 200
+
rv = app.get('/editgroup/1')
assert rv.status_code == 200