From ed7db137bf702ab56fcea70af614aa87059247c7 Mon Sep 17 00:00:00 2001 From: Llewellyn Marshall Date: Thu, 25 May 2023 14:16:08 -0400 Subject: [PATCH] add string aggregate transform to reporter module --- Open-ILS/src/perlmods/lib/OpenILS/Reporter/SQLBuilder.pm | 9 +++++++++ Open-ILS/web/js/dojo/openils/reports/nls/reports.js | 2 ++ Open-ILS/web/js/ui/default/staff/reporter/services/template.js | 7 ++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Reporter/SQLBuilder.pm b/Open-ILS/src/perlmods/lib/OpenILS/Reporter/SQLBuilder.pm index f80557568c..a559276bb7 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Reporter/SQLBuilder.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Reporter/SQLBuilder.pm @@ -888,6 +888,15 @@ sub toSQL { sub is_aggregate { return 1 } +#------------------------------------------------------------------------------------------------- +package OpenILS::Reporter::SQLBuilder::Column::Transform::string_agg; + +sub toSQL { + my $self = shift; + return 'STRING_AGG("' . $self->{_relation} . '"."' . $self->name . '"::text,\',\')'; +} + +sub is_aggregate { return 1 } #------------------------------------------------------------------------------------------------- package OpenILS::Reporter::SQLBuilder::Column::Where; diff --git a/Open-ILS/web/js/dojo/openils/reports/nls/reports.js b/Open-ILS/web/js/dojo/openils/reports/nls/reports.js index 17de210e90..efd86cb981 100644 --- a/Open-ILS/web/js/dojo/openils/reports/nls/reports.js +++ b/Open-ILS/web/js/dojo/openils/reports/nls/reports.js @@ -77,6 +77,7 @@ "TFORMS_LABEL_MONTHS_AGO": "Months ago", "TFORMS_LABEL_QUARTERS_AGO": "Quarters ago", "TFORMS_LABEL_SUM": "Sum", + "TFORMS_LABEL_STRING_AGG": "String Aggregate", "TFORMS_LABEL_AVERAGE": "Average", "TFORMS_LABEL_ROUND": "Round", "TFORMS_LABEL_INT": "Drop trailing decimals", @@ -166,6 +167,7 @@ "TRANSFORMS_MONTHS_AGO": "Months ago", "TRANSFORMS_QUARTERS_AGO": "Quarters ago", "TRANSFORMS_SUM": "Sum", + "TRANSFORMS_STRING_AGG": "String Aggregate", "TRANSFORMS_AVERAGE": "Average", "TRANSFORMS_ROUND": "Round", "TRANSFORMS_INT": "Drop trailing decimals" diff --git a/Open-ILS/web/js/ui/default/staff/reporter/services/template.js b/Open-ILS/web/js/ui/default/staff/reporter/services/template.js index 39086549ec..4c6cfa3838 100644 --- a/Open-ILS/web/js/ui/default/staff/reporter/services/template.js +++ b/Open-ILS/web/js/ui/default/staff/reporter/services/template.js @@ -162,7 +162,12 @@ function($uibModal , $q , egCore , egConfirmDialog , egAlertDialog) { aggregate : true, label : egCore.strings.TRANSFORMS_MAX }, - + + string_agg : { + datatype : [ OILS_RPT_DTYPE_NOT_BOOL ], + label : egCore.strings.TRANSFORMS_STRING_AGG, + aggregate : true + }, /* string transforms ------------------------- */ substring : { -- 2.11.0