Added Delete session with SequenceResource Linked validation

pull/2487/head
José Loguercio 9 years ago
parent d7cd367491
commit b94dc534af
  1. 16
      main/inc/lib/sessionmanager.lib.php
  2. 7
      main/session/session_list.php
  3. 7
      src/Chamilo/CoreBundle/Entity/Repository/SequenceRepository.php

@ -1549,6 +1549,18 @@ class SessionManager
$userId = api_get_user_id();
/** @var \Chamilo\CoreBundle\Entity\Repository\SequenceRepository $repo */
$repo = Database::getManager()->getRepository('ChamiloCoreBundle:SequenceResource');
$sequenceResourse = $repo->findRequirementForResource(
$id_checked,
\Chamilo\CoreBundle\Entity\SequenceResource::SESSION_TYPE
);
if ($sequenceResourse) {
Display::addFlash(Display::return_message(get_lang('ThereIsASequenceResourceLinkedToThisSessionYouNeedToDeleteItFirst'), 'error'));
return false;
}
if (is_array($id_checked)) {
foreach ($id_checked as $sessionId) {
self::delete($sessionId);
@ -1612,8 +1624,6 @@ class SessionManager
$extraFieldValue = new ExtraFieldValue('session');
$extraFieldValue->deleteValuesByItem($id_checked);
/** @var \Chamilo\CoreBundle\Entity\Repository\SequenceRepository $repo */
$repo = Database::getManager()->getRepository('ChamiloCoreBundle:SequenceResource');
$repo->deleteResource(
$id_checked,
\Chamilo\CoreBundle\Entity\SequenceResource::SESSION_TYPE
@ -1627,6 +1637,8 @@ class SessionManager
api_get_utc_datetime(),
$userId
);
return true;
}
/**

@ -19,8 +19,11 @@ $idChecked = isset($_REQUEST['idChecked']) ? $_REQUEST['idChecked'] : null;
$list_type = isset($_REQUEST['list_type']) ? $_REQUEST['list_type'] : 'simple';
if ($action == 'delete') {
SessionManager::delete($idChecked);
Display::addFlash(Display::return_message(get_lang('Deleted')));
$response = SessionManager::delete($idChecked);
if ($response) {
Display::addFlash(Display::return_message(get_lang('Deleted')));
}
header('Location: session_list.php');
exit();
} elseif ($action == 'copy') {

@ -75,6 +75,7 @@ class SequenceRepository extends EntityRepository
*
* @param int $resourceId
* @param int $type
* @return boolean
*/
public function deleteResource($resourceId, $type)
{
@ -82,7 +83,7 @@ class SequenceRepository extends EntityRepository
if ($sequence && $sequence->hasGraph()) {
$em = $this->getEntityManager();
$graph = $sequence->getUnSerializeGraph();
$graph = $sequence->getSequence()->getUnSerializeGraph();
$mainVertex = $graph->getVertex($resourceId);
$vertices = $graph->getVertices();
@ -92,10 +93,10 @@ class SequenceRepository extends EntityRepository
$subResourceId = $vertex->getId();
$subSequence = $this->findRequirementForResource($subResourceId, $type);
if ($sequence && $subSequence->hasGraph()) {
$graph = $subSequence->getUnSerializeGraph();
$graph = $subSequence->getSequence()->getUnSerializeGraph();
$subMainVertex = $graph->getVertex($resourceId);
$subMainVertex->destroy();
$subSequence->setGraphAndSerialize($graph);
$subSequence->getSequence()->setGraphAndSerialize($graph);
$em->persist($subSequence);
}
}

Loading…
Cancel
Save