guix-commits
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]