Exporting to SpreshSheet?
El método admin_spexport del controladdor vclassrooms_cotroller.php, exporta las calificaciones del grupo a una hoja de cálculo (Calc, Gnumeric, Excel):
/** Export to Spread sheet**/
public function admin_spexport($vclassroom_id)
{
$this->layout = null;
$this->autoLayout = false;
$this->Vclassroom->unbindAll();
$conditions = array('Vclassroom.id'=>$vclassroom_id);
$fields = array('Vclassroom.name', 'Vclassroom.created'); //null;
$this->set('group',$this->Vclassroom->find($conditions, $fields));
$this->set('data', $this->Vclassroom->recordClass($vclassroom_id));
}
Este controlador carga y usa el helper CSV para generar al archivo descargable.
Como se ve, este método carga el data usando el método recordClass del modelo Vclassroom. El algoritmo es cómo sigue:
1) Obtener los users del grupo:
$data = $this->UsersVclassroom?->findAll(array('UsersVclassroom?.vclassroom_id'=>$vclassroom_id), array('user_id'));
2) En el loop de cada usuario
Cargar el array $records con la info del usuario
3) Buscar en los examenes asociados al Vclassroom y si existe, cargar los puntos que este vale y el nombre del examen. Aqui usamos $this->Test->getPoints() psra saber cuantos puntos obtuvo el alumno, esta es una mejora de la versión 0.3 pues si el profesor cambia el valor de puntos de cada pregunta del examen esta calificación se actuliza dinámicamente y no queda una calificación estática.
4) Consultamos el modelo ResultTreasure? para concer si el alumno contestó algun Treasure y lo cargamos al array records
$records[$user_id]['treasures'] = $this->Treasure->ResultTreasure->findAll($conditions, $fields);
En caso de o haber ningúnn ResultTreasure? el valor de $records[$user_id]treasures? es NULL.
5) Hacemos lo mismo con ResultWebquest?, Participation, y Topic
6) la vista admin_spexport.ctp hacen loops a los alumnos para armar el archivo CSV con la ayuda del helper, es muy similar a armar una tabla HTML
7) Queda pendiente que el profe pueda seleccionar diferentes tipos de formatos de exportación, por ejemplo un formato detallado y otro con sólo los nombres de los alumnos y los puntos que llevan
