limit = self.get_argument_int("limit", None) or 25
# Filters
+ name = self.get_argument("name", None)
user = self.get_argument_user("user", None)
# Fetch the most recent builds
if user:
- builds = self.backend.builds.get_by_user(user, limit=limit, offset=offset)
+ builds = user.get_builds(name, limit=limit, offset=offset)
else:
- builds = self.backend.builds.get_recent(limit=limit, offset=offset)
+ builds = self.backend.builds.get_recent(name=name, limit=limit, offset=offset)
# Group builds by date
builds = misc.group(builds, lambda build: build.created_at.date())
- self.render("builds/index.html", builds=builds, user=user,
+ self.render("builds/index.html", builds=builds, name=name, user=user,
limit=limit, offset=offset)
class CommentHandler(base.BaseHandler):
@tornado.web.authenticated
- def post(self, uuid):
+ async def post(self, uuid):
build = self.backend.builds.get_by_uuid(uuid)
if not build:
raise tornado.web.HTTPError(404, "Could not find build %s" % uuid)
# Add a new comment to the build
with self.db.transaction():
- build.comment(self.current_user, text)
+ await build.comment(self.current_user, text)
# Redirect to the build
self.redirect("/builds/%s" % build.uuid)
# Add the build to the repository
with self.db.transaction():
- await repo.add_build(build, user=self.current_user, update=False)
-
- # Update the repository in the background
- self.backend.run_task(repo.update)
+ await repo.add_build(build, user=self.current_user)
self.redirect("/builds/%s" % build.uuid)
# Remove build from all repositories
with self.db.transaction():
for repo in repos:
- await repo.remove_build(build, user=self.current_user, update=False)
-
- # Update all repositories in the background
- for repo in repos:
- self.backend.run_task(repo.update)
+ await repo.remove_build(build, user=self.current_user)
self.redirect("/builds/%s" % build.uuid)
class ListModule(ui_modules.UIModule):
- def render(self, builds):
- return self.render_string("builds/modules/list.html", builds=builds)
+ def render(self, builds, limit=None, more_url=None):
+ rest = None
+
+ # Limit builds
+ if limit:
+ builds, rest = builds[:limit], builds[limit:]
+
+ return self.render_string("builds/modules/list.html", builds=builds,
+ rest=rest, more_url=more_url)
class GroupListModule(ui_modules.UIModule):