http://projek.psico.edu.uy/2011-12-19T16:50:25-02:00Facultad de PsicologíaInventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=34942011-12-19T16:50:25-02:00Marc Briamarc.bria@uab.cat
<ul><li><strong>% Realizado</strong> cambiado <i>0</i> por <i>50</i></li><li><strong>Tiempo estimado</strong> establecido a <i>2.00</i></li></ul><p>Tras revisar opciones, la solución más limpia consiste en usar PHP en el autotítulo del nodo.</p>
<p>El código resultante es tan simple como:</p>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="line-numbers"> 1</span><span class="inline-delimiter"><?php</span>
<span class="line-numbers"> 2</span> <span class="local-variable">$termSyn</span>=<span class="predefined">array</span>();
<span class="line-numbers"> 3</span> <span class="local-variable">$vid</span>=<span class="integer">5</span>; <span class="comment">//Taxonomía con el Catálogo</span>
<span class="line-numbers"> 4</span>
<span class="line-numbers"> 5</span> <span class="local-variable">$getTerms</span> = <span class="local-variable">$node</span>->taxonomy[<span class="integer">5</span>]; <span class="comment">//Términos en jerarquizados (orden inverso).</span>
<span class="line-numbers"> 6</span>
<span class="line-numbers"> 7</span> <span class="keyword">foreach</span>(<span class="local-variable">$getTerms</span> <span class="keyword">as</span> <span class="local-variable">$tid</span>) {
<span class="line-numbers"> 8</span> <span class="local-variable">$syn</span> = taxonomy_get_synonyms(<span class="local-variable">$tid</span>); <span class="comment">//ver: Drupal Api [1]</span>
<span class="line-numbers"> 9</span> <span class="local-variable">$termSyn</span>[] = <span class="local-variable">$syn</span>[<span class="integer">0</span>];
<span class="line-numbers"><strong>10</strong></span> }
<span class="line-numbers">11</span>
<span class="line-numbers">12</span> <span class="local-variable">$termSynRev</span> = <span class="predefined">array_reverse</span>(<span class="local-variable">$termSyn</span>);
<span class="line-numbers">13</span>
<span class="line-numbers">14</span> <span class="comment">//return (var_export ($termSynRev, true));</span>
<span class="line-numbers">15</span> <span class="keyword">return</span> <span class="predefined">implode</span>(<span class="string"><span class="delimiter">'</span><span class="content">-</span><span class="delimiter">'</span></span> , <span class="local-variable">$termSynRev</span>);
<span class="line-numbers">16</span><span class="inline-delimiter">?></span>
</span></pre>
<p>Se detectan dos problemas imprevistos:</p>
<ol>
<li>La taxonomía del catálogo no se almacena: Probablemente debido a una mala configuración del módulo taxonomy_manager.</li>
<li>El código incluye 4 dígitos finales para cada objeto: Supongamos que existen dos "cargadores de pilas". El primero tendría código 0001 y el segundo 0002. Cabe esperar que el sistema incluya estos últimos dígitos automáticamente, por lo que habrá que revisar el código para que lance una consulta la base de datos y añada el número que corresponda.</li>
</ol>
<p>Sigo con el tema esta noche para que mañana Fio por fin pueda ponerse a introducir datos y hacer una prueba real del sistema.</p>
<p>[1]: <a class="external" href="http://api.drupal.org/api/drupal/modules--taxonomy--taxonomy.module/function/taxonomy_get_synonyms/6">http://api.drupal.org/api/drupal/modules--taxonomy--taxonomy.module/function/taxonomy_get_synonyms/6</a></p></code></pre> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=35542011-12-22T23:14:57-02:00Marc Briamarc.bria@uab.cat
<ul><li><strong>Fecha fin</strong> establecido a <i>22/12/2011</i></li><li><strong>Estado</strong> cambiado <i>En curso</i> por <i>Resuelta</i></li><li><strong>% Realizado</strong> cambiado <i>50</i> por <i>100</i></li><li><strong>Tiempo estimado</strong> cambiado <i>2.00</i> por <i>6.00</i></li></ul><p>El problema 1 es resultando de un bug endémico de content_taxonomy cuando se combina con hierarchical_select (HS): Cuando se almacena el "lineage" (o sea, toda la jerarquía de términos y no sólo el término hoja) y se actualiza un nodo, HS no es capaz de cargar el término hoja y hay que volver a introducir la taxonomía.</p>
El desarrollador de HS dice que no va a corregir más bugs en relación con content_taxonomy así que se cambia de aproximación:
<ol>
<li>No se almacena el "lineage" (sólo el tid de la última hoja)</li>
<li>Se obtienen los términos padre mediante la función <a href="http://projek.psico.edu.uy/projects/inventario/wiki/Taxonomy_get_parents_all" class="wiki-page new"><a class="external" href="http://api.drupal.org/api/drupal/modules--taxonomy--taxonomy.module/function/taxonomy_get_parents_all/6">http://api.drupal.org/api/drupal/modules--taxonomy--taxonomy.module/function/taxonomy_get_parents_all/6</a></a></li>
</ol>
Sobre el problema 2, tras pensar en ello se llega a la conclusión de que es complicado gestionar el "número de secuencia" de forma automática, así que se opta por:
<ol>
<li>Crear un campo específico con el número de secuencia</li>
<li>Mostrar el número de elementos mientras se escoge el término del catálogo.</li>
<li>Proponer un valor en ese campo.</li>
</ol>
<p>El código resultante para el auto título es:</p>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="line-numbers"> 1</span><span class="inline-delimiter"><?php</span>
<span class="line-numbers"> 2</span> <span class="local-variable">$termDesc</span>=<span class="predefined">array</span>(); <span class="comment">//Almacena los términos asociados (Description).</span>
<span class="line-numbers"> 3</span>
<span class="line-numbers"> 4</span> <span class="local-variable">$tid</span>=<span class="local-variable">$node</span>->field_catalogo[<span class="integer">0</span>][<span class="string"><span class="delimiter">'</span><span class="content">value</span><span class="delimiter">'</span></span>]; <span class="comment">// El identificador del término.</span>
<span class="line-numbers"> 5</span> <span class="local-variable">$getTerms</span> = taxonomy_get_parents_all(<span class="local-variable">$tid</span>); <span class="comment">// Sus padres.</span>
<span class="line-numbers"> 6</span>
<span class="line-numbers"> 7</span> <span class="keyword">foreach</span>(<span class="local-variable">$getTerms</span> <span class="keyword">as</span> <span class="local-variable">$term</span>) {
<span class="line-numbers"> 8</span> <span class="local-variable">$termDesc</span>[] = <span class="local-variable">$term</span>->description;
<span class="line-numbers"> 9</span> }
<span class="line-numbers"><strong>10</strong></span>
<span class="line-numbers">11</span> <span class="local-variable">$termDescRev</span> = <span class="predefined">array_reverse</span>(<span class="local-variable">$termDesc</span>);
<span class="line-numbers">12</span>
<span class="line-numbers">13</span> <span class="local-variable">$count</span> = <span class="string"><span class="delimiter">'</span><span class="content">[field_sequence-formatted]</span><span class="delimiter">'</span></span>;
<span class="line-numbers">14</span> <span class="local-variable">$codigo</span> = <span class="predefined">implode</span>(<span class="string"><span class="delimiter">'</span><span class="content">-</span><span class="delimiter">'</span></span> , <span class="local-variable">$termDescRev</span>).<span class="string"><span class="delimiter">'</span><span class="content">-</span><span class="delimiter">'</span></span>.<span class="predefined">sprintf</span>(<span class="string"><span class="delimiter">"</span><span class="content">%04d</span><span class="delimiter">"</span></span>,<span class="local-variable">$count</span>);
<span class="line-numbers">15</span>
<span class="line-numbers">16</span> <span class="comment">//DEBUG: return (var_export ($termDescRev, true));</span>
<span class="line-numbers">17</span>
<span class="line-numbers">18</span> <span class="keyword">return</span> <span class="local-variable">$codigo</span>;
<span class="line-numbers">19</span><span class="inline-delimiter">?></span>
</span></pre>
<p>Con todo ello, la tarea se da por finalizada y YA ES POSIBLE UTILIZAR LA APLICACIÓN para introducir los primeros datos reales (prueba piloto).</p>
<p>Se limpia completamente la BD para el piloto.</p>
<p>Se espera feedback.</p></code></pre> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=35642011-12-23T16:43:18-02:00Luis Alonzo Fulchi
<ul><li><strong>Estado</strong> cambiado <i>Resuelta</i> por <i>Cerrada</i></li></ul><p>Ale, te animás a revisar esto?</p>
<p>Ya estaría funcional el inventario. Quizás el lunes se pueda empezar a cargar. Cierro la tarea. Cualquier cosa abrimos nuevas.</p> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=35652011-12-23T16:52:21-02:00Alejandro Maicheamaiche@psico.edu.uy
<ul></ul><p>ok. solo falta qwue fiorella introduzca datos y lo pruebe...<br />yo ya mande el texto pa el home!</p> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=35682011-12-23T17:05:48-02:00Luis Alonzo Fulchi
<ul></ul><p>No encuentro el texto que decís, ni acá: <a href="http://projek.psico.edu.uy/issues/1871" class="issue status-5 priority-1 closed child" title="Texto de introducción y espacio de trabajo (Cerrada)">#1871</a>, ni en portada.</p> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=36022011-12-27T10:40:32-02:00Marc Briamarc.bria@uab.cat
<ul></ul><p>El código de secuencia es complicado de gestionar pues al crear un nodo, todavía no se sabe que término del catálogo se le va a vincular, por lo tanto no se puede deducir la secuencia... y al editar el nodo, este código no debe variar.</p>
<p>Por ello, para el piloto, se opta por dejar el código secuencia en manos del "funcionario" y activar los contadores de términos para dar indicadores que permitan incluir el número correlativo.</p>
<p>Dicho de otro modo, parece que lo natural es que sea un código que añade manualmente el "funcionario" a su gusto y antojo (validando que sea entre 0 y 9999).</p> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=36182011-12-27T17:30:18-02:00Luis Alonzo Fulchi
<ul><li><strong>Estado</strong> cambiado <i>Cerrada</i> por <i>Comentarios</i></li></ul><p>No entiendo. Entonces el código no se autogenera, sino que es el funcionario que agrega un código? y si repite le avisa? y cómo sabe cuál fue el último? Quizás estoy un poco mareado con esto.</p> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=36252011-12-28T10:41:09-02:00Marc Briamarc.bria@uab.cat
<ul></ul><p>Es para marearse, pues con el tema hemos dado ya 3 vueltas. :-)<br />Pero me atrevería a decir que con lo que tenemos ahora ya está resuelto.</p>
<p>Vamos por partes:</p>
<p>El código se auto genera en base al catálogo (lo he probado bastante y funciona bien) y un número correlativo (número secuencia de artículo).</p>
<p>De los 13 dígitos los últimos 4 son es una secuencia (imagina que se compran 2 impresoras idénticas... pues serían xxx-0001 y xxx-0002). El tema es que el sistema no puede saber el número de secuencia, así que pone 1 y espera a que el funcionario corrija (en base al número que indica el selector del catálogo que si que avisa del número de elementos existentes).</p>
<p>Si quieres un día hacemos un skype y te explico compartiendo pantalla. sip?</p>
<p>En resumen: El catálogo está resuelto, pero dedicar tiempo a un automatismo (ajax, javascript...) para el código de secuencia me parece excesivo.</p>
<p>En cualquier caso, si se considera imprescindible le echo un ojo.</p>
<p>Lo que si que podría estar bien es detectar códigos idénticos, por si el funcionario se despista con la secuencia.</p> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=40692012-02-06T08:14:37-02:00Marc Briamarc.bria@uab.cat
<ul></ul><p>La tarea está finalizada, pero faltan comentarios y tomar una decisión sobre el catálogo para cerrar del todo.</p>
<p><strong>Duda Importante:</strong> ¿Qué hacemos con los objetos que no tienen los 3 elementos (FAMILIA-SUBFAMILIA-ELEMENTO-Secuencia)? El código que se genera es "parcial" y queda... raro. Pe: INF-MON--0001</p>
<p>(Pondría un ejemplo real, pero ahora mismo desde la UAB no se ve la web)</p>
<p>Propongo que se complete la taxonomía para que SIEMPRE se tengan 4 elementos y forzar a que se escoja una "hoja".</p> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=47282012-03-02T16:21:45-02:00Luis Alonzo Fulchi
<ul><li><strong>Asignado a</strong> cambiado <i>Marc Bria</i> por <i>Alejandro Maiche</i></li></ul><p>Propongo lo decida Ale, ya que no veo que haya feedback de otro lado de la institución</p> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=54492012-03-27T13:12:28-03:00Luis Alonzo Fulchi
<ul><li><strong>Asignado a</strong> cambiado <i>Alejandro Maiche</i> por <i>Marc Bria</i></li><li><strong>% Realizado</strong> cambiado <i>100</i> por <i>80</i></li></ul><p>Ale, ya que no moviste esta tarea, la voy a mover un poco yo y se la paso a Marc con una pregunta.</p>
Además apareció otro problema <a href="http://projek.psico.edu.uy/issues/2701" class="issue status-5 priority-4 closed" title="Nombre no se construye correctamente (Cerrada)">#2701</a> que me impulsa a proponer lo siguiente:
<ul>
<li><strong>que la URL se construya a partir de un ID único, numérico y secuencual de 1 hasta n</strong></li>
</ul> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=55252012-03-28T13:51:25-03:00Marc Briamarc.bria@uab.cat
<ul></ul><p>Respondo aquí a este hilo, pero también al <a href="http://projek.psico.edu.uy/issues/2701" class="issue status-5 priority-4 closed" title="Nombre no se construye correctamente (Cerrada)">#2701</a> pues ambos están estrechamente relacionados.</p>
<p>Como dijo el amigo "Jack", vayamos por partes :-)<br />Un poco más de info antes de tomar la decisión:</p>
<ol>
<li>Los objetos tienen 2 urls: La dirección que le asigna el sistema (pe: <a class="external" href="http://inventario.psico.edu.uy/es/node/220">http://inventario.psico.edu.uy/es/node/220</a>) y el alias que le asignamos (pe: <a class="external" href="http://inventario.psico.edu.uy/es/material/inf-ins-0001-1">http://inventario.psico.edu.uy/es/material/inf-ins-0001-1</a>)</li>
<li>Se asignó un alias para permitir acceder a un objeto directamente con el código del mismo (<a class="external" href="http://inventario.psico.edu.uy/es/material/<código-objeto>">http://inventario.psico.edu.uy/es/material/<código-objeto></a>) pudiendo prescindir así del QR en los casos en los que el código estuviese dañado, no se dispusiera de lector, etc.</li>
<li>Los códigos QR "apuntan" a la URL del sistema (pe: node/220) en vez de apuntar al alias (pe: material/inf-ins-0001-1).</li>
</ol>
Así pues:
<ul>
<li>No modificaría los alias que incluyen el código pues ofrecen una funcionalidad extra.</li>
<li>Si se han generados alias incorrectos (al no disponer de la descripción de la taxonomía), corregiría la taxonomía (ver Taxonomy Manager) y luego regeneraría todos los alias de material del sistema. Este cambio en los alias no supondrá un problema para su correcto funcionamiento de la aplicación, ya que los códigos QR no usan estos alias.</li>
<li>Insisto: en el sistema no puede inventarse un funcionamiento para un caso que NO debería existir (en base a la codificación definida TODOS los objetos HAN DE tener FAMILIA-SUBFAMILIA-ELEMENTO, así pues, cualquier elemento del catálogo debe tener siempre estos 3 niveles o es imposible <del>para el sistema o para un ser humano</del> definir un código coherente con lo establecido).</li>
</ul>
<p>¿Cómo lo ven?</p> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=55292012-03-28T14:31:26-03:00Luis Alonzo Fulchi
<ul><li><strong>% Realizado</strong> cambiado <i>80</i> por <i>90</i></li></ul><p>Muy bien ! Excelente Marc, así que parece que el confundido era yo entonces.</p>
<p>Solucionaremos lo de las hojas y las clasificaciones.</p> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=55302012-03-28T14:32:06-03:00Luis Alonzo Fulchi
<ul><li><strong>Asignado a</strong> cambiado <i>Marc Bria</i> por <i>Luis Alonzo Fulchi</i></li></ul><p>Me paso la tarea de implementar la obligatoriedad de las hojas.</p> Inventario - Tareas #1876: Identificador de material inventariablehttp://projek.psico.edu.uy/issues/1876?journal_id=55322012-03-28T15:02:12-03:00Luis Alonzo Fulchi
<ul><li><strong>Fecha fin</strong> cambiado <i>22/12/2011</i> por <i>28/03/2012</i></li><li><strong>Estado</strong> cambiado <i>Comentarios</i> por <i>Cerrada</i></li><li><strong>% Realizado</strong> cambiado <i>90</i> por <i>100</i></li></ul><p>Obligué a que se elija el último nivel. Habrá que crear siempre 3 niveles.</p>