Minor - refactor code, move function using query builder to a repo.

pull/2495/head
jmontoyaa 8 years ago
parent eea076320c
commit 1eb8e256dd
  1. 9
      main/admin/add_drh_to_user.php
  2. 20
      main/admin/user_information.php
  3. 31
      src/Chamilo/UserBundle/Entity/Repository/UserRepository.php
  4. 29
      src/Chamilo/UserBundle/Entity/User.php

@ -15,7 +15,7 @@ if (!isset($_REQUEST['u'])) {
}
$em = Database::getManager();
$relationsRepo = $em->getRepository('ChamiloCoreBundle:UserRelUser');
$userRepository = $em->getRepository('ChamiloUserBundle:User');
/** @var UserEntity $user */
$user = UserManager::getManager()->find($_REQUEST['u']);
@ -23,10 +23,12 @@ if (!$user) {
api_not_allowed(true);
}
$subscribedUsers = $user->getHrm();
$subscribedUsers = $userRepository->getAssignedHrmUserList(
$user->getId(),
api_get_current_access_url_id()
);
$hrmOptions = [];
/** @var UserRelUser $subscribedUser */
foreach ($subscribedUsers as $subscribedUser) {
/** @var UserEntity $hrm */
@ -58,7 +60,6 @@ if ($form->validate()) {
foreach ($subscribedUsers as $subscribedUser) {
$em->remove($subscribedUser);
}
$em->flush();
$values = $form->exportValues();

@ -620,7 +620,13 @@ if ($studentBossList) {
echo $studentBossListToString;
}
$hrmList = $userEntity->getHrm();
$em = Database::getManager();
$userRepository = $em->getRepository('ChamiloUserBundle:User');
$hrmList = $userRepository->getAssignedHrmUserList(
$userEntity->getId(),
api_get_current_access_url_id()
);
if ($hrmList) {
echo Display::page_subheader(get_lang('HrmList'));
@ -629,21 +635,20 @@ if ($hrmList) {
/** @var UserRelUser $hrm */
foreach ($hrmList as $hrm) {
$hrmInfo = api_get_user_info($hrm->getFriendUserId());
$userPicture = isset($hrmInfo["avatar_medium"]) ? $hrmInfo["avatar_medium"] : $hrmInfo["avatar"];
$userPicture = isset($hrmInfo['avatar_medium']) ? $hrmInfo['avatar_medium'] : $hrmInfo['avatar'];
echo '<div class="col-sm-4 col-md-3">';
echo '<div class="media">';
echo '<div class="media-left">';
echo Display::img($userPicture, $hrmInfo['complete_name'], ['class' => 'media-object'], false);
echo '</div>';
echo '<div class="media-body">';
echo '<h4 class="media-heading">'.$hrmInfo['complete_name'].'</h4>';
echo '<h4 class="media-heading">'.$hrmInfo['complete_name_with_message_link'].'</h4>';
echo $hrmInfo['username'];
echo '</div>';
echo '</div>';
echo '</div>';
}
echo '</div>';
}
@ -656,7 +661,7 @@ if ($user['status'] == DRH) {
foreach ($usersAssigned as $userAssigned) {
$userAssigned = api_get_user_info($userAssigned['user_id']);
$userPicture = isset($userAssigned["avatar_medium"]) ? $userAssigned["avatar_medium"] : $userAssigned["avatar"];
$userPicture = isset($userAssigned['avatar_medium']) ? $userAssigned['avatar_medium'] : $userAssigned['avatar'];
echo '<div class="col-sm-4 col-md-3">';
echo '<div class="media">';
@ -664,13 +669,12 @@ if ($user['status'] == DRH) {
echo Display::img($userPicture, $userAssigned['complete_name'], ['class' => 'media-object'], false);
echo '</div>';
echo '<div class="media-body">';
echo '<h4 class="media-heading">'.$userAssigned['complete_name'].'</h4>';
echo $userAssigned['username'];
echo '<h4 class="media-heading">'.$userAssigned['complete_name_with_message_link'].'</h4>';
echo $userAssigned['official_code'];
echo '</div>';
echo '</div>';
echo '</div>';
}
echo '</div>';
}
}

@ -320,4 +320,35 @@ class UserRepository extends EntityRepository
->setParameters(['search' => "%$search%"])
->getResult();
}
/**
* Get the list of HRM who have assigned this user.
*
* @param int $userId
* @param int $urlId
*
* @return array
*/
public function getAssignedHrmUserList($userId, $urlId)
{
$qb = $this->createQueryBuilder('user');
$hrmList = $qb
->select('uru')
->innerJoin('ChamiloCoreBundle:UserRelUser', 'uru', Join::WITH,'uru.userId = user.id')
->innerJoin('ChamiloCoreBundle:AccessUrlRelUser', 'auru', Join::WITH, 'auru.userId = uru.friendUserId')
->where(
$qb->expr()->eq('auru.accessUrlId', $urlId)
)
->andWhere(
$qb->expr()->eq('uru.userId', $userId)
)
->andWhere(
$qb->expr()->eq('uru.relationType', USER_RELATION_TYPE_RRHH)
)
->getQuery()
->getResult();
return $hrmList;
}
}

@ -2470,33 +2470,4 @@ class User implements UserInterface //implements ParticipantInterface, ThemeUser
{
return $this->sessionAsGeneralCoach;
}
/**
* Get the list of HRM who have assigned this user.
*
* @return array
*/
public function getHrm()
{
$em = \Database::getManager();
$qb = $em->createQueryBuilder();
$hrmList = $qb
->select('uru')
->from('ChamiloCoreBundle:UserRelUser', 'uru')
->innerJoin('ChamiloCoreBundle:AccessUrlRelUser', 'auru', Join::WITH, 'auru.userId = uru.friendUserId')
->where(
$qb->expr()->eq('auru.accessUrlId', api_get_current_access_url_id())
)
->andWhere(
$qb->expr()->eq('uru.userId', $this->id)
)
->andWhere(
$qb->expr()->eq('uru.relationType', USER_RELATION_TYPE_RRHH)
)
->getQuery()
->getResult();
return $hrmList;
}
}

Loading…
Cancel
Save