View | Details | Raw Unified | Return to bug 33268
Collapse All | Expand All

(-)a/installer/data/mysql/atomicupdate/bug_33268-add_rules_to_preserve_current_overlay_rules_behaviour.pl (-1 / +30 lines)
Line 0 Link Here
0
- 
1
use Modern::Perl;
2
3
return {
4
    bug_number  => "33268",
5
    description => "Add rules to preserve current marc record overlay rules behavior",
6
    up          => sub {
7
        my ($args) = @_;
8
        my ( $dbh, $out ) = @$args{qw(dbh out)};
9
10
        # Insert filter wildcard rules equivalent to the default
11
        # fallback rule (overwrite) if wildcard rules exists for a module
12
        # and other filter wildcard rule not already defined
13
        my @modules = $dbh->selectall_array( q{SELECT DISTINCT `module` FROM `marc_overlay_rules` WHERE `filter` = "*"} );
14
        for my $module ( map { $_->[0] } @modules ) {
15
            my @filters = $dbh->selectall_array(
16
                q{SELECT DISTINCT `filter` FROM `marc_overlay_rules` WHERE `module` = ? AND `filter` <> "*"},
17
                undef,
18
                $module
19
            );
20
            for my $filter ( map { $_->[0] } @filters ) {
21
                $dbh->do(
22
                    q{INSERT INTO `marc_overlay_rules`(`tag`, `module`, `filter`, `add`, `append`, `remove`, `delete`) VALUES(?, ?, ?, ?, ?, ?, ?)},
23
                    undef,
24
                    '*', $module, $filter, 1, 1, 1, 1
25
                );
26
            }
27
        }
28
        say $out "Added record overlay rules to preserve current behavior";
29
    },
30
};

Return to bug 33268