summaryrefslogtreecommitdiff
path: root/rt/etc/upgrade/4.1.17/content
diff options
context:
space:
mode:
Diffstat (limited to 'rt/etc/upgrade/4.1.17/content')
-rw-r--r--rt/etc/upgrade/4.1.17/content26
1 files changed, 26 insertions, 0 deletions
diff --git a/rt/etc/upgrade/4.1.17/content b/rt/etc/upgrade/4.1.17/content
new file mode 100644
index 0000000..2e6a78c
--- /dev/null
+++ b/rt/etc/upgrade/4.1.17/content
@@ -0,0 +1,26 @@
+use strict;
+use warnings;
+
+our @Initial = (sub {
+ my $searches = RT::Attributes->new(RT->SystemUser);
+ $searches->Limit( FIELD => 'Name', VALUE => 'SavedSearch' );
+ $searches->OrderBy( FIELD => 'id' );
+
+ while (my $search = $searches->Next) {
+ my $content = $search->Content;
+ next unless ref $content eq 'HASH';
+ next unless ($content->{SearchType} || '') eq 'Chart';
+
+ # Switch from PrimaryGroupBy to GroupBy name
+ # Switch from "CreatedMonthly" to "Created.Monthly"
+ $content->{GroupBy} ||= [delete $content->{PrimaryGroupBy}];
+ for (@{$content->{GroupBy}}) {
+ next if !defined || /\./;
+ s/(?<=[a-z])(?=[A-Z])/./;
+ }
+
+ my ($ok, $msg) = $search->SetContent($content);
+ RT->Logger->error("Unable to upgrade saved chart #@{[$search->id]}: $msg")
+ unless $ok;
+ }
+});