# Initialize stats
self.stats = BuildersStats(self.backend)
- async def create(self, name, user=None):
+ async def create(self, **kwargs):
"""
Creates a new builder
"""
builder = await self.db.insert(
Builder,
- name = name,
- user = user,
+ **kwargs,
)
return builder
"""
deleted_at = Column(DateTime(timezone=False), nullable=True)
- def delete(self, user=None):
+ async def delete(self, deleted_by=None):
"""
Called to delete this object
"""
setattr(self, "deleted_at", sqlalchemy.func.current_timestamp())
# Optionally set deleted_by
- if user:
- setattr(self, "deleted_by", user)
+ if deleted_by:
+ setattr(self, "deleted_by", deleted_by)
-{% extends "../modal.html" %}
+{% extends "modal.html" %}
-{% block title %}{{ _("Create A New Builder") }}{% end block %}
+{% block title %}{{ _("Create A New Builder") }}{% endblock %}
{% block breadcrumbs %}
<nav class="breadcrumb" aria-label="breadcrumbs">
</li>
</ul>
</nav>
-{% end block %}
+{% endblock %}
{% block modal_title %}
<h4 class="title is-4">{{ _("Create A New Builder") }}</h4>
-{% end block %}
+{% endblock %}
{% block modal %}
<form method="POST" action="">
- {% raw xsrf_form_html() %}
+ {{ xsrf_form_html() | safe }}
- {# Hostname #}
+ {# Name #}
<div class="field">
- <label class="label">{{ _("Hostname") }}</label>
+ <label class="label">{{ _("Name") }}</label>
+
<div class="control">
- <input class="input" type="fqdn" name="hostname"
- placeholder="{{ _("Hostname") }}" required>
+ <input class="input" type="fqdn" name="name"
+ placeholder="{{ _("Name") }}" required>
</div>
</div>
</button>
</div>
</form>
-{% end block %}
+{% endblock %}
-{% extends "../modal.html" %}
+{% extends "modal.html" %}
-{% block title %}{{ _("Delete Builder") }} - {{ builder }}{% end block %}
+{% block title %}{{ _("Delete Builder") }} - {{ builder }}{% endblock %}
{% block breadcrumbs %}
<nav class="breadcrumb" aria-label="breadcrumbs">
<a href="/builders">{{ _("Builders") }}</a>
</li>
<li>
- <a href="/builders/{{ builder.hostname }}">{{ builder }}</a>
+ <a href="/builders/{{ builder.name }}">{{ builder }}</a>
</li>
<li class="is-active">
<a href="#" aria-current="page">{{ _("Delete") }}</a>
</li>
</ul>
</nav>
-{% end block %}
+{% endblock %}
{% block modal_title %}
<h4 class="title is-4">{{ _("Delete Builder") }}</h4>
<h6 class="subtitle is-6">{{ builder }}</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 %}
{% elif event.type == "mirror-offline" %}
{{ _("Mirror Went Offline") }}
{% elif event.type == "repository-build-added" %}
- {{ _("Build has been added to repository %s") % event.repository }}
+ {{ _("Build has been added to repository %s") % event.repo }}
{% elif event.type == "repository-build-moved" %}
- {{ _("Build has been moved to repository %s") % event.repository }}
+ {{ _("Build has been moved to repository %s") % event.repo }}
{% elif event.type == "repository-build-removed" %}
- {{ _("Build has been removed from repository %s") % event.repository }}
+ {{ _("Build has been removed from repository %s") % event.repo }}
{% elif event.type == "release-monitoring-created" %}
{{ _("Release Monitoring has been enabled for %s") % event.package_name }}
{% elif event.type == "release-monitoring-deleted" %}
{# Builder #}
{% if show_builder and event.builder %}
- <a class="level-item" href="/builders/{{ event.builder.hostname }}">
+ <a class="level-item" href="/builders/{{ event.builder.name }}">
{{ event.builder }}
</a>
{% endif %}
await self.render("builders/show.html", builder=builder, **args)
-class CreateHandler(base.BaseHandler):
- @base.authenticated
+class CreateHandler(base.AdminHandler):
async def get(self):
- # Must be admin
- if not self.current_user.is_admin():
- raise tornado.web.HTTPError(403)
-
- self.render("builders/create.html")
+ await self.render("builders/create.html")
- @base.authenticated
async def post(self):
- # Must be admin
- if not self.current_user.is_admin():
- raise tornado.web.HTTPError(403)
-
- hostname = self.get_argument("hostname")
-
# Create a new builder
async with await self.db.transaction():
- builder = self.backend.builders.create(hostname, user=self.current_user)
+ builder = await self.backend.builders.create(
+ name = self.get_argument("name"),
+ created_by = await self.get_current_user(),
+ )
- self.redirect("/builders/%s/edit" % builder.hostname)
+ self.redirect("/builders/%s/edit" % builder.name)
class EditHandler(base.BaseHandler):
class DeleteHandler(base.BaseHandler):
@base.authenticated
async def get(self, name):
- builder = self.backend.builders.get_by_name(name)
+ builder = await self.backend.builders.get_by_name(name)
if not builder:
raise tornado.web.HTTPError(404, "Builder not found: %s" % name)
if not builder.has_perm(current_user):
raise tornado.web.HTTPError(403)
- self.render("builders/delete.html", builder=builder)
+ await self.render("builders/delete.html", builder=builder)
@base.authenticated
- async def post(self, hostname):
- builder = self.backend.builders.get_by_name(hostname)
+ async def post(self, name):
+ builder = await self.backend.builders.get_by_name(name)
if not builder:
raise tornado.web.HTTPError(404, "Builder not found: %s" % hostname)
# Delete the builder
async with await self.db.transaction():
- await builder.delete(user=self.current_user)
+ await builder.delete(deleted_by=current_user)
self.redirect("/builders")