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

(-)a/Koha/Patron/Consent.pm (+44 lines)
Line 0 Link Here
1
package Koha::Patron::Consent;
2
3
# Copyright 2018 Rijksmuseum
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 3 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use Modern::Perl;
21
22
use base qw(Koha::Object);
23
24
=head1 NAME
25
26
Koha::Patron::Consent
27
28
=head1 DESCRIPTION
29
30
Koha::Object class for handling patron consents
31
32
=head1 API
33
34
=head2 Class Methods
35
36
=head3 _type
37
38
=cut
39
40
sub _type {
41
    return 'PatronConsent';
42
}
43
44
1;
(-)a/Koha/Patron/Consents.pm (+55 lines)
Line 0 Link Here
1
package Koha::Patron::Consents;
2
3
# Copyright 2018 Rijksmuseum
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 3 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use Modern::Perl;
21
22
use base qw(Koha::Objects);
23
use Koha::Patron::Consent;
24
25
=head1 NAME
26
27
Koha::Patron::Consents
28
29
=head1 DESCRIPTION
30
31
Koha::Objects class for handling patron consents
32
33
=head1 API
34
35
=head2 Class Methods
36
37
=cut
38
39
=head3 _type
40
41
=cut
42
43
sub _type {
44
    return 'PatronConsent';
45
}
46
47
=head3 object_class
48
49
=cut
50
51
sub object_class {
52
    return 'Koha::Patron::Consent';
53
}
54
55
1;
(-)a/t/db_dependent/Koha/Patron/Consents.t (-1 / +48 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
3
# Copyright 2018 Rijksmuseum
4
#
5
# This file is part of Koha
6
#
7
# Koha is free software; you can redistribute it and/or modify it
8
# under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 3 of the License, or
10
# (at your option) any later version.
11
#
12
# Koha is distributed in the hope that it will be useful, but
13
# WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
# GNU General Public License for more details.
16
#
17
# You should have received a copy of the GNU General Public License
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
20
use Modern::Perl;
21
22
use Test::More tests => 1;
23
24
use t::lib::TestBuilder;
25
26
use Koha::Database;
27
use Koha::DateUtils qw/dt_from_string/;
28
use Koha::Patron::Consents;
29
30
our $builder = t::lib::TestBuilder->new;
31
our $schema = Koha::Database->new->schema;
32
33
subtest 'Basic tests for Koha::Patron::Consent' => sub {
34
    plan tests => 2;
35
    $schema->storage->txn_begin;
36
37
    my $patron1 = $builder->build_object({ class => 'Koha::Patrons' });
38
    my $consent1 = Koha::Patron::Consent->new({
39
        borrowernumber => $patron1->borrowernumber,
40
        type => 'GDPR_PROCESSING',
41
        given_on => dt_from_string,
42
    })->store;
43
    is( Koha::Patron::Consents->search({ borrowernumber => $patron1->borrowernumber })->count, 1, 'One consent for new borrower' );
44
    $consent1->delete;
45
    is( Koha::Patron::Consents->search({ borrowernumber => $patron1->borrowernumber })->count, 0, 'No consents left for new borrower' );
46
47
    $schema->storage->txn_rollback;
48
};

Return to bug 20819