[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/07: Include locale in the JSON response for the packages page
From: |
Christopher Baines |
Subject: |
01/07: Include locale in the JSON response for the packages page |
Date: |
Fri, 26 Jun 2020 12:55:10 -0400 (EDT) |
cbaines pushed a commit to branch master
in repository data-service.
commit 5708b8100292da45d5ebbfdfeef69d841e0de5e3
Author: Danjela Lura <danielaluraa@gmail.com>
AuthorDate: Mon Jun 22 21:09:08 2020 +0200
Include locale in the JSON response for the packages page
Signed-off-by: Christopher Baines <mail@cbaines.net>
---
guix-data-service/model/package-metadata.scm | 13 ++++++++-----
guix-data-service/model/package.scm | 13 ++++++++-----
guix-data-service/web/revision/controller.scm | 18 ++++++++++--------
guix-data-service/web/revision/html.scm | 16 ++++++++++++++--
4 files changed, 40 insertions(+), 20 deletions(-)
diff --git a/guix-data-service/model/package-metadata.scm
b/guix-data-service/model/package-metadata.scm
index f2319fc..032e706 100644
--- a/guix-data-service/model/package-metadata.scm
+++ b/guix-data-service/model/package-metadata.scm
@@ -107,7 +107,8 @@
(define (select-package-metadata-by-revision-name-and-version
conn revision-commit-hash name version locale)
(define query "
-SELECT translated_package_synopsis.synopsis,
translated_package_descriptions.description,
+SELECT translated_package_synopsis.synopsis,
translated_package_synopsis.locale,
+ translated_package_descriptions.description,
translated_package_descriptions.locale,
package_metadata.home_page,
locations.file, locations.line, locations.column_number,
(SELECT JSON_AGG((license_data.*))
@@ -125,7 +126,8 @@ INNER JOIN packages
LEFT OUTER JOIN locations
ON package_metadata.location_id = locations.id
INNER JOIN (
- SELECT DISTINCT ON (package_description_sets.id)
package_description_sets.id, package_descriptions.description
+ SELECT DISTINCT ON (package_description_sets.id) package_description_sets.id,
+ package_descriptions.description, package_descriptions.locale
FROM package_descriptions
INNER JOIN package_description_sets
ON package_descriptions.id = ANY (package_description_sets.description_ids)
@@ -143,7 +145,8 @@ INNER JOIN (
) AS translated_package_descriptions
ON package_metadata.package_description_set_id =
translated_package_descriptions.id
INNER JOIN (
- SELECT DISTINCT ON (package_synopsis_sets.id) package_synopsis_sets.id,
package_synopsis.synopsis
+ SELECT DISTINCT ON (package_synopsis_sets.id) package_synopsis_sets.id,
+ package_synopsis.synopsis, package_synopsis.locale
FROM package_synopsis
INNER JOIN package_synopsis_sets
ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids)
@@ -175,9 +178,9 @@ WHERE packages.id IN (
(map
(match-lambda
- ((synopsis description home-page file line column-number
+ ((synopsis synopsis-locale description description-locale home-page file
line column-number
license-json)
- (list synopsis description home-page file line column-number
+ (list synopsis synopsis-locale description description-locale home-page
file line column-number
(if (string-null? license-json)
#()
(json-string->scm license-json)))))
diff --git a/guix-data-service/model/package.scm
b/guix-data-service/model/package.scm
index 42c4e83..643148d 100644
--- a/guix-data-service/model/package.scm
+++ b/guix-data-service/model/package.scm
@@ -59,7 +59,8 @@
(string-append "
WITH data AS (
SELECT packages.name, packages.version, translated_package_synopsis.synopsis,
- translated_package_descriptions.description, package_metadata.home_page,
+ translated_package_synopsis.locale,
translated_package_descriptions.description,
+ translated_package_descriptions.locale, package_metadata.home_page,
locations.file, locations.line, locations.column_number,
(SELECT JSON_AGG((license_data.*))
FROM (
@@ -77,7 +78,7 @@ WITH data AS (
ON package_metadata.location_id = locations.id
INNER JOIN (
SELECT DISTINCT ON (package_synopsis_sets.id) package_synopsis_sets.id,
- package_synopsis.synopsis
+ package_synopsis.synopsis, package_synopsis.locale
FROM package_synopsis_sets
INNER JOIN package_synopsis
ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids)
@@ -90,7 +91,7 @@ WITH data AS (
ON package_metadata.package_synopsis_set_id =
translated_package_synopsis.id
INNER JOIN (
SELECT DISTINCT ON (package_description_sets.id)
package_description_sets.id,
- package_descriptions.description
+ package_descriptions.description, package_descriptions.locale
FROM package_description_sets
INNER JOIN package_descriptions
ON package_descriptions.id = ANY
(package_description_sets.description_ids)
@@ -142,7 +143,9 @@ WHERE data.name IN (SELECT name FROM package_names);"))
SELECT packages.name,
packages.version,
translated_package_synopsis.synopsis,
+ translated_package_synopsis.locale,
translated_package_descriptions.description,
+ translated_package_descriptions.locale,
package_metadata.home_page,
locations.file, locations.line, locations.column_number,
(SELECT JSON_AGG((license_data.*))
@@ -161,7 +164,7 @@ LEFT OUTER JOIN locations
ON package_metadata.location_id = locations.id
INNER JOIN (
SELECT DISTINCT ON (package_synopsis_sets.id) package_synopsis_sets.id,
- package_synopsis.synopsis
+ package_synopsis.synopsis, package_synopsis.locale
FROM package_synopsis_sets
INNER JOIN package_synopsis
ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids)
@@ -174,7 +177,7 @@ INNER JOIN (
ON package_metadata.package_synopsis_set_id =
translated_package_synopsis.id
INNER JOIN (
SELECT DISTINCT ON (package_description_sets.id) package_description_sets.id,
- package_descriptions.description
+ package_descriptions.description, package_descriptions.locale
FROM package_description_sets
INNER JOIN package_descriptions
ON package_descriptions.id = ANY (package_description_sets.description_ids)
diff --git a/guix-data-service/web/revision/controller.scm
b/guix-data-service/web/revision/controller.scm
index 6fa225f..e233fe7 100644
--- a/guix-data-service/web/revision/controller.scm
+++ b/guix-data-service/web/revision/controller.scm
@@ -312,13 +312,14 @@
commit-hash)))
(_ #f)))
-(define (texinfo->variants-alist s)
+(define (texinfo->variants-alist s locale)
(let ((stexi (texi-fragment->stexi s)))
`((source . ,s)
(html . ,(with-output-to-string
(lambda ()
(sxml->html (stexi->shtml stexi)))))
- (plain . ,(stexi->plain-text stexi)))))
+ (plain . ,(stexi->plain-text stexi))
+ (locale . ,locale))))
(define (render-unknown-revision mime-types conn commit-hash)
(case (most-appropriate-mime-type
@@ -597,7 +598,7 @@
(packages
. ,(list->vector
(map (match-lambda
- ((name version synopsis description home-page
+ ((name version synopsis synopsis-locale description
description-locale home-page
location-file location-line
location-column-number licenses)
`((name . ,name)
@@ -606,11 +607,11 @@
'())
,@(if (member "synopsis" fields)
`((synopsis
- . ,(texinfo->variants-alist synopsis)))
+ . ,(texinfo->variants-alist synopsis
synopsis-locale)))
'())
,@(if (member "description" fields)
`((description
- . ,(texinfo->variants-alist
description)))
+ . ,(texinfo->variants-alist description
description-locale)))
'())
,@(if (member "home-page" fields)
`((home-page . ,home-page))
@@ -737,9 +738,10 @@
`((name . ,name)
(version . ,version)
,@(match metadata
- (((synopsis description home-page))
- `((synopsis . ,synopsis)
- (description . ,description)
+ (((synopsis synopsis-locale description description-locale
home-page file line column-number
+ licenses))
+ `((synopsis . ,(texinfo->variants-alist synopsis
synopsis-locale))
+ (description . ,(texinfo->variants-alist description
description-locale))
(home-page . ,home-page))))
(derivations . ,(list->vector
(map (match-lambda
diff --git a/guix-data-service/web/revision/html.scm
b/guix-data-service/web/revision/html.scm
index b7a2ad8..c37683f 100644
--- a/guix-data-service/web/revision/html.scm
+++ b/guix-data-service/web/revision/html.scm
@@ -203,6 +203,18 @@
(@ (class "row"))
(div
(@ (class "col-sm-12"))
+ (a (@ (class "btn btn-default btn-lg pull-right")
+ (href ,(let ((query-params
+ (query-parameters->string query-parameters)))
+ (string-append header-link "/package/" name "/" version
".json"
+ (if (string-null? query-params)
+ ""
+ (string-append "?" query-params))))))
+ "View JSON")))
+ (div
+ (@ (class "row"))
+ (div
+ (@ (class "col-sm-12"))
,@(if version-history-link
`((a (@ (class "btn btn-lg btn-default pull-right")
(href ,version-history-link)
@@ -215,7 +227,7 @@
(div
(@ (class "col-sm-12"))
,(match package-metadata
- (((synopsis description home-page file line column-number
+ (((synopsis synopsis-locale description description-locale
home-page file line column-number
licenses))
`(dl
(@ (class "dl-horizontal"))
@@ -620,7 +632,7 @@
,@(let ((fields (assq-ref query-parameters 'field)))
(map
(match-lambda
- ((name version synopsis description home-page
+ ((name version synopsis _ description _ home-page
location-file location-line
location-column-number licenses)
`(tr
- branch master updated (0b48254 -> f60c2ea), Christopher Baines, 2020/06/26
- 01/07: Include locale in the JSON response for the packages page,
Christopher Baines <=
- 02/07: Embed the locale option in the URI of the package page, Christopher Baines, 2020/06/26
- 04/07: Include locale in search-packages-in-revision, Christopher Baines, 2020/06/26
- 05/07: Add locale values in the JSON response for the lint warnings page, Christopher Baines, 2020/06/26
- 06/07: Add indications for no translations available in the lint warnings page, Christopher Baines, 2020/06/26
- 03/07: Add indications for no translations available in the packages page, Christopher Baines, 2020/06/26
- 07/07: Add the packages-translation-availability page, Christopher Baines, 2020/06/26