From 9f613dbb88f1ae8ec4660dcaa0751c5cc2c7dffa Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 27 Mar 2017 13:07:26 -0300 Subject: [PATCH] Bug 18339: Remove ->opac_editable ->opac_display from Koha::Patron::Attribute Trying to simplify the implementation of 13757, I replaced some legacy code in favour of a Koha::Object-based implementation for the OPAC controller scripts. On doing so I went too far with this methods, as what was needed was a way to retrieve the type of the attribute and ask it about such properties. This patch removes those methods, its tests, and replaces its uses in the codebase like this: $attribute->opac_editable for $attribute->type->opac_editable To test: - Run $ prove t/db_dependent/Koha/Patron/Attributes.t => SUCCESS: Tests still pass - Try changing the opac_editable and opac_display properties and play in the OPAC with those attributes. Verify that everything works as expected. - Sign off :-D --- Koha/Patron/Attribute.pm | 28 ------------ opac/opac-memberentry.pl | 6 +-- t/db_dependent/Koha/Patron/Attributes.t | 80 +-------------------------------- 3 files changed, 4 insertions(+), 110 deletions(-) diff --git a/Koha/Patron/Attribute.pm b/Koha/Patron/Attribute.pm index 52eb9c1..d75712d 100644 --- a/Koha/Patron/Attribute.pm +++ b/Koha/Patron/Attribute.pm @@ -51,34 +51,6 @@ sub store { return $self->SUPER::store(); } -=head3 opac_display - - my $attribute = Koha::Patron::Attribute->new({ code => 'a_code', ... }); - if ( $attribute->opac_display ) { ... } - -=cut - -sub opac_display { - - my $self = shift; - - return Koha::Patron::Attribute::Types->find( $self->code )->opac_display; -} - -=head3 opac_editable - - my $attribute = Koha::Patron::Attribute->new({ code => 'a_code', ... }); - if ( $attribute->is_opac_editable ) { ... } - -=cut - -sub opac_editable { - - my $self = shift; - - return Koha::Patron::Attribute::Types->find( $self->code )->opac_editable; -} - =head3 type my $attribute_type = $attribute->type; diff --git a/opac/opac-memberentry.pl b/opac/opac-memberentry.pl index d62d89c..9f2a607 100755 --- a/opac/opac-memberentry.pl +++ b/opac/opac-memberentry.pl @@ -541,7 +541,7 @@ sub GeneratePatronAttributesForm { return []; } - my @displayable_attributes = grep { $_->opac_display } + my @displayable_attributes = grep { $_->type->opac_display } Koha::Patron::Attributes->search({ borrowernumber => $borrowernumber })->as_list; my %attr_values = (); @@ -554,14 +554,14 @@ sub GeneratePatronAttributesForm { } } elsif ( defined $borrowernumber ) { - my @editable_attributes = grep { $_->opac_editable } @displayable_attributes; + my @editable_attributes = grep { $_->type->opac_editable } @displayable_attributes; foreach my $attr (@editable_attributes) { push @{ $attr_values{ $attr->code } }, $attr->attribute; } } # Add the non-editable attributes (that don't come from the form) - foreach my $attr ( grep { !$_->opac_editable } @displayable_attributes ) { + foreach my $attr ( grep { !$_->type->opac_editable } @displayable_attributes ) { push @{ $attr_values{ $attr->code } }, $attr->attribute; } diff --git a/t/db_dependent/Koha/Patron/Attributes.t b/t/db_dependent/Koha/Patron/Attributes.t index cbb02b9..ff3b659 100644 --- a/t/db_dependent/Koha/Patron/Attributes.t +++ b/t/db_dependent/Koha/Patron/Attributes.t @@ -19,7 +19,7 @@ use Modern::Perl; -use Test::More tests => 5; +use Test::More tests => 3; use t::lib::TestBuilder; use Test::Exception; @@ -157,84 +157,6 @@ subtest 'store() unique_id attributes tests' => sub { $schema->storage->txn_rollback; }; -subtest 'opac_display() tests' => sub { - - plan tests => 2; - - $schema->storage->txn_begin; - - my $patron - = $builder->build( { source => 'Borrower' } )->{borrowernumber}; - my $attribute_type_1 = $builder->build( - { source => 'BorrowerAttributeType', - value => { opac_display => 1 } - } - ); - - my $attribute_1 = Koha::Patron::Attribute->new( - { borrowernumber => $patron, - code => $attribute_type_1->{code}, - attribute => $patron - } - ); - is( $attribute_1->opac_display, 1, '->opac_display returns 1' ); - - my $attribute_type_2 = $builder->build( - { source => 'BorrowerAttributeType', - value => { opac_display => 0 } - } - ); - - my $attribute_2 = Koha::Patron::Attribute->new( - { borrowernumber => $patron, - code => $attribute_type_2->{code}, - attribute => $patron - } - ); - is( $attribute_2->opac_display, 0, '->opac_display returns 0' ); - - $schema->storage->txn_rollback; -}; - -subtest 'opac_editable() tests' => sub { - - plan tests => 2; - - $schema->storage->txn_begin; - - my $patron - = $builder->build( { source => 'Borrower' } )->{borrowernumber}; - my $attribute_type_1 = $builder->build( - { source => 'BorrowerAttributeType', - value => { opac_editable => 1 } - } - ); - - my $attribute_1 = Koha::Patron::Attribute->new( - { borrowernumber => $patron, - code => $attribute_type_1->{code}, - attribute => $patron - } - ); - is( $attribute_1->opac_editable, 1, '->opac_editable returns 1' ); - - my $attribute_type_2 = $builder->build( - { source => 'BorrowerAttributeType', - value => { opac_editable => 0 } - } - ); - - my $attribute_2 = Koha::Patron::Attribute->new( - { borrowernumber => $patron, - code => $attribute_type_2->{code}, - attribute => $patron - } - ); - is( $attribute_2->opac_editable, 0, '->opac_editable returns 0' ); - - $schema->storage->txn_rollback; -}; - subtest 'type() tests' => sub { plan tests => 4; -- 2.7.4