Problema con datos de "Carga de notas en Actas de Comisiones"

Hola buenas tardes!
Estamos teniendo un problema con la operación “Carga de notas en actas de comisiones”, lo que sucede es que carga la columna “apellido_y_nombre” con el valor “1”, en el formulario form_ml_notas, no pude encontrar la razón en el código. Probé haciendo un dump de los datos del formulario y aparecen correctamente. En form_ml_notas.php no hay ninguna referencia a cambios en esa columna tampoco.
Además de que deja éste campo como editable cuando me parece que ese campo junto con el de legajo tendrían que ser solo lectura.
La operación tiene una modificación en el campo “resultado”, en el cual se cambio de un combo a un radio button, pero no se hizo nunguna modificación funcional. El código está tal cual viene por defecto.

Alguna idea de que puede estar pasando?

Saludos,

Felipe.

Hola Felipe,

En qué versión están? Tienen commiteado al repositorio colab todos los cambios?

Saludos, Florencia.

Hola! Si, está todo commiteado, estamos en la 3.10.2

Gracias!

Felipe,

Estoy viendo que no sólo cambiaron el tipo del EF ‘resultado_cursada’ a ‘ef_radio’ sino que además:

  1. Agregaron el EF ‘legajo’.
  2. Ocultaron el EF ‘observacion_cursada’.
  3. Ocultaron el EF ‘nota_cursada’.

Esto lo quieren mantener así? Me parece raro que hayan ocultado la nota de cursada. Confirmame si lo quieren de esta manera y te digo cómo deberían personalizar la subclase del formulario multilínea para que se vea correctamente.

Saludos, Florencia.

Hola! Si ese cambio lo queremos mantener así, ya que en la institución no utilizan ese dato.

Gracias!

Felipe.

Felipe,

Antes que nada te comento que este mismo formulario se utiliza también en la operación “Cursadas » Comisiones » Carga de Notas a Comisiones”, por lo todas las modificaciones que hagan van a impactar en ambas. Quizás estaban al tanto de esto y es el comportamiento esperado…

Si te fijás en el formulario multilínea ‘form_ml_notas’ el mismo tiene una subclase particular: ‘operaciones/cursadas/comisiones/carga_notas/form_ml_notas.php’. En esta subclase está redefinido el método ‘generar_layout_fila’, que deja de tener el comportamiento correcto a raíz de las modificaciones que hicieron ustedes. Para que se vea bien lo más sencillo sería:

  1. Volver a colocar el EF ‘nota_cursada’ en su ubicación original (entre los EFs ‘nombre_instancia_cursada’ y ‘resultado_cursada’) y en lugar de cambiarle el tipo a ‘ef_oculto’ dejarlo como ‘ef_editable’ (respetando las propiedades de tamaño anteriores) y configurarlo como “Sólo lectura”.
  2. Volver a cambiar el EF ‘observacion_cursada’ para que sea de tipo ‘ef_editable’ (manteniendo las propiedades originales) y también configurarlo como “Sólo lectura”.
  3. Personalizar la subclase del formulario multilínea para tener en cuenta las nuevas ubicaciones de todos los EFs debido a que se agregó el dato ‘legajo’. Quedaría de la siguiente manera:
	function generar_layout_fila()
	{
		$instancia_cursada = $this->_elemento_formulario['instancia_cursada']->get_estado();
		$instancia_promocion = $this->_elemento_formulario['instancia_promocion']->get_estado();

		$extra = '';
		$nueva_fila = '';
		if ($instancia_cursada && $instancia_promocion) {
			$extra = 'rowspan=2';
			$nueva_fila = "</tr><tr>";
		}

		$oculto_cursada = '';
		if (! $instancia_cursada) {
			$oculto_cursada = "style='display:none'";
		}

		$oculto_promocion = '';
		if (! $instancia_promocion) {
			$oculto_promocion = "style='display:none'";
		}

		$i = 0;
		foreach ($this->_lista_ef_post as $ef) {
			if ($i == 0) { // El EF 'alumno' siempre es invisible. No se usa un 'ef_oculto' porque se necesita acceder a su valor desde JS.
				echo "<td $extra style='display:none'>";
			} elseif ($i < 4) { // Datos del alumno: ROWSPAN.
				echo "<td $extra>";
			} elseif ($i == 4) { // El EF 'instancia_cursar' siempre es invisible. No se usa un 'ef_oculto' porque se necesita acceder a su valor desde JS.
				echo "<td style='display:none'>";
			} elseif ($i < 13) { // Instancia cursar: ocultar.
				echo "<td $oculto_cursada>";
			} elseif ($i == 13) { // El EF 'instancia_promocion' siempre es invisible. No se usa un 'ef_oculto' porque se necesita acceder a su valor desde JS.
				echo "<td style='display:none'>";
			} else { // Instancia promocionar: ocultar.
				echo "<td $oculto_promocion>";
			}
			$this->generar_input_ef($ef);
			echo '</td>';
			if ($i == 12) { // Último EF de la instancia cursar: nueva fila.
				echo $nueva_fila;
			}
			if ($i == 16) { // Condición para la instancia promocionar: columna vacía.
				echo "<td $oculto_promocion>&nbsp;</td>";
			}
			$i++;
		}
	}

Saludos, Florencia.

Hola Florencia! Incorporé los cambios que me pasaste y quedó funcionando correctamente. Además agregué dos if’s para ocultar los ef’s nota_cursada y observacion_cursada. El formulario funciona bien en ambas operaciones.

Muchas gracias por tu ayuda!!

Saludos,

Felipe.