Guía de administración del módulo GDPI

Introducción

El módulo de gestión de derechos de propiedad intelectual trata de asegurar que los usos de obras o de fragmentos de obras impresas o susceptibles de serlo se ajustan a la legalidad. Al mismo tiempo, recopila información para determinar criterios de reparto justo de la remuneración equitativa entre los titulares de derechos a la que da derecho la ley. Puede encontrar una guía de usuario del Módulo en el siguiente enlace.

El módulo permite:

  • Asociar un conjunto de metadatos a los ficheros subidos por el profesorado del curso. Dicho conjunto de metadatos incluye, qué tipo de contenido contiene el fichero, el autor de la obra, las páginas utilizadas, la licencia, etc.
  • Realizar consultas a personal especializado en la institución sobre derechos de autor.
  • Facilitar la tramitación de licencias para aquellas obras que lo requieran.
  • Facilitar la auditoría de los metadatos registrados a las entidades de gestión de derechos. 

A partir de los metadatos recogidos, el sistema asigna un estado de tramitación a los ficheros. Dicho estado de tramitación puede disparar un conjunto de acciones sobre los contextos que lo contienen. Por ejemplo, si no ha sido tramitado por el profesorado durante un periodo de tiempo configurable (por defecto un día), la actividad o recurso que lo contiene pasa a ser invisible y, por lo tanto, a no estar disponible para el estudiantado.

Estado de desarrollo

  • Versión recomendada: 0.6.1
  • Fecha de publicación versión:  

Instalación

Encontrará información sobre la instalación del módulo en el repositorio de código del mismo.

Puesta en marcha

Tras la instalación del plugin realice los pasos siguientes:

  • Deshabilite la tarea local_lpi\task\hide_expired_modules inmediatamente. Para prevenir ocultaciones de actividades en la fase inicial del despliegue. Dejarla desactivada durante unas semanas ayudará al profesorado de la institución a asimilar el trabajo de clasificación que tendrán que realizar a partir de ahora. 
  • Excluya los ficheros de cursos que no desee que formen parte de la tramitación de los ficheros, por ejemplo, cursos correspondientes a cursos académicos anteriores.
  • Ejecute la tarea local_lpi\task\insert_orphaned_files. Esto le puede llevar un tiempo.
$ sudo -u www-data php admin/tool/task/cli/schedule_task.php --execute=\local_lpi\task\insert_orphaned_files
  • Si utiliza Boost como tema para su Moodle, añada el contenido del fichero misc/boost_enhance.scss al parámetro de configuración Site administration > Appearance > Themes > Boost > Raw SCSS. Puede encontrar el contenido a añadir también en el siguiente recuadro:
SCSS a añadir a Boost.
// Remove the document content label and give more space to radio buttons.
#page-local-lpi-detailed_review {
    #detailed-review-form {
        .document_content_field {
            .col-md-3 {
                 display: none;
            }
            .col-md-9 {
                 width: 95%;
            }
            label {
                font-weight: bold;
            }
            em {
                display: block;
                font-size: 0.8em;
                margin-left: 18px;
                margin-bottom: 0.8em;
                font-style: normal;
            }
        }
    }
}

Exclusión de ficheros

El sistema excluye automáticamente algunos ficheros de la necesidad de tramitación. Son los siguientes:

  • Los ficheros subidos por el estudiantado. De momento se excluyen del ámbito de aplicación del plugin.
  • Algunas áreas de los siguientes componentes:
    • Los ficheros del componente assignfeedback_editpdf ubicados en las siguientes áreas:
      • assignfeedback_file
      • assignfeedback_file_batch
      • assignfeedback_file_import
    • Los ficheros del componente mod_dialogue ubicados en las siguientes áreas:
      • attachment
      • message
  • Los ficheros de ubicados en la zona de backups del curso.
  • Los ficheros de audio. No son obras textuales.
  • Los ficheros de vídeo. No son obras textuales.
  • Los ficheros de imagen. No son obras textuales.

Para el plugin, un estudiante es un usuario que tiene la capacidad local/lpi:countasstudent activa en el contexto específico.

Aún con esto, hay casos particulares que no deban entrar dentro del flujo de tramitación. Algunos ejemplos son los siguientes:

  • En la puesta en marcha del sistema se desea excluir cursos que se mantienen en línea en la instalación pero que ya no están en uso.
  • Un fichero de audio subido que moodle no detecta como fichero de audio.

En estos casos, el sistema permite excluir ficheros particulares o todos los ficheros del curso.

Exclusión de ficheros en cursos

Todos aquellos cursos que figuren en la tabla local_lpi_ignored_courses son ignorados. Podemos emplear el comando local/lpi/cli/ignore_course.php para este propósito:

Comando ignore_course.php
$ sudo -u www-data php local/lpi/cli/ignore_course.php --courseid=20

Exclusión de ficheros individuales

Todos los ficheros que figuren en la tabla local_lpi_ignored_files son ignorados. Aquí se apuntan los ficheros subidos por el estudiantado. Sería posible también utilizar la tabla para ignorar cualquier otro fichero. Por el momento, no tenemos comando cli que facilite este tipo de exclusión.

Estados de tramitación

Para el módulo, un fichero está en uno de los siguientes estados:

  • Desconocido. Es el estado en el que se encuentran todos los ficheros de un curso que no han sido tramitados.
  • En tramitación. En este estado se encuentran aquellos ficheros que, por la naturaleza de su contenido, requieren de la tramitación de una licencia. Dicha tramitación se resuelve de manera externa.
  • Autorizado. Este estado permite la publicación del fichero sin mayor problema.
  • No es una obra textual protegida ni contiene fragmentos de obras textuales protegidas. Este estado indica que no es una obra textual. Son ejemplos de estas obras, por ejemplo, programas de ordenador. Este caso no lo contempla el módulo.
  • No autorizado. Sólo se llega al estado No autorizado cuando desde la aplicación de tramitación de licencias se deniega la publicación.

Registro de eventos

El módulo dispara eventos según se van sucediendo distintas situaciones. Los eventos quedan registrados en los registros de Moodle (habitualmente en la tabla logstore_standard_log). En este apartado veremos el catálogo de eventos disparados, la información que proporcionan y algunos ejemplos de consultas útiles para explotar dicha información.


EventoInformación almacenadaDescripción
\local_lpi\event\doubt_sent

objectid. El id de la tablalocal_lpi_doubts.

context. El contexto del curso donde se plantea la consulta.

relateduserid. El id del usuario que plantea la consulta.

Campos other:

  • contenthash. El contenthash del fichero que se consulta
Se dispara cuando el profesorado envía una Consulta a los especialistas en propiedad intelectual de la institución.
\local_lpi\event\file_externally_reviewed

objectid. El id de la tabla local_lpi_file_metadata.

context. El contexto del curso donde se encuentra el fichero.

relateduserid. El id del usuario que rellenó el metadato.

Campos other:

  • type. El tipo de fichero declarado.
  • property. Indica la propiedad del fichero.
  • state. El estado en que se encuentra el fichero.
  • contenthash. El contenthash del fichero tramitado.
  • filename. El nombre del fichero tramitado.

Se dispara cuando un fichero en estado En tramitación es resuelto externamente por la aplicación de gestión de licencias.

\local_lpi\event\file_reviewed

objectid. El id de la tabla local_lpi_file_metadata.

context. El contexto del curso donde se realizó la revisión.

relateduserid. El id del usuario que realizó la revisión.

Campos other:

  • type. El tipo de fichero declarado.
  • property. Indica la propiedad del fichero.
  • state. El estado en que se encuentra el fichero.
  • contenthash. El contenthash del fichero tramitado.
  • filename. El nombre del fichero tramitado.

Se dispara cuando el profesorado tramita un fichero.

\local_lpi\event\license_expired

objectid. El id de la tabla local_lpi_file_metadata.

context. El contexto del curso en el que se encuentra el fichero.

relateduserid. El id del usuario que rellenó el metadato correspondiente al fichero ocultado.

Campos other:

  • metadataid. El id de la tabla local_lpi_file_metadata.
  • fileid. El id de la tabla files.
  • filename. El nombre de fichero.
  • modulename. El nombre de la actividad donde se encontraba el fichero.

Se dispara cuando se detecta que una licencia ha expirado.

\local_lpi\event\module_hidden

objectid. El id de la tabla course_modules.

context. El contexto del módulo.

relateduserid. El id del usuario que oculta el módulo.

Campos other:

  • fileid. El id de la tabla files.
  • courseid. El id de curso.

Se dispara cuando un módulo (actividad o recurso) ha sido ocultado automáticamente.

Capacidades

Una descripción de las capacidades que define el módulo.

CapacidadNombreDescripción
local/lpi:countasstudentEl usuario se considera un estudiante del curso

Aquellos ficheros cuyos usuarios tengan permitida esta capacidad en el contexto de un curso NO son considerados para su tramitación.

Sólo los usuarios con el rol student tienen activa esta capacidad. De esta forma conseguimos que los ficheros subidos por el estudiantado no se tengan que declarar.

local/lpi:downloadfileDescargar fichero LPI

Esta capacidad permite la descarga de ficheros que se encuentren en cualquiera de las siguientes situaciones:

  • Que el fichero se encuentre en estado En tramitación.
  • Que se haya realizado una consulta sobre el fichero en los últimos 30 días.

Utilizamos esta capacidad para integrar la aplicación externa de tramitación de licencias.

local/lpi:addfilemetadataGestionar los metadatos de los ficherosUsuarios con esta capacidad pueden catalogar los ficheros de un curso. Tienen permitida esta capacidad, por defecto, el rol de Profesor con permisos de edición.
local/lpi:notifymodulehiddenNotifica que un módulo ha sido ocultadoUsuarios con esta capacidad pueden ser notificados de que una actividad ha sido ocultada automáticamente por el módulo por exceder el tiempo de tramitación establecido en configuración.
local/lpi:notifydoubtsentconfirmationConfirmación de que una duda ha sido enviadaUsuarios con esta capacidad pueden ser notificados de que su consulta ha sido enviada correctamente.
local/lpi:fileexternallyreviewedUn fichero ha sido revisado externamenteUsuarios con esta capacidad pueden ser notificados de que el estado de tramitación de un fichero En tramitación ha sido resuelto externamente.
local/lpi:notifyexpiredlicensesAviso de licencia expirada para un ficheroUsuarios con esta capacidad pueden ser notificados de que el tiempo máximo de licencia declarado para un fichero ha expirado.

Tareas programadas

NombreHabilitada por defectoPeríodo de ejecuciónDescripción
local_lpi\task\hide_expired_modulesOculta módulos expiradosCada 5 minutosSe encarga de ocultar las actividades y recursos que contengan ficheros pendientes de tramitación tras el periodo de tiempo configurado.
local_lpi\task\send_doubts_emailEnvía mensajes de dudaCada minutoSe encarga de enviar las consultas efectuadas por el profesorado a la dirección de correo electrónico configurada a tal efecto.
local_lpi\task\review_expired_licensesComprueba licencias expiradasUna vez al díaSe encarga de hacer transitar de estado los ficheros cuya licencia ha expirado.
local_lpi\task\insert_orphaned_filesInsertar ficheros huérfanosUna vez al díaSe encarga de insertar, en la tabla de metadatos, aquellos ficheros que no han sido tramitados todavía en el curso.

Notificaciones

MensajeNombreCapacidad asociadaDescripción
fileexternallyreviewedFichero revisado externamentelocal/lpi:fileexternallyreviewedEnvía mensaje de tramitación de fichero resuelta externamente. Esto sólo ocurre para aquellos ficheros que se hayan encontrado en estado En tramitación.
doubt_sent_confirmationConsulta enviada correctamentelocal/lpi:notifydoubtsentconfirmationEnvía un mensaje de confirmación de que una duda ha sido enviada correctamente a la dirección de correo electrónico establecido en la configuración.
hidden_module_confirmationMódulo ocultado automáticamentelocal/lpi:notifymodulehiddenEnvía un mensaje indicando que una actividad o recurso ha sido ocultado automáticamente.
license_expired_confirmationLicencia expiradalocal/lpi:notifyexpiredlicensesEnvía un mensaje indicando que el período de licencia establecido para un fichero ha expirado.

Configuración de los parámetros de consulta a especialista

El profesorado tiene la posibilidad de consultar con un especialista en propiedad intelectual las dudas que le puedan surgir sobre la catalogación o el uso correcto de materiales en una obra. Basta con proporcionar una dirección de correo electrónico en el módulo donde enviar las consultas que realiza el profesorado desde la interfaz de usuario del mismo.

Configuración de dirección de correo de consultas

Para establecer la dirección de correo de envío de consultas, configure el parámetro Correo electrónico para las dudas desde el apartado de configuración de local/lpi

Servicios externos

El plugin implementa dos servicios externos incluidos (built-in external services). Los servicio se instalan pero no están habilitados por defecto. Para obtener la funcionalidad que ofrecen es necesario habilitarlos.

NombreHabilitado por defectoDescripción
LPI Integration ServiceNoExpone funciones para integrar la aplicación externa de tramitación de licencias.
LPI Audit ServiceNoExpone funciones para permitir la auditoría de los ficheros tramitados.

Configuración de LPI Integration Service

El servicio permite obtener:

  • El listado de todos los ficheros en estado En tramitación.
  • Establecer un nuevo estado para un fichero dado en estado En tramitación.

Este servicio facilita la integración de una aplicación externa para la tramitación de licencias. El flujo de trabajo es el siguiente:

  • Un/a profesor/a solicita la tramitación de una licencia para un fichero en la pantalla de tramitación de un curso. Dicho de otro modo, el profesorado establece el estado de un fichero a En tramitación.
  • A partir de ese momento, no es posible para el profesorado del curso cambiar el estado del fichero.
  • El módulo GDPI envía un correo electrónico a la dirección configurada en el parámetro Correo electrónico de tramitación pendiente avisando de que existe una nueva solicitud de tramitación de fichero pendiente.
  • El personal especialista en propiedad intelectual de la institución accede a la aplicación de tramitación de licencias.
  • La aplicación de tramitación de licencias muestra un listado de los ficheros en estado En tramitación.
  • Para cada fichero, el personal especialista en propiedad intelectual puede cambiar el estado del fichero a cualquiera de los estados indicados en el apartado Estados de tramitación (excepto, obviamente, el estadoEn tramitación).
  • Cambiado el estado, el profesorado que solicitó el estado de tramitación recibe un correo indicando que se resolvió la tramitación del fichero indicando el resultado de la misma (autorizada, denegada, etc.).

Si se utiliza la aplicación de gestión de licencias elaborada por la Universitat Jaume I deberemos:

  • Habilitar los servicios web del Moodle.
  • Habilitar el protocolo REST.
  • Habilitar el servicio LPI Integration Service.
  • Habilitar la autenticación por Web Service.
  • Crear un usuario LPI Integration User con autenticación Web Service.
  • Crear el rol LPI Integration Role asignable a nivel de sistema con las capacidad local/lpi:addfilemetadata, local/lpi:downloadfilemoodle/rest:use autorizadas. 
  • Asignar el rol LPI Integration Role al usuario LPI Integration User en el contexto de sistema.
  • Autorizar al usuario LPI Integration Role en el servicio LPI Integration Service.
  • Crear un token para el usuario LPI Integration User.

Ese token será el que tendremos que utilizar en la aplicación de tramitación de licnecias.

Descarga de ficheros

No se implementa como una función externa pero, es importante saber que la aplicación de gestión de licencias permite la descarga de los ficheros en estado En tramitación. De esta funcionalidad se encarga el script local/lpi/download_file.php. Dicho script permite descargar al usuario que tenga la capacidad local/lpi:downloadfile en el curso donde se aloja el fichero:

  • Ficheros que se encuentren en el estado En tramitación.
  • Ficheros para los que se ha lanzado una consulta el los últimos sesenta días.

Configuración de LPI Audit Service

El servicio de auditoría permite a una entidad externa (básicamente una entidad de gestión de derechos) auditar la catalogación de los ficheros realizada por el profesorado. Para la correcta configuración del servicio procederemos como en el caso anterior:

  • Habilitar la autenticación Web Service.
  • Crear un usuario LPI Audit User con autenticación Web Service.
  • Crear un rol LPI Audit Role asignable a nivel de sistema con las siguientes capacidades habilitadas local/lpi:audit, moodle/rest:use local/lpi:downloadfile.
  • Asignar al usuario LPI Audit User el rol LPI Audit Role a nivel de sistema.
  • Habilitar el servicio externo LPI Audit Service.
  • Autorizar al usuario LPI Audit User la utilización de LPI Audir Service.
  • Crear un token externo para LPI Audit User y asociarlo al servicio LPI Audit Service.

El token será facilitado a la entidad externa encargada de la consulta.

Acceso al servicio de auditoría

Disponible a partir de la versión 0.4 del módulo.

Para acceder al servicio de auditoría, la entidad auditora deberá acceder haciendo POST llamando a la función external local_lpi_get_auditable_file_metadata. Sea:

  • LPI_AUDIT_TOKEN el token externo para LPI Audit User.
  • MOODLE_WWW_ROOT el wwwroot del Moodle.

lo siguiente es un ejemplo para acceder a la información solicitada:

$ curl --data "wstoken=LPI_AUDIT_TOKEN" "http://MOODLE_WWW_ROOT/webservice/rest/server.php?wsfunction=local_lpi_get_auditable_file_metadata&moodlewsrestformat=json&page=0&count=100"

Descarga de ficheros

No se implementa como una función externa pero es importante saber que, como parte de la auditoría, existe la posibilidad de descargar el fichero asociado a un metadato. El script encargado de la descarga del fichero es local/lpi/download_audit_file.php. El script permite la descarga de cualquier fichero de la instalación que haya sido catalogado por el profesorado y cumpla los siguientes requisitos:

  • Que no se encuentre en estado Desconocido.
  • Que no haya sido catalogado como un Documento administrativo.

Preguntas frecuentes

¿Qué pasa con los ficheros de un estudiante que se ha desmatriculado?

La tarea local_lpi\task\insert_orphaned_files marca a ignorar todos aquellos ficheros que sean de estudiantes en el momento de ejecución de la misma. Con esto en mente ocurre lo siguiente:

  • Si el estudiante queda desmatriculado del curso, los ficheros que subió previamente no aparecerán como pendientes de tramitación.
  • Si el estudiante es rematriculado como profesor del curso, los ficheros que subió deberán ser tramitados de nuevo.

Tengo el mismo fichero en varias actividades dentro de un mismo curso, ¿es necesario tramitarlo dos veces?

No. No es necesario. N ficheros con el mismo contenthash dentro de un mismo curso, aún estando en distintos contextos, comparten metadatos y, por lo tanto, el profesorado únicamente debe tramitarlo una vez.

¿Cómo se generan las previsualizaciones de ficheros de la página de tramitación?

A diferencia de la página de calificaciones de las tareas de Moodle, utilizamos la librería PDFjs para generar las previsualizaciones de los ficheros PDF. El resto de ficheros no disponen de previsualización. También a diferencia de la página de calificación de las taras de Moodle, no se realiza conversión de los ficheros y, por lo tanto, no incrementamos los requisitos de espacio en el dataroot. 

Cuando importo o restauro un curso donde ya he tramitado algunos ficheros ¿tiene el profesorado que volver a tramitar los ficheros?

No. El plugin implementa la funcionalidad de backup y restauracion de Moodle. Hay una excepción. Aquellos ficheros que fueron clasificados como "Es una obra cuya autoría es de profesorado de este curso" deben volver a tramitarse de nuevo: no sabemos si el profesorado sigue siéndolo en el nuevo. Esto puede conseguirse fácilmente utilizando la utilidad de tramitación en masa.

¿Cómo funciona la importación de cursos?

La importación es un caso particular de la restauración de cursos en Moodle por lo que, si no decimos lo contrario, lo dicho aquí es aplicable tanto a la restauración como a la importación.

  • Si se intenta restaurar los metadatos de un fichero al que todavía no se le han asociado metadatos en el curso destino o se encuentran en estado desconocido, se restauran.
  • Si se intenta restaurar los metadatos de un fichero al que ya se le han asociado metadatos en el curso destino, no se restauran los metadatos. Se conserva lo que ya ha establecido el profesorado previamente.

Los nuevos metadatos importados / restaurados heredan el usuario que originariamente rellenó los metadatos. Esto es importante saberlo. Dicho de otra manera:

  • P0 es profesor del curso C0.
  • P1 es profesor de los cursos C0 y C1.
  • P0 rellena los metadatos de los ficheros que tiene en C0 y, por lo tanto, es quien ha rellenado los mismos.
  • P1 importa los datos del curso C0 en C1.

En C1 los metadatos se consideran como rellenados por P0 y no por P1.