Foto en 3W

Estamos cargando fotos de alumnos y si bien se pueden visualizar desde gestión en la ficha de la persona, no asi en 3W.
Hay que ejecutar algún script?
Adjunto pantallas de gestión y 3W
Saludos
Ana


snip_20180824170235.png

snip_20180824170235.png

capture20180824170335692.png

capture20180824170335692.png

capture20180824170421239.png

capture20180824170421239.png

Para que las fotos esten disponibles desde la interfaz de autogestion (carga de notas en actas, carga de asistencia, encuestas de actuación docente - foto del docente-) deberán exportar la fotos al sistema de archivos.
Para ello deben correr el comando importar_fotos.
Configuracion Autogestion
Fijense los parámetros imagen_alumno_dir e imagen_alumno_url. Deben tener permiso de escritura en ese directorio a donde se creara cada archivo de la imagen de cada alumno y docente.

Hola!
Tenemos el mismo problema, hicimos el importar fotos, las rutas imagen_alumno_dir e imagen_alumno_url están seteadas, el proceso se corrió y dio como mensaje final 12000 fotos procesadas, que es el número que esperábamos.
Pero en la ruta imagen_alumno_dir hay fisicamente solo 1000 carpetas con 1 archivo cada una. No está fisícamente el archivo con el nombre que guardó en la tabla mdp_personas.id_imagen.
Esos son los archivos que busca autogestión y al no encontrarlos da 404 o la imagen rota en la asistencia.
Tenemos la versión 3.15.1.

Saludos,
Flavia

Hola Flavia,

Vuelvan a correr el comando con la opción –verbose para ver si muestra mas información. Luego pasanos la salida por consola.

saludos.

Adjunto archivo de salida al correr el importar foto y hago las siguientes aclaraciones.
Tenemos al menos 13000 fotos para importar, al correr el proceso para las 13000 nos salian los mismos mensajes que el de la salida que adjunto solo que en lugar de 3 fotos decía 12995.
Pero al visualizar una comisión de alumnos no salian las fotos, de esos 13000,.
Para probar le pusimos importar=0 a 3 fotos, corrimos el proceso, miramos la comisión y efectivamente estaban las fotos, entonces comenzamos poner sincronizar=0 a conjuntos de personas que podíamos identificar que no se veían las fotos y así las hacía pero no pudimos determinar cual es el nro máximo que procesa, los lotes los armabamos colocando importar=0 en un rango de nros de personas, pero no todas tienen fotos entonces capaz en un rango de 500 solo hacia 40.

Necesitamos correr el proceso de manera masiva, el lunes se migran facultades grandes con miles de fotos y aún no tenemos las de las facus ya migradas avisennos si necesitan mas detalles.
Saludos


salida_importar_fotos.txt (86.2 KB)

Hola Narda,

Antes que nada gracias por los logs. En los mismos observo que esta fallando la conexión con Kolla:


Actualización de la habilitacion '726' fallida: Client error: `PUT https://kolla.unc.edu.ar/rest/habilitaciones/726?unidad_gestion=03` resulted in a `404 Not Found` response:
<!DOCTYPE html>
<html>
  <head>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  <meta name="vi (truncated...)

Actualización de la habilitacion '372' fallida: Client error: `PUT https://kolla.unc.edu.ar/rest/habilitaciones/372?unidad_gestion=03` resulted in a `404 Not Found` response:
<!DOCTYPE html>
<html>
  <head>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  <meta name="vi (truncated...)
.......................................................................... y sigue ................

Esto es cuando quiere actualizar la url_imagenes_base en las habilitaciones de Kolla, hay que ver porque falla la comunicación con Kolla.

Les voy a pedir lo siguiente:

  1. Fijence si pueden ingresar a la API REST de Kolla https://kolla.unc.edu.ar/rest/, y ver el listado de servicios.

  2. Agreguen los siguientes var_dumps en la función actualizar_habilitacion del archivo src/siu/modelo_g3/nucleo/encuestas/encuesta_nucleo.php:


	public static function actualizar_habilitacion($datos, $ug)
	{
		$id = $datos['habilitacion'];
		unset($datos['habilitacion']);

		var_dump($id);
		var_dump($ug);
		var_dump($datos);
		
		$response = static::get_cliente_rest()
			->put('habilitaciones/'. $id,
				array(
                    'query' => array('unidad_gestion' => $ug),
                    'body'  => rest_encode($datos)
                )
			);

		self::validar_response($response, 204, __FUNCTION__);
	}

  1. Luego volver a correr el comando importar_fotos, y con los datos de los var_dumps probar el servicio PUT habilitaciones sobre la API REST de Kolla https://kolla.unc.edu.ar/rest/.

Prueben esto y cuéntennos como les va.

saludos.

Hola! Probé estos valores en el rest:
id_habilitacion 565
habilitacion {
“url_imagenes_base”: “https://autogestion.guarani.unc.edu.ar/_comp/_img_alumnos
}
unidad_gestion 03
Retorna 404 y adjunto cuerpo de la respuesta.
Saludos!
Flavia


cuerpoRta.txt (125 KB)

Hola Flavia,

No entiendo bien que es ese adjunto, lo abrí como HTML y me muestra el mensajes “FUERA DE SERVICIO”. Si eso es lo que te esta devolviendo Kolla, entonces es un problema con dicho sistema.

Una alternativa rápida seria no hacer la sincronización con Kolla, pero no verian las fotos del alumno/docente en dicho sistema. Puede comentar las siguientes lineas y volver a intentar:

Archivo src/siu/util/consola/comandos/importar_fotos.php lineas 65 y 115,


//$this->actualizar_url_imagenes_base_habilitaciones_kolla($output);
......
//$this->sincronizar_fotos_elementos_kolla($elementos_rest, $output);

saludos.


SelecciAn_010.jpg

SelecciAn_010.png

El problema era que en el archivo src/siu/modelo/entidades/alumno_foto.php seteaba :
const NUM_CARPETAS = 1000;
y nosotros tenemos muchas más fotos que requerían muchas más carpetas
Agrandamos ese valor y se solucionó.

Saludos, Flavia

Hola Flavia, me alegro que lo hayan podido solucionar!!!

Por nuestra parte vamos a ver dicho problema, para que no siga ocurriendo.

Lo extraño es que esa constante solo se usa para generar el nombre de la carpeta, y lo mas extraño es el calculo que hace:


	protected static function generar_carpeta($persona)
	{
		return md5($persona % self::NUM_CARPETAS);
	}

Vamos a ver de mejorarlo.

saludos.

Hola Flavia, ya se cual podría ser la causa del problema:

Al estar haciendo $persona % self::NUM_CARPETAS (osea $persona % 1000), se están repitiendo el nombre de las carpetas, fíjate:

Persona con ID 100: 100 % 1000 = 100
Persona con ID 1100: 1100 % 1000 = 100
Persona con ID 2100: 2100 % 1000 = 100

Se repite el valor que usa para generar el nombre de la carpeta, y cuando le hace el md5 este genera el mismo hash porque lo genera con el mismo valor.

La solución seria solo usar el ID de la persona:
src/siu/modelo/entidades/alumno_foto.php


	protected static function generar_carpeta($persona)
	{
		return md5($persona);
	}

Por favor, les pediría que prueben esta solución y nos cuenten si funciona, así ya la incorporamos para próximas versiones. Ya que ustedes ya tienen el caso y nos seria de gran ayuda.


NOTA: Aumentar el valor de la constante “NUM_CARPETAS” no es la mejor solución, se puede llegar a dar lo antes mencionado, supongamos NUM_CARPETAS = 2500: (2510 % 2500 = 10), (5010 % 2500 = 10), (7510 % 2500 = 10) y así …

saludos.

Borramos las fotos de disco, volvimos a migrarlas dejando la función así y funcionó bien.

protected static function generar_carpeta($persona)
{
	return md5($persona);
}

Gracias!
Flavia

Hola Flavia, gracias por probar y avisarnos!!!

Te comento que esto ya lo arreglamos para la próxima versión (3.16.0), te paso lo solución que hicimos:


	protected static function generar_carpeta($persona)
	{
		$salt = kernel::proyecto()->get('salt');
		return md5($salt . $persona);
	}

De esta forma es mas difícil que un “hacker” pueda acceder a las fotos de los alumnos generando los md5 de los IDs de las personas que son autoincrementales.

saludos.