Bug 25765: Add GetLoggedInBranchname method
authorFridolin Somers <fridolin.somers@biblibre.com>
Tue, 16 Jun 2020 11:59:29 +0000 (13:59 +0200)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 23 Jul 2020 09:17:27 +0000 (11:17 +0200)
Add GetLoggedInBranchname method to Branches templates plugin.

Also changes GetName method to use Koha::Library instead of direct SQL.

Test plan :
Run prove t/db_dependent/Template/Plugin/Branches.t

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Koha/Template/Plugin/Branches.pm
t/db_dependent/Template/Plugin/Branches.t

index e5c8bdc..51a2df9 100644 (file)
@@ -30,19 +30,21 @@ use Koha::Libraries;
 sub GetName {
     my ( $self, $branchcode ) = @_;
 
-    my $query = "SELECT branchname FROM branches WHERE branchcode = ?";
-    my $sth   = C4::Context->dbh->prepare($query);
-    $sth->execute($branchcode);
-    my $b = $sth->fetchrow_hashref();
-    return $b ? $b->{'branchname'} : q{};
+    my $l = Koha::Libraries->find($branchcode);
+    return $l ? $l->branchname : q{};
 }
 
 sub GetLoggedInBranchcode {
     my ($self) = @_;
 
-    return C4::Context->userenv ?
-        C4::Context->userenv->{'branch'} :
-        '';
+    return C4::Context::mybranch;
+}
+
+sub GetLoggedInBranchname {
+    my ($self) = @_;
+
+    my $code = $self->GetLoggedInBranchcode;
+    return $code ? $self->GetName($code) : q{};
 }
 
 sub GetURL {
index b75b376..17a41b7 100644 (file)
@@ -38,7 +38,7 @@ my $builder = t::lib::TestBuilder->new;
 
 subtest 'all() tests' => sub {
 
-    plan tests => 16;
+    plan tests => 18;
 
     $schema->storage->txn_begin;
 
@@ -46,6 +46,7 @@ subtest 'all() tests' => sub {
         source => 'Branch',
         value => {
             branchcode => 'MYLIBRARY',
+            branchname => 'My sweet library'
         }
     });
     my $another_library = $builder->build({
@@ -67,12 +68,12 @@ subtest 'all() tests' => sub {
     $name = $plugin->GetName(undef);
     is($name, '', 'received empty string as name of NULL/undefined library code');
 
-    $library = $plugin->GetLoggedInBranchcode();
-    is($library, '', 'no active library if there is no active user session');
+    is($plugin->GetLoggedInBranchcode(), '', 'no active library code if there is no active user session');
+    is($plugin->GetLoggedInBranchname(), '', 'no active library name if there is no active user session');
 
     t::lib::Mocks::mock_userenv({ branchcode => 'MYLIBRARY' });
-    $library = $plugin->GetLoggedInBranchcode();
-    is($library, 'MYLIBRARY', 'GetLoggedInBranchcode() returns active library');
+    is($plugin->GetLoggedInBranchcode(), 'MYLIBRARY', 'GetLoggedInBranchcode() returns active library code');
+    is($plugin->GetLoggedInBranchname(), 'My sweet library', 'GetLoggedInBranchname() returns active library name');
 
     t::lib::Mocks::mock_preference( 'IndependentBranches', 0 );
     my $libraries = $plugin->all();