Pass user object to traditions as we have one already usually.
Jess Robinson [Mon, 21 May 2012 13:19:41 +0000 (13:19 +0000)]
lib/Text/Tradition/Directory.pm
stemmaweb/lib/stemmaweb/Controller/Root.pm
t/text_tradition_user.t

index 55b7986..29bf0f9 100644 (file)
@@ -278,13 +278,15 @@ sub user_traditionlist {
     my ($self, $user) = @_;
 
     my @tlist;
-    if($user && $user ne 'public') {
+    if(ref $user) {
         ## We have a user object already, so just fetch its traditions and use tose
-        foreach my $t (@{ $self->lookup($user)->traditions }) {
+        foreach my $t (@{ $user->traditions }) {
             push( @tlist, { 'id' => $self->object_to_id( $t ), 
                             'name' => $t->name } );
         }
         return @tlist;
+    } elsif($user ne 'public') {
+        die "Passed neither a user object nor 'public' to user_traditionlist";
     }
     
     ## Search for all traditions which allow public viewing
index a3505f5..b8238dc 100644 (file)
@@ -49,7 +49,7 @@ sub directory :Local :Args(0) {
        my( $self, $c ) = @_;
     my $m = $c->model('Directory');
     # TODO not used yet, will load user texts later
-    my $user = $c->user_exists ? $c->user->id : 'public';
+    my $user = $c->user_exists ? $c->user->get_object : 'public';
 #    my $user = $c->request->param( 'user' ) || 'ALL';
     my @textlist = $m->traditionlist($user);
     $c->stash->{texts} = \@textlist;
index 62520de..ac54b05 100644 (file)
@@ -92,11 +92,11 @@ ok($changed->check_password('passbloggs'), 'Modified & retrieved with correct ne
                                        password => 'testingtraditions' });
     $user->add_tradition($t);
     $user_store->update($user);
-#     $userstore->update($t);
 
     is( scalar @{$user->traditions}, 1, 'Added one tradition');
 
-    my @tlist = $user_store->traditionlist($user->kiokudb_object_id);
-    is($tlist[0]->name, $t->name, 'Traditionlist returns stored user->tradition');
+    my @tlist = $user_store->traditionlist($user);
+    is($tlist[0]->{name}, $t->name, 'Traditionlist returns same named user->tradition');
+    is($tlist[0]->{id}, $uuid, 'Traditionlist returns actual tradition with same uuid we put in earlier');
 }