-{% extends "../../modal.html" %}
+{% extends "modal.html" %}
-{% block title %}{{ release }} - {{ _("Publish") }}{% end block %}
+{% block title %}{{ release }} - {{ _("Publish") }}{% endblock %}
{% block breadcrumbs %}
<nav class="breadcrumb" aria-label="breadcrumbs">
</li>
</ul>
</nav>
-{% end block %}
+{% endblock %}
{% block modal_title %}
<h4 class="title is-4">{{ _("Publish Release") }}</h4>
<h6 class="subtitle is-6">{{ release }}</h6>
-{% end block %}
+{% endblock %}
{% block modal %}
<form method="POST" action="">
- {% raw xsrf_form_html() %}
+ {{ xsrf_form_html() | safe }}
<div class="content">
<p>
</button>
</div>
</form>
-{% end block %}
+{% endblock %}
class ReleasesPublishHandler(base.BaseHandler):
@base.authenticated
- def get(self, distro_slug, release_slug):
- distro = self.backend.distros.get_by_slug(distro_slug)
+ async def get(self, distro_slug, release_slug):
+ distro = await self.backend.distros.get_by_slug(distro_slug)
if not distro:
raise tornado.web.HTTPError(404, "Could not find distro: %s" % distro_slug)
# Fetch the release
- release = distro.get_release(release_slug)
+ release = await distro.get_release(release_slug)
if not release:
raise tornado.web.HTTPError(404, "Could not find release %s" % release_slug)
if not release.has_perm(self.current_user):
raise tornado.web.HTTPError(403)
- self.render("distros/releases/publish.html", release=release, distro=distro)
+ await self.render("distros/releases/publish.html", release=release, distro=distro)
@base.authenticated
async def post(self, distro_slug, release_slug):
- distro = self.backend.distros.get_by_slug(distro_slug)
+ distro = await self.backend.distros.get_by_slug(distro_slug)
if not distro:
raise tornado.web.HTTPError(404, "Could not find distro: %s" % distro_slug)
# Fetch the release
- release = distro.get_release(release_slug)
+ release = await distro.get_release(release_slug)
if not release:
raise tornado.web.HTTPError(404, "Could not find release %s" % release_slug)
if not release.has_perm(self.current_user):
raise tornado.web.HTTPError(403)
- with self.db.transaction():
+ # Publish the release
+ async with await self.db.transaction():
await release.publish()
# Redirect back to the release