Mostrar Mensajes

Esta sección te permite ver todos los mensajes hechos por este usuario, recuerda que solo puedes ver los mensajes en áreas en donde tu tienes acceso.


Mensajes - richard

Páginas: [1] 2 3 ... 170
1
Toba - Desarrollo / Re:autenticacion api rest
« : mayo 17, 2019, 03:45:24 pm »
Hola Maximiliano,
Hola, estuve buscando en la documentación de la librería, pero no encuentro como expandir el tema de la autenticación a los servicios REST (con digest funciona bien).
la libreria que usamos para servir rest tiene la posibilidad de que se le inyecten instancias de otras clases, con lo cual lo que podrias hacer es invocar lo siguiente y fijarle una instancia de la clase que quieras para que autentique.
Código: [Seleccionar]
rest::app()->set_autenticador(new clase())
Dicha clase solo debe extender SIUToba\rest\seguridad\proveedor_autenticacion e implementar algun metodo que falte o difiera.

Citar
Lo que necesito es permitir accesos a ciertas rutas según el usuario. Estoy trabajando con un proyecto de Toba, no con la libreria standalone.

Lo que necesitas entonces es un autorizador,  el usuario esta autenticado.. luego vos debes decidir si puede o no acceder a un recurso puntual, el mecanismo es similar al que te expuse anteriormente pero tenes que extender de la clase proveedor_autorizacion.

De todas maneras tene en cuenta que los usuarios de la api rest no necesariamente van a coincidir con los de Toba, por lo tanto aplicar una especie de perfil funcional sobre eso, va a requerir info aparte.

Saludos

2
Toba - Desarrollo / Re:Problema con datos Reales
« : mayo 16, 2019, 11:11:00 am »
Cristian,

es un problema de representacion, Postgres guarda los campos float/double con precision variable y es distinta de la que maneja PHP... por  lo tanto cuando se intenta hacer la SQL para determinar si un registro en la bd se modifico, devuelve un falso positivo.. ya que  "3.14159" != "3.14159265359"... una opcion es forzar a Postgres a utilizar cierta precision, la otra es forzar a PHP y esperar que no tome en cuenta los ceros restantes postgres al realizar la consulta.

Lo mejor para ese caso seria definir el campo en cuestion como NUMERIC o DECIMAL y especificar precision/scale... pero el tema es que tenes que asegurarte de no enviar un valor que supere la cantidad de decimales... porque ahi hace el redondeo postgres. Por otra parte, precision determina la cantidad maxima de digitos del valor... con lo cual tenes un tope maximo tambien.

Saludos

3
Toba - Desarrollo / Re:Ocultar/Mostrar un boton
« : mayo 16, 2019, 11:02:27 am »
Hola Cristian,
El primer boton esta asociado a un evento que guarda datos (sincroniza) y el segundo simplemente imprime datos ya guardados por el evento anterior. Como es eso de asociar a grupos.
En los formularios existe algo llamado 'grupo de eventos'... que basicamente trabaja con el estado interno del componente,  en ppio hay dos grupos:
  • cargado
  • no_cargado

Asociando los botones de los eventos a cada uno, te evitas parte del manejo en codigo para ocultar/mostrar. Asi mismo podes definir tus propios grupos.. pero ahi ya debes indicar explicitamente en que grupo se debe considerar el componente a si mismo.

De todas formas, por lo que me decis.. es mas sencillo hacerlo simplemente desde el servidor que otra cosa. Cuando viajas a sincronizar, podes colocar una bandera que se encargue de no-eliminar el evento imprimir en el conf del componente.. y si esa bandera no esta, se elimina/oculta.

Saludos

4
Toba - Desarrollo / Re:Popup de selección múltiple
« : mayo 16, 2019, 10:55:34 am »
Hola Cynthya,

para hacer algo asi vas a tener que hacer un par de cosas:

- El evento que "transmita" los valores seleccionados puede ser configurado como respuesta_popup... pero vas a tener que inmiscuirte en el medio, ya que cuando se activa esta llamando a una funcion especifica que espera un par (clave, valor), mientras que vos necesitas enviar un recordset con multiples (clave, valor).

- Por otro lado, la funcion en la pagina padre (esto es la operacion inicial) que espera esa callback tambien debe ser modificada, ya que por defecto toma uno de los elementos del par y lo asigna como descripcion, mientras que el otro se considera clave y se envia a un hidden.

En tu caso, la descripcion podria ser una concatenacion de valores.. y las claves necesitan ser unidas de alguna manera tambien.. el tema es que eso hay que llevarlo adelante explicitamente, asi que vas a tener que redefinir esa funcion.

Saludos


5
Hola Oscar,
Extendí el cuadro de la siguiente forma :
Código: [Seleccionar]
function extender_objeto_js()
{
echo "
function seleccion_total(evento, checked)
{
//alert($this->_info_cuadro_cortes.length ) ;

if ($this->_info_cuadro_cortes.length > 0) {                                                //Atenti!!! esto no es JS, es codigo PHP..esa variable no existe en JS ($this->) tampoco
var id_padre = $(checked).parents('table')[1]['id'];

            var valor = $(checked).prop('checked') ;
            var selector = '#' + id_padre + ' input[id$='+evento+']';
           
           
            $(selector).each(function( index ){
                $(this).prop('checked', valor);
            });

}else{                                                                                         //Es necesario esta parte?

// si no lo maneja toba como siempre
if (!checked) {
{$this->objeto_js}.deseleccionar_todos(evento);
} else {
{$this->objeto_js}.seleccionar_todos(evento);
}
}
};";
}
Fijate que te  comente una linea puntual del codigo,  ese condicional te va a traer problemas asi como esta.
Por lo pronto pareciera que esa expresion... siempre ingresa al condicional, quizas es mas sencillo sacar ese JS unicamente cuando existen CC, ya que la cabecera no deberia salir si no estan los mismos.

Saludos

6
Toba - Instalación / Re:Problemas con la instalación de Toba
« : mayo 10, 2019, 11:39:19 am »
Hola Martin,
No puedo descargar toba para instalarlo sin tener un proyecto?
Poder podes, como yo puedo pararme frente a un auto en la calle... eso no quiere decir que sea recomendable :D.
Si vas por ese camino muchas de las cosas que se hicieron para simplificar el proceso, no las vas a poder usar..  fijate que en esta misma seccion hay varios threads donde se trato el tema.

Citar
No termino de entender los pasos (nuevos), para descargar la ultima version, y tenerlo actualizado:
2) tendría que descargar en ZIP (clone or download) el framework de github.
No, lo que haces es una de dos cosas:
- Clone o download del template y posterior edicion del archivo composer.json
- Creas tu propio archivo composer.json con los datos necesarios para bajar el framework entre otras dependencias.

Si queres lo podes pensar con la siguiente analogia, vos para crear, arrancar y detener un par de containers en docker.. .normalmente haces un docker-compose.yml y metes todo lo que necesitas ahi adentro, despues con el comando ejecutas la accion que queres llevar a cabo.

Esto es similar, vos tenes el archivo json donde especificas todo lo que queres bajar, actualizar, instalar, etc... y luego via composer llevas adelante la accion que necesitas.

Citar
3) luego ejecutar composer update para mantenerlo actualizado, agregando el texto que se informa, al json descargado con el zip?
Si a la ejecucion de composer, no al archivo json que debes editar, fijate que en el punto anterior tenes opciones.

Citar
4) instalar toba?
Exacto, instalas el framework y luego creas el proyecto (o lo cargas) segun indica el readme.

Saludos

7
Hola Oscar,
Estoy tratando de generar un id de evento para cada corte de control y me falta identificar el corte en el que esta incluida la fila a la que le voy a generar el evento.

bien, acordate que tenes que tener un evento en botonera para poder comunicar los resultados al servidor.

Citar
Quizás no sea la mejor forma de encarlo, la idea es ponerle el como sufijo  del metodo el id del cc
Pensaba hacerlo acá:
Código: [Seleccionar]
<?php
class weme_ei_cuadro_salida_html extends toba_ei_cuadro_salida_html
{

protectec $_corte_control;



function html_cuadro_cabecera_columna_evento($rowspan$pre_columnas)
{

//-- Eventos sobre fila
if($this->_cuadro->cant_eventos_sobre_fila() > 0) {
foreach ($this->_cuadro->get_eventos_sobre_fila() as $evento) {

$etiqueta $evento->get_etiqueta() .'-'.$this>_corte_control ;   /// aca iría el identificador de cc
 
//$imagen = $evento->get_imagen();
 
.... 
Segun veo, esto va a ciclar por los eventos que tengas definidos en el editor... pero fijate que con 2 cortes de control podes tener estas dos situaciones, segun las columnas que elijas y los valores que vengan en los datos.

Código: [Seleccionar]
* Corte id 0
   * Corte id 1
* Corte id 0
  * Corte id 1

Código: [Seleccionar]
* Corte id 0
   * Corte id 1
   * Corte id 1
   * Corte id 1
* Corte id 0
  * Corte id 1

Pensa en los cortes de control como agrupadores, vos tendrias que ser capaz de sacar un boton que tome todos los hijos del nodo actual (sea cual sea) y le cambie el status , parte la podes hacer por DOM.. parte es simplemente llamar a la API una vez tenes el id de la fila en cuestion.

Saludos

8
Toba - Instalación / Re:Problemas con la instalación de Toba
« : mayo 09, 2019, 02:27:37 pm »
Hola Martin,
Adjunto el archivo composer.json que tengo en la carpeta /home/toba y los errores que me tira.
el composer.json pareciera estar bien, mas alla de que le falta la parte correspondiente al proyecto en si mismo.
Siempre podes usar composer mismo para verificar que la estructura esta bien, de esa manera te evitas tener que esperar a que quiera empezar a bajar los paquetes o algun tema de encoding.
El comando es:
Código: [Seleccionar]
composer validate
Saludos

9
Toba - Desarrollo / Re:Error migrando proyecto toba de 2.3 a 2.7.6
« : mayo 08, 2019, 11:55:50 am »
Hola Olga,
Revisando el archivos comandos.log, encontre esto

Pero mas arriba se lograba conectar a la base sin problemas, luego aparece esto

[DEBUG][toba] PROYECTO "comedor"
[DEBUG][toba] Actualizada definicion base 'toba_2_7_13'
[DEBUG][toba] Conectando a base 'toba_2_7_13'
[ERROR][toba] No es posible realizar la conexi�n a la base. Mensaje: SQLSTATE[08006] [7] timeout expired
[ERROR][toba] toba_error_db:
ERROR ejecutando SQL:
 [CODIGO]: 7
 [SQLSTATE]: db_08006
 [MENSAJE]: SQLSTATE[08006] [7] timeout expired
 [SQL EJECUTADA]:

Alguien podria orientarme un poco ???
Gracias
No se esta pudiendo conectar a la bd, por eso te da ese mensaje.

Saludos

10
Toba - Instalación / Re:Problemas con la instalación de Toba
« : mayo 08, 2019, 11:23:16 am »
Hola Martin,
Que es lo que me estaría faltando?

Código: [Seleccionar]
- phpoffice/phpspreadsheet 1.0.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
- onelogin/php-saml v2.13.0 requires ext-curl * -> the requested PHP extension curl is missing from your system.

Tenes que ir agregando las extensiones faltantes de PHP... cuando tengas todas las que te vaya pidiendo deberia ir sin problemas.

Saludos

11
Toba - Desarrollo / Re:Error migrando proyecto toba de 2.3 a 2.7.6
« : mayo 07, 2019, 11:25:17 am »
Hola Olga,
Pero una cosa, yo descargue desde svn el proyecto en una carpeta, que si es cierto esla misma del proyecto nuevo. Yo ahora vos a descargar el proyecto en otra carpeta. la pregunta seria
cuando hablamos de  directorio de la instalacion 2.3, a que se refiere ??
a. La carpeta del proyectos que yo descargo desde el svn, en mi caso va a ser una carpeta minombre con los metadatos del proyecto en cuestion ??
b. O la carpeta proyecto de la version anterior con su carpeta instalacion y sus configuraciones ???
Me parece que es la opcion a.

Es la opcion b.

12
Toba - Desarrollo / Re:Error migrando proyecto toba de 2.3 a 2.7.6
« : mayo 06, 2019, 09:23:14 am »
Hola Olga
Hola, les comento que estoy migrando un proyecto toba de version 2.3 en un servidor  esquema desarrollo (con svn) a version 2.7.6 en otro servidor esquema desarrollo
Procedi del siguiente modo :
Se cargo una version 2.7.6 de toba en el nuevo servidor
Dentro de la carpeta proyectos he creado la carpeta con el nombre del proyecto que estoy migrando
Luego descargue con svn el proyecto en la carpeta mencionada
Verifique el archivo bases.ini para que apuntara al servidor con la base de pruebas que ya se venia usando
Ejecute
./toba proyecto importar -p comedor -i produccion -d /srv/toba_2.7.6/
segun veo el error estaria en la invocacion del comando.

El parametro -d indica la instalacion desde la cual se quiere importar el proyecto, en tu caso seria la instalacion con la version 2.3.x.. sin embargo le estas pasando estimo el directorio de la version destino.

Te diria que arranques nuevamente con el proceso.

- Regenerando la instancia de la version 2.3.x para verificar que no exista nada extraño
- Reinstalando la version 2.7.6 (xq no 2.7.13?) desde cero con su propia base, no la hagas apuntar a nada mas.
- Verifica que el directorio destino del proyecto no quedo con algo cambiado (svn st) y en dicho caso revertilo para asegurarte que arrancas con todo limpio.
- Re-ejecutar la importacion indicando el directorio de la instalacion 2.3 en el parametro -d

Cualquier cosa avisame.

Saludos

13
Hola Marcelo,
Necesitaríamos saber si los pasos estarían bien o si nos ha faltado algo.
Los pasos que fueron haciendo SON los correctos, solo un detalle..
Si al momento que realizan export TOBA_INSTANCIA=desarrollo, fijan tambien la variable de entorno export TOBA_INSTALACION_DIR= /home/marcelom/proyectos/archivo/instalacion, cuando hacen la instalacion del framework les queda todo listo y no necesitan mover nada luego, ni tocar los alias o el archivo de entorno.

Si te fijas seguramente exista un archivo /home/marcelom/proyectos/archivo/entorno_toba.env, dicho archivo es una copia del que se encuentra dentro de la carpeta instalacion, su objetivo es que puedas invocar los comandos con bin/toba desde la carpeta del proyecto sin tener que cargar el entorno primero.

Citar
- Tenemos un servidor svn con los proyectos nuestros, tendremos que tener cuidado de no versionar la carpeta vendor? para no pisar las instalaciones de los demás desarrolladores?
La carpeta vendor tiene que ir al svn:ignore, no asi el archivo composer.lock.

Citar
  - Otra cuestión es saber como se pasa a producción el proyecto, dado que antiguamente usábamos empaquetado y por lo que hemos podido leer de algún otro hilo, no se usaría más.
Ahora el pasaje a produccion se hace mediante el paquete "siu/instalador",  en el README del paquete tenes un link a la documentacion sobre requerimientos y pasos para que el proyecto tenga su propio mecanismo de instalacion/actualizacion que complete el circuito de deployment.

Saludos

14
Hola Oscar,
Estoy tratando de hacer que la selección múltiple pero que tenga en cuenta el corte de control.
Un "todos/ninguno" por cabecera de corte?.. o entendi mal?

Citar
Basicamente no se como detectar el corte o que filas están comprendidas en cada corte ...
Hay dos opciones que se me vienen a la cabeza:

- Una opcion es hacer que cada corte tenga un evento multiple distinto, vas a tener que extender el cuadro para esto... pero casi no tocas la parte de JS y podes llamar al metodo seleccionar_todos y deseleccionar_todos pasandole el evento nomas.

- Otra opcion es sacar el rango de filas desde el servidor, es el unico lugar donde sabes todas las filas que tiene ese corte... entonces en el link que dispara la interaccion podes incorporar los extremos del rango y luego ciclar llamando a la API del cuadro.

Otra cosa involucraria que empieces a navegar por el DOM, lo que te traeria despiole si cambias el marcado.

Saludos

15
Toba - Desarrollo / Re:Ocultar/Mostrar un boton
« : abril 29, 2019, 03:43:43 pm »
Hola Cristian,
Hola necesito ocultar un botón (evt__imprimir) por defecto al ingresar a un formulario y mostrarlo una vez que hago clic en otro boton(evt__test).
El evt tiene alguna relacion con la carga de los datos?... me refiero a si no lo podes asociar a uno de los grupos existentes.
Si depende unicamente del otro boton, la mas sencilla que existe es ocultarlo y mostrarlo via JS.

Citar
Asi lo muestro?
   
        {$this->objeto_js}.evt__test = function()           
        {
                this.mostrar_boton('imprimir');
        }
Si es así, ademas donde lo oculto por defecto?



Si el boton es un evento de ese objeto si, con eso lo mostrarias.
La mayoria de los componentes en JS tienen una ventana iniciar() o ini() segun el componente... lo unico que deberias tener en cuenta si lo vas a extender es hacer la llamada hacia arriba antes, cosa de no perder funcionalidad.

Saludos

Páginas: [1] 2 3 ... 170