Add option to change language of lint messages for the revision page

Signed-off-by: Christopher Baines <mail@cbaines.net>
This commit is contained in:
Danjela lura 2020-04-04 05:02:11 +02:00 committed by Christopher Baines
parent a50bc3342f
commit e514471fc9
4 changed files with 43 additions and 5 deletions

View file

@ -21,7 +21,7 @@
#:use-module (guix-data-service database) #:use-module (guix-data-service database)
#:use-module (guix-data-service model utils) #:use-module (guix-data-service model utils)
#:export (lint-warning-message-data->lint-warning-message-ids #:export (lint-warning-message-data->lint-warning-message-ids
lint-warning-message-locales-for-revision
lint-warning-message-data->lint-warning-message-set-id)) lint-warning-message-data->lint-warning-message-set-id))
(define (lint-warning-message-data->lint-warning-message-ids conn (define (lint-warning-message-data->lint-warning-message-ids conn
@ -73,3 +73,19 @@
(((id)) id) (((id)) id)
(() (()
(insert-lint-warning-message-set conn lint-warning-message-ids)))))) (insert-lint-warning-message-set conn lint-warning-message-ids))))))
(define (lint-warning-message-locales-for-revision conn commit-hash)
(exec-query
conn
"SELECT DISTINCT lint_warning_messages.locale
from lint_warning_messages
INNER JOIN lint_warning_message_sets
ON lint_warning_messages.id = ANY (lint_warning_message_sets.message_ids)
INNER JOIN lint_warnings
ON lint_warning_message_sets.id = lint_warnings.lint_warning_message_set_id
INNER JOIN guix_revision_lint_warnings
ON lint_warnings.id = guix_revision_lint_warnings.lint_warning_id
INNER JOIN guix_revisions
ON guix_revision_lint_warnings.guix_revision_id = guix_revisions.id
WHERE guix_revisions.commit = $1"
(list commit-hash)))

View file

@ -53,6 +53,7 @@
(define* (lint-warnings-for-guix-revision conn commit-hash (define* (lint-warnings-for-guix-revision conn commit-hash
#:key #:key
locale
package-query package-query
linters linters
message-query) message-query)
@ -72,8 +73,9 @@ INNER JOIN locations
INNER JOIN lint_warning_message_sets INNER JOIN lint_warning_message_sets
ON lint_warning_message_sets.id = lint_warning_message_set_id ON lint_warning_message_sets.id = lint_warning_message_set_id
INNER JOIN lint_warning_messages INNER JOIN lint_warning_messages
ON lint_warning_messages.locale = 'en_US.utf8' ON lint_warning_messages.locale = "
AND lint_warning_messages.id = ANY (lint_warning_message_sets.message_ids) "'" locale "'"
" AND lint_warning_messages.id = ANY (lint_warning_message_sets.message_ids)
" "
(if linters (if linters
(string-append (string-append

View file

@ -43,6 +43,7 @@
#:use-module (guix-data-service model package-metadata) #:use-module (guix-data-service model package-metadata)
#:use-module (guix-data-service model lint-checker) #:use-module (guix-data-service model lint-checker)
#:use-module (guix-data-service model lint-warning) #:use-module (guix-data-service model lint-warning)
#:use-module (guix-data-service model lint-warning-message)
#:use-module (guix-data-service model guix-revision) #:use-module (guix-data-service model guix-revision)
#:use-module (guix-data-service model system-test) #:use-module (guix-data-service model system-test)
#:use-module (guix-data-service model nar) #:use-module (guix-data-service model nar)
@ -269,7 +270,8 @@
(let ((parsed-query-parameters (let ((parsed-query-parameters
(parse-query-parameters (parse-query-parameters
request request
`((package_query ,identity) `((locale ,identity #:default "en_US.utf8")
(package_query ,identity)
(linter ,identity #:multi-value) (linter ,identity #:multi-value)
(message_query ,identity) (message_query ,identity)
(field ,identity #:multi-value (field ,identity #:multi-value
@ -916,6 +918,13 @@
name))) name)))
(lint-checkers-for-revision conn commit-hash))) (lint-checkers-for-revision conn commit-hash)))
(define lint-warnings-locale-options
(map
(match-lambda
((locale)
locale))
(lint-warning-message-locales-for-revision conn commit-hash)))
(if (any-invalid-query-parameters? query-parameters) (if (any-invalid-query-parameters? query-parameters)
(case (most-appropriate-mime-type (case (most-appropriate-mime-type
'(application/json text/html) '(application/json text/html)
@ -930,11 +939,13 @@
'() '()
'() '()
lint-checker-options lint-checker-options
lint-warnings-locale-options
#:path-base path-base #:path-base path-base
#:header-text header-text #:header-text header-text
#:header-link header-link)))) #:header-link header-link))))
(let* ((package-query (assq-ref query-parameters 'package_query)) (let* ((locale (assq-ref query-parameters 'locale))
(package-query (assq-ref query-parameters 'package_query))
(linters (assq-ref query-parameters 'linter)) (linters (assq-ref query-parameters 'linter))
(message-query (assq-ref query-parameters 'message_query)) (message-query (assq-ref query-parameters 'message_query))
(fields (assq-ref query-parameters 'field)) (fields (assq-ref query-parameters 'field))
@ -943,6 +954,7 @@
commit-hash)) commit-hash))
(lint-warnings (lint-warnings
(lint-warnings-for-guix-revision conn commit-hash (lint-warnings-for-guix-revision conn commit-hash
#:locale locale
#:package-query package-query #:package-query package-query
#:linters linters #:linters linters
#:message-query message-query))) #:message-query message-query)))
@ -980,6 +992,7 @@
lint-warnings lint-warnings
git-repositories git-repositories
lint-checker-options lint-checker-options
lint-warnings-locale-options
#:path-base path-base #:path-base path-base
#:header-text header-text #:header-text header-text
#:header-link header-link) #:header-link header-link)

View file

@ -1454,6 +1454,7 @@ figure {
lint-warnings lint-warnings
git-repositories git-repositories
lint-checker-options lint-checker-options
lint-warnings-locale-options
#:key path-base #:key path-base
header-text header-link) header-text header-link)
(define field-options (define field-options
@ -1487,6 +1488,12 @@ figure {
(action "") (action "")
(style "padding-bottom: 0") (style "padding-bottom: 0")
(class "form-horizontal")) (class "form-horizontal"))
,(form-horizontal-control
"Locale" query-parameters
#:options lint-warnings-locale-options
#:allow-selecting-multiple-options #f
#:help-text
"Language")
,(form-horizontal-control ,(form-horizontal-control
"Package query" query-parameters "Package query" query-parameters
#:help-text #:help-text