From: Michael Tremer Date: Sat, 25 Jun 2022 16:25:19 +0000 (+0000) Subject: packages: Refactor details page X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d9f760348e8a944800abc0db19496083745033fd;p=pbs.git packages: Refactor details page Signed-off-by: Michael Tremer --- diff --git a/Makefile.am b/Makefile.am index b1b8a1e4..d5ff61c2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -171,7 +171,6 @@ dist_templates_DATA = \ src/templates/keys-list.html \ src/templates/log.html \ src/templates/login.html \ - src/templates/package-detail.html \ src/templates/package-properties.html \ src/templates/queue.html \ src/templates/search.html \ @@ -323,6 +322,7 @@ templates_repos_modulesdir = $(templates_reposdir)/modules dist_templates_packages_DATA = \ src/templates/packages/index.html \ src/templates/packages/name.html \ + src/templates/packages/show.html \ src/templates/packages/view-file.html templates_packagesdir = $(templatesdir)/packages @@ -332,6 +332,11 @@ dist_templates_packages_builds_DATA = \ templates_packages_buildsdir = $(templates_packagesdir)/builds +dist_templates_packages_modules_DATA = \ + src/templates/packages/modules/info.html + +templates_packages_modulesdir = $(templates_packagesdir)/modules + dist_templates_users_DATA = \ src/templates/users/show.html diff --git a/src/buildservice/packages.py b/src/buildservice/packages.py index 53acdc77..ead71477 100644 --- a/src/buildservice/packages.py +++ b/src/buildservice/packages.py @@ -311,6 +311,11 @@ class Package(base.DataObject): def path(self): return self.data.path + @property + def download_url(self): + # XXX ??? + return self.path + @property def filename(self): return os.path.basename(self.path) diff --git a/src/templates/builds/show.html b/src/templates/builds/show.html index ec68190a..70462431 100644 --- a/src/templates/builds/show.html +++ b/src/templates/builds/show.html @@ -86,7 +86,7 @@ - + {{ _("Source Package") }} @@ -215,7 +215,7 @@ {% module JobsBoxes(build) %}

- {{ _("Source package") }} + {{ _("Source package") }}

diff --git a/src/templates/modules/jobs/list.html b/src/templates/modules/jobs/list.html index 931f96ad..75b204d2 100644 --- a/src/templates/modules/jobs/list.html +++ b/src/templates/modules/jobs/list.html @@ -19,7 +19,7 @@ -

- {{ package.name }} - - {% if package.summary %} - {{ package.summary }} - {% end %} -

- -
- {% module Text(package.description) %} - - -
+ {% module PackageInfo(package) %} {% for distro in backend.distros %}
{{ distro }}
diff --git a/src/templates/packages/show.html b/src/templates/packages/show.html new file mode 100644 index 00000000..3ec410a5 --- /dev/null +++ b/src/templates/packages/show.html @@ -0,0 +1,75 @@ +{% extends "../base.html" %} + +{% block title %}{{ _("Package") }} - {{ package }}{% end block %} + +{% block container %} + + + {% module PackageInfo(package, show_evr=True) %} + + + {{ _("Download Package") }} ({{ format_size(package.size) }}) + + + {% if package.build %} + + {{ _("Build %s") % package.build }} + + {% end %} + + {# XXX add reference to commit for source packages #} + +
+
+

+ {% if package.arch == "src" %} + {{ _("Build dependencies") }} + {% else %} + {{ _("Dependencies") }} + {% end %} +

+
+
+ + {% module PackagesDependencyTable(package) %} + + {% if package.filelist %} +
+
+

+ {{ _("Filelist") }} +

+
+
+ +
+
+ {% module PackageFilesTable(package, package.filelist) %} +
+
+ {% end %} +{% end block %} diff --git a/src/web/__init__.py b/src/web/__init__.py index da2026e7..00b91ad6 100644 --- a/src/web/__init__.py +++ b/src/web/__init__.py @@ -61,6 +61,7 @@ class Application(tornado.web.Application): "JobsStatus" : ui_modules.JobsStatusModule, # Packages + "PackageInfo" : packages.InfoModule, "PackagesDependencyTable" : ui_modules.PackagesDependencyTableModule, # Repositories @@ -129,8 +130,8 @@ class Application(tornado.web.Application): # Packages (r"/packages", packages.IndexHandler), + (r"/packages/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})", packages.ShowHandler), (r"/packages/([\w\-\+]+)", packages.NameHandler), - (r"/package/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})", packages.PackageDetailHandler), (r"/package/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})/download(.*)", packages.PackageFileDownloadHandler), (r"/package/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})/view(.*)", packages.PackageFileViewHandler), (r"/package/([\w\-\+]+)/builds/scratch", packages.PackageScratchBuildsHandler), diff --git a/src/web/packages.py b/src/web/packages.py index d04c242b..61c0141d 100644 --- a/src/web/packages.py +++ b/src/web/packages.py @@ -5,6 +5,7 @@ import os.path import tornado.web from . import base +from . import ui_modules from ..constants import BUFFER_SIZE @@ -37,13 +38,13 @@ class NameHandler(base.BaseHandler): self.render("packages/name.html", package=build.pkg, bugs=bugs) -class PackageIDDetailHandler(base.BaseHandler): - def get(self, id): - package = self.packages.get_by_id(id) +class ShowHandler(base.BaseHandler): + def get(self, uuid): + package = self.backend.packages.get_by_uuid(uuid) if not package: - return tornado.web.HTTPError(404, "Package not found: %s" % id) + return tornado.web.HTTPError(404, "Could not find package: %s" % uuid) - self.render("package-detail.html", package=package) + self.render("packages/show.html", package=package) class PackageScratchBuildsHandler(base.BaseHandler): @@ -67,27 +68,6 @@ class PackageScratchBuildsHandler(base.BaseHandler): pkg=latest_build.pkg) -class PackageDetailHandler(base.BaseHandler): - def get(self, uuid): - pkg = self.backend.packages.get_by_uuid(uuid) - if not pkg: - raise tornado.web.HTTPError(404, "Package not found: %s" % uuid) - - self.render("package-detail.html", pkg=pkg) - - @tornado.web.authenticated - def post(self, name, epoch, version, release): - pkg = self.backend.packages.get_by_tuple(name, epoch, version, release) - - action = self.get_argument("action", None) - - if action == "comment": - pkg.comment(self.current_user.id, self.get_argument("text"), - self.get_argument("vote", None) or "none") - - self.render("package-detail.html", pkg=pkg) - - class PackagePropertiesHandler(base.BaseHandler): @tornado.web.authenticated def get(self, name): @@ -190,3 +170,9 @@ class PackageFileViewHandler(PackageFileDownloadHandler): self.render("packages/view-file.html", pkg=pkg, filename=filename, mimetype=mimetype, content=content, filesize=f.size) + + +class InfoModule(ui_modules.UIModule): + def render(self, package, show_evr=False): + return self.render_string("packages/modules/info.html", + package=package, show_evr=show_evr)