inicio_postgres

This commit is contained in:
desa 2025-08-26 17:42:06 -04:00
commit bf938777a2
31 changed files with 23007 additions and 0 deletions

BIN
Flecha.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

20
README.txt Normal file
View File

@ -0,0 +1,20 @@
Assignment files
================
Report to display all assignment files uploaded for a course and / or user
Installation
------------
Copy code to the folder /report/curriculum_files
Run the notifications to update the capabilities
Then the report is available from site admin -> reports -> curriculum_files
Version history
---------------
Version : 2013091500
Initial attempt

55
accion.php Normal file
View File

@ -0,0 +1,55 @@
<?php
require('../../config.php');
require_once($CFG->dirroot.'/lib/tablelib.php');
require_once(dirname(__FILE__) . '/lib.php');
global $DB, $USER;
$v_funcion = isset($_REQUEST["funcion"]) ? $_REQUEST["funcion"] : "SIN_REGISTRO";
$v_idtraspaso = isset($_POST['idtraspaso']) ? $_POST['idtraspaso'] : 0;
$v_idcurso = isset($_POST['curso']) ? $_POST['curso'] : 0;
switch($v_funcion){
case "traspasar_notas":
$enrol = enrol_get_plugin('dbinacap');
$authdb = $enrol->db_init_inacap();
$sql_traspsoSIGA =" begin TRASPASO_NOTAS_SIGA.INSERTA_NOTAEXAM_SIGA(".$v_idtraspaso.",'".$USER->idnumber."' ); end;";
$rs = $authdb->Execute( $sql_traspsoSIGA );
if( !$rs ){
echo "Error al Insertar Notas Examen a SIGA";
}else{
echo "Traspaso realizado....";
// add_to_log($v_idcurso, "traspasoexa_SIGA", "traspasoexa", "trapasa a siga idtraspaso(".$v_idtraspaso.") ", $USER->id, 0, $USER->id);
}
$authdb->Close();
exit;
break;
case "eliminar_notas":
$enrol = enrol_get_plugin('dbinacap');
$authdb = $enrol->db_init_inacap();
$sql_elimina =" begin TRASPASO_NOTAS.elimina_traspasoexa(".$v_idtraspaso."); end; ";
$Elirs = $authdb->Execute( $sql_elimina );
if(!$Elirs){
echo 'Error al Eliminar...';
}else{
// add_to_log($v_idcurso, "traspasoexa_SIGA", "Elimina Traspaso Exa", "Elimina Traspaso Exa(".$v_idtraspaso.") ", $USER->id, 0, $USER->id);
echo 'Eliminación Realizada....';
}
$authdb->Close();
exit;
break;
}
?>

2
amd/build/export.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
define ("report_traspasonotasexam/export",["jquery"],function(a){return{initialise:function initialise(){a("h2").css({display:"block","font-size":"1.5em"});if(0==a("#view-activities").length||0==a("#view-grades-siga").length){a("#ok").css("display","none");a("#view-resumen").css("display","none");a("#view-tabla").css("display","none");a("#view-detalles").css("display","none")}a("#ok").click(function(){var b=a("input[name=\"activ\"]:checked").parents("tr").children(":eq(1)").html(),c=a("input[name=\"cali\"]:checked").parents("tr").children(":eq(1)").html();if(b==void 0){alert("Seleccione Actividad y Calificaci\xF3n.");return!1}if(c==void 0){alert("Seleccione Actividad y Calificaci\xF3n.");return!1}});a("#gradesform").submit(function(){if(!confirm("Ha Seleccionado Homologar la Actividad "+a("input[name=\"activ\"]:checked").parents("tr").children(":eq(1)").html()+" Con la Calificaci\xF3n "+a("input[name=\"cali\"]:checked").parents("tr").children(":eq(0)").html()+" \xBFDesea Continuar?")){return!1}});a("#open").click(function(){a(".popup").slideToggle("slow");return!1});a("a[data-toggle=modal]").click(function(){var b=a(this).attr("id");a.ajax({cache:!1,type:"POST",url:"detalles.php",data:"idtraspaso="+b,success:function success(b){a("#myModal").show();a(".modal-body").show().html(b)}})});a("input[type='button'][name='ftraspaso']").click(function(){var b=a(this).attr("id"),c=a("input[type='hidden'][name='idcourse']").val();a.ajax({cache:!1,type:"POST",url:"accion.php",data:{funcion:"traspasar_notas",idtraspaso:b,curso:c},dataType:"html",success:function success(a){alert(a);location.reload()}})});a("input[type='button'][name='ftraspasoelim']").click(function(){var b=a(this).attr("id"),c=a("input[type='hidden'][name='idcourse']").val();a.ajax({cache:!1,type:"POST",url:"accion.php",data:{funcion:"eliminar_notas",idtraspaso:b,curso:c},dataType:"html",success:function success(a){alert(a);location.reload()}})})}}});
//# sourceMappingURL=export.min.js.map

File diff suppressed because one or more lines are too long

86
amd/src/export.js Normal file
View File

@ -0,0 +1,86 @@
//define(['jquery', 'core/ajax', 'core/modal_factory', 'core/str'], function($, Ajax, ModalFactory, str) {
define(['jquery'], function($) {
return {
initialise: function() {
$("h2").css({"display": "block", "font-size": "1.5em"});
if($("#view-activities").length == 0 || $("#view-grades-siga").length == 0){
$("#ok").css("display","none");
$("#view-resumen").css("display", "none");
$("#view-tabla").css("display", "none");
$("#view-detalles").css("display", "none");
}
$("#ok").click(function(){
var valorAct = $('input[name="activ"]:checked').parents("tr").children(":eq(1)").html();
var valorCali = $('input[name="cali"]:checked').parents("tr").children(":eq(1)").html();
if( valorAct == undefined){
alert("Seleccione Actividad y Calificaci\u00f3n.");
return false;
}
if( valorCali == undefined){
alert("Seleccione Actividad y Calificaci\u00f3n.");
return false;
}
});
$("#gradesform").submit(function(){
if (!confirm("Ha Seleccionado Homologar la Actividad " +
$('input[name="activ"]:checked').parents("tr").children(":eq(1)").html()
+ " Con la Calificación " + $('input[name="cali"]:checked').parents("tr").children(":eq(0)").html()
+ " ¿Desea Continuar?")){ return false;}
});
$("#open").click(function() {
$(".popup").slideToggle("slow");
return false;
});
$("a[data-toggle=modal]").click(function()
{
var traspaso_id = $(this).attr("id");
$.ajax({
cache: false,
type: "POST",
url: "detalles.php",
data: "idtraspaso="+traspaso_id,
success: function(data)
{
$("#myModal").show();
$(".modal-body").show().html(data);
}
});
});
$("input[type='button'][name='ftraspaso']").click(function() {
var v_idtraspaso = $(this).attr("id");
var idcursos = $("input[type='hidden'][name='idcourse']").val();
//alert(v_idtraspaso);
$.ajax({
cache: false,
type: "POST",
url: "accion.php",
data: {funcion:'traspasar_notas',idtraspaso:v_idtraspaso,curso:idcursos},
dataType: "html",
success: function(data)
{
alert(data);
location.reload();
}
});
});
$("input[type='button'][name='ftraspasoelim']").click(function() {
var v_idtraspaso = $(this).attr("id");
var idcursos = $("input[type='hidden'][name='idcourse']").val();
// alert(v_idtraspaso);
$.ajax({
cache: false,
type: "POST",
url: "accion.php",
data: {funcion:'eliminar_notas',idtraspaso:v_idtraspaso,curso:idcursos},
dataType: "html",
success: function(data)
{
alert(data);
location.reload();
}
});
});
}
};
});

4693
css/bootstrap.css vendored Normal file

File diff suppressed because it is too large Load Diff

9
css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

40
db/access.php Normal file
View File

@ -0,0 +1,40 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Capabilities
*
* @package report
* @subpackage traspaso_notas
* @author Russell England <russell.england@gmail.com>
* @copyright Russell England <russell.england@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$capabilities = array(
'report/traspasonotasexam:view' => array(
'riskbitmask' => RISK_PERSONAL,
'captype' => 'read',
'contextlevel' => CONTEXT_USER,
'archetypes' => array(
'manager' => CAP_ALLOW
),
'clonepermissionsfrom' => 'coursereport/log:view',
)
);

32
db/install.php Normal file
View File

@ -0,0 +1,32 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Post installation and migration code.
*
* @package report
* @subpackage participation
* @copyright 2011 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die;
function xmldb_report_traspasonotasexam_install() {
global $DB;
}

56
db/install.xml Normal file
View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" ?>
<XMLDB PATH="report/traspasonotasexam/db" VERSION="20130915" COMMENT="XMLDB file for Moodle report/traspasonotasexam"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
>
<TABLES>
<TABLE NAME="traspasonotasexam" COMMENT="Instancias de Traspaso de Notas Examenes">
<FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
<FIELD NAME="secc_ccod" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Seccion de curso en SIGA tabla secciones"/>
<FIELD NAME="cali_ncorr" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Calificacion Seccion de curso en SIGA tabla CALIFICACIONES_SECCION "/>
<FIELD NAME="cali_nevaluacion" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Número de Calificacion en SIGA tabla CALIFICACIONES_SECCION "/>
<FIELD NAME="courseid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="ID del Curso en AAI MOODLE tabla M_course"/>
<FIELD NAME="gradeid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="ID de la calificaciòn que tiene realación con la actividad en AAI MOODLE"/>
<FIELD NAME="grademax" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Máximo valor de la calificaciòn en AAI MOODLE"/>
<FIELD NAME="itemmodule" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="ID de la actividad del curso en AAI MOODLE"/>
<FIELD NAME="pers_ncorr" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="IDNUMBER de MOODLE.M_USER, PERS_NCORR de SIGA.PERSONAS Profesor del Curso"/>
<FIELD NAME="audi_tusuario" TYPE="char" LENGTH="255" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="IDNUMBER de MOODLE.M_USER, PERS_NCORR de SIGA.PERSONAS que hace el traspaso"/>
<FIELD NAME="audi_fmodificacion" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="FECHA TIMESTAMP en la que se hace el traspaso"/>
<FIELD NAME="audi_fmodificacion_siga" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="FECHA TIMESTAMP en la que se hace el traspaso a SIGA"/>
<FIELD NAME="scale" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Escala utilizada en la actividad"/>
<FIELD NAME="observacion" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" COMMENT="Grado de finalización de la activodad (finalizado/no finalizado)"/>
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
</KEYS>
<INDEXES>
<INDEX NAME="course" UNIQUE="false" FIELDS="courseid"/>
</INDEXES>
</TABLE>
<TABLE NAME="traspasonotasexam_det" COMMENT="Stores all the actual chat messages">
<FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
<FIELD NAME="traspasoidexe" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Id de la tabla traspaso_notas"/>
<FIELD NAME="itemid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="registro en grada_items que enlaza con la actividad "/>
<FIELD NAME="pers_ncorr" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="IDNUMBER de MOODLE.M_USER, PERS_NCORR de SIGA.PERSONAS del alumno que hace la actividad"/>
<FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="id de usuario alumno en M_USER"/>
<FIELD NAME="porcent_exigencia" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="el porcentaje de exigencia con el cual se calculó la nota"/>
<FIELD NAME="grade" TYPE="number" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" DECIMALS="1" COMMENT="Puntaje en Moodle del alumno en la actividad"/>
<FIELD NAME="nota" TYPE="number" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" DECIMALS="1" COMMENT="Nota calculada respecto del porcentaje de exigencia y grade"/>
<FIELD NAME="audi_tusuario" TYPE="char" LENGTH="255" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="IDNUMBER de MOODLE.M_USER, PERS_NCORR de SIGA.PERSONAS que hace el traspaso"/>
<FIELD NAME="audi_fmodificacion" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="FECHA TIMESTAMP en la que se hace el traspaso"/>
<FIELD NAME="audi_fmodificacion_siga" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="FECHA TIMESTAMP en la que se hace el traspaso a SIGA"/>
<FIELD NAME="observacion" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" COMMENT="Observacion en general"/>
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
<KEY NAME="fk_traspasoidexe" TYPE="foreign" FIELDS="traspasoidexe" REFTABLE="traspasonotasexam" REFFIELDS="id"/>
</KEYS>
<INDEXES>
<INDEX NAME="user" UNIQUE="false" FIELDS="userid"/>
<INDEX NAME="pers_ncorr" UNIQUE="false" FIELDS="pers_ncorr"/>
</INDEXES>
</TABLE>
</TABLES>
</XMLDB>

50
db/upgrade.php Normal file
View File

@ -0,0 +1,50 @@
<?php
// This file keeps track of upgrades to
// the traspasonotasexam module
//
// Sometimes, changes between versions involve
// alterations to database structures and other
// major things that may break installations.
//
// The upgrade function in this file will attempt
// to perform all the necessary actions to upgrade
// your older installation to the current version.
//
// If there's something it cannot do itself, it
// will tell you what you need to do.
//
// The commands in here will all be database-neutral,
// using the methods of database_manager class
//
// Please do not forget to use upgrade_set_timeout()
// before any action that may take longer time to finish.
function xmldb_traspasonotasexam_upgrade($oldversion) {
global $CFG, $DB;
$dbman = $DB->get_manager();
// Moodle v2.2.0 release upgrade line
// Put any upgrade step following this
// Moodle v2.3.0 release upgrade line
// Put any upgrade step following this
// Moodle v2.4.0 release upgrade line
// Put any upgrade step following this
// Moodle v2.5.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}

12
detalles.php Normal file
View File

@ -0,0 +1,12 @@
<?php
require_once(dirname(dirname(dirname(__FILE__))) . '/config.php');
require_once(dirname(__FILE__) . '/lib.php');
require_once(dirname(__FILE__) . '/filter_form.php');
require_once($CFG->libdir . '/adminlib.php');
$idtraspaso = isset($_POST['idtraspaso']) ? $_POST['idtraspaso'] : 0;
echo traspasonotasexam_Display_Detalles_lista($idtraspaso);
?>

54
filter_form.php Normal file
View File

@ -0,0 +1,54 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Report filter form
*
* @package report
* @subpackage assignment_files
* @author Russell England <russell.england@gmail.com>
* @copyright Russell England <russell.england@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die;
require_once($CFG->libdir . '/formslib.php');
class filter_form extends moodleform {
public function definition() {
global $CFG, $USER, $DB;
$mform =& $this->_form;
$mior_options2 = array();
$mform->addElement('header', 'details', get_string('filteroptions', 'report_traspasonotasexam'));
$mform->addElement('hidden', 'userid');
$mform->setType('userid', PARAM_INT);
$basefields = array('id', 'shortname', 'fullname', 'idnumber');
$datafields=get_user_coursesexa($USER->id, true, $basefields,' fullname ASC ');
// echo '<pre>';
// print_r($datafields);
// echo '</pre>';
foreach($datafields as $datafield) {
$mior_options2[$datafield->id] = format_string($datafield->fullname);//multilang formatting
}
$settings = array('type' => 'select');
$mform->addElement('select', "cursos", "Mis Cursos", $mior_options2);
$this->add_action_buttons(false, "Listar Actividades");
}
}

339
gradelist.php Normal file
View File

@ -0,0 +1,339 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Participation report
*
* @package report
* @subpackage participation
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require('../../config.php');
require_once($CFG->dirroot.'/lib/tablelib.php');
require_once(dirname(__FILE__) . '/lib.php');
define('DEFAULT_PAGE_SIZE', 20);
define('SHOW_ALL_PAGE_SIZE', 5000);
$activ = required_param('activ', PARAM_INT); // course id.
$cali = required_param('cali', PARAM_INT); // course id.
//$porcent = required_param('porcent', PARAM_INT); // Porcentaje de incidencia de la calificaciòn sobre la evaluaciòn
$idcourse = required_param('idcourse', PARAM_INT);
$dific = isset($_POST['porcent']) ? $_POST['porcent'] : 60;
$page = optional_param('page', 0, PARAM_INT); // which page to show
$perpage = optional_param('perpage', DEFAULT_PAGE_SIZE, PARAM_INT); // how many per page
$url = new moodle_url('/report/traspasonotasexam/gradelist.php', array('course'=>$idcourse));
if ($activ !== 0) $url->param('activ');
if ($cali !== 0) $url->param('cali');
if ($idcourse !== 0) $url->param('course');
if ($page !== 0) $url->param('page');
if ($perpage !== DEFAULT_PAGE_SIZE) $url->param('perpage');
$PAGE->set_url($url, array(
'page' => $page,
'perpage' => $perpage,
'id' => $idcourse));
$PAGE->set_pagelayout('report');
if (!$course = $DB->get_record('course', array('id'=>$idcourse))) {
print_error('invalidcourse');
}
require_login($course);
$context = context_course::instance($course->id);
// require_capability('report/traspasonotasexam:view', $context);// ver capabilities para el docente en la página.
?>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="paging.js"></script>
<script type="text/javascript" src="paginacion.js"></script>
<script>
$(document).ready(function()
{
$(".emptyrow").remove();
// $('#porcent').attr('size',10);
$("h2").css({"display": "block", "font-size": "1.5em"});
$('#porcent').keyup(function (){
this.value = (this.value + '').replace(/[^0-9]/g, '');
});
$("#calcular").click(function(){
var porcentaje = $("#porcent").val();
if(porcentaje.length < 1 || porcentaje < 10 || porcentaje !=60){
alert('Valor ingresado no es valido, sólo se acepta 60%.');
return false;
}
/* if(porcentaje > 99){
alert('Valor ingresado debe estar entre el 10% - 99%.');
return false;
} */
if(porcentaje != 60 ){
alert('Valor ingresado debe ser 60%.');
return false;
}
});
$("#guardar").click(function(){
var formulario = $("#studentsgradesform").serializeArray();
var porcentaje = $("#porcent").val();
if(porcentaje.length < 1 || porcentaje < 60){
alert('Solo se permite el valor 60.');
return false;
}
if(porcentaje > 60){
alert('Valor ingresado debe ser 60%.');
return false;
}
if (confirm('¿Usted está seguro de realizar la acción Guardar al '+ porcentaje+' % ?')){
$.ajax({
type: "POST",
dataType: "html",
url: "guardar.php",
data: formulario,
success: function(source){
alert(source);
// var obj = jQuery.parseJSON(source);
window.location = "index.php?cursos="+<?php echo $course->id; ?>;
}
});
}
});
});
</script>
<?php
$PAGE->set_title($course->shortname .': Traspaso de Calificaciones a SIGA ');
$PAGE->set_heading($course->fullname);
echo $OUTPUT->header();
/* $dbe = new auth_plugin_db_inacap;
$authdb = $dbe->db_init(); */
$enrol = enrol_get_plugin('dbinacap');
$authdb = $enrol->db_init_inacap();
$sqlDif = "select asi.tasg_ccod,decode(asi.tasg_ccod,1,(select ponf_jnota_examen *100
from ponderaciones_nota_final where talu_ccod = nvl (1, 1) and peri_ccod_inicio <= sc.peri_ccod
and sc.peri_ccod <= decode (peri_ccod_termino,0, sc.peri_ccod,peri_ccod_termino)), '')
pond_examen from secciones sc, asignaturas asi Where sc.asig_ccod = asi.asig_ccod and sc.secc_ccod=".$course->idnumber;
$result = $authdb->Execute( $sqlDif );
foreach($result as $Ndif){
$ponde = isset($Ndif['POND_EXAMEN']) ? $Ndif['POND_EXAMEN'] : 1;
}
//$dific = isset($_POST['porcent']) ? $_POST['porcent'] : 25;
$baseurl = $CFG->wwwroot.'/report/traspasonotasexam/gradelist.php?idcourse='.$course->id.'&amp;activ='
.$activ.'&amp;cali='.$cali.'&amp;dific='.$dific.'&amp;perpage='.$perpage.'&amp;page='.$page;
// echo $baseurl;
$sqlgrades="select x.userid, x.idnumber, x.firstname,x.item, x.lastname, x.itemname, NVL(x.grademin,0) grademin, NVL(x.grademax,0) grademax,NVL(g.rawgrade,0) rawgrade,
NVL(g.rawgrademin,0) rawgrademin, NVL(g.rawgrademax,0) rawgrademax, (x.GRADEMAX*$dific)/100 as xexig,
to_char( (((7-4)/((NVL(x.GRADEMAX,0) )-(((NVL(x.GRADEMAX,0) )*$dific)/100)))*(NVL(G.RAWGRADE,0)-(((NVL(x.GRADEMAX,0))*$dific)/100)))+4,'990.9') ap ,
to_char( (((4-1)/(((NVL(x.GRADEMAX,0)-NVL(x.GRADEMin,0))*$dific)/100))*NVL(G.RAWGRADE,0))+1,'990.9') rep
from (
select * from(
SELECT u.id userid,u.firstname,u.lastname, u.idnumber
FROM m_user u
JOIN (SELECT DISTINCT eu1_u.id FROM m_user eu1_u JOIN m_user_enrolments eu1_ue ON eu1_ue.userid = eu1_u.id and eu1_ue.status=0 JOIN m_enrol eu1_e ON (eu1_e.id = eu1_ue.enrolid AND eu1_e.courseid = $idcourse)
WHERE eu1_u.deleted = 0 AND eu1_u.id <> 1) je ON je.id = u.id
JOIN (
SELECT DISTINCT ra.userid
FROM m_role_assignments ra, m_context mctx
WHERE ra.roleid IN (5)
and RA.CONTEXTID = MCTX.ID
and MCTX.CONTEXTLEVEL = 50
and MCTX.INSTANCEID = $idcourse
) rainner ON rainner.userid = u.id
AND u.deleted = 0
) usr,
(SELECT id item, itemname, itemtype, grademin, grademax FROM m_grade_items WHERE courseid = $idcourse AND itemtype <> 'course'
AND categoryid in (SELECT id FROM m_grade_categories WHERE courseid = $idcourse ))
) x left join m_grade_grades g on g.itemid = x.item and g.userid = x.userid
where item in ($activ)
order by firstname, lastname ";
// echo $sqlgrades.'<br><br>';
$grades = $DB->get_records_sql($sqlgrades);
// // //Generación de Tabla 1--
$totalcount = count($grades);
$data = array();
$sqlgrades_header = 'select * from {grade_items} WHERE id = '.$activ;
$grades_header = $DB->get_record_sql($sqlgrades_header);
// $dbe = new auth_plugin_db_inacap;
// $authdb = $dbe->db_init();
$sqlCali = "SELECT 0 CALI_NEVALUACION,
s.secc_ccod,
'Examen' || ' - ' || s.SECC_FTERMINO_SEC || ' ' || $dific caliSIGA
FROM secciones s
WHERE s.secc_ccod =$cali";
// echo $sqlCali;
$Ncali = $authdb->Execute( $sqlCali );
foreach($Ncali as $Ncalif){
$vNCali = $Ncalif['CALI_NEVALUACION'];
$vCalisiga = $Ncalif['CALISIGA'];
}
echo '<form action="'.$CFG->wwwroot.'/report/traspasonotasexam/gradelist.php" method="post" id="studentsgradesform">'."\n";
echo '<div style="text-align:center;">'."\n";
echo '<input type="hidden" name="idcourse" value="'.$course->id.'" />'."\n";
echo '<input type="hidden" name="cursos" value="'.$course->id.'" />'."\n";
echo '<input type="hidden" name="activ" value="'.$activ.'" />'."\n";
echo '<input type="hidden" name="cali" value="'.$cali.'" />'."\n";
echo '<input type="hidden" name="ncali" value="'.$vNCali.'" />'."\n";
echo '<input type="hidden" name="calisiga" value="'.$vCalisiga.'" />'."\n";
echo '<input type="hidden" name="dific" value="'.$dific.'" />'."\n";
echo '<input type="hidden" name="returnto" value="'. s($PAGE->url) .'" />'."\n";
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />'."\n";
echo '<input type="hidden" name="secc_ccod" value="'.$course->idnumber.'" />'."\n";
echo '<input type="hidden" name="gradeid" value="'.$grades_header->id.'" />'."\n";
echo '<input type="hidden" name="grademax" value="'.$grades_header->grademax.'" />'."\n";
echo '<input type="hidden" name="itemmodule" value="'.$grades_header->itemname.'" />'."\n";
// Nueva distribución de Tablas *****************************************
echo html_writer::start_tag('table', array('border' => '0', 'style'=>'margin: 0 auto;'));
echo html_writer::start_tag('tr');
echo html_writer::start_tag('td', array('colspan' => '3', 'align' => 'center'));
echo '<h2> Actividad : '.$grades_header->itemname.'</h2>'."<br/>";
echo html_writer::end_tag('td');
echo html_writer::end_tag('tr');
/* echo html_writer::start_tag('tr');
echo html_writer::start_tag('td', array('colspan' => '3', 'align' => 'center'));
echo '<h2> Tabla de Cálculo</h2>'."\n";
echo html_writer::end_tag('td');
echo html_writer::end_tag('tr'); */
echo html_writer::start_tag('tr');
echo html_writer::start_tag('td',array('colspan' => '3', 'align' => 'center'));
echo html_writer::start_tag('table', array("width" => "100%"));
echo html_writer::start_tag('tr');
echo html_writer::start_tag('td', array('align' => 'center'));
//echo '<div>';
echo '<input type="submit" id="calcular" value="Calcular al " />'."\n";
echo '<input type="text" min="60" max="60" name="porcent" id="porcent" value='.$dific.' />&#160;% '."\n";
// echo '<label for="porcent">%</label>'."\n";
//echo '</div>';
echo html_writer::end_tag('td');
echo html_writer::end_tag('tr');
echo html_writer::end_tag('table');
echo html_writer::end_tag('td');
echo html_writer::end_tag('tr');
echo html_writer::start_tag('tr');
echo html_writer::start_tag('td', array('valign'=>'top'));
//VARIABLES Y DATOS DE REGISTROS PARA GENERAR LA TABLA 1
$table = new flexible_table('course-grade-'.$course->id.'-'.$activ);
$table->course = $course;
$table->define_columns(array('fullname','grade','calif'));
$table->define_headers(array('Nombres / Apellidos','Puntaje','Calificación Calculada al '.$dific.' %'));
$table->define_baseurl($baseurl);
$table->set_attribute('cellpadding','1');
$table->set_attribute('class', 'table table-bordered generaltable yy');
$table->set_attribute('id', 'participantes');
$table->sortable(false,'fullname','ASC');
$table->no_sorting('grade');
$table->no_sorting('calif');
$table->set_control_variables(array(
TABLE_VAR_SORT => 'ssort',
TABLE_VAR_HIDE => 'shide',
TABLE_VAR_SHOW => 'sshow',
TABLE_VAR_IFIRST => 'sifirst',
TABLE_VAR_ILAST => 'silast',
TABLE_VAR_PAGE => 'spage'
));
$table->setup();
foreach ($grades as $u) {
echo '<input type="hidden" name="pers_ncorr" value="'.$u->idnumber.'" />'."\n";
if($u->rawgrade < $u->xexig) $calificacion = $u->rep;else $calificacion = $u->ap;
$data = array('<a href="'.$CFG->wwwroot.'/user/view.php?id='.$u->userid.'&amp;course='.$course->id.'">'.$u->firstname.' '.$u->lastname.'</a>'."\n",
$u->rawgrade,
$calificacion
);
$table->add_data($data);
}
$table->print_html(); //IMPRIME TABLA 1
echo html_writer::end_tag('td');
echo html_writer::start_tag('td', array('valign'=>'top'));
$GRADEMAX =$grades_header->grademax;
$GRADEMIN = $grades_header->grademin;
$table2 = new flexible_table('course-grade-'.$course->id.'-'.$activ.'-grid');
$table2->course = $course;
$table2->define_columns(array('points','grade'));
$table2->define_headers(array('Puntaje','Calificación Calculada al '.$dific.' %'));
$table2->define_baseurl($baseurl);
$table2->set_attribute('cellpadding','1');
$table2->set_attribute('class', 'table table-bordered generaltable xx');
$table2->set_attribute('id', 'resultados');
$table2->setup();
$RAWGRADE = $GRADEMIN;
$v_exig = ($GRADEMAX*$dific)/100;
while ($RAWGRADE <= $GRADEMAX) {
if ($RAWGRADE < $v_exig )
$v_nota= number_format((((4-1)/((($GRADEMAX - $GRADEMIN)*$dific)/100))*$RAWGRADE)+1 ,1);
else
// $v_nota= number_format( (((7-4)/(($GRADEMAX - $GRADEMIN)-(((($GRADEMAX - $GRADEMIN)*$dific)/100*100)/100)))*($RAWGRADE-(((($GRADEMAX - $GRADEMIN)*$dific)/100*100)/100)))+4,2);
$v_nota= number_format((((7-4)/(($GRADEMAX )-((($GRADEMAX )*$dific)/100)))*($RAWGRADE-((($GRADEMAX)*$dific)/100)))+4,1);
$data1 = array($RAWGRADE,$v_nota);
$table2->add_data($data1);
$RAWGRADE++;
}
$table2->print_html(); //IMPRIME TABLA 2
echo "<div id='NavPosicion'></div>";
echo html_writer::end_tag('td');
echo html_writer::start_tag('td', array('valign'=>'top'));
/**/
echo html_writer::end_tag('td');
echo html_writer::end_tag('tr');
echo html_writer::end_tag('table');
echo html_writer::start_tag('tr');
echo html_writer::start_tag('td', array('align' => 'center', 'colspan' =>'3'));
echo html_writer::end_tag('table');
echo html_writer::start_tag('tr', array('style'=>'height: 50px'));
echo html_writer::start_tag('td', array('align' => 'center'));
echo '<input type="button" id="guardar" value="Guardar" />'."<br/>";
echo html_writer::end_tag('td');
echo html_writer::end_tag('tr');
echo html_writer::start_tag('tr');
echo html_writer::start_tag('td', array('align' => 'center', 'style' => 'font-size:12px'));
echo '<a href="'.$CFG->wwwroot.'/report/traspasonotasexam/?cursos='.$idcourse.'"> Volver Atrás</a>'."\n";
echo html_writer::end_tag('td');
echo html_writer::end_tag('tr');
echo html_writer::end_tag('table');
echo html_writer::end_tag('td');
echo html_writer::end_tag('tr');
echo '</div>'."\n";
echo '</form>'."\n";
echo html_writer::end_tag('table');
$PAGE->requires->js_init_call('M.report_traspasonotasexam.init');
echo $OUTPUT->footer();

43
guardar.php Normal file
View File

@ -0,0 +1,43 @@
<?php
require('../../config.php');
require_once($CFG->dirroot.'/lib/tablelib.php');
require_once(dirname(__FILE__) . '/lib.php');
global $DB, $USER;
$enrol = enrol_get_plugin('dbinacap');
$authdb = $enrol->db_init_inacap();
$v_funcion = isset($_REQUEST["funcion"]) ? $_REQUEST["funcion"] : "SIN_REGISTRO";
$v_idtraspaso = isset($_POST['idtraspaso']) ? $_POST['idtraspaso'] : 0;
if(isset($_REQUEST['secc_ccod']) != NULL){
$record = new stdClass();
$record->secc_ccod = $_REQUEST['secc_ccod'];
$record->cali_ncorr = $_REQUEST['cali'];
$record->cali_nevaluacion = $_REQUEST['ncali'];
$record->courseid = $_REQUEST['idcourse'];
$record->gradeid = $_REQUEST['gradeid'];
$record->grademax = $_REQUEST['grademax'];
$record->itemmodule = $_REQUEST['activ'];
$record->pers_ncorr = $USER->idnumber;//$_REQUEST['pers_ncorr'];
$record->audi_tusuario = $USER->idnumber;//$_REQUEST['pers_ncorr'];//0;
$record->audi_fmodificacion = time();
$record->audi_fmodificacion_siga = 0;
$record->scale = $_REQUEST['dific'];
$record->observacion = "traspasonotasexam/guardar.php";
$id_traspaso = $DB->insert_record('traspasonotasexam', $record);
$sql_ina=" BEGIN traspaso_notas.INSERTA_DETALLE_EXA($id_traspaso,$USER->idnumber,$record->audi_fmodificacion); END;";
$ret_ina= $authdb->Execute($sql_ina) ;
// add_to_log($record->courseid, "traspasonotasexam", "guarda_traspaso", "almacena trapaso ($id_traspaso) seccion".$record->secc_ccod, $USER->id, 0, $USER->id);
$authdb->Close();
echo 'Almacenado....';
}
?>

256
index.php Normal file
View File

@ -0,0 +1,256 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Displays a list of all assignment files for a user and/or course
*
* @package report
* @subpackage traspaso_notas
* @author Russell England <russell.england@gmail.com>
* @copyright Russell England <russell.england@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
//require_once(dirname(dirname(dirname(__FILE__))) . '/config.php');
require('../../config.php');
require_once(dirname(__FILE__) . '/lib.php');
require_once(dirname(__FILE__) . '/filter_form.php');
require_once($CFG->libdir . '/adminlib.php');
global $DB, $USER;
$filters['cursos'] = optional_param('cursos', 0, PARAM_INT);
$course = isset($_GET['id']) ? $_GET['id'] : 0;
require_login();
$admins = get_admins();
$isadmin = false;
foreach ($admins as $admin)
{
if ($USER->id == $admin->id)
{
$isadmin = true; break;
}
}
//if ($isadmin) { echo 'Es administrador'; exit; }
$sql_count=" Select count(*)
from m_user mu, m_course mc, m_context mctx, m_role_assignments mra
where
MRA.CONTEXTID = MCTX.ID
and MCTX.INSTANCEID = MC.ID
and mctx.contextlevel = 50
and MRA.ROLEID in (3,4,61,101,21)
and MC.VISIBLE = 1
and MRA.USERID = mu.id
and mu.id =".$USER->id;
$count = $DB->count_records_sql($sql_count);
// print_r($count);
if($count == 0 && $isadmin == false){
$context = context_system::instance();
$heading = get_string('pluginname', 'report_traspasonotasexam');
$PAGE->set_context($context);
$PAGE->set_heading(format_string($heading));
$PAGE->set_title(format_string($heading));
$PAGE->set_url('/report/traspasonotasexam/index.php', $filters);
$PAGE->set_pagelayout('report');
echo $OUTPUT->header();
echo $OUTPUT->heading($heading);
echo '<div id="contenedorizquierdo"><h3>Usuario no autorizado...</h3></div>';
exit;
}
// require_login();
$context = context_system::instance();
$heading = get_string('pluginname', 'report_traspasonotasexam');
$PAGE->set_context($context);
$PAGE->set_heading(format_string($heading));
$PAGE->set_title(format_string($heading));
$PAGE->set_url('/report/traspasonotasexam/index.php', $filters);
$PAGE->set_pagelayout('report');
//admin_externalpage_setup('report_traspaso_notas');
global $SESSION;
echo $OUTPUT->header();
echo $OUTPUT->heading($heading);
$mform = new filter_form();
if ($formdata = $mform->get_data()) {
$filters['cursos'] = $formdata->cursos;
} else {
$formdata = new stdClass();
$formdata->cursos = $filters['cursos'];
}
$mform->set_data($formdata);
$mform->display();
if ($filters['cursos'] != '0' ) {
$context = context_course::instance($filters['cursos'], MUST_EXIST);
$roles = get_user_roles($context, $USER->id, false);
$role = key($roles);
$roleid = $roles[$role]->roleid;}
else{$roleid = '0';}
if ($filters['cursos'] != '0' ) {
echo '
<script language="JavaScript" src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript" src="js/bootstrap.js"></script> ';
echo '<script>
$(document).ready(function() {
$("h2").css({"display": "block", "font-size": "1.5em"});
if($("#view-activities").length == 0 || $("#view-grades-siga").length == 0){
$("#ok").css("display","none");
$("#view-resumen").css("display", "none");
$("#view-tabla").css("display", "none");
$("#view-detalles").css("display", "none");
}
$("#ok").click(function(){
var valorAct = $(\'input[name="activ"]:checked\').parents("tr").children(":eq(1)").html();
var valorCali = $(\'input[name="cali"]:checked\').parents("tr").children(":eq(1)").html();
if( valorAct == undefined){
alert("Seleccione Actividad y Calificaci\u00f3n.");
return false;
}
if( valorCali == undefined){
alert("Seleccione Actividad y Calificaci\u00f3n.");
return false;
}
});
$("#gradesform").submit(function(){
if (!confirm("Ha Seleccionado Homologar la Actividad " + $(\'input[name="activ"]:checked\').parents("tr").children(":eq(1)").html() + " Con la Calificación " + $(\'input[name="cali"]:checked\').parents("tr").children(":eq(0)").html() + " ¿Desea Continuar?")){ return false;}
});
$("#open").click(function() {
$(".popup").slideToggle("slow");
return false;
});
$("a[data-toggle=modal]").click(function()
{
var traspaso_id = $(this).attr("id");
$.ajax({
cache: false,
type: "POST",
url: "detalles.php",
data: "idtraspaso="+traspaso_id,
success: function(data)
{
$("#myModal").show();
$(".modal-body").show().html(data);
}
});
});
$("input[type=\'button\'][name=\'ftraspaso\']").click(function() {
var v_idtraspaso = $(this).attr("id");
var idcursos = $("input[type=\'hidden\'][name=\'idcourse\']").val();
//alert(v_idtraspaso);
$.ajax({
cache: false,
type: "POST",
url: "accion.php",
data: {funcion:\'traspasar_notas\',idtraspaso:v_idtraspaso,curso:idcursos},
dataType: "html",
success: function(data)
{
alert(data);;
location.reload();
}
});
});
$("input[type=\'button\'][name=\'ftraspasoelim\']").click(function() {
var v_idtraspaso = $(this).attr("id");
var idcursos = $("input[type=\'hidden\'][name=\'idcourse\']").val();
// alert(v_idtraspaso);
$.ajax({
cache: false,
type: "POST",
url: "accion.php",
data: {funcion:\'eliminar_notas\',idtraspaso:v_idtraspaso,curso:idcursos},
dataType: "html",
success: function(data)
{
alert(data);;
location.reload();
}
});
});
});
</script>';
$assignments = traspasonotasexam_get_list($filters);
echo '<form action="'.$CFG->wwwroot.'/report/traspasonotasexam/gradelist.php" method="post" id="gradesform">'."\n";
echo '<div style="text-align:center;">'."\n";
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />'."\n";
echo '<input type="hidden" name="idcourse" value="'.$filters['cursos'].'" />'."\n";
echo '<div style="font-weight:bold"><h2>'. miCursoexa($filters['cursos']) . '</h2></div>';
echo traspasonotasexam_display_list($assignments, $filters);
echo '<div>';
echo '<br/><input id="ok" style="width: 130px; height: 30px; " type="submit" value="' . get_string('ok', 'report_traspasonotasexam') . '" />'."\n";
echo '</div>';
echo '</div>'."\n";
echo '</form>'."\n";
$assignments = traspasonotasexam_get_resumen($filters);
echo ' <p>&#160;</p>
<div id="content" style="text-align:center;">
<div><a href="#" id="open">Resumen Hist&oacute;rico</a></div>
<p>&#160;</p>
</div>
<div id="popup" class="popup">
<div class="content-popup">
<div align="center">';
echo traspasonotasexam_Display_Detalles($assignments, $filters);
echo ' <div class="detpopup-overlay"></div>';
echo ' </div>
</div>
</div>';
}
else
{
echo '<br> <strong>Debe seleccionar Asignatura. </strong>';
}
echo '<div id="dialog-confirm"></div>';
echo ' <!-- Modal -->
<div class="modal" id="myModal" style="display:none">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Detalle Traspaso Notas</h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<a href="#" class="btn btn-default" data-dismiss="modal">Cerrar</a>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->';
$PAGE->requires->js_init_call('M.report_traspasonotasexam.init');
echo $OUTPUT->footer();

9597
jquery-1.9.1.js vendored Normal file

File diff suppressed because it is too large Load Diff

4280
jquery.js vendored Normal file

File diff suppressed because it is too large Load Diff

210
js/bootstrap-modal.js vendored Normal file
View File

@ -0,0 +1,210 @@
/* =========================================================
* bootstrap-modal.js v2.0.1
* http://twitter.github.com/bootstrap/javascript.html#modals
* =========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================= */
!function( $ ){
"use strict"
/* MODAL CLASS DEFINITION
* ====================== */
var Modal = function ( content, options ) {
this.options = options
this.$element = $(content)
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
}
Modal.prototype = {
constructor: Modal
, toggle: function () {
return this[!this.isShown ? 'show' : 'hide']()
}
, show: function () {
var that = this
if (this.isShown) return
$('body').addClass('modal-open')
this.isShown = true
this.$element.trigger('show')
escape.call(this)
backdrop.call(this, function () {
var transition = $.support.transition && that.$element.hasClass('fade')
!that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position
that.$element
.show()
if (transition) {
that.$element[0].offsetWidth // force reflow
}
that.$element.addClass('in')
transition ?
that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
that.$element.trigger('shown')
})
}
, hide: function ( e ) {
e && e.preventDefault()
if (!this.isShown) return
var that = this
this.isShown = false
$('body').removeClass('modal-open')
escape.call(this)
this.$element
.trigger('hide')
.removeClass('in')
$.support.transition && this.$element.hasClass('fade') ?
hideWithTransition.call(this) :
hideModal.call(this)
}
}
/* MODAL PRIVATE METHODS
* ===================== */
function hideWithTransition() {
var that = this
, timeout = setTimeout(function () {
that.$element.off($.support.transition.end)
hideModal.call(that)
}, 500)
this.$element.one($.support.transition.end, function () {
clearTimeout(timeout)
hideModal.call(that)
})
}
function hideModal( that ) {
this.$element
.hide()
.trigger('hidden')
backdrop.call(this)
}
function backdrop( callback ) {
var that = this
, animate = this.$element.hasClass('fade') ? 'fade' : ''
if (this.isShown && this.options.backdrop) {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.appendTo(document.body)
if (this.options.backdrop != 'static') {
this.$backdrop.click($.proxy(this.hide, this))
}
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
this.$backdrop.addClass('in')
doAnimate ?
this.$backdrop.one($.support.transition.end, callback) :
callback()
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass('in')
$.support.transition && this.$element.hasClass('fade')?
this.$backdrop.one($.support.transition.end, $.proxy(removeBackdrop, this)) :
removeBackdrop.call(this)
} else if (callback) {
callback()
}
}
function removeBackdrop() {
this.$backdrop.remove()
this.$backdrop = null
}
function escape() {
var that = this
if (this.isShown && this.options.keyboard) {
$(document).on('keyup.dismiss.modal', function ( e ) {
e.which == 27 && that.hide()
})
} else if (!this.isShown) {
$(document).off('keyup.dismiss.modal')
}
}
/* MODAL PLUGIN DEFINITION
* ======================= */
$.fn.modal = function ( option ) {
return this.each(function () {
var $this = $(this)
, data = $this.data('modal')
, options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('modal', (data = new Modal(this, options)))
if (typeof option == 'string') data[option]()
else if (options.show) data.show()
})
}
$.fn.modal.defaults = {
backdrop: true
, keyboard: true
, show: true
}
$.fn.modal.Constructor = Modal
/* MODAL DATA-API
* ============== */
$(function () {
$('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
var $this = $(this), href
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
, option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data())
e.preventDefault()
$target.modal(option)
})
})
}( window.jQuery );

2291
js/bootstrap.js vendored Normal file

File diff suppressed because it is too large Load Diff

6
js/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

5
js/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,44 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Strings for report 'assignment_files'
*
* @package report
* @subpackage assignment_files
* @author Russell England <russell.england@gmail.com>
* @copyright Russell England <russell.england@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['pluginname'] = 'SIGA grades transfer';
$string['filteroptions'] = 'Filter Options';
$string['usernamefilter'] = 'Nombre de usuario contiene';
$string['coursenamefilter'] = 'Equipo contiene';
$string['assignment_files:view'] = 'View assignment files';
$string['filenames'] = 'Assignment file name(s)';
$string['profesion_g'] = 'Profesion Generica contiene';
$string['profesion_e'] = 'Profesion Extendida contiene';
$string['firstname'] = 'Nombre';
$string['lastname'] = 'Apellidos';
$string['profesion_generic'] = 'Profesión';
$string['profesion_amplio'] = 'Profesión Extendida';
$string['ok'] = 'Send';
$string[''] = '';
$string[''] = '';
$string[''] = '';
$string[''] = '';
$string[''] = '';

View File

@ -0,0 +1,48 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Strings for report 'assignment_files'
*
* @package report
* @subpackage assignment_files
* @author Russell England <russell.england@gmail.com>
* @copyright Russell England <russell.england@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['pluginname'] = 'Traspaso de Notas Examen a Siga';
$string['filteroptions'] = 'Opciones de Filtro';
$string['usernamefilter'] = 'Nombre de usuario contiene';
$string['coursenamefilter'] = 'Equipo contiene';
$string['assignment_files:view'] = 'View assignment files';
$string['filenames'] = 'Assignment file name(s)';
$string['profesion_g'] = 'Profesion Generica contiene';
$string['profesion_e'] = 'Profesion Extendida contiene';
$string['firstname'] = 'Nombre';
$string['lastname'] = 'Apellidos';
$string['profesion_generic'] = 'Profesión';
$string['profesion_amplio'] = 'Profesión Extendida';
$string['ok'] = 'Enviar';
$string[''] = '';
$string[''] = '';
$string[''] = '';
$string[''] = '';
$string[''] = ' ';

546
lib.php Normal file
View File

@ -0,0 +1,546 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Library of functions and constants for the assignment_files report
*
* @package report
* @subpackage assignment_files
* @author Russell England <russell.england@gmail.com>
* @copyright Russell England <russell.england@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die;
// Required for definitions.
require_once($CFG->dirroot . '/mod/assign/submissionplugin.php');
require_once($CFG->dirroot . '/mod/assign/submission/file/locallib.php');
// Flexible table.
require_once($CFG->libdir . '/tablelib.php');
// require_once($CFG->dirroot .'/auth/db_inacap/auth.php');
/**
* Returns a list of coursefiles for a user
*
* @global object $DB
* @param array $filters
* @param int $totalcount
* @return array $assignments - list of assignments and filenames
*/
function x_traspasonotasexam_get_list($filters) {
global $DB;
$params = array();
$sqlcourse='';
if (isset($filters['cursos']) && $filters['cursos']) {
$params['cursos'] = $filters['cursos'];
}
$sqlcourses= 'SELECT distinct mgi.id item, mgi.itemname, mgi.itemtype, mgi.grademin, mgi.grademax, nvl(mtn.id,0) trapaso
FROM m_grade_items mgi, m_TRASPASONOTASEXAM mtn
WHERE itemtype <> \'course\'
and MGI.ID = mtn.itemMODULE(+)
and mgi.courseid =:cursos
and trim(lower(mgi.itemname)) like lower(\'%Examen%\')
and not regexp_like (trim(lower(mgi.itemname)), lower(\'Formativ(a|o)\'))
and mgi.itemtype =\'mod\'
order by 1 asc';
$submissions = $DB->get_records_sql($sqlcourses, $params);
// var_dump($submissions);
return $submissions;
}
//GET Registros Resumen Histórico P_TraspasoNotasExa
function x_traspasonotasexam_get_resumen($filters) {
global $DB;
$params = array();
$sqlcourse='';
//echo '<br><br><br>cursos'.$filters['cursos'];exit;
if (isset($filters['cursos']) && $filters['cursos']) {
$params['cursos'] = $filters['cursos'];
}else{$params['cursos'] =0;}
$course = $DB->get_record('course', array('id' => $filters['cursos']), '*', MUST_EXIST);
$sqlc="SELECT mt.id idtraspaso,TO_CHAR (to_moodfecha (MT.AUDI_FMODIFICACION), 'dd-mm-yyyy') fcreacionaai,
MT.AUDI_FMODIFICACION_SIGA ftraspaso, gi.ITEMNAME,
-- (SYSDATE - s.SECC_FTERMINO_SEC) fdia, 'Examen' || '-' || TO_CHAR (s.SECC_FTERMINO_SEC, 'dd-mm-yyyy') caliSiga
FROM
-- secciones s,
{TRASPASONOTASEXAM} mt,
{course} mc,
{grade_items} gi
WHERE
TO_CHAR (s.secc_ccod) = mc.idnumber
AND s.secc_ccod = mt.secc_ccod
AND mc.id = gi.courseid
AND mt.ITEMMODULE = gi.id
AND mc.idnumber = ".$course->idnumber;
/* $dbe = new auth_plugin_db_inacap;
$authdb = $dbe->db_init(); */
$enrol = enrol_get_plugin('dbinacap311');
$authdb = $enrol->db_init_inacap311();
$sql_auth = "SELECT mt.id idtraspaso,
'Examen' || '-' || TO_CHAR (s.SECC_FTERMINO_SEC, 'dd-mm-yyyy')
caliSiga,
TO_CHAR (to_moodfecha (MT.AUDI_FMODIFICACION), 'dd-mm-yyyy')
fcreacionaai,
MT.AUDI_FMODIFICACION_SIGA ftraspaso,
gi.ITEMNAME,
(SYSDATE - s.SECC_FTERMINO_SEC) fdia
FROM secciones s,
m_TRASPASONOTASEXAM mt,
m_course mc,
m_grade_items gi
WHERE TO_CHAR (s.secc_ccod) = mc.idnumber
AND s.secc_ccod = mt.secc_ccod
AND mc.id = gi.courseid
AND mt.ITEMMODULE = gi.id
AND mc.idnumber = ".$course->idnumber;
/* SELECT mt.id idtraspaso,CS.CALI_NCORR,TP.TEVA_TDESC|| ' - '|| to_char(CS.CALI_FEVALUACION, 'dd-mm-yyyy') || ' - '|| CS.CALI_NPONDERACION|| '%' caliSiga, to_char(to_moodfecha(MT.AUDI_FMODIFICACION),'dd-mm-yyyy') fcreacionaai,
MT.AUDI_FMODIFICACION_SIGA ftraspaso,
gi.ITEMNAME, (sysdate - cs.CALI_FEVALUACION) fdia FROM CALIFICACIONES_SECCION cs,TIPOS_EVALUACION tp,P_TRASPASO_NOTAS mt,p_course mc,p_grade_items gi WHERE TP.TEVA_CCOD = CS.TEVA_CCOD
AND cs.secc_ccod = mt.secc_ccod AND cs.cali_ncorr = mt.cali_ncorr AND mc.idnumber = TO_CHAR (cs.secc_ccod) and mc.id=gi.courseid and mt.ITEMMODULE = gi.id
AND mc.id = ".$filters['cursos']; */
$rs = $authdb->Execute( $sql_auth );
$objects = array();
if (is_array($rs) || is_object($rs))
{
foreach($rs as $vrs){
$key = reset($vrs);
$data_cal = $vrs["CALISIGA"];
$fcreaAAI = $vrs['FCREACIONAAI'];
$ftraspaso = $vrs['FTRASPASO'];
$idtraspaso = $vrs['IDTRASPASO'];
$itemname = $vrs['ITEMNAME'];
$fdia = $vrs['FDIA'];
$submissions = array('itemname' => $itemname, 'calisiga' => $data_cal, 'fcreacion' => $fcreaAAI, 'ftraspaso' => $ftraspaso,'idtraspaso'=>$idtraspaso, 'fdia' => $fdia);
if (array_key_exists($key, $objects)) {
debugging("Error...");
}
$objects[$key] = (object)$submissions;
}
}
// }
return $objects;
}
/**
* Displays a table of curriculum_files
*
* @param array $submissions array of record objects
* @param array $params - contains paging parameters mu.firstname, mu.lastname,uc.profesion_generic, uc.profesion_amplio
*/
function x_traspasonotasexam_display_list($submissions, $params) {
global $DB;
// var_dump($submissions);
if ($submissions) {
//Cabecera de la tabla
echo html_writer::start_tag('table', array('id'=>'view-tabla','style'=>'margin: 0 auto;'));
echo html_writer::start_tag('tr');
echo html_writer::start_tag('td');
echo '<h2> Actividades LMS-Online</h2>'."\n";
echo html_writer::end_tag('td');
echo html_writer::start_tag('td');
echo html_writer::end_tag('td');
echo html_writer::start_tag('td');
echo '<h2> Examen en SIGA</h2>'."\n";
echo html_writer::end_tag('td');
echo html_writer::end_tag('tr');
echo html_writer::start_tag('tr');
$table = new flexible_table('view-activities');
$table->define_columns(array('id','actividad','migrar'));
$table->define_headers(array('Item', 'Actividad','Seleccionar'));
$table->define_baseurl(new moodle_url('/report/traspasonotasexam/index.php', $params));
$table->collapsible(false);
$table->set_attribute('cellspacing', '1');
$table->set_attribute('id', 'view-activities');
$table->set_attribute('cellpadding','5');
$table->set_attribute('class', 'table table-bordered generaltable generalbox reporttable');
$table->sortable(false,'actividad','ASC');
$table->set_control_variables(array(
TABLE_VAR_SORT => 'ssort',
TABLE_VAR_HIDE => 'shide',
TABLE_VAR_SHOW => 'sshow',
TABLE_VAR_IFIRST => 'sifirst',
TABLE_VAR_ILAST => 'silast',
TABLE_VAR_PAGE => 'spage'
));
echo html_writer::start_tag('td', array('valign'=>'top'));
$table->setup();
// print_r($submissions);
if ($submissions) {
foreach ($submissions as $submission) {
$row = array();
$row[] = format_string($submission->item);
$row[] = format_string($submission->itemname);
if($submission->trapaso <> '0'){
$row[] =' ';
}else {
// AQUI if()
// if($submission->fdia > 15){
// $row[] = '*';
// }else{
$row[] ='<input type="radio" class="activcurs" id="activcurs" name="activ" value="' . $submission->item . '" /> ';
//}
}
$table->add_data($row);
}
// $row = array();
// // $row[] ='Seleccione la actividad que desea traspasar.';
// $row[] ='<td colspan="2">Seleccione la actividad que desea traspasar.</td>';
// $table->add_data($row);
}
$table->print_html();
echo html_writer::end_tag('td');
echo html_writer::start_tag('td');
echo '<img src="Flecha.png" alt="calificaciones" height="22" width="22">'."\n";
echo html_writer::end_tag('td');
}
else
{
return '<br> <strong> Nada que mostrar </strong>';
}
$course = $DB->get_record('course', array('id' => $params['cursos']), 'idnumber', MUST_EXIST);
$enrol = enrol_get_plugin('dbinacap311');
$authdb = $enrol->db_init_inacap311();
/* $dbe = new auth_plugin_db_inacap;
$authdb = $dbe->db_init(); */
$table_cal = new flexible_table('view-grades-siga');
$table_cal->define_columns(array('nro','calificacion','fecha','ponderacion','seleccione'));
$table_cal->define_headers(array('Nro.','Calificaciones','F. Termino Sección',format_string('Ponderación'),'Seleccione'));
$table_cal->define_baseurl(new moodle_url('/report/traspasonotasexam/index.php', $params));
$table_cal->collapsible(false);
$table_cal->set_attribute('cellspacing', '1');
$table_cal->set_attribute('id', 'view-grades-siga');
$table_cal->set_attribute('cellpadding','5');
$table_cal->set_attribute('class', 'table table-bordered generaltable generalbox reporttable');
echo html_writer::start_tag('td', array('valign'=>'top'));
$table_cal->setup();
$row_cal = array();
$sqlDif = "select asi.tasg_ccod,(select ponf_jnota_examen *100
from ponderaciones_nota_final where talu_ccod = nvl (1, 1) and peri_ccod_inicio <= sc.peri_ccod
and sc.peri_ccod <= decode (peri_ccod_termino,0, sc.peri_ccod,peri_ccod_termino))
pond_examen from secciones sc, asignaturas asi Where sc.asig_ccod = asi.asig_ccod and sc.secc_ccod=".$course->idnumber;
$result = $authdb->Execute( $sqlDif );
foreach($result as $Ndif){
$dific = isset($Ndif['POND_EXAMEN']) ? $Ndif['POND_EXAMEN'] : 0;
}
$sql_auth = "
Select nvl(b.suma,0) suma, a.* from (
Select 0 cali_nevaluacion, s.SECC_FTERMINO_SEC feval, to_char(S.SECC_FTERMINO_SEC, 'dd-mm-yyyy') CALI_FEVALUACION, $dific CALI_NPONDERACION, 'Examen' TEVA_TDESC, s.secc_ccod,
case nvl(mt.secc_ccod,0)
when 0 then '<input type=\"radio\" class=\"cali\" id=\"cali\" name=\"cali\" value=\"'|| s.secc_ccod ||'\" /> '
else ' '
end case,
trunc((sysdate - S.SECC_FTERMINO_SEC ),0) fdia
from secciones s, m_TRASPASONOTASEXAM mt
Where s.secc_ccod = mt.secc_ccod(+)
and s.secc_ccod=$course->idnumber
) a left join (select secc_ccod, count(CARG_NNOTA_FINAL) suma from cargas_academicas where secc_ccod = $course->idnumber group by secc_ccod) b
on b.secc_ccod = a.secc_ccod
order by feval
";
$rs = $authdb->Execute( $sql_auth );
// var_dump($rs);
if ($rs){
foreach ($rs as $r) {
$option_b =$r["CASE"];
if($r["SUMA"] != '0') {$option_b .= ' (**)';}
$data_cal = array($r["CALI_NEVALUACION"],$r["TEVA_TDESC"],$r["CALI_FEVALUACION"],$r["CALI_NPONDERACION"].' %',$option_b);
$table_cal->add_data($data_cal);
}
}
else
{
$row_cal[] = '';
$row_cal[] = '';
$row_cal[] = '';
$row_cal[] = '';
$row_cal[] ='';
$table_cal->add_data($row_cal);
}
//$rs->Close();
$table_cal->print_html();
echo html_writer::end_tag('td');
echo html_writer::end_tag('tr');
echo html_writer::start_tag('tr');
echo '<td colspan="3">'.format_string('El traspaso de notas Examen a SIGA se realiza por actividad.').'</td>';
echo html_writer::end_tag('tr');
echo html_writer::start_tag('tr');
echo '<td colspan="3">'.format_string('Seleccione una actividad del LMS Online y una calificación Examen planificada en SIGA para establecer su traspaso.').'</td>';
echo html_writer::end_tag('tr');
/* echo html_writer::start_tag('tr');
echo '<td colspan="3" style="font-weight:bold;">'.format_string('(*) “Sólo se listarán y podrán ser traspasadas las calificaciones dentro de los 15 días siguientes a la fecha de evaluación”').'</td>';
echo html_writer::end_tag('tr'); */
echo html_writer::start_tag('tr');
echo '<td colspan="3" style="font-weight:bold;">'.format_string('(**) “Indica existencia de Calificación Examen en SIGA”').'</td>';
echo html_writer::end_tag('tr');
echo html_writer::end_tag('table');
}
function x_get_user_coursesexa($userid, $onlyactive = false, $fields = NULL, $sort = 'visible DESC,sortorder ASC') {
global $DB;
// Guest account does not have any courses
if (isguestuser($userid) or empty($userid)) {
return(array());
}
$basefields = array('id', 'shortname', 'fullname', 'idnumber');
if (empty($fields)) {
$fields = $basefields;
} else if (is_string($fields)) {
// turn the fields from a string to an array
$fields = explode(',', $fields);
$fields = array_map('trim', $fields);
$fields = array_unique(array_merge($basefields, $fields));
} else if (is_array($fields)) {
$fields = array_unique(array_merge($basefields, $fields));
} else {
throw new coding_exception('Invalid $fileds parameter in enrol_get_my_courses()');
}
if (in_array('*', $fields)) {
$fields = array('*');
}
$orderby = "";
$sort = trim($sort);
if (!empty($sort)) {
$rawsorts = explode(',', $sort);
$sorts = array();
foreach ($rawsorts as $rawsort) {
$rawsort = trim($rawsort);
if (strpos($rawsort, 'c.') === 0) {
$rawsort = substr($rawsort, 2);
}
$sorts[] = trim($rawsort);
}
$sort = 'c.'.implode(',c.', $sorts);
$orderby = "ORDER BY $sort";
}
$params = array('siteid'=>SITEID);
if ($onlyactive) {
$subwhere = "WHERE ue.status = :active AND e.status = :enabled AND ue.timestart < :now1 AND (ue.timeend = 0 OR ue.timeend > :now2)";
$params['now1'] = round(time(), -2); // improves db caching
$params['now2'] = $params['now1'];
$params['active'] = ENROL_USER_ACTIVE;
$params['enabled'] = ENROL_INSTANCE_ENABLED;
} else {
$subwhere = "";
}
$coursefields = 'c.' .join(',c.', $fields);
$ccselect = ', ' . context_helper::get_preload_record_columns_sql('ctx');
$ccjoin = "LEFT JOIN {context} ctx ON (ctx.instanceid = c.id AND ctx.contextlevel = :contextlevel) LEFT JOIN {role_assignments} ra ON (ra.contextid = ctx.id and ra.roleid in (1,3,4,9))";
$params['contextlevel'] = CONTEXT_COURSE;
//note: we can not use DISTINCT + text fields due to Oracle and MS limitations, that is why we have the subselect there
$sql = "SELECT distinct $coursefields $ccselect
FROM {course} c
JOIN (SELECT DISTINCT e.courseid
FROM {enrol} e
JOIN {user_enrolments} ue ON (ue.enrolid = e.id AND ue.userid = :userid)
$subwhere
) en ON (en.courseid = c.id)
$ccjoin
WHERE c.id <> :siteid
and userid= :iduser
$orderby";
$params['userid'] = $userid;
$params['iduser']= $userid;;
//$params['category'] = '2';
// echo '<br>'.$sql.'<br>';
//print_r($params);
//echo '<br>';
$courses = $DB->get_records_sql($sql, $params);
return $courses;
}
function x_traspasonotasexam_Display_Detalles($submissions, $params){
global $DB;
if ($submissions) {
$table = new flexible_table('view-resumen');
$table->define_columns(array('cali_ncorr','calisiga','fcreacion', 'ftraspaso','','idtrapaso'));
$table->define_headers(array('Actividad Online', 'Examen SIGA','Fecha Creación Online', 'Fecha Traspaso a SIGA','Detalle','Acci&oacute;n'));
$table->define_baseurl(new moodle_url('/report/traspasonotasexam/index.php', $params));
$table->collapsible(false);
$table->set_attribute('cellspacing', '1');
$table->set_attribute('id', 'view-resumen');
$table->set_attribute('cellpadding','5');
$table->set_attribute('class', 'generaltable generalbox reporttable');
$table->set_attribute('style','margin: 0 auto;');
$table->setup();
// echo '<pre>';var_dump($submissions);echo '</pre>';
foreach($submissions as $submission) {
$row = array();
$row[] = $submission->itemname;
$row[] = $submission->calisiga;
$row[] = $submission->fcreacion;
if($submission->ftraspaso == 0 ){
$row[] = '';
}else{
$row[] = date('d-m-Y', $submission->ftraspaso);
}
$row[] ='<a data-toggle="modal" href="#myModal" id="'.$submission->idtraspaso.'" class="btn btn-primary btn-large">Detalle</a> ';
if($submission->ftraspaso == 0){
$row[] = '&#160;<input type="button" name="ftraspaso" id="'.$submission->idtraspaso.'" value="Traspasar"/> &#160;<input type="button" name="ftraspasoelim" id="'.$submission->idtraspaso.'" value="Eliminar"/>';
}else{
$row[] = 'Ejecutado (Ver Detalles)';
}
$table->add_data($row);
}
$table->print_html();
}
else
{
return '<br> <strong> Nada que mostrar </strong>';
}
}
function x_traspasonotasexam_get_list_detalle($id_traspaso) {
global $DB;
//$sqlcourses='SELECT id item, itemname, itemtype, grademin, grademax FROM {grade_items} WHERE itemtype <> \'course\' and courseid = :cursos';
$sqlusers= "select MU.FIRSTNAME ||', '||MU.lastNAME usuario, tnd.grade puntaje, tnd.nota nota, tnd.OBSERVACION from m_TRASPASONOTASEXAM_DET tnd, m_user mu
where TND.USERID=MU.ID
and TND.TRASPASOIDEXE = $id_traspaso
order by FIRSTNAME, lastNAME ";
$submissions = $DB->get_records_sql($sqlusers);
// var_dump($submissions);
return $submissions;
}
function x_traspasonotasexam_Display_Detalles_lista($id_traspaso){
global $DB;
$submissions=traspasonotasexam_get_list_detalle($id_traspaso);
if ($submissions) {
$table = new flexible_table('view-detalles');
$table->define_columns(array('usuario','puntaje','nota', 'observacion'));
$table->define_headers(array('Usuario', 'Puntaje','Nota SIGA', 'Observaci&oacute;n'));
$table->define_baseurl(new moodle_url('/report/traspasonotasexam/index.php'));
$table->collapsible(false);
$table->set_attribute('cellspacing', '1');
$table->set_attribute('id', 'view-detalles');
$table->set_attribute('cellpadding','5');
$table->set_attribute('class', 'generaltable generalbox reporttable');
$table->set_attribute('style','margin: 0 auto;');
$table->setup();
// echo '<pre>';var_dump($submissions);echo '</pre>';
foreach($submissions as $submission) {
$row = array();
$row[] = $submission->usuario;
$row[] = $submission->puntaje;
$row[] = $submission->nota;
$row[] = $submission->observacion;
$table->add_data($row);
}
echo ' <!-- Modal -->
<div class="modal" id="myModal" style="display:none">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Detalle Traspaso Notas</h4>
</div>
<div class="modal-body">'.
$table->print_html()
.'</div>
<div class="modal-footer">
<a href="#" class="btn btn-default" data-dismiss="modal">Cerrar</a>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->';
}
else
{
return '<br> <strong> Nada que mostrar </strong>';
}
}
function x_miCursoexa($id){
global $DB;
$sqlcurso= "Select fullname from m_course Where id=".$id;
$submissions = $DB->get_records_sql($sqlcurso);
foreach ($submissions as $submission) {
return 'Mi Curso: '. $submission->fullname;
}
}

32
module.js Normal file
View File

@ -0,0 +1,32 @@
M.report_traspasonotasexam = {};
M.report_traspasonotasexam.init = function(Y) {
Y.all('#activcurs input[type=radio]').on('click', function(e) {
var valor = Y.one("input[type=radio][name^=activ]").getAttribute('value');
alert('listo');
});
Y.on('submit', function(e) {
// Y.all('input[type="radio"]').each(function(t) {
// var valor = t.one('#activcurs').getAttribute('value');
// alert(valor);
// });
var valor = Y.one("input[type=radio][name^=activ]").getAttribute('value');
}, '#gradesform');
};

38
paginacion.js Normal file
View File

@ -0,0 +1,38 @@
var numAct = 1;
$(document).ready(function()
{
var pager = new Pager("resultados", 10);
pager.init();
pager.showPageNav("pager", "NavPosicion");
pager.showPage(1);
}
);
function mostrarPagina(num){
var pager = new Pager("resultados", 10);
pager.init();
pager.showPageNav("pager", "NavPosicion");
pager.showPage(num);
numAct = num;
}
function next(){
var pager = new Pager("resultados", 10);
var rows = document.getElementById("resultados").rows;
if (rows.length > 10){
pager.init();
pager.showPageNav("pager", "NavPosicion");
numAct = pager.next(numAct);
}
}
function prev(){
var pager = new Pager("resultados", 10);
pager.init();
pager.showPageNav("pager", "NavPosicion");
numAct = pager.prev(numAct);
}

91
paging.js Normal file
View File

@ -0,0 +1,91 @@
function Pager(tableName, itemsPerPage) {
this.tableName = tableName;
this.itemsPerPage = itemsPerPage;
this.currentPage = 1;
this.pages = 0;
this.inited = false;
this.showRecords = function(from, to) {
var rows = document.getElementById(tableName).rows;
$('.emptyrow').remove();
// alert('filas>>' + rows);
// i starts from 1 to skip table header row
for (var i = 1; i < rows.length; i++) {
// alert(rows[i].innerHTML);
if (i < from || i > to)
rows[i].style.display = 'none';
else
rows[i].style.display = '';
}
}
this.showPage = function(pageNumber) {
$('.emptyrow').remove();
if(pageNumber == 1){
$("#prev").attr("style","display:none;");
}else{
var maxPageNumber = $("#maxfield").html();
if(pageNumber == maxPageNumber-1){
$("#next").attr("style","display:none;");
}else{
$("#prev").removeAttr("style");
}
}
$("#number"+pageNumber).html(pageNumber);
if (! this.inited) {
alert("Error 1 !");
return;
}
var oldPageAnchor = document.getElementById('pg'+this.currentPage);
oldPageAnchor.className = 'pg-normal';
this.currentPage = pageNumber;
var newPageAnchor = document.getElementById('pg'+this.currentPage);
newPageAnchor.className = 'pg-selected';
var from = (pageNumber - 1) * itemsPerPage + 1;
var to = from + itemsPerPage - 1;
this.showRecords(from, to);
}
this.prev = function(numAct) {
if (numAct > 1)
this.showPage(numAct - 1);
return numAct - 1;
}
this.next = function(numAct) {
if (numAct < this.pages) {
this.showPage(numAct + 1);
return numAct + 1;
}
}
this.init = function() {
$('.emptyrow').remove();
var rows = document.getElementById(tableName).rows;
var records = (rows.length - 1);
this.pages = Math.ceil(records / itemsPerPage);
this.inited = true;
}
this.showPageNav = function(pagerName, positionId) {
if (! this.inited) {
alert("Error 2 !");
return;
}
var element = document.getElementById(positionId);
var pagerHtml = 'P&aacute;gina: <span id="prev" onclick="prev();" class="pg-normal" style="size:12px;" onmouseover="this.style.cursor=\'pointer\'"> (<a href="#">Anterior</a>) </span> | ';
for (var page = 1; page <= this.pages; page++)
pagerHtml += '<span id="pg' + page + '" class="pg-normal" onclick="mostrarPagina(' + page + ')" style="size:12px;" onmouseover="this.style.cursor=\'pointer\'"><span id="number'+page+'"><a href="#">' + page + '</a></span></span> | ';
pagerHtml += '<span id="next" onclick="next();" class="pg-normal" style="size:12px;" onmouseover="this.style.cursor=\'pointer\'"> (<a href="#">Siguiente</a>)</span><div id="maxfield" style="display:none;">'+page+'</div>';
element.innerHTML = pagerHtml;
}
}

39
settings.php Normal file
View File

@ -0,0 +1,39 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Links and settings
*
* Contains settings used by assignment files report.
* @package report
* @subpackage curriculum_files
* @author Russell England <russell.england@gmail.com>
* @copyright Russell England <russell.england@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die;
// Just a link to course report.
$ADMIN->add('reports', new admin_externalpage('report_traspasonotasexam',
get_string('pluginname', 'report_traspasonotasexam'),
"$CFG->wwwroot/report/traspasonotasexam",
'report/traspasonotasexam:view'));
// echo '<pre>';
// print_r($ADMIN);
// echo '</pre>';
// No report settings.
$settings = null;

32
version.php Normal file
View File

@ -0,0 +1,32 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Version details
*
* Contains settings used by assignment files report.
* @package report
* @subpackage assignment_files
* @author Russell England <russell.england@gmail.com>
* @copyright Russell England <russell.england@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die;
$plugin->version = 2013091500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2012112900; // Requires this Moodle version.
$plugin->component = 'report_traspasonotasexam'; // Full name of the plugin (used for diagnostics).