papo-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Papo-hackers] Algunas notas de mi interaccion con Cimarron... Luca


From: Marcos Dione
Subject: Re: [Papo-hackers] Algunas notas de mi interaccion con Cimarron... Luca
Date: Mon, 29 Nov 2004 18:52:58 -0300
User-agent: Mutt/1.5.6+20040907i

    antes que nada, pido disculpas por lo lento de la respuesta. tres meses es
medio mucho. prefiero no apelar al `mas vale tarde que nunca'.

On Mon, Sep 27, 2004 at 03:26:30PM -0300, maram wrote:
> --::-- Trabajando con el archivo sigalv1.xot , se me planteo la
> inquietud de si en los nombres de los campos (o tablas), se pueden
> incluir otros caracteres ademas de letras...
> (barras,guiones,espacios,acentos...)
> Por las dudas utilizo "letras" y "guion bajo" solamente.

    por ahora letras y underscores. tene en cuenta que tambien hay limitaciones
dadas por la base de datos que termines usando.

> --::-- Planteo la duda siguiente:
> Si tengo una tabla "Reception" que tiene una referencia a la tabla
> "Sample", basta con indicar la relacion en la tabla referenciada
> solamente? de la forma:
> <tabla> "reception"
> <field> "sample" references="sample" inverse="reception"

    si, con eso alcanza. el exporter a modeling se encarga de poner la inversa
en la otra tabla. por ahora, en la tabla donde definas la relacion se considera
que hay muchos y en la tabla donde va la relacion se considera que hay uno. o
sea, en tu ejemplo, la relaccion es reception <n---1> sample.

> como le indico si es 1a1, vs a vs, 1 a vs ?

    muchos a muchos... hmm, o `arreglamos' xot para que tenga soporte, o habra
que crear la tabla intermedia a mano.

> --::-- No pude generar el "modelo" (pymodel,sql,etc)  a partir de Xot,
> pues hay errores en los scripts de xot,al menos los que estan en cvs.
> Los corrijo y consigo generar el modelo y demas complementos.

    creo que esos errores estan resueltos. proba bajando la version de xot que
liberamos hace poco en http://papo.vialibre.org.ar/releases/xot/0.1/

> --::-- Seria bueno un "chequeador" de sintaxis para "Xot", que informe
> donde hay un problema.
> Realize algunas modificaciones al archivo SIGALv1.xot y no podia
> generar el modelo, por una "barra invertida" de mas en un cierre de
> "field"costo encontrarla...

    para eso esta el dtd. podes usar xmllint para chechear la correctitud de la
sintaxis.

> --::-- Al mostrar la pantalla principal da el siguiente error:
> main.py:5583): Gtk-WARNING **: Attempting to add a widget with type
> GtkFrame to a container of type GtkNotebook, but the widget is already
> inside a container of type GtkNotebook, the GTK+ FAQ at
> http://www.gtk.org/faq/ explains how to reparent a widget.
> 
> Este error se repite tantas veces como widget se hayan agregado. 

    sep, es un bug conocido :(

> --::-- Al iniciar el programa da el siguiente mensaje:
> accepted_image <class 'Gtk2.Gtk2SearchEntry.Gtk2SearchTextEntry'>
> unknown_image <class 'Gtk2.Gtk2SearchEntry.Gtk2SearchTextEntry'>
> notfound_image <class 'Gtk2.Gtk2SearchEntry.Gtk2SearchTextEntry'>
> Que sera?

    alguna linea de depurado. nada grave. en el proximo cimarrion tendremos
prendido y apagado de debug.

> --::-- Estuve realizando distintas pantallas para ABM de varias tablas
> similares.
> Seria interesante un ViewController que mostrara una pantalla de ABM,
> generica para casos similares del tipo:
> 
>        -------------------------------------
>       !                     !                !
>       ! BUSQUEDA  ! DATOS    !
>       !                     !                !
>        --------------------------------------
>       !   campo1       !  campo1  !                   
>       !      o              !  campo2  !
>       !   campo2       !  campo3  !
>       !                      !               !
>        -------------------------------------
> 
> con los tabs:    Busqueda, Datos
> con los campos:  campo1,campo2,campo3         
> con botones:   "nuevo","guardar","re-establecer","borrar"
> 
> tambien seria bueno que uno le pase solamente el "modelo" y las
> parejas, "label,campo" ha incluir (Por defecto todas...)
> 
> --::-- Seria bueno que hubiese un viewcontroller como el del punto
> anterior pero ampliado a BUSQUEDA->DATOS->DATOS_RELACIONADOS,
> similar a "Persona"->"Direccion" y que la pantalla relacionada agregue
> los botones para "hojear" las diversas "DIRECCIONES"

    veo que se puede hacer...

> --::-- Tratando de ver como imprimir reportes tipo "listado", bajo
> ruff. Pero al tratar de probar el "example" que trae no funciona.
> Sugerencias...
> 

    fijate en el xot-0.1, que al menos que encargue que el ejemplo anduviera.
sucede que estaba un poco desactualizado.

> --::-- Las pantallas de ABM no tienen boton Borrar. 

    te referis al ConsistencyController? cierto, no tiene, no debiera ser
dificil de agregar.

> --::-- Trato de depurar los errores anteriores
> Encuentro que en responder.py la funcion setParent(), esta rota.
> En realidad no esta asignando el parent y sale antes de terminar.
> 
> La funcion original:
> 
>    def setParent(self, parent):
>         # this is plainly *wrong*
>         if __debug__:
>             print 'responder: setting parent of %s to %s' % (self, parent)
>         if self._parent:
>             # this should break the infinite loop
>             print 'warning: responder: not setting parent'
>             return
>         self._parent = parent
>         if self._parent is not None:
>             parent, self._parent = self._parent, None
>             if __debug__:
>                 print 'responder: parenting %s to %s' % (self, parent)
>             parent.addChild(self)
> 
> 
> modifico la funcion asi:
> 
>     def setParent(self, parent):     
>       if __debug__:
>             print 'responder: al hijo %s le aviso que su padre es %s'
> % (self, parent)
>         self._parent = parent
> 
>         parent.addChild(self)

    aca tenemos dos funciones que son simetricas una de la otra: setParent() y
addChild(). la idea es que llamando a una alcance. pero si sP() llama a aC() y
viceversa, podemos tener un infinite loop. por eso los comentarios de `this is
plainly wrong'. hay que repensar un poquito esto. por ahora mi idea es que sólo
uno de los métodos sea público.

> Con esto se soluciona el error, por el cual no salia del programa al
> cerrar la ventana principal.
> Ya que no encontraba el parent application de window.
> Tambien se solucionan los errores en los warnig de GTK, que intentaban
> parentizar dos veces.

    aja. gracias por el dato, me fijo cómo solucionarlo mejor.
    
> SOLO queda el error de warning en Notebook.
> Si a un Notebook le agrego una pagina, (un vbox) alguien lo parentiza
> 2 veces a notebook.
> 
> creo que esto lo hace self._doaddchild(child) en la funcion addChild
> de CompositeResponder.
> 
> No entiendo porque necesito hacer _doaddChild? aqui. No es la
> superclase Composite con la funcion addChild() quien asigna los hijos
> a los padres?
> 
> ademas si elimino la linea self._doaddchild(child) no se producen
> warning por reparentizacion, pero se produce otro error visual, ya que
> al hacer show() de un window, no me muestra los hijos de window...

    decididamente esta broken. dejame que lo piense.

> En algun momento se pretendio, setear el parent de cada hijo, desde la
> funcion que agrega los hijos al padre. Pero esto se supone que ya se
> seteo antes y desde alli se llamo a esta funcion. y si volvemos a
> hacer setParent aqui, bucle infinito...

    yah, por eso mi comentario de mas arriba.

> creo que debiera haber la misma coherencia.
> y en esta misma clase aplication, eso no se cumple.

    eso, falta coherencia.
    
    {snip} de aca en mas lo sproblemas crecen exponencialmente y mi stack dio
overflow :) cuando haya repensado este tema les aviso.

-- 
(Not so) Random fortune:
Sheep go to Heaven, goats go to Hell
                                -- Cake, "Sheep go to Heaven"




reply via email to

[Prev in Thread] Current Thread [Next in Thread]