Show skill info in skill wheel - refs BT#9583 #7385

1.10.x
Angel Fernando Quiroz Campos 11 years ago
parent a38d1a0250
commit 95a3079fdf
  1. 30
      main/inc/ajax/skill.ajax.php
  2. 26
      main/inc/lib/skill.lib.php
  3. 15
      main/template/default/skill/skill_info.tpl
  4. 2
      main/template/default/skill/skill_wheel_student.tpl

@ -119,27 +119,19 @@ switch ($action) {
$id = isset($_REQUEST['id']) ? $_REQUEST['id'] : null;
$skill_info = $skill->get_skill_info($id);
$courses = $skill->get_courses_by_skill($id);
$sessions = $skill->getSessionsBySkill($id);
$html = '';
if (!empty($courses)) {
$html = sprintf(
get_lang('ToGetToLearnXYouWillNeedToTakeOneOfTheFollowingCourses'),
'<i>'.$skill_info['name'].'</i>'
).'<br />';
foreach ($courses as $course) {
$url = '#';
$attributes = array('class' => 'course_description_popup', 'rel' => $course['code']);
$html .=
Display::url(
sprintf(
get_lang('SkillXWithCourseX'),
$skill_info['name'],
$course['title']
),
$url,
$attributes
).'<br />';
}
if (!empty($courses) || !empty($sessions)) {
Display::display_no_header();
Display::$global_template->assign('skill', $skill_info);
Display::$global_template->assign('courses', $courses);
Display::$global_template->assign('sessions', $sessions);
$html = Display::$global_template->fetch('default/skill/skill_info.tpl');
}
echo $html;
break;
case 'get_skills_tree_json':

@ -531,6 +531,7 @@ class Skill extends Model
$this->table_course = Database::get_main_table(TABLE_MAIN_COURSE);
$this->table_skill_rel_skill = Database::get_main_table(TABLE_MAIN_SKILL_REL_SKILL);
$this->table_gradebook = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$this->sessionTable = Database::get_main_table(TABLE_MAIN_SESSION);
}
/**
@ -1201,7 +1202,8 @@ class Skill extends Model
ON g.id = sg.gradebook_id
INNER JOIN {$this->table_course} c
ON c.code = g.course_code
WHERE sg.skill_id = $skill_id";
WHERE sg.skill_id = $skill_id
AND (g.session_id IS NULL OR g.session_id = 0)";
$result = Database::query($sql);
return Database::store_result($result, 'ASSOC');
@ -1371,4 +1373,26 @@ class Skill extends Model
return $list;
}
/**
* Get the session list where the user can achieve a skill
* @param int $skillId The skill id
* @return array
*/
public function getSessionsBySkill($skillId)
{
$skillId = intval($skillId);
$sql = "SELECT s.id, s.name
FROM {$this->table_gradebook} g
INNER JOIN {$this->table_skill_rel_gradebook} sg ON g.id = sg.gradebook_id
INNER JOIN {$this->sessionTable} s ON g.session_id = s.id
WHERE sg.skill_id = $skillId
AND g.session_id > 0";
$result = Database::query($sql);
return Database::store_result($result, 'ASSOC');
}
}

@ -0,0 +1,15 @@
<p>{{ "ToGetToLearnXYouWillNeedToTakeOneOfTheFollowingCourses" | get_lang | format( "<em>" ~ skill.name ~ "</em>") }}</p>
<ul>
{% for course in courses %}
<li>
<a href="#" class="course_description_popup" rel="{{ course.code }}">{{ "SkillXWithCourseX" | get_lang | format(skill.name, course.title) }}</a>
</li>
{% endfor %}
{% for session in sessions %}
<li>
{{ "SkillXWithCourseX" | get_lang | format(skill.name, session.name) }}
</li>
{% endfor %}
</ul>

@ -92,7 +92,7 @@ $(document).ready(function() {
});
/* When clicking in a course title */
$("#skill_info").on("click", "a.course_description_popup", function(e) {
$("#skill_info").on("click", "a.course_description_popup[rel]", function(e) {
e.preventDefault();
var getCourseInfo = $.ajax(

Loading…
Cancel
Save