Adding results page. (Work in progress) see BT#6397

skala
Julio Montoya 12 years ago
parent 569ea5ff29
commit b654167a3d
  1. 16
      main/template/minedu/tool/curriculum/category/results.tpl
  2. 111
      main/template/minedu/tool/curriculum/user/get_user_items.tpl
  3. 4
      main/template/minedu/tool/curriculum/user/list.tpl
  4. 1
      src/ChamiloLMS/Controller/Tool/Curriculum/CurriculumCategoryController.php
  5. 19
      src/ChamiloLMS/Controller/Tool/Curriculum/CurriculumUserController.php

@ -0,0 +1,16 @@
{% extends app.template_style ~ "/layout/layout_1_col.tpl" %}
{% block content %}
{{ 'Results' | trans }}
<hr />
<ul>
{% for user in users %}
<li>
{{ user.complete_name }} - {{ user.score }}
<a class="btn" href="{{ url('curriculum_user.controller:getUserItemsAction',
{ 'userId': user.user_id, 'course' : course.code, 'id_session' : course_session.id }) }}">
{{ 'Details' | trans }}
</a>
</li>
{% endfor %}
</ul>
{% endblock %}

@ -0,0 +1,111 @@
{% extends app.template_style ~ "/layout/layout_1_col.tpl" %}
{% macro widget_prototype(widget, remove_text) %}
{% if widget.get('prototype') %}
{% set form = widget.get('prototype') %}
{% set name = widget.get('prototype').get('description') %}
{% else %}
{% set form = widget %}
{% set name = widget.get('full_name') %}
{% endif %}
<div data-content="{{ name }}">
{{ form_widget(form) }}
</div>
{% endmacro %}
{% block content %}
<script>
$(function() {
});
</script>
<div class="row">
<div class="span10">
<h2>Trayectoria</h2>
<p>Resultados</p>
<div id="list" class="trajectory">
<table class="data_table">
<tr>
<th>
Rubro
</th>
<th>
Criterios
</th>
<th>
Puntaje
</th>
<th>
Numero máximo de evidencias por criterio
</th>
<th>
Puntaje máximo por rubro
</th>
</tr>
{% for subcategory in categories %}
{% if subcategory.lvl == 0 %}
{% elseif subcategory.lvl == 1 %}
<tr>
<td rowspan="{{ category_counter[subcategory.id] | length + 2 }}">
<h3> {{ subcategory.title }} </h3>
</td>
{% else %}
<td>
<h4>
{{ subcategory.title }}
{% if category_score[subcategory.id] %}
(Total <div class="label label-success">{{ category_score[subcategory.id] }}</div>)
{% endif %}
</h4>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
{% endif %}
{% if subcategory.items.count > 0 %}
{% for item in subcategory.items %}
<tr>
<td>
{# Items #}
{{ item.title }}
{% if 0 %}
{{ form_start(form_list[item.id]) }}
<div id="items_{{ item.id }}" class="items span8" data-max="{{ item.maxRepeat }}" data-prototype="{{ form_widget(form_list[item.id].userItems.vars.prototype)|e }}" >
{% for widget in form_list[item.id].userItems.children %}
{{ _self.widget_prototype(widget, 'Remove item') }}
{% endfor %}
<ul>
</ul>
</div>
{{ form_end(form_list[item.id]) }}
{% endif %}
</td>
<td>
{{ item.score }}
</td>
<td>
{{ item.maxRepeat }}
</td>
<td>
{{ category_score[subcategory.parentId]}}
</td>
</tr>
{% endfor %}
{% endif %}
{% endfor %}
</table>
</div>
</div>
</div>
{% endblock %}

@ -103,7 +103,11 @@ function saveAll() {
<a href="{{ url('curriculum_category.controller:indexAction', {'course' : course.code , 'id_session' : course_session.id}) }}">
{{ "Categories" | trans }}
</a>
<a href="{{ url('curriculum_category.controller:resultsAction', { 'course' : course.code, 'id_session' : course_session.id }) }}">
{{ "Results" | trans }}
</a>
</div>
{% endif %}
<h2>Trayectoria</h2>

@ -297,7 +297,6 @@ class CurriculumCategoryController extends CommonController
'course' => $this->getCourse()->getCode()
)
)
),
array(
'name' => get_lang('Results'),

@ -181,9 +181,9 @@ class CurriculumUserController extends CommonController
/** @var Entity\CurriculumItemRelUser $curriculumItemRelUser */
foreach ($postedItem->getUserItems() as $curriculumItemRelUser) {
$curriculumItemRelUser->setUser($user);
// $newItem = $this->getCurriculumItemRepository()->find($curriculumItemRelUser->getItemId());
$curriculumItemRelUser->setItem($newItem);
$curriculumItemRelUser->setOrderId(strval($counter));
$description = $curriculumItemRelUser->getDescription();
@ -199,8 +199,6 @@ class CurriculumUserController extends CommonController
$hash = md5($curriculumItemRelUser->getDescription());
if (isset($alreadyAdded[$hash])) {
$parsed[] = $hash;
// $this->get('monolog')->addInfo($curriculumItemRelUser->getDescription());
// error_log("aaa ->".$curriculumItemRelUser->getDescription());
continue;
} else {
// No need to check because it's an update.
@ -222,7 +220,6 @@ class CurriculumUserController extends CommonController
}
}
}
}
}
$response = null;
@ -254,7 +251,6 @@ class CurriculumUserController extends CommonController
'course' => $this->getCourse()->getCode()
)
)
),
array(
'name' => get_lang('Results'),
@ -269,6 +265,7 @@ class CurriculumUserController extends CommonController
'name' => get_lang('UserResults'),
)
);
$this->setBreadcrumb($breadcrumbs);
if (!api_is_allowed_to_edit()) {
@ -285,13 +282,17 @@ class CurriculumUserController extends CommonController
->setParameter('userId', $userId)
->orderBy('node.root, node.lft, node.title', 'ASC');
$this->setCourseParameters($qb, 'node');
$query = $qb->getQuery();
$categories = $query->getResult();
/** @var \Entity\CurriculumCategory $category */
$categoryCounter = array();
foreach ($categories as $category) {
/** @var \Entity\CurriculumItem $item */
$score = 0;
foreach ($category->getItems() as $item) {
$formType = new CurriculumItemRelUserCollectionType($item->getId());
@ -301,10 +302,18 @@ class CurriculumUserController extends CommonController
foreach ($item->getUserItems() as $userItem) {
$score += $item->getScore();
}
$categoryCounter[$category->getParentId()][] = $item->getId();
$categoryScore[$item->getCategoryId()] = $score;
if (!isset($categoryScore[$category->getParentId()])) {
$categoryScore[$category->getParentId()] = 0;
}
$categoryScore[$category->getParentId()] += $score;
}
}
var_dump($categoryScore);
$this->get('template')->assign('category_counter', $categoryCounter);
$this->get('template')->assign('categories', $categories);
$this->get('template')->assign('category_score', $categoryScore);
$this->get('template')->assign('form_list', $formList);

Loading…
Cancel
Save