diff --git a/main/inc/lib/CoursesAndSessionsCatalog.class.php b/main/inc/lib/CoursesAndSessionsCatalog.class.php index a2364772a0..401c654582 100644 --- a/main/inc/lib/CoursesAndSessionsCatalog.class.php +++ b/main/inc/lib/CoursesAndSessionsCatalog.class.php @@ -1154,13 +1154,65 @@ class CoursesAndSessionsCatalog $action = 'subscribe_course_validation'; } - return Display::url( - Display::returnFontAwesomeIcon('check').PHP_EOL.$title, - api_get_path(WEB_CODE_PATH).'auth/courses.php' + $em = Database::getManager(); + /** @var SequenceResourceRepository $sequenceResourceRepo */ + $sequenceResourceRepo = $em->getRepository('ChamiloCoreBundle:SequenceResource'); + $requirements = $sequenceResourceRepo->getRequirements( + $course['real_id'], + SequenceResource::COURSE_TYPE + ); + $hasRequirements = false; + foreach ($requirements as $sequence) { + if (!empty($sequence['requirements'])) { + $hasRequirements = true; + break; + } + } + $allowSubscribe = true; + $reqSubscribeBlock = ''; + $btnSubscribe = ''; + if ($hasRequirements) { + $sequenceList = $sequenceResourceRepo->checkRequirementsForUser($requirements, SequenceResource::COURSE_TYPE, api_get_user_id()); + $allowSubscribe = $sequenceResourceRepo->checkSequenceAreCompleted($sequenceList); + $btnReqSubscribe = CoursesAndSessionsCatalog::getRequirements( + $course['real_id'], + SequenceResource::COURSE_TYPE, + true, + true + ); + $reqSubscribeBlock = '
'.$btnReqSubscribe.'
'; + $seq = ''; + foreach ($requirements as $sequence) { + if (!empty($sequence['requirements'])) { + $seq .= $sequence['name'].':'; + foreach ($sequence['requirements'] as $req) { + $seq .= ''.$req->getTitle().''; + } + } + } + $reqSubscribeBlock .= ''.$seq.'
'; + $reqSubscribeBlock .= '