Browse Source

Récupération des playlists picked

Sevajol Bastien 11 years ago
parent
commit
eb99a500ab

+ 10 - 0
src/Muzich/CoreBundle/DataFixtures/ORM/LoadUsersElementsFavoritesData.php View File

58
     // favoris de bux
58
     // favoris de bux
59
     $bux = $this->entity_manager->merge($this->getReference('user_bux'));
59
     $bux = $this->entity_manager->merge($this->getReference('user_bux'));
60
     $paul = $this->entity_manager->merge($this->getReference('user_paul'));
60
     $paul = $this->entity_manager->merge($this->getReference('user_paul'));
61
+    $bob = $this->entity_manager->merge($this->getReference('user_bob'));
61
     
62
     
62
     $youtube_heretik_1 = $this->getReference('element_youtube_heretik_1');
63
     $youtube_heretik_1 = $this->getReference('element_youtube_heretik_1');
63
     $youtube_djfab_1 = $this->getReference('element_youtube_djfab_1');
64
     $youtube_djfab_1 = $this->getReference('element_youtube_djfab_1');
114
     $playlist2 = $this->createPlaylist("Ma playlist perso",
115
     $playlist2 = $this->createPlaylist("Ma playlist perso",
115
     $bux, false, array($youtube_heretik_1, $youtube_djfab_1));
116
     $bux, false, array($youtube_heretik_1, $youtube_djfab_1));
116
     
117
     
118
+    $playlist_bob = $this->createPlaylist("A travers l'espace",
119
+    $bob, true, array(
120
+      $this->getReference('element_infected_psycho'),
121
+      $this->getReference('element_infected_muse'),
122
+      $this->getReference('element_joelle_1'),
123
+      $this->getReference('element_joelle_2')
124
+    ));
125
+    
117
     $playlist_manager = new PlaylistManager($this->entity_manager);
126
     $playlist_manager = new PlaylistManager($this->entity_manager);
118
     $playlist_manager->addPickedPlaylistToUser($paul, $playlist1);
127
     $playlist_manager->addPickedPlaylistToUser($paul, $playlist1);
128
+    $playlist_manager->addPickedPlaylistToUser($bux, $playlist_bob);
119
     
129
     
120
     $this->entity_manager->flush();
130
     $this->entity_manager->flush();
121
   }
131
   }

+ 1 - 1
src/Muzich/CoreBundle/Entity/Playlist.php View File

57
   protected $public = false;
57
   protected $public = false;
58
   
58
   
59
   /**
59
   /**
60
-   * @ORM\OneToMany(targetEntity="UserPlaylistPicked", mappedBy="user")
60
+   * @ORM\OneToMany(targetEntity="UserPlaylistPicked", mappedBy="playlist")
61
    */
61
    */
62
   protected $user_playlists_pickeds;
62
   protected $user_playlists_pickeds;
63
   
63
   

+ 1 - 1
src/Muzich/CoreBundle/Entity/UserPlaylistPicked.php View File

26
   
26
   
27
   /**
27
   /**
28
    * @ORM\ManyToOne(targetEntity="Playlist", inversedBy="users_favorites")
28
    * @ORM\ManyToOne(targetEntity="Playlist", inversedBy="users_favorites")
29
-   * @ORM\JoinColumn(name="tag_id", referencedColumnName="id", onDelete="CASCADE")
29
+   * @ORM\JoinColumn(name="playlist_id", referencedColumnName="id", onDelete="CASCADE")
30
    */
30
    */
31
   protected $playlist;
31
   protected $playlist;
32
   
32
   

+ 8 - 0
src/Muzich/CoreBundle/Managers/PlaylistManager.php View File

29
     ;
29
     ;
30
   }
30
   }
31
   
31
   
32
+  public function getUserPublicsOrOwnedOrPickedPlaylists(User $user_viewed, User $user = null)
33
+  {
34
+    return $this->entity_manager->getRepository('MuzichCoreBundle:Playlist')
35
+      ->getUserPublicPlaylistsOrOwnedOrPickedQueryBuilder($user_viewed, $user)
36
+      ->getQuery()->getResult()
37
+    ;
38
+  }
39
+  
32
   public function getOwnedsPlaylists(User $user)
40
   public function getOwnedsPlaylists(User $user)
33
   {
41
   {
34
     return $this->getUserPublicsOrOwnedPlaylists($user, $user);
42
     return $this->getUserPublicsOrOwnedPlaylists($user, $user);

+ 15 - 1
src/Muzich/CoreBundle/Repository/PlaylistRepository.php View File

45
     }
45
     }
46
     
46
     
47
     return $this->getPlaylistsQueryBuilder()
47
     return $this->getPlaylistsQueryBuilder()
48
-      ->where('p.owner = :owner_id')
48
+      ->where('p.owner = :owner_id OR pickers.user = :picker_id')
49
       ->setParameter('owner_id', $current_user->getId())
49
       ->setParameter('owner_id', $current_user->getId())
50
     ;
50
     ;
51
   }
51
   }
52
   
52
   
53
+  public function getUserPublicPlaylistsOrOwnedOrPickedQueryBuilder(User $viewed_user, User $current_user = null)
54
+  {
55
+    if (!$current_user)
56
+    {
57
+      return $this->getUserPublicPlaylistsOrOwnedQueryBuilder($viewed_user, $current_user);
58
+    }
59
+    
60
+    return $this->getUserPublicPlaylistsOrOwnedQueryBuilder($viewed_user, $current_user)
61
+      ->leftJoin('p.user_playlists_pickeds', 'pickers')
62
+      ->orWhere('pickers.user = :picker_id')
63
+      ->setParameter('picker_id', $current_user->getId())
64
+    ;
65
+  }
66
+  
53
   public function findOnePlaylistOwned($playlist_id, User $user)
67
   public function findOnePlaylistOwned($playlist_id, User $user)
54
   {
68
   {
55
     return $this->getPlaylistsQueryBuilder()
69
     return $this->getPlaylistsQueryBuilder()

+ 3 - 3
src/Muzich/PlaylistBundle/Controller/ShowController.php View File

18
     
18
     
19
     return $this->render('MuzichPlaylistBundle:Show:user.html.twig', array(
19
     return $this->render('MuzichPlaylistBundle:Show:user.html.twig', array(
20
       'viewed_user' => $viewed_user,
20
       'viewed_user' => $viewed_user,
21
-      'playlists'   => $this->getPlaylistManager()->getUserPublicsOrOwnedPlaylists($viewed_user, $this->getUser(true))
21
+      'playlists'   => $this->getPlaylistManager()->getUserPublicsOrOwnedorPickedPlaylists($viewed_user, $this->getUserOrNullIfVisitor())
22
     ));
22
     ));
23
   }
23
   }
24
   
24
   
25
   public function showAction($user_slug, $playlist_id)
25
   public function showAction($user_slug, $playlist_id)
26
   {
26
   {
27
-    if (!($playlist = $this->getPlaylistManager()->findOneAccessiblePlaylistWithId($playlist_id, $this->getUser(true))))
27
+    if (!($playlist = $this->getPlaylistManager()->findOneAccessiblePlaylistWithId($playlist_id, $this->getUserOrNullIfVisitor())))
28
       throw $this->createNotFoundException();
28
       throw $this->createNotFoundException();
29
     
29
     
30
     return $this->render('MuzichPlaylistBundle:Show:show.html.twig', array(
30
     return $this->render('MuzichPlaylistBundle:Show:show.html.twig', array(
36
   {
36
   {
37
     $playlist_manager = $this->getPlaylistManager();
37
     $playlist_manager = $this->getPlaylistManager();
38
     
38
     
39
-    if (!($playlist = $playlist_manager->findOneAccessiblePlaylistWithId($playlist_id, $this->getUser(true))))
39
+    if (!($playlist = $playlist_manager->findOneAccessiblePlaylistWithId($playlist_id, $this->getUserOrNullIfVisitor())))
40
       throw $this->createNotFoundException();
40
       throw $this->createNotFoundException();
41
     
41
     
42
     $autoplaym = new AutoplayManager($playlist_manager->getPlaylistElements($playlist, $offset), $this->container);
42
     $autoplaym = new AutoplayManager($playlist_manager->getPlaylistElements($playlist, $offset), $this->container);