changeset 4196:948e312e87bc

Add flag and filter for imports having errors Items in the list of imports gain a boolean attribute 'errors' set to true, if the logs of an import contain any errors. Using the parameter 'errors=true' in the request to get the list of imports leads to only entries with errors being returned.
author Tom Gottfried <tom@intevation.de>
date Wed, 14 Aug 2019 16:55:46 +0200
parents ad13c581de7c
children 5d7ce7f926eb
files pkg/controllers/importqueue.go pkg/models/import.go
diffstat 2 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/controllers/importqueue.go	Wed Aug 14 14:56:35 2019 +0200
+++ b/pkg/controllers/importqueue.go	Wed Aug 14 16:55:46 2019 +0200
@@ -48,6 +48,8 @@
   signer,
   summary IS NOT NULL AS has_summary,
   EXISTS(SELECT 1 FROM import.import_logs
+    WHERE kind = 'error'::log_type and import_id = imports.id) AS has_errors,
+  EXISTS(SELECT 1 FROM import.import_logs
     WHERE kind = 'warn'::log_type and import_id = imports.id) AS has_warnings
 FROM import.imports
 WHERE
@@ -155,6 +157,12 @@
                  WHERE kind = 'warn'::log_type and import_id = imports.id)`)
 	}
 
+	switch errors := strings.ToLower(req.FormValue("errors")); errors {
+	case "1", "t", "true":
+		cond(` EXISTS(SELECT 1 FROM import.import_logs
+                 WHERE kind = 'error'::log_type and import_id = imports.id)`)
+	}
+
 	fl := &filledStmt{}
 	fa := &filledStmt{}
 	fb := &filledStmt{}
@@ -273,6 +281,7 @@
 			&it.User,
 			&signer,
 			&it.Summary,
+			&it.Errors,
 			&it.Warnings,
 		); err != nil {
 			return
--- a/pkg/models/import.go	Wed Aug 14 14:56:35 2019 +0200
+++ b/pkg/models/import.go	Wed Aug 14 16:55:46 2019 +0200
@@ -32,6 +32,7 @@
 		User     string     `json:"user"`
 		Signer   string     `json:"signer,omitempty"`
 		Summary  bool       `json:"summary,omitempty"`
+		Errors   bool       `json:"errors,omitempty"`
 		Warnings bool       `json:"warnings,omitempty"`
 	}